OSDN Git Service

* decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Add
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
2
3         * decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Add
4         comment for the packed array type case.
5         * utils.c (build_template): Use a loop to strip padding or
6         containing records for justified modular types.
7
8 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
9
10         * decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously
11         large alignments specified for types.
12         (validate_alignment): Minor cleanup.
13
14 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
15
16         * decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined.
17         (gnat_to_gnu_entity) <E_Record_Type>: Try to get a smaller form of
18         the component for packing, if possible, as well as if a component
19         size clause is specified.
20         <E_Record_Subtype>: For an array type used to implement a packed
21         array, get the component type from the original array type.
22         Try to get a smaller form of the component for packing, if possible,
23         as well as if a component size clause is specified.
24         (round_up_to_align): New function.
25         (make_packable_type): Add in_record parameter.
26         For a padding record, preserve the size.  If not in_record and the
27         size is too large for an integral mode, attempt to shrink the size
28         by lowering the alignment.
29         Ditch the padding bits of the last component.
30         Compute sizes and mode manually, and propagate the RM size.
31         Return a BLKmode record type if its size has shrunk.
32         (maybe_pad_type): Use MAX_FIXED_MODE_SIZE instead of BIGGEST_ALIGNMENT.
33         Use Original_Array_Type to retrieve the type in case of an error.
34         Adjust call to make_packable_type.
35         (gnat_to_gnu_field): Likewise.
36         (concat_id_with_name): Minor tweak.
37         * trans.c (larger_record_type_p): New predicate.
38         (call_to_gnu): Compute the nominal type of the object only if the
39         parameter is by-reference.  Do the conversion actual type -> nominal
40         type if the nominal type is a larger record.
41         (gnat_to_gnu): Do not require integral modes on the source type to
42         avoid the conversion for types with identical names.
43         (addressable_p): Add gnu_type parameter.  If it is specified, do not
44         return true if the expression is not addressable in gnu_type.
45         Adjust recursive calls.
46         * utils.c (finish_record_type): Remove dead code.
47
48 2008-03-05  Eric Botcazou  <ebotcazou@adacore.com>
49
50         PR ada/35186
51         * decl.c (maybe_pad_type): Avoid padding an integral type when
52         bumping its alignment is sufficient.
53
54 2008-03-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
55
56         * gnatfind.adb, gnatxref.adb: Fix argument parsing typos.
57         * s-auxdec-empty.adb, s-auxdec.adb: Fix typos in copyright
58         statement.
59         * a-ngcoar.adb, a-ngrear.adb, g-awk.adb, g-debpoo.adb,
60         gprep.adb, make.adb, makegpr.adb, par-ch6.adb, prj-nmsc.adb,
61         sem_attr.adb, sem_ch4.adb, sem_ch8.adb: Fix typos in ada source
62         code output strings.
63         * sem_type.adb, system-vms-ia64.ads, system-vms.ads,
64         system-vms_64.ads: Fix typos in ada source code comments.
65         * sinfo-cn.adb: Remove incomplete sentence.
66
67         PR documentation/15479
68         * gnat_rm.texi, gnat_ugn.texi: Avoid standalone `non' word.
69
70 2008-02-27  Samuel Tardieu  <sam@rfc1149.net>
71
72         PR ada/22255
73         * s-fileio.adb (Reset): Do not raise Use_Error if mode isn't changed.
74
75 2008-02-27  Samuel Tardieu  <sam@rfc1149.net>
76
77         PR ada/34799
78         * sem_ch13.adb (Analyze_Record_Representation_Clause): Check
79         that underlying type is present.
80
81 2008-02-26  Tom Tromey  <tromey@redhat.com>
82
83         * misc.c (internal_error_function): Remove test of
84         USE_MAPPED_LOCATION.
85         * trans.c (gigi): Remove test of USE_MAPPED_LOCATION.
86         (Sloc_to_locus): Remove old location code.
87
88 2008-02-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
89
90         * gnat_rm.texi, gnat_ugn.texi: Fix spacing after `e.g.' and
91         `i.e.' by adding comma or `@:' as appropriate.
92         * gnat_rm.texi (Pragma Wide_Character_Encoding): Instead of
93         plain characters `C', use `@samp{C}'.
94         * gnat_ugn.texi (File Naming Rules, About gnatkr)
95         (Krunching Method): Likewise.
96
97         * gnat_ugn.texi (Conventions): List environment variables and
98         metasyntactic variables.
99         (Compiling Programs): Fix notation of metasyntactic variables.
100         Add @file where appropriate.  Use @file for file extensions,
101         @samp for strings.
102         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, use @samp
103         instead of @file, @env instead of @code.
104
105 2008-02-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
106
107         PR documentation/15479
108         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, replace `..'
109         and `...' with `@dots{}' or `@enddots{}'.
110
111         PR documentation/15479
112         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, add @command,
113         use @command instead of @code, @option instead of @samp or @code,
114         @code instead of @var, @samp instead of @file.
115
116         PR documentation/15479
117         * gnat_ugn.texi (Using gnatmake in a Makefile): Do not ignore errors
118         in Makefile rules, by using `&&' rather than `;'.
119
120 2008-02-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
121
122         PR documentation/15479
123         * gnat_ugn.texi: In non-code, avoid space before colon.
124         (Regular Expressions in gnatfind and gnatxref): Fix indentation.
125         (Examples of gnatxref Usage): Use @command{vi} instead of
126         @file{vi}.
127         (Character Set Control): Do not use @code for UTF-8.
128         (Validity Checking): Fix typo "NaNs" instead of "NaN's".  Do not
129         use @code for IEEE.
130         * gnat_rm.texi (Aggregates with static bounds): Fix typo in code
131         sample.
132         * gnat_rm.texi, gnat_ugn.texi: Fix typos.  Bump copyright years.
133
134 2008-02-11  Joel Sherrill <joel.sherrill@oarcorp.com>
135
136         PR ada/35143
137         * env.c: Add __rtems__ to if defined.
138         * s-osinte-rtems.adb: Add To_Target_Priority.  Fix formatting.
139         * s-osinte-rtems.ads: Add To_Target_Priority prototype and
140         PTHREAD_SCOPE_PROCESS/PTHREAD_SCOPE_SYSTEM constants.  Add
141         pragma Convention as required.
142         * gsocket.h: Make compile in and out of RTS.
143         * Makefile.in: Add system-rtems.ads.  Build DEC extensions.
144         Use g-soccon-rtems.ads.
145         * g-soccon-rtems.ads, system-rtems.ads: New files.
146
147 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
148
149         PR other/35107
150         * Make-lang.in (gnat1): Add $(GMPLIBS).
151
152 2008-01-26  Eric Botcazou  <ebotcazou@adacore.com>
153
154         * decl.c (components_to_record): Improve comment.
155
156 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
157
158         * decl.c (components_to_record): Do not reuse the empty union type
159         if there is a representation clause on the record.
160         * trans.c (addressable_p): Return true for INTEGER_CST.
161
162 2008-01-21  Eric Botcazou  <ebotcazou@adacore.com>
163
164         * trans.c (gnat_to_gnu) <N_Free_Statement>: Use POINTER_PLUS_EXPR
165         in pointer arithmetics.
166         * utils2.c (build_allocator): Likewise.
167
168 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
169
170         * utils.c (build_function_stub): Properly build the call expression.
171
172 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
173
174         * decl.c (gnat_to_gnu_entity) <object>: Process renamings
175         before converting the expression to the type of the object.
176         * trans.c (maybe_stabilize_reference) <CONSTRUCTOR>: New case.
177         Stabilize constructors for special wrapping types.
178
179 2008-01-13  Eric Botcazou  <ebotcazou@adacore.com>
180
181         * trans.c (call_to_gnu):Invoke the addressable_p predicate only
182         when necessary.  Merge some conditional statements.  Update comments.
183         Rename unchecked_convert_p local variable to suppress_type_conversion.
184         Do not suppress conversions in the In case.
185         (addressable_p) <VIEW_CONVERT_EXPR>: Do not take alignment issues
186         into account on non strict-alignment platforms.
187
188 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
189
190         * utils.c (aggregate_type_contains_array_p): New predicate.
191         (create_field_decl): In a packed record, force byte alignment
192         for fields without specified position that contain an array.
193
194 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
195
196         * utils.c (unchecked_convert): Fold the VIEW_CONVERT_EXPR expression.
197
198 2008-01-10  John David Anglin  <dave.anglin.@nrc-cnrc.gc.ca>
199
200         PR ada/34466
201         * s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for
202         sysconf call.
203         (bit_field): New packed boolean type used by cpu_set_t.
204         (cpu_set_t): New type corresponding to the C type with
205         the same name. Note that on the Ada side we use a bit
206         field array for the affinity mask. There is not need
207         for the C macro for setting individual bit.
208         (pthread_setaffinity_np): New imported routine.
209
210 2008-01-03  Tero Koskinen <tero.koskinen@iki.fi>
211
212         PR ada/34647
213         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
214         on OpenBSD as is done on other BSD systems.
215
216         PR ada/34645
217         * sysdep.c (__gnat_ttyname, getc_immediate_nowait,
218         getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate
219         I/O.
220
221         PR ada/34644
222         * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing
223         clearenv().
224
225         PR ada/34646
226         * init.c (__gnat_error_handler, __gnat_install_handler,
227         __gnat_init_float): Define for OpenBSD.
228
229         * initialize.c (__gnat_initialize): Define for OpenBSD.
230
231 2007-12-27  Samuel Tardieu  <sam@rfc1149.net>
232
233         PR ada/34553
234         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
235         instead of mktemp() or tmpnam() on NetBSD.
236
237 2007-12-23  Eric Botcazou  <ebotcazou@adacore.com>
238
239         * trans.c (call_to_gnu): Make the temporary for non-addressable
240         In parameters passed by reference.
241         (addressable_p): Return true for STRING_CST and CALL_EXPR.
242
243 2007-12-19  Robert Dewar  <dewar@adacore.com>
244
245         * g-expect-vms.adb, g-expect.adb, s-poosiz.adb: 
246         Add pragma Warnings (Off) for unassigned IN OUT arguments
247
248         * sem_warn.adb (Output_Reference): Suppress messages for internal names
249         (Check_References): Extensive changes to tune up warnings
250         (Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings
251         (Has_Pragma_Unmodifed_Check_Spec): New function
252         (Check_References): Implement pragma Unmodified
253         (Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified
254
255         * par-prag.adb: Dummy entry for pragma Unmodified
256
257         * sem_prag.adb: Implement pragma Unmodified
258
259         * einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag
260         (Proc_Next_Component_Or_Discriminant): Fix typo.
261         Update comments.
262
263         * sem_util.adb (Note_Possible_Modification): Add processinng for pragma
264         Unmodified.
265         (Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func,
266         because the former already takes care of discarding the result.
267         (Mark_Coextensions): Remove ununused initial value from Is_Dynamic.
268         Add comment.
269
270         * snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified
271
272 2007-12-19  Eric Botcazou  <ebotcazou@adacore.com>
273
274         * targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads,
275         system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
276         system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads,
277         system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads,
278         system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
279         system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
280         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
281         system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
282         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
283         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads
284         (Dynamic_Trampolines_Used): Delete.
285
286         * system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto.
287         Turn on stack probing mechanism on LynxOS.
288
289 2007-12-19  Bob Duff  <duff@adacore.com>
290
291         * atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate
292         the resulting tail recursion by hand. This prevents running out of
293         memory on deeply nested concatenations, since Field2 is where the left
294         operand of concatenations is stored.
295         Fix bug (was returning OK_Orig in some cases). Fix return subtype to
296         clarify that it can only return OK or Abandon.
297
298         * sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left
299         operand by iteration, in order to avoid running out of memory on
300         deeply-nested concatenations. Use the Parent pointer to get back up the
301         tree.
302         (Resolve_Op_Concat_Arg, Resolve_Op_Concat_First,
303          Resolve_Op_Concat_Rest): New procedures split out of
304         Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is
305         clearer.
306
307         * checks.adb (Remove_Checks): Use Traverse_Proc instead of
308         Traverse_Func, because the former already takes care of discarding the
309         result.
310
311         * errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func,
312         because the former already takes care of discarding the result.
313         (Remove_Warning_Messages): Use appropriate subtype for Status and
314         Discard 
315
316 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
317
318         * exp_aggr.adb (Not_OK_For_Backend): A component of a private type with
319         discriminants forces expansion of the aggregate into assignments.
320         (Init_Record_Controller):  If the type of the aggregate is untagged and
321         is not inherently limited, the record controller is not limited either.
322
323 2007-12-19  Robert Dewar  <dewar@adacore.com>
324
325         * exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in
326         handling compile time known size of record or array (case of front end
327         layout active, e.g. in GNAAMP).
328
329 2007-12-19  Javier Miranda  <miranda@adacore.com>
330
331         * exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry
332         that forces the construction of static dispatch tables in case of
333         record subtypes.
334
335 2007-12-19  Robert Dewar  <dewar@adacore.com>
336
337         * exp_ch9.adb (Null_Statements): Moved to library level
338         (Trivial_Accept_OK): New function
339         (Expand_Accept_Declaration): Use Trivial_Accept_OK
340         (Expand_N_Accept_Statement): Use Trivial_Accept_OK
341
342 2007-12-19  Robert Dewar  <dewar@adacore.com>
343
344         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type
345         in complex case where array is Volatile.
346
347 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
348
349         * freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement
350         properly the Ada2005 rules concerning when the current instance of a
351         record type is aliased.
352
353 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
354
355         * par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in
356         mangled declaration
357         (P_Type_Declaration): Diagnose misuse of "abstract" in untagged record
358         declarations.
359         (P_Variant_Part): Cleaner patch for parenthesized discriminant
360
361 2007-12-19  Vincent Celier  <celier@adacore.com>
362
363         * prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when
364         package is not known
365
366         * prj-attr.ads (Unknown_Package): New constant
367         Do not crash when an unknown package is in several projects
368
369         * prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as
370         ignored
371
372         * prj-nmsc.adb (Check): Remove obsolete code related to no longer
373         existing package Language_Processing.
374
375 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
376             Gary Dismukes  <dismukes@adacore.com>
377             Samuel Tardieu  <sam@rfc1149.net>
378
379         PR ada/15803, ada/15805
380         * sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose
381         illegal access subtypes when there is a constrained partial view.
382         (Check_For_Premature_Usage): New procedure inside
383         Access_Subprogram_Declaration for checking that an access-to-subprogram
384         type doesn't reference its own name within any formal parameters or
385         result type (including within nested anonymous access types).
386         (Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage.
387         (Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the
388         context is an access_to_variable, the expression cannot be an
389         access_to_constant.
390
391 2007-12-19  Bob Duff  <duff@adacore.com>
392
393         * sem_ch4.adb (Analyze_Concatenation_Rest): New procedure.
394         (Analyze_Concatenation): Use iteration instead of recursion in order
395         to avoid running out of stack space for deeply nested concatenations.
396
397 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
398             Gary Dismukes  <dismukes@adacore.com>
399
400         * sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings
401         whose renamed entity is a subprogram that requires overriding.
402         (Premature_Usage): Test for the case of N_Full_Type_Declaration when
403         issuing an error for premature usage and issue a message that says
404         'type' rather than 'object'.
405
406 2007-12-19  Gary Dismukes  <dismukes@adacore.com>
407
408         PR ada/34149
409         * sem_disp.adb (Check_Dispatching_Call): Augment existing test for
410         presence of a statically tagged operand (Present (Static_Tag)) with
411         test for Indeterm_Ancestor_Call when determining whether to propagate
412         the static tag to tag-indeterminate operands (which forces dispatching
413         on such calls).
414         (Check_Controlling_Formals): Ada2005, access parameters can have
415         defaults.
416         (Add_Dispatching_Operation, Check_Operation_From_Private_View): do
417         not insert subprogram in list of primitive operations if already there.
418
419 2007-12-19  Tristan Gingold  <gingold@adacore.com>
420
421         * utils.c (create_var_decl_1): call rest_of_decl_compilation only for
422         global variable.
423
424 2007-12-19  Thomas Quinot  <quinot@adacore.com>
425
426         Part of PR ada/33688
427         * gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary
428         datagram info on Linux.
429
430 2007-12-19  Vincent Celier  <celier@adacore.com>
431
432         * makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so
433         that the source path name is always found in the dependencies.
434
435 2007-12-19  Robert Dewar  <dewar@adacore.com>
436
437         * gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o
438         Fix name of Wide_Wide_Latin_1/9 file names
439         Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads)
440         Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode
441         Add missing documentation for Ada.Command_Line.Response_File
442         Update list of warning letters for Warnings pragma
443         Add documentation for pragma Unmodified
444
445 2007-12-19  Samuel Tardieu  <sam@rfc1149.net>
446
447         * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target.
448
449 2007-12-17  Arnaud Charlet  <charlet@adacore.com>
450
451         * s-vxwork-alpha.ads: Removed, no longer used.
452
453 2007-12-15  Jakub Jelinek  <jakub@redhat.com>
454
455         * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line.
456
457 2007-12-13  Samuel Tardieu  <sam@rfc1149.net>
458
459         PR ada/34360
460         * Makefile.in: Change two occurrences of mlib-tgt.adb by correct name
461         mlib-tgt-specific.adb.
462
463 2007-12-13  Bob Duff  <duff@adacore.com>
464
465         * trans.c (Attribute_to_gnu): Check for violations of the
466         No_Implicit_Dynamic_Code restriction. This checking used to be done in
467         the front end, but is moved here so we can make it more accurate.
468
469 2007-12-13  Pascal Obry  <obry@adacore.com>
470
471         * adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy
472          version is provided for older GNU/Linux distribution not
473          supporting thread affinity sets.
474         
475         * s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf
476         call.
477         (bit_field): New packed boolean type used by cpu_set_t.
478         (cpu_set_t): New type corresponding to the C type with
479         the same name. Note that on the Ada side we use a bit
480         field array for the affinity mask. There is not need
481         for the C macro for setting individual bit.
482         (pthread_setaffinity_np): New imported routine.
483         
484         * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is
485         no null.
486         (Create_Task): Set the processor affinity mask if information
487         is present.
488         
489         * s-tasinf-linux.ads, s-tasinf-linux.adb: New files.
490         
491 2007-12-13  Robert Dewar  <dewar@adacore.com>
492
493         * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads, 
494         s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads, 
495         s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads, 
496         s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb,
497         s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads,
498         s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads, 
499         s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads, 
500         i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C
501         for subprogram pointers.
502
503         * g-ctrl_c.adb: New file.
504
505         * g-ctrl_c.ads (Install_Handler): New body.
506
507         * freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always
508         instead of obsolete function Is_Always_Inlined.
509         (Freeze_Entity): check for tagged type in imported C subprogram
510         (Freeze_Entity): check for 8-bit boolean in imported C subprogram
511         (Freeze_Entity): check for convention Ada subprogram pointer in
512         imported C subprogram.
513         (Freeze_Fixed_Point_Type): In the case of a base type where the low
514         bound would be chopped off and go from negative to zero, force
515         Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower
516         bound) so that the size computation for the base type will take
517         negative values into account.
518
519 2007-12-13  Eric Botcazou  <ebotcazou@adacore.com>
520             Bob Duff  <duff@adacore.com>
521             Tristan Gingold  <gingold@adacore.com>
522
523         * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, 
524         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads, 
525         system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
526         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, 
527         system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads, 
528         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, 
529         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, 
530         system-vxworks-arm.ads, system-darwin-x86.ads, system.ads,
531         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, 
532         system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads,
533         system-vms-ia64.ads (Stack_Check_Limits): New target parameter.
534         (Always_Compatible_Rep): New flag to control trampolines globally.
535         (Dynamic_Trampolines_Used): New flag for implementing the
536         No_Implicit_Dynamic_Code restriction more correctly (not yet used,
537         and not yet set correctly for some targets).
538
539         * s-taprop-vxworks.adb: Use stack limit method of stack checking.
540         Simply indirectly call s-stchop when a task is created.
541
542         * ali.ads: 
543         New flag added: Stack_Check_Switch_Set which is set when '-fstack-check'
544         appears as an argument (entries A) in an ALI file.
545
546         * fe.h (Stack_Check_Limits): Declare new target parameter.
547         (Check_Implicit_Dynamic_Code_Allowed): New procedure.
548
549         * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS.
550         This variable is declared in C to be sure not subject to elaboration
551         code.
552         (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to
553         Storage_Error.
554
555         * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter.
556         (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters.
557
558         * s-stchop.ads: Add comments.
559
560         * s-stchop-vxworks.adb: Package almost fully rewritten to use stack
561         limit method of stack checking.
562
563         * s-stchop-limit.ads: New file.
564
565 2007-12-13  Robert Dewar  <dewar@adacore.com>
566
567         * sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb, 
568         a-cihama.adb, g-awk.adb, 
569         s-inmaop-posix.adb: Update handling of assigned value/unreferenced
570         warnings
571
572         * exp_smem.adb: Update handling of assigned value/unreferenced warnings
573
574         * sem.adb: Update handling of assigned value/unreferenced warnings
575
576         * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return
577
578         * lib-xref.ads: Improve documentation for k xref type
579
580         * lib-xref.adb: 
581         Update handling of assigned value/unreferenced warnings
582         (Generate_Reference): Warning for reference to entity for which a
583         pragma Unreferenced has been given should be unconditional.
584         If the entity is a discriminal, mark the original
585         discriminant as referenced.
586
587         * sem_warn.ads, sem_warn.adb
588         (Check_One_Unit): Test Renamed_In_Spec to control giving warning for
589         no entities referenced in package
590         (Check_One_Unit): Don't give message about no entities referenced in
591         a package if a pragma Unreferenced has appeared.
592         Handle new warning flag -gnatw.a/-gnatw.A
593         Update handling of assigned value/unreferenced warnings
594
595         * atree.h: Add flags up to Flag247
596         (Flag231): New macro.
597
598 2007-12-13  Jose Ruiz  <ruiz@adacore.com>
599
600         * adaint.h: (__gnat_plist_init): Not defined for RTX.
601
602         * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for
603         RTX systems.
604
605         * Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb.
606         (LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB,
607         EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS,
608         GNATLIB_SHARED for RTX run time): Use the versions required by RTX.
609
610         * mingw32.h: 
611         Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported.
612
613         * sysdep.c (winflush_function for RTX): Procedure that does nothing
614         since we only have problems with Windows 95/98, which are not
615         supported by RTX.
616         (__gnat_ttyname): Return the empty string on Nucleus, just as
617         done on vxworks.
618
619 2007-12-13  Robert Dewar  <dewar@adacore.com>
620
621         * a-textio.adb, a-textio.ads: 
622         Extensive changes to private part for wide character encoding
623
624         * a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb
625         (Look_Ahead): Fix mishandling of encoded sequences
626         Move declaration of Wch_Con to private part (should not be visible)
627
628         * ali.adb (Scan_ALI): Set default encoding method to brackets instead of
629         UTF-8. Probably this is never used, but if it is, brackets is
630         clearly correct.
631
632         * bindgen.adb (Get_WC_Encoding): New procedure to properly handle
633         setting wide character encoding for no main program case and when
634         encoding is specified using -W?
635         Initialize stack limit of environment task if stack limit method of
636         stack checking is enabled.
637         (Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method
638         (Gen_Adainit_C): Use Get_WC_Encoding to output encoding method
639         (Get_Main_Unit_Name): New function.
640         (Gen_Adainit_Ada): Add call to main program for .NET when needed.
641         (Gen_Output_File): Set Bind_Main_Program to True for .NET
642
643         * bindusg.adb: Add line for -Wx switch
644
645         * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function
646         Add comments
647         Add new useful constant WC_Longest_Sequences
648
649         * switch-b.adb: Clean up handling of -Wx switch
650         For -gnatWx, set Wide_Character_Encoding_Method_Specified
651
652         * switch-c.adb: -gnatg activates warning on assertion errors
653         For -gnatWx, set Wide_Character_Encoding_Method_Specified
654
655         * s-wchcon.adb: (Is_Start_Of_Encoding): New function
656
657 2007-12-13  Robert Dewar  <dewar@adacore.com>
658             Ed Schonberg  <schonberg@adacore.com>
659
660         * a-ngcoty.adb: New pragma Fast_Math
661
662         * opt.adb: New pragma Fast_Math
663
664         * par-prag.adb: 
665         Add Implemented_By_Entry to the list of pragmas which do not require any
666         special processing.
667         (Favor_Top_Level): New pragma.
668         New pragma Fast_Math
669
670         * exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv
671         (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
672         Expand_Allocator_Expression): Take into account VM_Target
673         (Expand_Attribute, case 'Identity):  Handle properly the case where
674         the prefix is a task interface.
675         New pragma Fast_Math
676
677         * par.adb (Next_Token_Is): New function
678         (P_Pragma): Add Skipping parameter
679         (U_Left_Paren): New procedure
680         (U_Right_Paren): New procedure
681         New pragma Fast_Math
682
683         * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after
684         subunit
685         New pragma Fast_Math
686
687         * sem_prag.adb: Add significance value to table Sig_Flag for pragma
688         Implemented_By_Entry.
689         (Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry.
690         (Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep
691         items, since it can apply to more than one overloadable entity. Set
692         new flag Has_Pragma_Inline_Always for Inline_Always case.
693         (Analyze_Pragma, case Complex_Representation): Improve error message.
694         (Analyze_Pragma, case Assert): When assertions are disabled build the
695         rewritten code with Sloc of expression rather than pragma, so new
696         warning about failing is not deleted.
697         (Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to
698         protected types and update error message to reflect that. Test whether
699         the protected type is allowed for the pragma (an error is issued if the
700         type has any entries, or components that do not have preelaborable
701         initialization).
702         New pragma Fast_Math
703         (Analyze_Pragma, case No_Return): Handle generic instance
704
705         * snames.h, snames.ads, snames.adb: 
706         Add new predefined name for interface primitive _Disp_Requeue.
707         New pragma Fast_Math
708
709         * a-tags.ads, a-tags.adb: New calling sequence for
710         String_To_Wide_[Wide_]String
711         (Secondary_Tag): New subprogram.
712
713         * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here
714         from Exp_Attr
715         New calling sequence for String_To_Wide_[Wide_]String
716         (Expand_Image_Attribute): Major rewrite. New calling sequence avoids
717         the use of the secondary stack for image routines.
718
719         * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New
720         calling sequence for String_To_Wide_[Wide_]String
721
722         * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in
723         Ada 95 mode
724         (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully
725         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
726
727         * par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode
728         (P_Formal_Part): Use Skipping parameter in P_Pragma call
729         to improve error recovery
730
731         * par-util.adb (Next_Token_Is): New function
732         (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function
733
734         * par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to
735         semicolon if missing
736         (P_Pragma): Implement new Skipping parameter
737         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
738         Fix location of flag for unrecognized pragma message
739
740         * par-tchk.adb (U_Left_Paren): New procedure
741         (U_Right_Paren): New procedure
742
743 2007-12-13  Geert Bosch  <bosch@adacore.com>
744
745         * a-tifiio.adb: 
746         (Put_Int64): Use Put_Digit to advance Pos. This fixes a case where
747         the second or later Scaled_Divide would omit leading zeroes,
748         resulting in too few digits produced and a Layout_Error as result.
749         (Put): Initialize Pos.
750
751 2007-12-13  Robert Dewar  <dewar@adacore.com>
752
753         atree.ads, atree.adb (Flag231..Flag247): New functions
754         (Set_Flag231..Set_Flag247): New procedures
755         (Basic_Set_Convention): Rename Set_Convention to be
756         Basic_Set_Convention
757         (Nkind_In): New functions
758         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
759
760         * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always
761         instead
762          of obsolete function Is_Always_Inlined
763         (Register_Predefined_DT_Entry): Initialize slots of the second
764         secondary dispatch table.
765         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
766         (Expand_N_Function_Call): Remove special provision for stack checking.
767
768         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
769         Include _Disp_Requeue in the list of predefined operations.
770         (Find_Interface_ADT): Modified to fulfill the new specification.
771         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
772
773         * par-ch4.adb, nlists.ads, nlists.adb: 
774         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
775
776         * sinfo.ads, sinfo.adb: (Nkind_In): New functions
777         Fix location of flag for unrecognized pragma message
778
779         * sem_ch7.adb: Use Nkind_In
780
781 2007-12-13  Vincent Celier  <celier@adacore.com>
782
783         * opt.ads: 
784         Indicate what flags are used by the Project Manager, gprbuild and
785         gprclean.
786         (Opt.Follow_Links_For_Dirs): New flag
787         (Warn_On_Assertion_Failure): New flag
788         (Wide_Character_Encoding_Method_Specified): New flag
789         (Suppress_All_Inlining): New switch set by -fno-inline
790         (Real_VMS_Target): New flag
791         New pragma Fast_Math
792
793 2007-12-13  Robert Dewar  <dewar@adacore.com>
794
795         * back_end.adb: Recognize -fno-inline
796
797 2007-12-13  Robert Dewar  <dewar@adacore.com>
798
799         * checks.adb: Fix optimization problem with short-circuited form
800
801 2007-12-13  Bob Duff  <duff@adacore.com>
802
803         * clean.adb (Usage): Add line for -aP
804         (Check_Version_And_Help): Change Check_Version_And_Help to be generic,
805         with a parameter "procedure Usage", instead of passing a pointer to a
806         procedure. This is to eliminate trampolines (since the Usage procedure
807         is often nested in a main procedure, and it would be inconvenient to
808         unnest it).
809
810         * g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch
811         to be generic, with a parameter "procedure Callback (...)", instead of
812         passing a pointer to a procedure. This is to eliminate trampolines
813         (since the Callback procedure is usually nested).
814
815         * gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb, 
816         gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb
817         (Check_Version_And_Help): Change Check_Version_And_Help to be generic.
818
819         * g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets):
820         Use the generic Heap_Sort_G instead of Heap_Sort_A.
821
822 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
823
824         * einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry.
825         (Implemented_By_Entry, Set_Implemented_By_Entry): New routines.
826         (Write_Entry_Flags): Add an entry for Implemented_By_Entry.
827         (Renamed_In_Spec): New flag
828         (Has_Pragma_Inline_Always): New flag
829         Add missing doc for pragma Obsolescent_Warning
830         Add missing doc for 17 additional unused flags (230-247)
831         (Is_Derived_Type): Remove condition "not Is_Generic_Type".
832         Alphabetize with clauses.
833         Separate Is_Thunk and Has_Thunks flags
834         (Write_Entity_Flags): Add forgotten entry for Has_Thunks
835         (Related_Interface): Renamed to Related_Type.
836         (Has_Thunks/Set_Has_Thunks): Subprograms of new attribute.
837         (Set_Is_Flag): Restrict the assertion.
838
839 2007-12-13  Vincent Celier  <celier@adacore.com>
840
841         * errout.adb (Output_Source_Line): Do not keep a trailing space after
842         the source line number if the source line is empty.
843
844 2007-12-13  Geert Bosch  <bosch@adacore.com>
845
846         * eval_fat.adb (Decompose_Int): Handle argument of zero.
847         (Compose): Remove special casing of zero.
848         (Exponent): Likewise.
849         (Fraction): Likewise.
850         (Machine): Likewise.
851         (Decompose): Update comment.
852
853 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
854
855         * exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a
856         limited ancestor part, initialize controllers of enclosing record
857         before expanding ancestor aggregate.
858         (Gen_Assign): If a component of the aggregate is box-initialized, add
859         code to call Initialize if the component is controlled, and explicit
860         assignment of null if the component is an access type.
861
862         Handle properly aggregates for limited types that appear in object
863         declarations when the aggregate contains controlled values such as
864         protected types.
865         When expanding limited aggregates into individual components, do not
866         call Adjust on controlled components that are limited.
867
868 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
869
870         * expander.adb: Take into account N_Subprogram_Renaming_Declaration
871
872 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
873
874         * exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of
875         predefined primitive _Disp_Requeue.
876         (Make_Predefined_Primitive_Specs): Create the spec for predefined
877         primitive _Disp_Requeue.
878         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the
879         type of formal Renamed_Eq to Entity_Id (instead of Node_Id).
880         (Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is
881         an interface type. In case of limited interfaces we now declare all the
882         predefined primitives associated with synchronized interfaces as
883         abstract.
884         (Predef_Spec_Or_Body): For interface types generate abstract subprogram
885         declarations.
886         (Predefined_Primitive_Bodies): Add body of "=" if the parent of the
887         tagged type is an interface type and there is no user-defined equality
888         function.
889         Add also bodies of predefined primitives associated with synchronized
890         interfaces.
891         (Freeze_Record_Type): Do not build bodies of predefined primitives of
892         interface types because they are now defined abstract.
893         Add missing documentation.
894         (Expand_Record_Controller): Update occurrence of Related_Interface
895         to Related_Type.
896         (Build_Offset_To_Top_Functions): Do nothing in case of VM.
897         (Expand_N_Object_Declaration): Take into account VM_Target when handling
898         class wide interface object declaration.
899         (Expand_Previous_Access_Type): Do not create a duplicate master entity
900         if the access type already has one.
901         (Expand_N_Object_Declaration): Defend against attempt to validity check
902         generic types. Noticed for -gnatVcf specified with previous errors.
903
904 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
905
906         * exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
907         Expand_Allocator_Expression): Take into account VM_Target
908
909         * exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use
910         secondary stack when VM_Target /= No_VM
911
912 2007-12-13  Javier Miranda  <miranda@adacore.com>
913             Ed Schonberg  <schonberg@adacore.com>
914
915         * exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute
916         Is_Complation_Unit by Is_Library_Level_Entity in the code
917         that decides if the static dispatch tables need to be built.
918         (Wrap_Transient_Declaration): Do not generate a finalization call if
919         this is a renaming declaration and the renamed object is a component
920         of a controlled type.
921
922 2007-12-13  Gary Dismukes  <dismukes@adacore.com>
923
924         * exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration):
925         In the case where the renamed subprogram is a dereference, call
926         Force_Evaluation on the prefix.
927
928 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
929             Ed Schonberg  <schonberg@adacore.com>
930
931         * exp_ch9.adb (Expand_N_Asynchronous_Select,
932         Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and
933         comment reformatting.
934         (Set_Privals): Inherit aliased flag from formal. From code reading.
935         (Build_Simple_Entry_Call): Out parameters of an access type are passed
936         by copy and initialized from the actual. This includes entry parameters.
937         (Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95
938         and Ada 2005 models of requeue.
939         (Null_Statements): Still connsider do-end block null if it contains
940         Unreferenced and Warnings pragmas.
941         (Expand_N_Accept_Statement): Do not optimize away null do end if
942         dispatching policy is other than defaulted.
943         (Expand_N_Timed_Entry_Call): When the triggering statement is a
944         dispatching call, manually analyze the delay statement.
945         (Find_Parameter_Type): Move subprogram to Sem_Util.
946
947 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
948             Javier Miranda  <miranda@adacore.com>
949
950         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive
951         _Disp_Requeue occupies dispatch table slot number 15. Move
952         _Disp_Timed_Select to slot 16.
953         (Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which
954         generate the spec and body of _Disp_Reqeueue.
955         (Make_DT): Build and initialize the second dispatch table.
956         Handle initialization of RC_Offset when the parent
957         is a private type with variable size components.
958         (Make_Secondary_DT): Complete documentation. Add support to
959         initialize the second dispatch table.
960         (Make_Tags): Generate the tag of the second dispatch table.
961         (Register_Primitive): Add support to register primitives in the
962         second dispatch table.
963
964 2007-12-13  Pascal Obry  <obry@adacore.com>
965
966         * expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on
967         Windows. This signal is used by gnatmake to kill child processes for
968         example.
969
970 2007-12-13  Javier Miranda  <miranda@adacore.com>
971
972         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
973         support for generic dispatching constructor calls in which we need to
974         locate the tag of a secondary dispatch table associated with an
975         interface type to properly dispatch the call.
976         (Expand_N_Attribute_Reference [case Address],
977         Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix
978         handling of VM targets.
979
980 2007-12-13  Robert Dewar  <dewar@adacore.com>
981             Ed Schonberg  <schonberg@adacore.com>
982
983         * exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for
984         assert fail
985
986         * ug_words: Add entries for -gnatw.a -gnatw.A
987
988         * sem_res.adb (Set_String_Literal_Subtype): If the context of the
989         literal is a subtype with non-static constraints, use the base type of
990         the context as the base of the string subtype, to prevent type
991         mismatches in gigi.
992         (Resolve_Actuals): If the actual is an entity name, generate a
993         reference before the actual is resolved and expanded, to prevent
994         spurious warnings on formals of enclosing protected operations.
995         (Analyze_Overloaded_Selected_Component): If type of prefix if
996         class-wide, use visible components of base type.
997         (Resolve_Selected_Component): Ditto.
998         (Resolve_Short_Circuit): Detect case of pragma Assert argument
999         evaluating to False, and issue warning message.
1000
1001         * usage.adb: Add lines for -gnatw.a and -gnatw.A
1002
1003 2007-12-13  Emmanuel Briot  <briot@adacore.com>
1004
1005         * g-calend.ads (No_Time): New constant, to represent an uninitialized
1006         time value
1007
1008         * g-catiio.ads, g-catiio.adb (Value): Added support for more date
1009         formats.
1010         (Month_Name_To_Number): New subprogram
1011
1012         * g-dirope.adb (Get_Current_Dir): On windows, normalize the drive
1013         letter to upper-case.
1014
1015 2007-12-13  Robert Dewar  <dewar@adacore.com>
1016             Ed Schonberg  <schonberg@adacore.com>
1017
1018         * gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target
1019
1020         * layout.adb (Resolve_Attribute, case 'Access): If designated type of
1021         context is a limited view, use non-limited view when available. If the
1022         non-limited view is an unconstrained array, this enforces consistency
1023         requirements in 3.10.2 (27).
1024         (Layout_Type): For an access type whose designated type is a limited
1025         view, examine its declaration to determine if it is an unconstrained
1026         array, and size the access type accordingly.
1027         (Layout_Type): Do not force 32-bits for convention c subprogram
1028         pointers in -gnatdm mode, only if real vms target.
1029
1030         * sem_attr.adb (Analyze_Access_Attribute): Use new flag
1031         Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
1032         (Analyze_Access_Attribute,Attribute_Address): Remove checks for
1033         violations of the No_Implicit_Dynamic_Code restriction.
1034         (Resolve_Attribute, case 'Access): If designated type of context is a
1035         limited view, use non-limited view when available. If the non-limited
1036         view is an unconstrained array, this enforces consistency requirements
1037         in 3.10.2 (27).
1038         (Layout_Type): For an access type whose designated type is a limited
1039         view, examine its declaration to determine if it is an unconstrained
1040         array, and size the access type accordingly.
1041
1042 2007-12-13  Vincent Celier  <celier@adacore.com>
1043
1044         * gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when
1045         object directory of main project does not exist.
1046         On VMS, correctly set then environment variable for the source
1047         directories.
1048
1049 2007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
1050
1051         * g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when
1052         set to True this procedure will create the value of type REG_EXPAND_SZ.
1053         It was only possible to create REG_SZ values before.
1054
1055 2007-12-13  Robert Dewar  <dewar@adacore.com>
1056
1057         * g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads,
1058         g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads,
1059         namet-sp.adb, namet-sp.ads: New files.
1060
1061         * g-speche.adb: Use generic routine in g-spchge
1062
1063         * s-wchcnv.ads, s-wchcnv.adb: 
1064         Minor code cleanup (make formal type consistent with spec)
1065
1066         * namet.adb: Update comments.
1067
1068         * par-endh.adb (Evaluate_End_Entry): Use new
1069         Namet.Sp.Is_Bad_Spelling_Of function
1070
1071         * par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function
1072
1073         * sem_aggr.adb (Resolve_Record_Aggregate): If a component of an
1074         ancestor is an access type initialized with a box, set its type
1075         explicitly, for use in subsequent expansion.
1076         (Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of
1077         function
1078
1079 2007-12-13  Robert Dewar  <dewar@adacore.com>
1080
1081         * g-spipat.adb (Break): Fix accessibility error (vsn taking not null
1082         access Vstring)
1083
1084 2007-12-13  Robert Dewar  <dewar@adacore.com>
1085
1086         * inline.adb (Back_End_Cannot_Inline): Use new flag
1087         Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
1088
1089         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag
1090         Has_Pragma_Inline_Always instead.
1091         of obsolete function Is_Always_Inlined
1092         (Build_Body_To_Inline): Same change
1093         (Cannot_Inline): Same change
1094         Do not give warning on exception raise in No_Return function
1095
1096         * sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited
1097         component has two inconsistent component clauses in the same record
1098         representation clause, favor the message that complains about
1099         duplication rather than inconsistency.
1100         Update comments.
1101         (Record_Representation_Clause): Do not warn on missing component
1102         clauses for inherited components of a type extension.
1103         (Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for
1104         an overloadable item if it is a pragma that can apply to multiple
1105         overloadable entities (e.g. Inline) because a pragma cannot be on
1106         more than one chain at a time.
1107         (Validate_Unchecked_Conversion): Add code to warn on unchecked
1108         conversion where one of the operands is Ada.Calendar.Time.
1109         (Analyze_Attribute_Definition_Clause): Fix typo in error message.
1110         For now, ignore Component_Size clause on VM targets, as done for
1111         pragma Pack.
1112
1113 2007-12-13  Emmanuel Briot  <briot@adacore.com>
1114             Vincent Celier  <celier@adacore.com>
1115
1116         * prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a
1117         string
1118         (Must_Check_Configuration, Default_Language_Is_Ada): new flags in
1119         prj.ads
1120         (Hash): Move instantiation of System.HTable.Hash from spec to body
1121         (prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive
1122         systems, since we do not need to recompute the Name_Id for the canonical
1123         file name.
1124         (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
1125         as a parameter. This parameter is in fact always "ada" in all calls, and
1126         we were doing 160560 extra calls to Name_Find to convert it to Name_Ada
1127         while loading a project with 40000 files
1128
1129         * prj-attr.adb: Fix name of attribute Dependency_Driver
1130         Change the kind of indexing for attribute Root
1131
1132         * prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of
1133         variables already declared, in case constructions.
1134
1135         * prj-env.adb (Initialize): Reset Current_Source_Path_File and
1136         Current_Object_Path_File to No_Path.
1137
1138         * prj-ext.adb (Initialize_Project_Path): In multi language mode, use
1139         ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty.
1140
1141         * prj-makr.adb: new parameter Current_Dir
1142
1143         * prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for
1144         Ada sources when language is not Ada.
1145         Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
1146         (Find_Excluded_Sources, Find_Explicit_Sources): new subprograms
1147         (Must_Check_Configuration, Default_Language_Is_Ada): new flags.
1148         (Locate_Directory): Always resolve links when computing Canonical_Path
1149         (Look_For_Sources): Make sure that Name_Buffer contains the file name
1150         in Source_Files before checking for the presence of a directory
1151         separator.
1152         Optimize calls to Name_Find when on case sensitive systems.
1153         (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
1154         as a parameter.
1155         (Prj.Nmsc.Check): new parameter Current_Dir
1156         (Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They
1157         cannot be empty and the spec suffix cannot be the same as the body or
1158         separate suffix.
1159         (Get_Unit): When a file name can be of several unit kinds (spec, body or
1160         subunit), always consider the longest suffix.
1161         (Check_Configuration): Do not issue an error if there is no compiler
1162         for a language. Just issue a warning and ignore the sources for the
1163         language.
1164         (Check_Library_Attributes): Only check Library_Dir if Library_Name is
1165         not empty.
1166         (Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity
1167         (Unit_Exceptions): New hash table
1168         (Check_Naming_Schemes): Check if a file that could be a unit because of
1169         the naming scheme is not in fact a source because there is an exception
1170         for the unit.
1171         (Look_For_Sources): Put the unit exceptions in hash table
1172         Unit_Exceptions
1173         (Get_Unit_Exceptions): Give initial value No_Source to local variable
1174         Other_Part to avoid exception when code is compiled with validity
1175         checking.
1176         (Get_Sources_From_File): Check that there is no directory information
1177         in the file names.
1178         (Look_For_Sources): Check that there is no directory information in the
1179         list of file names in Source_Files.
1180         (Look_For_Sources): In multi-language mode, do not allow exception file
1181         names that are excluded.
1182         (Excluded_Sources_Htable): New hash table
1183         (Search_Directories.Check_File): New procedure to simplify
1184         Search_Directories.
1185         (Search_Directories): Do not consider excluded sources
1186         (Look_For_Sources): Populate Excluded_Sources_Htable before calling
1187         Search_Directories.
1188         (Get_Exceptions): Set component Lang_Kind of Source_Data
1189         (Get_Unit_Exceptions): Ditto
1190         (Search_Directories): Ditto
1191
1192         * prj-pars.adb: new parameter Current_Dir
1193
1194         * prj-part.ads, prj-part.adb: 
1195         Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
1196         (Opt.Follow_Links_For_Dirs): New flag
1197         (Project_Path_Name_Of): Cache information returned by this routine as
1198         Locate_Regular_File is a costly routine. The code to output a log
1199         information and the effective call to Locate_Regular_File is now
1200         factorized into a routine (code clean-up).
1201         (Parse, Parse_Single_Project): new parameter Current_Dir
1202         When main project file cannot be found, indicate in the error
1203         message the project path that was used to do the search.
1204
1205         * prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag
1206         (Prj.Proc.Process*): new parameter Current_Dir
1207
1208         * switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files
1209
1210 2007-12-13  Bob Duff  <duff@adacore.com>
1211
1212         * restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New
1213         procedure to be called from the back end to check the
1214         No_Implicit_Dynamic_Code restriction.
1215
1216 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
1217
1218         * rtsfind.adb (Check_CRT): Take into account RTE_Available_Call
1219         Fixes another case where RTE_Available_Call was ignored instead of being
1220         taken into account.
1221         (Load_Fail): Ditto.
1222
1223         * rtsfind.ads: Add new entries.
1224
1225 2007-12-13  Robert Dewar  <dewar@adacore.com>
1226
1227         * g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads,
1228         g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files.
1229
1230         * scn.adb: Implement BOM recognition
1231
1232 2007-12-13  Thomas Quinot  <quinot@adacore.com>
1233             Ed Schonberg  <schonberg@adacore.com>
1234
1235         * sem_ch10.adb (Check_Private_Child_Unit): A non-private library level
1236         subprogram body that acts as its own spec may not have a non-private
1237         WITH clause on a private sibling.
1238         (Build_Unit_Name): If the parent unit in the name in a with_clause on a
1239         child unit is a renaming, create an implicit with_clause on that
1240         parent, and not on the unit it renames, to prevent visibility errors
1241         in the current unit.
1242
1243 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
1244
1245         * sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram
1246         renaming declaration, use the Slocs of the formal parameters from the
1247         declaration of the formal subprogram when creating the formal parameter
1248         entities in the renaming declaration.
1249         (Analyze_Formal_Type_Declaration): Change the placement of the error
1250         message concerning illegal known discriminants. It is now posted on the
1251         type rather than on the first discriminant. This change ensures early
1252         error report.
1253         (Freeze_Subprogram_Body): If the generic subprogram is nested within
1254         the package body that contains the instance, do not generate an
1255         out-of-place freeze node for the enclosing package.
1256         (Collect_Previous_Instantiations): Ignore internal instantiations
1257         generated for formal packages.
1258         (Validate_Derived_Type_Instance): Add a check that when a formal
1259         derived type is Known_To_Have_Preelab_Init then the actual type must
1260         have preelaborable initialization, and issue an error when this
1261         condition is violated.
1262
1263 2007-12-13  Robert Dewar  <dewar@adacore.com>
1264
1265         * s-imenne.adb, s-imenne.ads: New files.
1266
1267         * s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb, 
1268         s-imgdec.ads, s-imgenu.ads, s-imgint.adb, s-imgint.ads, s-imglld.adb, 
1269         s-imglld.ads, s-imglli.adb, s-imglli.ads, s-imgllu.adb, s-imgllu.ads, 
1270         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwch.adb, 
1271         s-imgwch.ads: New calling sequence for Image routines to avoid sec
1272         stack usage.
1273
1274 2007-12-13  Javier Miranda  <miranda@adacore.com>
1275             Ed Schonberg  <schonberg@adacore.com>
1276
1277         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Avoid
1278         generation of spurious error if parent is an interface type; caused
1279         because predefined primitive bodies will be generated later by
1280         Freeze_Record_Type.
1281         (Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init
1282         flag.
1283         (Derive_Subprograms): Handle derivations of predefined primitives
1284         after all the user-defined primitives to ensure that they are
1285         found in proper order in instantiations.
1286         (Add_Interface_Tag_Components, Inherit_Components): Update occurrences
1287         of Related_Interface to Related_Type.
1288         (Record_Type_Declaration): Minor reordering of calls to decorate the
1289         Tag component because the entity must have set its Ekind attribute
1290         before setting its Is_Tag attribute.
1291         (Analyze_Subtype_Declaration): In the case of subtypes with
1292         Private_Kind, inherit Known_To_Have_Preelab_Init from the parent.
1293
1294 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
1295             Ed Schonberg  <schonberg@adacore.com>
1296
1297         * sem_ch4.adb (Analyze_Selected_Component): Include the requeue
1298         statement to the list of contexts where a selected component with a
1299         concurrent tagged type prefix should yield a primitive operation.
1300         (Find_Primitive_Operation): Handle case of class-wide types.
1301         (Analyze_Overloaded_Selected_Component): If type of prefix is
1302         class-wide, use visible components of base type.
1303         (Resolve_Selected_Component): Ditto.
1304         (Try_Primitive_Operation, Collect_Generic_Type_Ops): If the type is a
1305         formal of a generic subprogram. find candidate interpretations by
1306         scanning the list of generic formal declarations.:
1307         (Process_Implicit_Dereference_Prefix): If the prefix has an incomplete
1308         type from a limited_with_clause, and the full view is available, use it
1309         for subsequent semantic checks.
1310         (Check_Misspelled_Selector): Use Namet.Sp.Is_Bad_Spelling_Of function
1311         (Find_Primitive_Operation): New function.
1312         (Analyze_Overloaded_Selected_Component): insert explicit dereference
1313         only once if several interpretations of the prefix yield an access type.
1314         (Try_Object_Operation): Code and comment cleanup.
1315         (Analyze_Selected_Component): Reorder local variables. Minot comment and
1316         code reformatting. When the type of the prefix is tagged concurrent, a
1317         correct interpretation might be available in the primitive and
1318         class-wide operations of the type.
1319
1320 2007-12-13  Robert Dewar  <dewar@adacore.com>
1321             Ed Schonberg  <schonberg@adacore.com>
1322
1323         * sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for
1324         renaming entry as subprogram using rename-as-body if subprogram spec
1325         frozen.
1326         (Use_One_Type): The clause is legal on an access type whose designated
1327         type has a limited view.
1328         (Find_Direct_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
1329         (Find_Expanded_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
1330         (Analyze_Renamed_Primitive_Operation): new procedure to determine the
1331         operation denoted by a selected component.
1332         (Analyze_Renamed_Entry): Resolve the prefix of the entry name, because
1333         it can be an expression, possibly overloaded, that returns a task or
1334         an access to one.
1335
1336 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
1337             Gary Dismukes  <dismukes@adacore.com>
1338
1339         * sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a
1340         requeue statement is dispatching. Do not emit an error when the name is
1341         not an entry and the context is a dispatching select. Add code to
1342         perform subtype conformance between the formals of the current entry
1343         and those of the target interface primitive.
1344         (Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_
1345         Timed_Entry_Call): Analyze the triggering statement as the first step of
1346         the processing. If this is a dispatching select, postpone the analysis
1347         of all select statements until the Expander transforms the select. This
1348         approach avoids generating duplicate identifiers after the Expander has
1349         replicated some of the select statements. In case the Expander is
1350         disabled, perform regular analysis.
1351         (Check_Triggering_Statement): New routine.
1352         (Analyze_Requeue): Exclude any interpretations that are not entries when
1353         checking overloaded names in a requeue. Also test type conformance for
1354         matching interpretations rather than requiring subtype conformance at
1355         that point to conform with the RM's resolution rule for requeues.
1356
1357 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
1358
1359         * sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an
1360         inherited operation is a defaulted tag-indeterminate call, and there is
1361         a statically tagged actual, use the static tag as a controlling actual
1362         for the defaulted actual.
1363
1364 2007-12-13  Geert Bosch  <bosch@adacore.com>
1365
1366         * sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static
1367         context, so do not call Check_Non_Static_Context.
1368
1369 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
1370
1371         * sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check
1372         whether formal E is an entity which may have parameters.
1373
1374 2007-12-13  Bob Duff  <duff@adacore.com>
1375             Javier Miranda  <miranda@adacore.com>
1376             Robert Dewar  <dewar@adacore.com>
1377
1378         * sem_util.ads, sem_util.adb (Is_Concurrent_Interface): New routine.
1379         (Set_Convention): New procedure to set the Convention flag, and in
1380         addition make sure the Favor_Top_Level flag is kept in sync (all
1381         foreign-language conventions require Favor_Top_Level = True).
1382         (Collect_Abstract_Interfaces): Update occurrences of Related_Interface
1383         to Related_Type.
1384         (Collect_Interfaces_Info): Minor update to handle the two secondary
1385         dispatch tables. Update occurrence of Related_Interface to Related_Type.
1386         (Generate_Parent_Ref): Add parameter to specify entity to check
1387         (Is_Preelaborable_Expression): Allow the name of a discriminant to
1388         initialize a component of a type with preelaborable initialization.
1389         This includes the case of a discriminal used in such a context.
1390         (Is_Dependent_Component_Of_Mutable_Object): Take into account the
1391         latest Ada 2005 rules about renaming and 'Access of
1392         discriminant-dependent components.
1393         (Check_Nested_Access): Add handling when there are no enclosing
1394         subprograms (e.g. case of a package body).
1395         (Find_Parameter_Type): Factor routine from several other compiler files.
1396         Remove routine from Find_Overridden_Synchronized_Primitive.
1397
1398 2007-12-13  Thomas Quinot  <quinot@adacore.com>
1399
1400         * sinput.adb (Get_Source_File_Index): Add assertion to guard against
1401         an invalid access to an uninitialized slot in the
1402         Source_File_Index_Table.
1403
1404 2007-12-13  Thomas Quinot  <quinot@adacore.com>
1405
1406         * sinput-l.adb (Load_File): Disable style checks when preprocessing.
1407
1408 2007-12-13  Bob Duff  <duff@adacore.com>
1409
1410         * s-soflin.ads: Apply new pragma Favor_Top_Level to all
1411         access-to-subprogram types in this package.
1412
1413 2007-12-13  Olivier Hainque  <hainque@adacore.com>
1414
1415         * s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant
1416         with Stack_Grows_Down in System.Parameters. Rename Array_Address into
1417         Stack_Overlay_Address and document that we are using an internal
1418         abstraction.
1419         (Byte_Size, Unsigned_32_Size): Remove, now useless.
1420         (Pattern_Type, Bytes_Per_Pattern): New subtype and constant, to be used
1421         consistently throughout the various implementation pieces.
1422
1423         * s-stausa.adb (Stack_Slots): New type, abstraction for the stack
1424         overlay we are using to fill the stack area with patterns.
1425         (Top_Slot_Index_In, Bottom_Slot_Index_In): Operations on Stack_Slots.
1426         (Push_Index_Step_For, Pop_Index_Step_For): Likewise.
1427         (Fill_Stack, Compute_Result): Use the Stack_Slots abstraction.
1428
1429 2007-12-13  Robert Dewar  <dewar@adacore.com>
1430
1431         * s-stoele.adb ("mod"): mod negative value raises Constraint_Error
1432
1433 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
1434
1435         * s-tassta.adb: 
1436         (Create_Task): Take into account tasks created by foreign threads.
1437         Code clean up: use constants instead of hard coded values.
1438
1439 2007-12-13  Robert Dewar  <dewar@adacore.com>
1440
1441         * styleg.adb (Check_Comment): More liberal rules for comment placement
1442
1443 2007-12-13  Olivier Hainque  <hainque@adacore.com>
1444
1445         * tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use
1446         of Procedure Value instead of Frame Pointer as the invocation
1447         identifier associated with the instruction pointer in each traceback
1448         entry.
1449
1450         * g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For,
1451         TB_Entry_For): Revert back to use of Procedure Value instead of Frame
1452         Pointer as the invocation identifier passed to tbk$symbolize.
1453
1454         * s-traent-vms.ads, s-traent-vms.adb
1455         (Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of
1456         Procedure Value instead of Frame Pointer as the invocation identifier
1457         passed to tbk$symbolize.
1458
1459 2007-12-13  Robert Dewar  <dewar@adacore.com>
1460
1461         * tbuild.ads, tbuild.adb: 
1462         Fix location of flag for unrecognized pragma message
1463
1464 2007-12-13  Robert Dewar  <dewar@adacore.com>
1465
1466         * treepr.ads, treepr.adb: (pl): implement use of positive value
1467         shorthands
1468
1469 2007-12-13  Robert Dewar  <dewar@adacore.com>
1470
1471         * xeinfo.adb: Remove warnings
1472         * xnmake.adb: Remove warnings
1473         * xsinfo.adb: Remove warnings
1474         * xtreeprs.adb: Remove warnings
1475         * xsnames.adb: Remove warnings
1476
1477         * a-ngcoar.adb: Fix typo.
1478         * s-interr.adb: Minor reformatting
1479         * env.c: Minor reformatting.
1480         * g-bytswa.adb: Minor reformatting.
1481         * g-rannum.ads: Minor documentation improvements
1482         * s-tasinf-mingw.adb: Minor header fix
1483         * a-clrefi.adb: Minor reformatting
1484         * g-sttsne.ads: Minor documentation improvement
1485         * g-sttsne-locking.ads: Minor documentation improvement
1486         * g-soliop-solaris.ads: Minor documentation improvement
1487         * g-soliop-mingw.ads: Minor documentation improvement
1488         * g-soliop.ads: Minor documentation improvement
1489         * exp_aggr.ads: Minor reformatting
1490         * debug.adb: Add documentation for the gprbuild debug flags
1491         * exp_ch2.adb: Use Nkind_In to simplify code throughout
1492         * exp_pakd.adb: Minor reformatting
1493
1494         * g-altive.ads, g-alleve.adb: Remove assertions.
1495         Add comment about minor differences between targets regarding
1496         floating-point operations.
1497
1498         * g-thread.adb: Remove pragma unreferenced.
1499         * lib.ads: Minor reformatting
1500         * par-ch9.adb: Minor reformatting of error messages
1501         * sem_case.adb: Minor reformatting
1502         * s-fileio.adb: Minor reformattinng
1503         * s-vmexta.ads: Minor typo
1504         * vxaddr2line.adb: 
1505         Take into account 'Success' value as per new GNAT warning.
1506
1507 2007-12-13  Vincent Celier  <celier@adacore.com>
1508
1509         * a-direct.adb (Create_Path): Always take '/' as a directory separator,
1510         even on Windows
1511
1512 2007-12-13  Robert Dewar  <dewar@adacore.com>
1513             Bob Duff  <duff@adacore.com>
1514
1515         * gnat_ugn.texi: Dcoument new rules for style check comment alignment
1516         Document that suffixes may be terminations of each others
1517         Add doc for -gnatw.a and -gnatw.A
1518         Document gnatbind -Wx switch
1519         Document BOM recognition
1520         Document pragma Implemented_By_Entry.
1521         Document new units.
1522
1523         * gnat_rm.texi: (Favor_Top_Level): Document new pragma.
1524         Add doc for pragma Unreferenced suppressing no entities referenced msg
1525         Add documentation of GNAT.Directory_Operations.Iteration
1526         Add documentation of GNAT.Random_Numbers
1527         Add documentation for pragma Shared.
1528         Correct documentation for Bit_Order
1529         Add documentation for the Pool_Address attribute.
1530         Fix and improve documentation of pragma machine_attribute.
1531         New pragma Fast_Math
1532         Document BOM recognition
1533
1534         * vms_data.ads: Add entries for -gnatw.a -gnatw.A
1535         Add /Wide_Character_Encoding for binder
1536         Add qualifier for the new gnatpp option --no-separate-loop-then
1537
1538 2007-12-13  Matthew Heaney  <heaney@adacore.com>
1539
1540         * a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document
1541         which generic formal operations are called for each operation.
1542
1543 2007-12-13  Olivier Hainque  <hainque@adacore.com>
1544
1545         * tb-gcc.c (uw_data_t, trace_callback): Only define if not GCC-SJLJ eh.
1546         (__gnat_backtrace): Early return 0 if using GCC-SJLJ eh.
1547
1548 2007-12-13  Emmanuel Briot  <briot@adacore.com>
1549
1550         * s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute
1551         Reference_Dir unless we actually need it.
1552
1553 2007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
1554             Tristan Gingold  <gingold@adacore.com>
1555
1556         * g-socthi-vms.ads (Fd_Set_Access): make it 32-bit.
1557
1558         * s-osprim-vms.adb,
1559         a-calend-vms.adb: Remove pragma warning off and add pragma
1560         unreferenced.
1561
1562 2007-12-13  Robert Dewar  <dewar@adacore.com>
1563
1564         * impunit.adb: Add entries for missing units
1565
1566         * Makefile.rtl: Add new run-time units.
1567
1568         * Make-lang.in:  Update dependencies.
1569
1570 2007-12-13  Bob Duff  <duff@adacore.com>
1571
1572         * itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram
1573         types, set Can_Use_Internal_Rep appropriately, based on
1574         Always_Compatible_Rep_On_Target.
1575
1576 2007-12-13  Gary Dismukes  <dismukes@adacore.com>
1577             Arnaud Charlet  <charlet@adacore.com>
1578
1579         * make.adb (Scan_Make_Arg): Add test for -aamp_target switch, passing
1580         it to the front end and setting the aamp_target environment variable
1581         to the switch's argument to ensure that gnaampbind and gnaamplink will
1582         take the specified library into account.
1583         (Make): Only set Check_Object_Consistency to False for JVM, not for CIL
1584         target, since the CIL compiler supports an "object" file (.il files).
1585
1586 2007-12-13  Vincent Celier  <celier@adacore.com>
1587
1588         * symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure
1589         (Process.H): Remove variable. Replace Read_Half (H) with Skip_Half.
1590
1591 2007-12-13  Geert Bosch  <bosch@adacore.com>
1592
1593         * s-parame-vxworks.adb: 
1594         Update comments to reflect usage of this package by Nucleus.
1595
1596 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
1597
1598         * i-vxwork.ads: Kill new warning on Convention C, since changing the
1599         spec would break code.
1600
1601         * i-forbla-unimplemented.ads, vx_stack_info.c: New files.
1602
1603         * system-vxworks-alpha.ads: Removed.
1604
1605 2007-12-10  Eric Botcazou  <ebotcazou@adacore.com>
1606
1607         * ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around.
1608
1609 2007-12-09  Samuel Tardieu  <sam@rfc1149.net>
1610
1611         PR ada/34366
1612         * sem_ch3.adb (Designates_T): New function.
1613         (Mentions_T): Factor reusable part of the logic into Designates_T.
1614         Consider non-access parameters and access and non-access result.
1615         (Check_Anonymous_Access_Components): Set ekind of anonymous access to
1616         E_Subprogram_Type to E_Anonymous_Access_Subprogram_Type.
1617
1618         * einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type.
1619
1620 2007-12-07  Ludovic Brenta  <ludovic@ludovic-brenta.org>
1621
1622         PR ada/34361
1623         * mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect
1624         the new implementation of target-specific calls.
1625
1626 2007-12-07  Olivier Hainque  <hainque@adacore.com>
1627
1628         * decl.c (gnat_to_gnu_entity) <case E_Access_Type>: When computing
1629         the designated full view, only follow a second level Full_View link
1630         for Non_Limited_Views of from_limited_with references.
1631         
1632 2007-12-07  Samuel Tardieu  <sam@rfc1149.net>
1633
1634         PR ada/15805
1635         * sem_ch6.adb (Process_Formals): Prevent an access type formal
1636         to be initialized with an access to constant object.
1637
1638         * sem_ch3.adb (Analyze_Object_Declaration): Signal an error
1639         when an access to constant is used to initialize an access
1640         value.
1641
1642         PR ada/21346
1643         * a-direct.adb (Compose): Containing_Directory can be an empty string.
1644
1645 2007-12-07  Olivier Hainque  <hainque@adacore.com>
1646
1647         PR ada/34173
1648         * decl.c (gnat_to_gnu_entity) <case E_Array_Type>: When setting
1649         the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if
1650         this is from an alignment clause on the GNAT entity.
1651         * utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN
1652         to distinguish the case where we set it from the type's alignment.
1653         When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate
1654         whether this alignment was set from an explicit alignment clause.
1655
1656 2007-12-06  Eric Botcazou  <ebotcazou@adacore.com>
1657
1658         * decl.c (make_packable_type): Revert last change.
1659         (gnat_to_gnu_field): Avoid setting size and position multiple times.
1660         * utils.c (finish_record_type): Retrieve the real name of the type.
1661
1662 2007-12-05  Eric Botcazou  <ebotcazou@adacore.com>
1663
1664         * trans.c (lvalue_required_p): Take base node directly instead
1665         of its parent.  Rename second parameter to 'gnu_type'.
1666         <N_Indexed_Component>: Return 0 if the node isn't the prefix.
1667         <N_Slice>: Likewise.
1668         (Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue.
1669         Adjust calls to lvalue_required_p.
1670
1671 2007-12-05  Samuel Tardieu  <sam@rfc1149.net>
1672
1673         PR ada/21489
1674         * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type
1675         parameters of an entry call.
1676
1677 2007-12-03  Robert Dewar <dewar@adacore.com>
1678             Samuel Tardieu  <sam@rfc1149.net>
1679
1680         PR ada/34287
1681         * sem_util.adb (Safe_To_Capture_Value): Do not capture values
1682         of variables declared in a library-level package.
1683     
1684 2007-12-02  Samuel Tardieu  <sam@rfc1149.net>
1685
1686         * clean.adb (Clean_Library_Directory): Use Empty_String'Access intead
1687         of Empty_String'Unchecked_Access.
1688
1689         * Makefile.in: Add support for sh4-linux.
1690
1691         * system-linux-sh4.ads: New file.
1692
1693 2007-12-01  Kostik Belousov  <kostikbel@ukr.net>
1694
1695         PR ada/33722
1696         * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
1697         and its argument must not be free()ed.
1698
1699 2007-11-29  Eric Botcazou  <ebotcazou@adacore.com>
1700
1701         * decl.c (make_packable_type): Retrieve the real name of the type.
1702         (maybe_pad_type): Simplify similar code.
1703
1704 2007-11-28  Samuel Tardieu  <sam@rfc1149.net>
1705
1706         PR ada/15804
1707         * par-ch3.adb (P_Variant_Part): Signal an error when anything other
1708         than an identifier is used after "case" in a variant_part.
1709
1710         PR ada/17318
1711         * par-ch4.adb (Is_Parameterless_Attribute): New map.
1712         (P_Name, Scan_Apostrophe block): Parse left parenthesis following
1713         attribute name or not depending on the new map.
1714
1715         * sem-attr.adb (Analyze_Attribute): Parameterless attributes
1716         returning a string or a type will not be called with improper
1717         arguments.
1718
1719         * sem-attr.ads (Attribute_Class_Array): Move to snames.ads.
1720
1721         * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads.
1722
1723         PR ada/32792
1724         * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause):
1725         Signal an error when attribute argument is a fixed-point value of
1726         an unknown type.
1727
1728         PR ada/22559
1729         * sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on
1730         a derived ordinary fixed point type.
1731
1732         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute
1733         RM_Size when a Small clause is found.
1734
1735 2007-11-26  Andreas Krebbel  <krebbel1@de.ibm.com>
1736
1737         PR 34081/C++
1738         * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu):
1739         Pass 'false' for the new allocate_struct_function parameter.
1740         * utils.c (build_function_stub): Likewise.
1741
1742 2007-11-25  Richard Guenther  <rguenther@suse.de>
1743
1744         * utils.c (gnat_pushlevel): Use BLOCK_CHAIN.
1745         (gnat_poplevel): Likewise.
1746
1747 2007-11-25  Eric Botcazou  <ebotcazou@adacore.com>
1748
1749         * decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the type has
1750         strict alignment, no alignment clause and a known static size, cap
1751         the type alignment to the greatest power of 2 factor of the size.
1752         (gnat_to_gnu_field): If the field has a component clause, is aliased
1753         or of a type with strict alignment, require that its size be equal to
1754         that of the type.
1755         (validate_size): Use the type size as the minimum size for a type with
1756         strict alignment.
1757
1758 2007-11-23  Samuel Tardieu  <sam@rfc1149.net>
1759
1760         * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb,
1761         s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
1762         s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb:
1763         Use 'Access instead of 'Unchecked_Access in second and third
1764         arguments of pthread_sigmask.
1765
1766 2007-11-23  Eric Botcazou  <ebotcazou@adacore.com>
1767
1768         * decl.c (ceil_alignment): New function.
1769         (gnat_to_gnu_entity): Use it to set the alignment on atomic types.
1770         (make_packable_type): Likewise.
1771
1772 2007-11-22  Olivier Hainque  <hainque@adacore.com>
1773
1774         * trans.c (gnat_to_gnu) <case N_Free_Statement>: Reformat lines
1775         to fit in 80 columns.
1776
1777 2007-11-21  Aurelien Jarno <aurelien@aurel32.net>
1778
1779         * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
1780         * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.
1781
1782 2007-11-19  Eric Botcazou  <ebotcazou@adacore.com>
1783
1784         PR ada/34098
1785         * misc.c (gnat_adjust_rli): Delete.
1786         (gnat_init): Do not initialize the translation code here.
1787         Do not call set_lang_adjust_rli.
1788         * trans.c (init_code_table): Make static.
1789         (gnat_init_stmt_group): Delete.
1790         (gigi): Initialize the translation code entirely here.
1791         Emit debug info for the common types here instead of...
1792         * utils.c (gnat_init_decl_processing): ...here.
1793         * gigi.h (init_code_table): Delete.
1794         (gnat_init_stmt_group): Likewise.
1795
1796 2007-11-16  Olivier Hainque  <hainque@adacore.com>
1797
1798         * utils2.c (build_call_alloc_dealloc) <if gnu_obj>: Move the code
1799         retrieving an allocator return value from a super-aligned address from
1800         here to ...
1801         * trans.c (gnat_to_gnu) <case N_Free_Statement>: ... here, and don't
1802         expect a super-aligned address for a fat or thin pointer.
1803         
1804 2007-11-14  Eric Botcazou  <ebotcazou@adacore.com>
1805
1806         * trans.c (call_to_gnu): Always set the source location on the call
1807         expression.  If the function returns-by-target, also set it on the
1808         address expression.
1809
1810 2007-11-14  Samuel Tardieu  <sam@rfc1149.net>
1811
1812         * adaint.c, init.c, initialize.c, link.c: Remove system-specific
1813         sections of non-supported Interix target.
1814
1815         * s-osinte-interix.ads: Removed.
1816
1817         * i-cstrin.ads (chars_ptr): Make it a C convention type.
1818
1819 2007-11-13  Samuel Tardieu  <sam@rfc1149.net>
1820
1821         * a-tasatt.adb: Add a comment at the beginning of the package
1822         explaining why in general 'Unchecked_Access must be used instead
1823         of 'Access.
1824
1825         * sem_prag.adb (Process_Convention): Move the test for the
1826         entity on which the Convention pragma applies down to also
1827         forbid pragma Convention on enumeration literals reached
1828         through renamings.
1829
1830 2007-11-10  Samuel Tardieu  <sam@rfc1149.net>
1831
1832         * a-tasatt.adb: Revert previous change for this file as it will
1833         generate an error when this package is instantiated from a
1834         local context.
1835
1836 2007-11-07  Samuel Tardieu  <sam@rfc1149.net>
1837
1838         * a-tasatt.adb: Type Wrapper should be declared in comment instead
1839         of already declared type Node_Access.
1840         Use 'Access instead of 'Unchecked_Access when applicable. Local
1841         lifetime is the one of the package.
1842         (Set_Value): W is allocated on the heap.
1843
1844         * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
1845         applicable.
1846         (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
1847         access type.
1848         (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
1849         access type.
1850
1851         * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
1852         applicable.
1853         (elaboration code): Timer_Queue lifetime is the one of the
1854         package.
1855
1856         * tracebak.c (i386 alternative): Remove useless comparaison
1857         which is always false; LOWEST_ADDRESS is 0 and is never greater
1858         than an unsigned integer.
1859
1860         * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
1861         embedded check for "Ada_Version >= Ada_05".
1862
1863 2007-11-07  Olivier Hainque  <hainque@adacore.com>
1864
1865         * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
1866         craft and expand comment.
1867
1868 2007-11-01  Eric Botcazou  <ebotcazou@adacore.com>
1869
1870         * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
1871
1872 2007-10-23  Eric Botcazou  <ebotcazou@adacore.com>
1873
1874         * misc.c (gnat_handle_option): Replace call to abort with
1875         call to gcc_unreachable.
1876         (gnat_init): Likewise.
1877         (gnat_expand_expr): Likewise.
1878         (fp_prec_to_size): Likewise.
1879         (fp_size_to_prec): Likewise.
1880
1881 2007-10-23  Richard Guenther  <rguenther@suse.de>
1882
1883         PR bootstrap/33608
1884         * tracebak.c: #undef abort after including system.h.
1885
1886 2007-10-20  Danny Smith <dannysmith@users.sourceforge.net>
1887
1888         * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
1889         s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
1890         for win32 targets.
1891         (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
1892
1893 2007-10-15  Eric Botcazou  <ebotcazou@adacore.com>
1894
1895         * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
1896         Set the protection status of the guard page based on the value of On.
1897
1898         * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
1899
1900         * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
1901         (Exit_Task): Pass False to Hide_Yellow_Zone.
1902
1903 2007-10-15  Robert Dewar  <dewar@adacore.com>
1904
1905         * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 
1906         s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
1907         a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb, 
1908         checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb, 
1909         freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb, 
1910         gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb, 
1911         mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb, 
1912         prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb, 
1913         sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb, 
1914         s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
1915         uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb, 
1916         a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb, 
1917         a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb, 
1918         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb, 
1919         a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb, 
1920         a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
1921         Minor reformatting.
1922         Add Unreferenced and Warnings (Off) pragmas for cases of
1923         variables modified calls where they are IN OUT or OUT parameters and
1924         the resulting values are not subsequently referenced. In a few cases,
1925         we also remove redundant code found by the new warnings.
1926
1927         * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads, 
1928         sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
1929         sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
1930         sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
1931         warning controlled by -gnatw.o that warns on cases of out parameter
1932         values being ignored.
1933
1934 2007-10-15  Geert Bosch  <bosch@adacore.com>
1935
1936         * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
1937
1938         * expect.c: Initial port to arm-mentor-nucleus.
1939         Use kill for __gnat_kill() on VMS.
1940
1941 2007-10-15  Emmanuel Briot  <briot@adacore.com>
1942
1943         * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
1944         value.
1945         (Xref_Record): Change type for Line, since in the case of a reference to
1946         a predefined entity (as happens for array index types), the line is set
1947         to 0.
1948         Add support for parsing multiple array index types info, or
1949         multiple inherited interfaces info. This information cannot be stored
1950         in Xref_Entity_Record, which only supports a single instance of Tref_*,
1951         and is therefore stored in the list of references instead. It has a
1952         special treatement later on in tools that use this information.
1953
1954 2007-10-15  Tristan Gingold  <gingold@adacore.com>
1955
1956         * debug.adb: Document use of -gnatd.a and -gnatd.I
1957
1958         * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
1959
1960 2007-10-15  Javier Miranda  <miranda@adacore.com>
1961
1962         * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
1963         Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
1964         care of access to class-wide interface types plus removal of bizarre
1965         conversion of tagged object to access type (reported by Gary
1966         Dismukes). After this patch there is no need to perform any
1967         additional management on these nodes in Expand_Interface_Actuals.
1968
1969         * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
1970         that handles use of 'Access and 'Unchecked_Access applied to
1971         actuals covering interface types. Such code is now
1972         centralized in Expand_N_Attribute_Reference.
1973
1974 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
1975
1976         * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
1977         of tagged types whose ultimate ancestor is a CPP type.
1978         (Freeze_Array_Type): For a packed array type, generate an initialization
1979         procedure if the type is public, to handle properly a client that
1980         specifies Normalize_Scalars.
1981
1982 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
1983
1984         * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
1985         inside a generic body, retrieve the full view of the entry family
1986         discrete subtype if available.
1987
1988 2007-10-15  Thomas Quinot  <quinot@adacore.com>
1989
1990         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
1991         attempt to generate stubs for hidden primitive operations.
1992
1993 2007-10-15  Vincent Celier  <celier@adacore.com>
1994
1995         * mlib-tgt-specific.adb (Support_For_Libraries): New function,
1996         returning None, used when there is no platform specific body for
1997         MLib.Tgt.Specific.
1998
1999 2007-10-15  Bob Duff  <duff@adacore.com>
2000
2001         * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
2002         (passing'Unrestricted_Access of nested subprograms to Sort) with use of
2003         the generic Heap_Sort_G, in order to avoid trampolines.
2004
2005 2007-10-15  Vasiliy Fofanov  <fofanov@adacore.com>
2006             Jose Ruiz  <ruiz@adacore.com>
2007
2008         * vx_stack_info.c: New file.
2009
2010         * i-forbla-unimplemented.ads: New file.
2011
2012         * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
2013         for unsupported configurations; use it on VMS targets instead of the
2014         real one.
2015         (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
2016         vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
2017         used by VxWorks targets to have access to task-specific data and be
2018         able to extract the stack boundaries for stack checking.
2019         Use system-vms-ia64.ads on ivms.
2020
2021         * Make-lang.in: Update dependencies.
2022
2023         * sysdep.c (__gnat_get_stack_info): Move to a standalone file
2024         (vx_stack_info.c).
2025
2026 2007-10-15  Vincent Celier  <celier@adacore.com>
2027
2028         * snames.adb, snames.ads: Add new standard name runtime_library_dir
2029
2030         * prj.ads (Language_Config): Add new component Runtime_Library_Dir
2031
2032         * prj-attr.adb: Add project level attribute Runtime_Library_Dir
2033
2034         * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
2035         the source is unknown.
2036
2037         * prj-ext.adb: Spelling error fix
2038
2039         * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
2040         95 reserved word in its name.
2041         (Process_Project_Level_Array_Attributes): Process new attribute
2042         Runtime_Library_Dir.
2043
2044         * prj-part.adb (Parse_Single_Project): Do not check the name of the
2045         config project against the user project names.
2046
2047         * prj-proc.adb (Expression): In multi-language mode, indexes that do
2048         not include a dot are always case insensitive.
2049         (Process_Declarative_Items): Ditto
2050         (Process_Project_Tree_Phase_1): Set Success to False in case an error is
2051         detected.
2052
2053         * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
2054         True, compare both indexes in lower case.
2055
2056 2007-10-15  Robert Dewar  <dewar@adacore.com>
2057
2058         * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
2059
2060 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
2061
2062         * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
2063         association for an access component, add an association with null as
2064         the expression. Remove testing for array subtypes and the setting in
2065         that case of Ctyp to the array component type, which prevented proper
2066         inclusion of an association for null-initialized arrays. Collapse
2067         condition that tests for array subtypes into just a test of
2068         Is_Partially_Initialized_Type (which already covers arrays anyway).
2069
2070 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
2071
2072         * sem_ch12.adb: Minor code reformatting.
2073         (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
2074         find the parent package which may have been hidden by local
2075         declarations.
2076
2077 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
2078
2079         * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
2080         flag of derived concurrent types, taking into account the flag setting
2081         on the parent subtype and any new set of discriminants.
2082
2083 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
2084
2085         * sem_ch4.adb: Minor code and comment reformatting.
2086         (Analyze_Allocator): When the designated type of an unconstrained
2087         allocator is a record with unknown discriminants or an array with
2088         unknown range bounds, emit a detailed error message depending on the
2089         compilation mode and whether the designated type is limited.
2090
2091 2007-10-15  Tristan Gingold  <gingold@adacore.com>
2092
2093         * system-vms-ia64.ads: New file.
2094
2095         * system-vms_64.ads: Minor comment fix.
2096
2097 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
2098
2099         * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
2100         body generated for a function with a controlling result that is a null
2101         extension, discard the generated body in favor of the current explicit
2102         one.
2103
2104 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
2105
2106         * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
2107         examining its original form, to handle properly operator calls that
2108         have been rewritten.
2109
2110 2007-10-15  Olivier Hainque  <hainque@adacore.com>
2111
2112         * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
2113         instead of a procedure value in each traceback entry.
2114
2115         * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
2116         instead of procedure value to TBK$SYMBOLIZE.
2117
2118         * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
2119         field.
2120         (TB_Entry_For): Account for the PV/FP renaming.
2121
2122         * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
2123         add comment.
2124         (Null_TB_Entry): Account for change of component name.
2125         (PV_For): Rename as FP_For.
2126
2127 2007-10-15  Tristan Gingold  <gingold@adacore.com>
2128
2129         * trans.c (gnat_to_gnu): Remove the padding structure more often.
2130         This optimize assignment to over-aligned record.
2131
2132 2007-10-15  Emmanuel Briot  <briot@adacore.com>
2133
2134         * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
2135         interfaces.
2136
2137         * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
2138         type, for dispatching calls.
2139
2140 2007-10-15  Vincent Celier  <celier@adacore.com>
2141             Robert Dewar  <dewar@adacore.com>
2142
2143         * gnat_ugn.texi: Add documentation for switches --version and --help
2144         for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
2145         gnatxref, gnatfind, gnatls, and gnatclean.
2146         Document -gnatw.o.
2147         Mention attribute Excluded_Source_Dirs
2148         Replace obsolescent attribute Locally_Removed_Files with attribute
2149         Excluded_Source_Files.
2150         Improve documentation of -u (gnatbind)
2151         Document how to do reliable stack checking for the environmental task
2152         on iVMS.
2153
2154         * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
2155         Document attribute Excluded_Source_Files and indicate that attribute
2156         Locally_Removed_Files is obsolescent.
2157
2158 2007-10-15  Thomas Quinot  <quinot@adacore.com>
2159
2160         * g-soccon-vms.ads: Fix value of MSG_WAITALL.
2161
2162         * gen-soccon.c: 
2163         Update documentation to note that OpenVMS 8.3 or later must be used
2164         to generate g-soccon-vms.ads.
2165
2166         * atree.adb: Add ??? comment
2167
2168         * exp_util.adb: Minor reformatting.
2169         Add ??? comment in Kill_Dead_Code.
2170
2171 2007-10-15  Robert Dewar  <dewar@adacore.com>
2172
2173         * errout.ads: Comment clarification
2174
2175         * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
2176         (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
2177
2178         * lib.ads: Comment update
2179
2180         * init.c: Minor reformatting.
2181
2182         * sem_attr.adb: Minor formatting
2183
2184         * osint-b.ads: Minor reformatting
2185
2186         * sem_ch9.adb: Implement -gnatd.I switch
2187
2188         * g-comlin.adb: (Start): Fix handling of empty command line.
2189
2190         * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
2191         even when -rules follows the -cargs section.
2192
2193 2007-10-08  Ollie Wild  <aaw@google.com>
2194
2195         * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
2196         gnat_return_tree.
2197         (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
2198         gnat_return_tree.
2199         (gnat_eh_runtime_type): Removed.
2200         (gnat_return_tree): New function.
2201
2202 2007-10-08  Ben Elliston  <bje@au.ibm.com>
2203
2204         PR ada/33454
2205         Revert:
2206         2007-08-31  Ben Elliston  <bje@au.ibm.com>
2207
2208         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
2209         when compiling for powerpc64-*-linux.
2210         * system-linux-ppc64.ads: New file.
2211
2212 2007-09-27  Eric Botcazou  <ebotcazou@adacore.com>
2213
2214         Mapped location support
2215         * back_end.adb (Call_Back_End): Pass information about source
2216         files instead of units to gigi.
2217         * gigi.h (struct File_Info_Type): New.
2218         (gigi): Rename and change type of number_units parameter, change
2219         type of file_info_ptr parameter.
2220         * trans.c (number_files): New global variable.
2221         (gigi): Rename and change type of number_units parameter, change
2222         type of file_info_ptr parameter.
2223         If mapped location support is enabled, create the isomorphic mapping
2224         between source files and line maps.
2225         (Sloc_to_locus): If mapped location support is enabled, translate
2226         source location into mapped location.
2227         (annotate_with_node): Rename into set_expr_location_from_node.
2228         Call set_expr_location instead of annotate_with_locus.
2229         (Pragma_to_gnu): Adjust for above change.
2230         (Loop_Statement_to_gnu): Likewise.
2231         (call_to_gnu): Likewise.
2232         (Handled_Sequence_Of_Statements_to_gnu): Likewise.
2233         (gnat_to_gnu): Likewise.
2234         (add_stmt_with_node): Likewise.
2235         (add_cleanup): Likewise.
2236         * utils.c (gnat_init_decl_processing): Do not set input_line.
2237
2238 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
2239
2240         * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
2241         (Applicable_Use): Emit a warning when a package tries to use itself.
2242         (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
2243         is already in use or the package where it is declared is in use or is
2244         declared in the current package.
2245         (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
2246
2247         * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
2248         s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
2249         s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
2250
2251 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
2252
2253         * a-calend-vms.adb, a-calend.adb: 
2254         Add a section on leap seconds control along with two entities used to
2255         enable and disable leap seconds support. The array Leap_Second_Times is
2256         now constant and contains hard time values pre-generated. Remove
2257         all elaboration code used to populate the table of leap seconds.
2258
2259         * bindgen.adb: 
2260         Add entity Leap_Seconds_Support to the list of global run-time variables
2261         along with a comment on its usage and values.
2262         (Gen_Adainit_Ada): Add code to generate the declaration and import of
2263         Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
2264         or one (enabled) depending on the presence of binder switch "-y".
2265         (Gen_Adainit_C): Add code to generate the declaration of external int
2266         __gl_leap_seconds_support. Set is value to zero (disabled) or one
2267         (enabled) depending on the presence of binder switch "-y".
2268
2269         * init.c: Add __gl_leap_seconds_support to the list of global values
2270         computed by the binder.
2271
2272 2007-09-26  Jerome Guitton  <guitton@adacore.com>
2273
2274         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
2275         s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
2276          s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
2277         s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
2278
2279         * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
2280
2281         * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
2282         function which can be called by the debugger to interrupt the tasks of
2283         an Ada application asynchronously, as needed on VxWorks.
2284         (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
2285
2286         * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
2287         renamed from Stop_All_Tasks. Update comments.
2288         (Stop_All_tasks): New function declaration.
2289
2290 2007-09-26  Olivier Hainque  <hainque@adacore.com>
2291
2292         * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
2293         #include <utime.h> and #define GCC_RESOURCE_H before
2294         #include <sys/wait.h>.
2295         Add more protections in __gnat_translate_vms.
2296
2297         * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
2298         #include <sys/wait.h>.
2299
2300 2007-09-26  Thomas Quinot  <quinot@adacore.com>
2301             Sergey Rybin  <rybin@adacore.com>
2302
2303         * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
2304
2305         * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
2306         where it belongs.
2307
2308         * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
2309
2310         * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
2311         where it belongs.
2312
2313         * sem_dist.ads: Minor comment fix
2314
2315         * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
2316
2317 2007-09-26  Javier Miranda  <miranda@adacore.com>
2318             Eric Botcazou  <ebotcazou@adacore.com>
2319
2320         * a-tags.adb: 
2321         (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
2322          indirection added to the HT_Link component of the TSD. This is required
2323          to statically allocate the TSD.
2324
2325         * a-tags.ads: 
2326         Minor reordering of the declarations in the private part. Required to
2327         add a level of indirection to the contents of the TSD component HT_Link.
2328         This is required to statically allocate the TSD.
2329
2330         * decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
2331         Is_Statically_Allocated set from constant objects.
2332         Do not make exported constants created by the compiler volatile.
2333         (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
2334         as read-only.
2335
2336         * trans.c (Identifier_to_gnu): For constants, unshare initializers
2337         before returning them.
2338
2339         * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
2340         public part of the package.
2341         (Make_DT): Move HT_Link component out of the TSD record. For this
2342         purpose Make_DT now declares a separate object that stores the
2343         HT_Link value, and initializes the TSD component with the address
2344         of this new object. The addition of this level of indirection is
2345         required to statically allocate the TSD because the TSD cannot
2346         have variable components.
2347         (Expand_Interface_Conversion): Improve the expanded code.
2348         (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
2349
2350         * sem_disp.adb (Check_Dispatching_Operation): In case of a body
2351         declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
2352         if we are building static dispatch tables then we must not generate
2353         extra code to register the primitive because the dispatch table will
2354         be built at the end of the library package; otherwise we notify that
2355         we cannot build the static dispatch table.
2356
2357 2007-09-26  Robert Dewar  <dewar@adacore.com>
2358
2359         * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
2360         overlays.
2361
2362         * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
2363         (Analyze_Record_Representation_Clause): Suppress junk warning for
2364         missing component clause.
2365         (Analyze_Attribute_Definition_Clause, case Address): Apply the special
2366         tests for controlled type overlay to composites with controlled
2367         components.
2368         (Analyze_Record_Representation_Clause): Add reference for component name
2369
2370 2007-09-26  Javier Miranda  <miranda@adacore.com>
2371             Gary Dismukes  <dismukes@adacore.com>
2372
2373         * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
2374         for thunks associated with interface types.
2375
2376         * einfo.ads: Improve documentatation of Is_Internal
2377         (Is_Thunk): New attribute applicable to subprograms. True for thunks
2378         associated with interface types.
2379         Extensive comment fixes regarding flags that appear in all entities. The
2380         documentation is now consistent for all such flags (there were a number
2381         of errors in the documentation in this regard).
2382
2383         * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
2384
2385         * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
2386         of these procedures are passed a function call that already has
2387         build-in-place actuals (testing new flag
2388         Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
2389         the case where processing continues.
2390         (Expand_Call): If the call is generated from a thunk body then we
2391         propagate the extra actuals associated with the accessibility
2392         level of the access type actuals.
2393
2394         * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
2395         of each extra formal of a protected operation to reference the
2396         corresponding extra formal of the subprogram denoted by the
2397         operation's Protected_Body_Subprogram.
2398         
2399         * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
2400         N_Function_Call nodes.
2401
2402 2007-09-26  Robert Dewar  <dewar@adacore.com>
2403
2404         * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
2405
2406         * debug.adb: Add d.s flag.
2407
2408 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
2409
2410         * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
2411         debug variable so that it won't be initialized when pragma
2412         Initialize_Scalars is in effect.
2413
2414 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
2415
2416         * freeze.adb (Freeze_Entity): Remove check for preelaborable
2417         initialization of a full view. This is moved to
2418         Analyze_Package_Specification.
2419
2420         * sem_ch7.adb (Analyze_Package_Specification): Add check for
2421         preelaborable initialization of a full view in entity loop.
2422         (Uninstall_Declarations): If entity is a use-visible compilation unit,
2423         its child units are use-visible only if they are visible child units.
2424
2425         * sem_util.adb (Is_Preelaborable_Expression): New function to determine
2426         whether an expression can be used within a type declaration that
2427         requires preelaborable init.
2428         (Check_Components): Replace inline code that does partial checking for
2429         preelaborable default expressions with call to
2430         Is_Preelaborable_Expression.
2431         (Has_Preelaborable_Initialization): In the case of a generic actual
2432         subtype, (that is, Is_Generic_Actual is True), return the result of
2433         applying Has_Preelaborable_Initialization to the generic actual's base
2434         type.
2435
2436 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
2437
2438         * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
2439         call to Jan_1_Day _Of_Week to optimize its performance.
2440         (Is_Leap): Move the routine to the scope of Week_In_Year.
2441         (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
2442         weekday on which January 1 falls of Year - 1 and Year + 1. This function
2443         avoids calling Time_Of and Split, thus making it more efficent.
2444         (Week_In_Year): Reimplemented in oder to follow ISO 8601.
2445
2446         * g-calend.ads (Week_In_Year): Change comment to reflect new
2447         implementation.
2448
2449 2007-09-26  Emmanuel Briot  <briot@adacore.com>
2450
2451         * g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
2452         Command_Line): New types
2453         (Define_Alias, Define_Prefix, Free): New subprograms. These provide
2454         support for defining how switches can be grouped on a command line (as
2455         is the case for -gnatw... for GNAT), and how simple switches can be
2456         used as aliases for more complex switches (-gnatwa is same as
2457         -gnatwbcef...)
2458         (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
2459         (Start, Current_*): New subprograms
2460         Added support for parsing an array of strings in addition to the real
2461         command line.
2462         (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
2463          be moved from the body to the private part of the spec.
2464         (*): All subprograms now have an extra parameter with default value to
2465         specify which parser should be used. For backward compatibility, it
2466         defaults to parsing the command line of the application. They were also
2467         modified to properly handle cases where each of the argument does not
2468         start at index 1 (which is always true for Ada.Command_Line, but not
2469         when processing any Argument_List).
2470         (Free): New subprogram
2471         (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
2472         Argument): New subprograms
2473         (Switch_Parameter_Type): New enum, which clarifies the code. The extra
2474         special characters like ':', '=',... are now handled in a single place,
2475         which makes the code more extensible eventually.
2476         (Getopt, Full_Switch): When the switch was returned as part of the
2477         special character '*', make sure it is prepended by the switch character
2478         ('-' in general), so that the application knows whether "foo" or "-foo"
2479         was specified on the command line.
2480
2481 2007-09-26  Florian Villoing  <villoing@adacore.com>
2482
2483         * g-dirope.adb (Remove_Dir): In case we are removing directories
2484         recursively, make sure that if an exception is raised during the
2485         processing, the current working directory is reset to its initial
2486         value before propagating the exception.
2487
2488 2007-09-26  Vincent Celier  <celier@adacore.com>
2489
2490         * gnatbind.adb: If there are several ALI files specified and there is
2491         a main program to bind, the first ALI is expected to contain the main
2492         subprogram and the names of the binder generated files will be derived
2493         from the first ALI file name.
2494         (Gnatbind): Fix insertion character in invocation of Error_Msg
2495
2496 2007-09-26  Vincent Celier  <celier@adacore.com>
2497
2498         * gnatcmd.adb (Check_Files): Do not include sources that have been
2499         removed by attributes Exclude_Source_Files or Locally_Removed_Files.
2500
2501 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
2502
2503         * lib-xref.ads, lib-xref.adb: The entry for array types now carries
2504         information about each of its index types, following the type
2505         reference for its component type.
2506
2507 2007-09-26  Vincent Celier  <celier@adacore.com>
2508
2509         * make.adb: (Kill): New procedure (__gnat_kill imported)
2510         (Running_Compile, Outstanding_Compiles): Global variables that
2511         were previously local to procedure Compile_Sources.
2512         (Sigint_Intercepted): Send signal SIGINT to all outstanding
2513         compilation processes.
2514
2515         (Gnatmake): If project files are used, create the mapping of all the
2516         sources, so that the correct paths will be found.
2517
2518         * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
2519
2520 2007-09-26  Vincent Celier  <celier@adacore.com>
2521
2522         * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
2523
2524         * prj.ads, prj.adb (Default_Language): Remove function, no longer used
2525         Replace components Compiler_Min_Options and Binder_Min_Options with
2526         Compiler_Required_Switches and Binder_Required_Switches in record
2527         Language_Config.
2528         Remove components Default_Language and Config in Project_Tree_Data,
2529         no longer used.
2530
2531         * prj-attr.adb: New attributes Required_Switches (<language>) in
2532         packages Compiler and Binder.
2533
2534         * prj-nmsc.adb: Major rewrite of the processing of configuration
2535         attributes for gprbuild. No impact on GNAT tools.
2536
2537         * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
2538         process configuration attributes: this is done in Prj.Nmsc.Check.
2539         (Recursive_Process): Make a full copy of packages inherited from project
2540         being extended, instead of a shallow copy.
2541         (Process_Project_Tree_Phase_1): New procedure
2542         (Process_Project_Tree_Phase_1): New procedure
2543         (Process): Implementation now uses the two new procedures
2544
2545         * prj-util.adb (Executable_Of): Get the suffix and the default suffix
2546         from the project config, not the tree config that no longer exists.
2547
2548 2007-09-26  Vincent Celier  <celier@adacore.com>
2549
2550         * Make-lang.in: Update dependencies..
2551
2552 2007-09-26  Vincent Celier  <celier@adacore.com>
2553
2554         * osint.adb, osint.ads: Minor reformatting
2555
2556         * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
2557
2558 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
2559
2560         * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
2561         message to cite use of <> in aggregate component associations rather
2562         than wrongly indicating use of limited aggregates.
2563
2564 2007-09-26  Robert Dewar  <dewar@adacore.com>
2565
2566         * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
2567         Address_Taken.
2568
2569 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
2570
2571         * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
2572         ancestor of the derived type, the operations are inherited from the
2573         primary dispatch table of the parent.
2574         (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
2575         when the context is an explicit type conversion.
2576
2577 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
2578
2579         * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
2580         rule for qualified expressions properly, to detect improper conversions
2581         and resolve some cases of overloading.
2582
2583 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
2584
2585         * sem_res.adb (Resolve_Call): If the call is dispatching, generate the
2586         proper kind of reference to the primitive operation, for better source
2587         navigation.
2588         (Valid_Conversion): A tagged conversion is legal if both operands are
2589         tagged.
2590
2591 2007-09-26  Robert Dewar  <dewar@adacore.com>
2592
2593         * sem_warn.adb (Check_References): Catch more cases of unreferenced
2594         packages.
2595
2596 2007-09-26  Vincent Celier  <celier@adacore.com>
2597
2598         * snames.adb, snames.ads: Change Include_Option to Include_Switches
2599
2600 2007-09-26  Robert Dewar  <dewar@adacore.com>
2601
2602         * s-wchstw.adb: provide messages for run time unit exceptions
2603
2604         * a-witeio.adb: Minor reformatting
2605
2606         * exp_ch13.adb: Minor reformatting
2607
2608 2007-09-26  Sergey Rybin  <rybin@adacore.com>
2609
2610         * vms_data.ads: Revise gnatmetric qualifiers.
2611         Add qualified for the new gnatbind option '-y'
2612
2613         * gnat_ugn.texi: Revise the gnatmetric section.
2614         Add entry for new gnatbind option '-y'.
2615
2616         * gnat_rm.texi: Minor spelling correction.
2617         Document restriction on overlaying controlled types
2618
2619 2007-09-26  Vincent Celier  <celier@adacore.com>
2620
2621         * makegpr.adb (Link_Executables): Do not fail when the root project has
2622         no sources, but is an extending project.
2623
2624 2007-09-25  Eric Botcazou  <ebotcazou@adacore.com>
2625
2626         * trans.c: Fix misplaced #define.
2627
2628 2007-09-22  Eric Botcazou  <ebotcazou@adacore.com>
2629
2630         * utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate
2631         the TYPE_REF_CAN_ALIAS_ALL flag to the result.
2632
2633 2007-09-21  Olivier Hainque  <hainque@adacore.com>
2634
2635         * utils.c (type_for_nonaliased_component_p): Return false for
2636         all AGGREGATE_TYPEs.
2637
2638 2007-09-17  Eric Botcazou  <ebotcazou@adacore.com>
2639
2640         * decl.c (gnat_to_gnu_entity) <object>: Make again the type of an
2641         object covered by 13.3(19) volatile.
2642
2643 2007-09-12  Eric Botcazou  <ebotcazou@adacore.com>
2644
2645         PR ada/26797
2646         PR ada/32407
2647         * utils.c (unchecked_convert): Use a subtype as the intermediate type
2648         in the special VIEW_CONVERT_EXPR case.
2649
2650 2007-09-12  Robert Dewar  <dewar@adacore.com>
2651
2652         * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
2653
2654         * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
2655         lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
2656         s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
2657         s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
2658         s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
2659         s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
2660         s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
2661         s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
2662         a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads, 
2663         g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads, 
2664         s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb, 
2665         s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb, 
2666         snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads, 
2667         s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads, 
2668         s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads, 
2669         s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads, 
2670         s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
2671         pragma Compiler_Unit and adds it to relevant library units.
2672
2673 2007-09-12  Ed Schonberg  <schonberg@adacore.com>
2674
2675         * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
2676         a box need not correspond to any component.
2677
2678 2007-09-12  Robert Dewar  <dewar@adacore.com>
2679
2680         * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
2681         the tasking version of the Ada run time when foreign threads are
2682         present and there are no explicit Ada tasks or tasking constructs.
2683
2684         * gnat_rm.texi: Clarify documentation of GNAT.Threads.
2685
2686 2007-09-12  Hristian Kirtchev  <kirtchev@adacore.com>
2687
2688         * bindusg.adb (Display): Correct comment for switch -X. Add a line for
2689         the usage of switch -y.
2690
2691         * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
2692         when switch -y is present.
2693
2694         * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
2695         leap seconds in Ada.Calendar and its children.
2696
2697 2007-09-12  Jose Ruiz  <ruiz@adacore.com>
2698
2699         * a-extiti.ads (Timer): The discriminant is a "not null access
2700         constant" in the Reference Manual.
2701         (Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
2702
2703 2007-09-12  Robert Dewar  <dewar@adacore.com>
2704
2705         * a-swuwha.adb: Remove junk RM header
2706
2707 2007-09-12  Vincent Celier  <celier@adacore.com>
2708
2709         * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
2710         indicator
2711
2712         * g-bytswa.ads: Minor reformatting
2713
2714 2007-09-12  Thomas Quinot  <quinot@adacore.com>
2715
2716         * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads: 
2717         Add new constant Thread_Blocking_IO, always True by default, set False
2718         on a per-runtime basis.
2719         (Need_Netdb_Buffer): New constant.
2720
2721 2007-09-12  Arnaud Charlet  <charlet@adacore.com>
2722
2723         * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
2724         Added renames for corresponding functions in System.Partition_Interface.
2725
2726 2007-09-12  Doug Rupp  <rupp@adacore.com>
2727
2728         * Makefile.in: Remove VMS specific System.CRTL packages which are no
2729         longer needed.
2730
2731         * s-crtl-vms64.ads: Removed.
2732
2733 2007-09-12  Olivier Hainque  <hainque@adacore.com>
2734
2735         * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype
2736         with discriminant constraints, generalize the code for BIT_FIELDs
2737         to PACKED fields of constant size and propagate DECL_PACKED.
2738
2739 2007-09-11  Eric Botcazou  <ebotcazou@adacore.com>
2740
2741         * decl.c (array_type_has_nonaliased_component): New predicate.
2742         (gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
2743         set the TYPE_NONALIASED_COMPONENT flag on the type.
2744         <E_Array_Subtype>: Likewise.
2745         * gigi.h (type_for_nonaliased_component_p): Declare.
2746         * utils.c (type_for_nonaliased_component_p): New predicate.
2747         (create_field_decl): Invoke the above predicate to set the
2748         DECL_NONADDRESSABLE_P flag on the field.
2749
2750 2007-09-11  Javier Miranda  <miranda@adacore.com>
2751
2752         * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
2753         in library level record type entities if we are generating statically
2754         allocated dispatch tables.
2755
2756         * exp_disp.adb (Make_Tags/Make_DT): Replace previous code
2757         importing/exporting the _tag declaration by new code
2758         importing/exporting the dispatch table wrapper. This change allows us
2759         to statically allocate of the TSD.
2760         (Make_DT.Export_DT): New procedure.
2761         (Build_Static_DT): New function.
2762         (Has_DT): New function.
2763
2764         * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
2765         True_Constant and Current_Value. Required to statically
2766         allocate the dispatch tables.
2767         (Check_Allocator): Make function iterative instead of recursive.
2768         Also return inner allocator node, when present, so that we do not have
2769         to look for that node again in the caller.
2770
2771 2007-09-11  Jan Hubicka <jh@suse.cz>
2772
2773         * misc.c (gnat_expand_body): Kill.
2774         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
2775
2776 2007-09-10  Robert Dewar  <dewar@adacore.com>
2777
2778         * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
2779         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
2780         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
2781         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
2782         ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
2783         bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
2784         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
2785         butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
2786         comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
2787         elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
2788         err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
2789         exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
2790         exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
2791         exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
2792         exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
2793         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
2794         exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
2795         exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
2796         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
2797         exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
2798         exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
2799         exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
2800         fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
2801         get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
2802         gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
2803         gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
2804         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
2805         gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
2806         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
2807         gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
2808         inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
2809         lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
2810         lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
2811         make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
2812         mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
2813         mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
2814         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
2815         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
2816         osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
2817         osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
2818         par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
2819         par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
2820         par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
2821         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
2822         par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
2823         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
2824         prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
2825         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
2826         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
2827         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
2828         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
2829         prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
2830         rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
2831         scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
2832         sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
2833         sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
2834         sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
2835         sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
2836         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
2837         sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
2838         sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
2839         sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
2840         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
2841         sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
2842         sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
2843         sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
2844         sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
2845         sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
2846         stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
2847         styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
2848         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
2849         switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
2850         tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
2851         treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
2852         types.h, uintp.h, urealp.h, usage.adb, usage.ads,
2853         validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
2854         xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
2855         xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
2856         gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
2857         mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
2858         symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
2859         mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
2860         mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
2861
2862 2007-09-10  Emmanuel Briot  <briot@adacore.com>
2863
2864         * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
2865         classes ("[]").
2866
2867 2007-09-10  Vasiliy Fofanov  <fofanov@adacore.com>
2868
2869         * adaint.c (__gnat_translate_vms): new function.
2870
2871 2007-09-10  Gary Dismukes  <dismukes@adacore.com>
2872             Thomas Quinot  <quinot@adacore.com>
2873
2874         * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
2875         create an abstract subprogram in the case of 'Input. For 'Output we now
2876         create a real spec/body when the type is abstract, since it can
2877         potentially be called.
2878         (Predefined_Primitive_Bodies): Now allow the creation of a predefined
2879         body for 'Output when the type is abstract (only the creation of the
2880         body for 'Input is excluded when the type is abstract).
2881         (Stream_Operation_OK): Add an additional condition in the return
2882         statement, so that False will be returned for TTS_Stream_Input if the
2883         associated tagged type is an abstract extension. Add comments for
2884         return statement.
2885         (Expand_N_Object_Declaration): For the case of a shared passive
2886         variable, insert init proc call only after the shared variable
2887         procedures have been processed, because the IP call needs to undergo
2888         shared passive variable reference expansion, which requires these
2889         procedures to be available (and elaborated).
2890
2891 2007-09-10  Vincent Celier  <celier@adacore.com>
2892
2893         * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
2894         parameter Runtime_Project.
2895
2896 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
2897
2898         * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
2899         given a box association, the type of the component is discriminated,
2900         and the value of the discriminant is the discriminant of the enclosing
2901         type, retrieve its value from the aggregate itself, where it must have
2902         been supplied.
2903
2904         * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
2905         to remove other spurious ambiguities on arithmetic operations involving
2906         literals and addresses, on systems where Address is a visible integer
2907         type, when the operator is called in functional notation.
2908         (Try_Primitive_Operation): Within an instance, a call in prefixed form
2909         is legal when the types match, even if the operation is currently
2910         hidden.
2911
2912 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
2913
2914         * sem_ch12.adb (Build_Local_Package): A formal package with no
2915         associations is legal if all formals have defaults. It is not
2916         equivalent to a formal declared with a box.
2917
2918 2007-09-10  Sergey Rybin  <rybin@adacore.com>
2919
2920         * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
2921
2922 2007-09-10  Sergey Rybin  <rybin@adacore.com>
2923
2924         * gnat_ugn.texi: Add description of the new '-lratio' option
2925         Update 7.3.1 section about availability of the feature.
2926
2927 2007-09-10  Thomas Quinot  <quinot@adacore.com>
2928
2929         * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
2930         inserted node.
2931
2932 2007-09-10  Olivier Hainque  <hainque@adacore.com>
2933
2934         * Makefile.in: (mips-irix section): Activate build of libgmem.
2935
2936 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
2937
2938         * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
2939         x87 registers.
2940
2941 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
2942
2943         * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for
2944         a debug renaming declaration specially.
2945
2946 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
2947
2948         * decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
2949         which a constant renaming is treated as a normal object declaration.
2950         * trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
2951         the N_Indexed_Component case.
2952         <N_Indexed_Component>: Fall through to above case.
2953         <N_Object_Renaming_Declaration>: Return true for all composite types.
2954
2955 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
2956
2957         * decl.c (make_packable_type): If the new type has been given BLKmode,
2958         try again to get an integral mode for it.
2959
2960 2007-09-07  Eric Botcazou  <ebotcazou@adacore.com>
2961
2962         Re-apply accidentally reverted change:
2963
2964         2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
2965
2966         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
2967         get_action_description_for): Replace _Unwind_Word with _uleb128_t 
2968         and _Unwind_SWord with _sleb128_t.
2969
2970 2007-09-06  Eric Botcazou  <ebotcazou@adacore.com>
2971
2972         * trans.c (convert_with_check): Update call to real_2expN.
2973
2974 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
2975
2976         * trans.c (Compilation_unit_to_gnu): Use set_cfun.
2977         * utils.c (end_subprog_body): Likewise.
2978
2979 2007-09-03  Nick Clifton  <nickc@redhat.com>
2980
2981         * Make-lang.in: Change copyright header to refer to version 3 of
2982         the GNU General Public License and to point readers at the
2983         COPYING3 file and the FSF's license web page.
2984         * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
2985         Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
2986         namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
2987         treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
2988         Likewise.
2989
2990 2007-08-31  Vincent Celier  <celier@adacore.com>
2991
2992         PR ada/4720
2993
2994         * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb, 
2995         gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
2996         (Check_Version_And_Help): New procedure in package Switch to process
2997         switches --version and --help.
2998         Use Check_Version_And_Help in GNAT tools
2999
3000         * make.adb:  Ditto.
3001         (Compile_Sources): Make sure that sources that are "excluded" are not
3002         compiled.
3003         (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
3004         project file is used.
3005         (Version_Switch): Remove, moved to Switch
3006         (Help_Switch): Remove, moved to Switch
3007         (Display_Version): Remove, moved to Switch
3008
3009         * switch.ads, switch.adb (Check_Version_And_Help): New procedure in
3010         package Switch to process switches --version and --help.
3011         (Display_Version): New procedure
3012
3013         * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.
3014
3015 2007-08-31  Javier Miranda  <miranda@adacore.com>
3016
3017         * a-tags.adb (Internal_Tag): Protect the run-time against wrong
3018         internal tags.
3019
3020 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
3021
3022         * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
3023         (Mark_Non_Null): If the node for which we just generated an access check
3024         is a reference to an *in* parameter and the reference appears in the
3025         declarative part of a subprogram body, mark the node as known non null.
3026
3027 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
3028
3029         * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
3030         structure of E_Exception to reflect the new flag.
3031         (Is_Raised, Set_Is_Raised): New inlined routines.
3032         Update the usage of available flag to reflect the addition of Is_Raised.
3033         (Is_Raised, Set_Is_Raised): Bodies of new routines.
3034         (Write_Entity_Flags): Write the status of flag Is_Raised.
3035         (Is_Descendent_Of_Address): New entity flag, to simplify handling of
3036         spurious ambiguities when integer literals appear in the context of an
3037         address type that is a visible integer type.
3038
3039         * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
3040         exceptions never being raised.
3041         (Analyze_Raise_Statement): When analyzing an exception, mark it as being
3042         explicitly raised.
3043
3044 2007-08-31  Javier Miranda  <miranda@adacore.com>
3045
3046         * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
3047         statement when compiling under restriction No_Exceptions_Proparation.
3048
3049 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
3050
3051         * exp_ch3.adb (Build_Record_Init_Proc): If there is a static
3052         initialization aggregate for the type, generate itype references for
3053         thetypes of its (sub)components, to prevent out-of-scope errors in gigi.
3054
3055 2007-08-31  Gary Dismukes  <dismukes@adacore.com>
3056
3057         * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
3058         library-level package renaming, pass the declaration associated with
3059         the renaming's special debug variable to Qualify_Entity_Names to ensure
3060         that its encoded name is properly qualified.
3061
3062         * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
3063         occurring in the list of entities to qualify, and do not attempt to
3064         traverse an entity list in that case. Variables associated with
3065 `       library-level package renamings can now occur in the table.
3066
3067         * exp_dbug.ads: Revise documentation of the encoding for renaming
3068         declarations.
3069
3070 2007-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3071
3072         * layout.adb (Layout_Type): Use Underlying_Type to determine whether an
3073         access type points to an unconstrained array.
3074
3075 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
3076
3077         * restrict.adb, namet.adb, par-util.adb: Remove redundant type
3078         conversion.
3079
3080         * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
3081         simple redundant qualifications. The check is performed whenever the
3082         expression is a non-overloaded identifier.
3083         (Resolve_Type_Conversion): Enchance the redundant type conversion check
3084         to include loop parameters.
3085         (Valid_Conversion): Avoid generation of spurious error message.
3086
3087 2007-08-31  Bob Duff  <duff@adacore.com>
3088
3089         * par-ch4.adb (P_Simple_Expression): Fold long sequences of
3090         concatenations of string literals into a single literal, in order to
3091         avoid very deep recursion in the front end, which was causing stack
3092         overflow.
3093
3094         * sem_eval.adb (Eval_Concatenation): If the left operand is the empty
3095         string, and the right operand is a string literal (the case of "" &
3096         "..."), optimize by avoiding copying the right operand -- just use the
3097         value of the right operand directly.
3098
3099         * stringt.adb (Store_String_Chars): Optimize by growing the
3100         String_Chars table all at once, rather than appending characters one by
3101         one.
3102         (Write_String_Table_Entry): If the string to be printed is very long,
3103         just print the first few characters, followed by the length. Otherwise,
3104         doing "pn(n)" in the debugger can take an extremely long time.
3105
3106         * sem_prag.adb (Process_Interface_Name): Replace loop doing
3107         Store_String_Char with Store_String_Chars.
3108
3109 2007-08-31  Vincent Celier  <celier@adacore.com>
3110
3111         * prj-attr.adb: Add new attribute Excluded_Source_Files
3112
3113         * prj-nmsc.adb: Use attribute Excluded_Source_Files before
3114         Locally_Removed_Files.
3115
3116         * snames.ads, snames.adb: New standard name Excluded_Source_Files
3117
3118 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
3119
3120         * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
3121         clauses of subunits, ignore limited_with_clauses that are illegal and
3122         have not been fully analyzed.
3123
3124 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
3125
3126         * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
3127         flag, for effiency. It is called when analyzing arithmetic operators
3128         and also for actuals in calls that are universal_integers. The flag is
3129         set for the predefined type address, and for any type or subtype
3130         derived from it.
3131
3132         * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
3133         Universal_Integer, when the formal is a descendent of address and the
3134         call appears in user code.
3135         (Analyze_Selected_Component): if the prefix is a private extension, the
3136         tag component is visible.
3137
3138         * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
3139         entity flag.
3140
3141 2007-08-31  Robert Dewar  <dewar@adacore.com>
3142
3143         * s-fileio.adb (Open): Normalize file name to lower case in non-case
3144         sensitive file name systems to avoid unexpected mismatch in Vista.
3145
3146 2007-08-31  Vincent Celier  <celier@adacore.com>
3147
3148         * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
3149
3150 2007-08-31  Vincent Celier  <celier@adacore.com>
3151
3152         * symbols-vms.adb (Initialize): Read symbol files with continuation
3153         lines
3154         (Finalize): If symbol is long, split the line
3155
3156 2007-08-31  Vincent Celier  <celier@adacore.com>
3157
3158         * fmap.ads: Minor comment updates
3159
3160 2007-08-31  GNAT Script  <nobody@adacore.com>
3161
3162         * Make-lang.in: Makefile automatically updated
3163
3164 2007-08-31  Bob Duff  <duff@adacore.com>
3165
3166         * sinfo.ads: Minor comment fix.
3167
3168 2007-08-31  Thomas Quinot  <quinot@adacore.com>
3169
3170         * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
3171         with implementation.
3172         Documentation cleanup only.
3173
3174 2007-08-31  Sergey Rybin  <rybin@adacore.com>
3175
3176         * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
3177         gnatpp '--separate-stmt-name' option.
3178         Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
3179         option.
3180
3181         * gnat_ugn.texi: Add description for the new gnatpp
3182         '--separate-stmt-name' and '--use-on-new-line' options.
3183
3184 2007-08-31  Ben Elliston  <bje@au.ibm.com>
3185
3186         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
3187         when compiling for powerpc64-*-linux.
3188         * system-linux-ppc64.ads: New file.
3189
3190 2007-08-22  Krister Walfridsson  <cato@df.lth.se>
3191
3192         * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
3193         NetBSD.
3194
3195 2007-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3196
3197         * misc.c (gnat_type_max_size): Constify.
3198
3199 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
3200
3201         * cstand.adb (Create_Standard): Create an entity for a zero-sized type
3202         associated with Standard_Debug_Renaming_Type, to be used as the type of
3203         the special variables whose names provide debugger encodings for
3204         renaming declarations.
3205
3206         * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
3207         (Set_Debug_Renaming_Link): Change to set Node25.
3208         (Write_Field13_Name): Remove case for E_Enumeration_Literal.
3209         (Write_Field25_Name): Add case for E_Variable to output
3210         "Debug_Renaming_Link".
3211         (Write_Field23_Name): Correct the output string for "Limited_View".
3212
3213         * exp_dbug.adb: Add with and use of Tbuild.
3214         (Debug_Renaming_Declaration): Replace creation of an enumeration type
3215         and literal with creation of a variable of type
3216         Standard_Debug_Renaming_Type whose name encodes both the renamed object
3217         and the entity of the renaming declaration.
3218         (Qualify_Entity_Name): Add the delayed qualification of the entity name
3219         part of the name of a variable that has a Debug_Renaming_Link.
3220
3221         * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
3222         special type to be associated with variables that provide debugger
3223         encodings for renaming declarations.
3224
3225 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
3226             Ed Schonberg  <schonberg@adacore.com>
3227             Javier Miranda  <miranda@adacore.com>
3228
3229         * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
3230         ancestor part given by an aggregate to test for an unchecked conversion,
3231         since this can occur in some cases when the ancestor part is a function
3232         call, and we don't want to fall into the recursive call to this
3233         procedure in that case.
3234
3235         * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
3236         stream attributes on limited types to account for user-specified
3237         attributes as well as whether Input (resp. Output) becomes available
3238         due to Read (resp. Write) being available for the type. Change Boolean
3239         variable to the more accurate name
3240         Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
3241         double-"not" predicate at beginning of return statement to more
3242         understandable form.
3243
3244         * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
3245         return has an associated N_Handled_Sequence_Of_Statements, then wrap it
3246         in a block statement and use that as the first statement of the
3247         expanded return rather than incorrectly using the handled sequence as
3248         the first statement.
3249
3250         * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
3251         operation, generate an explicit freeze node for it rather than
3252         generating extra formals, to ensure that gigi has the proper order of
3253         elaboration for anonymous subtypes in the signature of the subprograms.
3254         (Build_In_Place_Formal): Move assertion to beginning of loop.
3255         (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
3256         applied to a function call (occurs for some cases of 'Input).
3257         (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
3258         applied to a function call (occurs for some cases of 'Input).
3259
3260         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
3261         2005, generate an extended return statement enclosing the result object
3262         and 'Read call.
3263
3264         * freeze.adb (Freeze_Record_Type): Extend the current management of
3265         components that are access type with an allocator as default value: add
3266         missing support to the use of qualified expressions of the
3267         allocator (which also cause freezing of the designated type!)
3268         (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
3269         dispatching operation, since extra formals may be needed by calls to
3270         build-in-place functions (such as stream 'Input).
3271
3272         * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
3273         formals for 'Constrained and accessibility level in the case of a
3274         predefined dispatching operation.
3275
3276         * exp_util.adb (Insert_Actions): A protected body is a valid insertion
3277         point, no need to find the parent node.
3278
3279 2007-08-16  Javier Miranda  <miranda@adacore.com>
3280
3281         * exp_attr.adb (Attribute_Priority): Add missing support for entries
3282         and entry barriers.
3283
3284 2007-08-16  Javier Miranda  <miranda@adacore.com>
3285
3286         * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
3287         is not really required and can introduce regression with the debugger.
3288         The original problem is fixed with the patch written for checks.adb.
3289
3290 2007-08-16  Thomas Quinot  <quinot@adacore.com>
3291
3292         * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
3293         Range_Check on Allocated_Table.
3294
3295 2007-08-16  Vincent Celier  <celier@adacore.com>
3296
3297         * make.adb (Collect_Arguments): Call Test_If_Relative_Path with
3298         Including_Non_Switch set to False.
3299         (Gnatmake): For the compiler, call Test_If_Relative_Path with
3300         Including_Non_Switch set to False.
3301
3302         * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
3303         parameter Including_Non_Switch, defaulted to True. When
3304         Including_Non_Switch is False, options that are not switches and
3305         appear as relative path are not converted to absolute paths.
3306
3307 2007-08-16  Nicolas Roche  <roche@adacore.com>
3308
3309         * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
3310         makefiles
3311
3312         * Make-lang.in: Update dependencies
3313
3314 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
3315
3316         * sem_ch10.adb (Has_With_Clause): If the name of the with clause
3317         currently inspected is a selected component, retrieve the entity of
3318         its selector.
3319         (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
3320         from the immediate ancestor of Main_Unit_Entity.
3321         (Install_Limited_Withed_Unit): Do not install the limited view of
3322         package P if P is reachable through an ancestor chain from package C
3323         and C also has a with clause for P in its body.
3324         (Has_Limited_With_Clause): New routine.
3325         (Has_With_Clause): New routine.
3326
3327 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
3328
3329         * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
3330         generic for an enclosing instance is a global reference, even though
3331         its scope is the enclosing instance.
3332
3333 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
3334             Javier Miranda  <miranda@adacore.com>
3335
3336         * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
3337         initialize a limited object.
3338         (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
3339         13/2 and 14/2.
3340         Make sure Has_Complex_Representation is inherited by derived type.
3341
3342 2007-08-16  Robert Dewar  <dewar@adacore.com>
3343
3344         * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
3345         exception case
3346
3347 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
3348
3349         * sem_disp.adb (Check_Dispatching_Operation): If the operation
3350         implements an operation inherited from a progenitor interface, verify
3351         that they are subtype-conformant.
3352
3353 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
3354             Bob Duff  <duff@adacore.com>
3355             Nicolas Setton  <setton@adacore.com>
3356
3357         * sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
3358         (Resolve): Alphabetize local variables. Add new variable From_Lib. When
3359         the statement which is being resolved comes from a predefined library
3360         unit, all non-predefined library interpretations are skipped.
3361         (Resolve_Op_Concat): If string concatenation was folded in the parser,
3362         but the "&" is user defined, give an error, because the folding would
3363         be wrong.
3364
3365         * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
3366         the parser has folded a long sequence of concatenations of string
3367         literals.
3368
3369         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
3370         and "JMP_BUF" variables as artificial.
3371         (N_String_Literal): Do not use alloca for very long string literals. Use
3372         xmalloc/free instead. Otherwise the stack might overflow.
3373
3374         * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
3375         compiler.
3376
3377 2007-08-16  Vincent Celier  <celier@adacore.com>
3378
3379         * vms_conv.adb (Process_Argument): Ensure that project related options
3380         are not put in the -cargs section when using GNAT COMPILE.
3381
3382 2007-08-16  Robert Dewar  <dewar@adacore.com>
3383
3384         * gnat_ugn.texi: Add note on preprocessing (output file not written)
3385
3386 2007-08-16  Thomas Quinot  <quinot@adacore.com>
3387
3388         * a-tags.adb: Minor reformatting.
3389
3390 2007-08-16  Bob Duff  <duff@adacore.com>
3391
3392         * sem_type.ads, sem_ch4.adb: Minor reformatting.
3393
3394 2007-08-14  Thomas Quinot  <quinot@adacore.com>
3395
3396         * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads, 
3397         s-osinte-interix.ads, system-interix.ads: Removed.
3398
3399 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
3400
3401         * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
3402         calls to Check_Within_Time_Bounds.
3403         ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
3404         (Difference): Account for possible rounding of the resulting difference
3405
3406 2007-08-14  Robert Dewar  <dewar@adacore.com>
3407
3408         * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
3409         par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
3410         s-osinte-solaris.adb, s-osinte-solaris.ads,
3411         s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
3412
3413         * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
3414         switch -gnatyS. Enable -gnatyS in GNAT style check mode
3415
3416 2007-08-14  Robert Dewar  <dewar@adacore.com>
3417             Ed Schonberg  <schonberg@adacore.com>
3418
3419         * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads: 
3420         Suppress unmodified in-out parameter warning in some cases
3421         This patch is a also fairly significant change to the way suppressible
3422         checks are handled.
3423
3424         * checks.ads, checks.adb (Install_Null_Excluding_Check): No check
3425         needed for access to concurrent record types generated by the expander.
3426         (Generate_Range_Check): When generating a temporary to capture the
3427         value of a conversion that requires a range check, set the type of the
3428         temporary before rewriting the node, so that the type is always
3429         properly placed for back-end use.
3430         (Apply_Float_Conversion_Check): Handle case where the conversion is
3431         truncating.
3432         (Get_Discriminal): Code reformatting. Climb the scope stack looking
3433         for a protected type in order to examine its discriminants.
3434
3435 2007-08-14  Robert Dewar  <dewar@adacore.com>
3436             Gary Dismukes  <dismukes@adacore.com>
3437             Ed Schonberg  <schonberg@adacore.com>
3438             Thomas Quinot  <quinot@adacore.com>
3439
3440         * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb, 
3441         a-stwisu.adb, a-strsup.adb: Fix warnings for range
3442         tests optimized out.
3443
3444         * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
3445         (Get_Allocator_Final_List): For the case of an anonymous access type
3446         that has a specified Associated_Final_Chain, do not go up to the
3447         enclosing scope.
3448         (Expand_N_Type_Conversion): Test for the case of renamings of access
3449         parameters when deciding whether to apply a run-time accessibility
3450         check.
3451         (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
3452         aggregate code before allocator, and ahead of declaration for
3453         temporary, to prevent access before elaboration when the allocator is
3454         an actual for an access parameter.
3455         (Expand_N_Type_Conversion): On an access type conversion involving an
3456         access parameter, do not apply an accessibility check when the
3457         operand's original node was an attribute other than 'Access. We now
3458         create access conversions for the expansion of 'Unchecked_Access and
3459         'Unrestricted_Access in certain cases and clearly accessibility should
3460         not be checked for those.
3461
3462         * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
3463         includes a type conversion of a packed component that has been expanded,
3464         recover the original expression for the object, and use this expression
3465         in the post-call assignment statement, so that the assignment is made
3466         to the object and not to a back-end temporary.
3467         (Freeze_Subprogram): In case of primitives of tagged types not defined
3468         at the library level force generation of code to register the primitive
3469         in the dispatch table. In addition some code reorganization has been
3470         done to leave the implementation clear.
3471         (Expand_Call): When expanding an inherited implicit conversion,
3472         preserve the type of the inherited function after the intrinsic
3473         operation has been expanded.
3474
3475         * exp_ch2.ads, exp_ch2.adb
3476         (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
3477         of an entry formal appearing in an assignment statement does not assign
3478         to the formal.
3479         (Expand_Current_Value): Instead of calling a routine to determine
3480         whether the prefix of an attribute reference should be optimized or
3481         not, prevent the optimization of such prefixes all together.
3482
3483         * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
3484         component whose prefix is known to be of an access type is an implicit
3485         dereference and does not assign to the prefix.
3486
3487 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
3488             Robert Dewar  <dewar@adacore.com>
3489
3490         * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
3491         itype is visited, make an entry into table to link associated node and
3492         new itype.
3493         Add comments and correct harmless error in Build_NCT_Hash_Tables
3494         (Array_Aggr_Subtype): Associate each itype created for an index type to
3495         the corresponding range construct, and not to the aggregate itself. to
3496         maintain a one-to-one correspondence between itype and its associated
3497         node, to prevent errors when complex expression is copied.
3498         Fix mishandling of multiple levels of parens
3499
3500         * sem_aggr.adb: Create a limited view of an incomplete type, to make
3501         treatment of limited views uniform for all visible declarations in a
3502         limited_withed package.
3503         (New_Copy_Tree): If hash table is being used and itype is visited,
3504         make an entry into table to link associated node and new itype.
3505         (Resolve_Record_Aggregate): Do not add an others box association for a
3506         discriminated record component that has only discriminants, when there
3507         is a box association for the component itself.
3508
3509         * par-ch4.adb: Fix mishandling of multiple levels of parens
3510
3511 2007-08-14  Robert Dewar  <dewar@adacore.com>
3512
3513         * comperr.adb: Fix problem with suppressing warning messages from gigi
3514
3515         * erroutc.ads, erroutc.adb, errout.ads, 
3516         errout.adb (Write_Eol): Remove trailing spaces before writing the line
3517         (Write_Eol_Keep_Blanks): New procedure to write a line, including
3518         possible trailing spaces.
3519         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
3520         Fix problem with suppressing warning messages from back end
3521         Improve handling of deleted warnings
3522
3523         * gnat1drv.adb: 
3524         Fix problem with suppressing warning messages from back end
3525         Handle setting of Static_Dispatch_Tables flag.
3526
3527         * prepcomp.adb: 
3528         Fix problem with suppressing warning messages from back end
3529
3530         * exp_intr.adb: Improve handling of deleted warnings
3531
3532 2007-08-14  Robert Dewar  <dewar@adacore.com>
3533
3534         * debug.adb: Improve -gnatdI to cover all cases of serialization
3535         Add documentation of dZ, d.t
3536
3537         * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
3538         serialization.
3539         (Sprint_Node_Actual): Generate new output associated with implicit
3540         importation and implicit exportation of object declarations.
3541
3542 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
3543             Robert Dewar  <dewar@adacore.com>
3544             Javier Miranda  <miranda@adacore.com>
3545             Gary Dismukes  <dismukes@adacore.com>
3546
3547         * einfo.ads, einfo.adb: Create a limited view of an incomplete type,
3548         to make treatment of limited views uniform for all visible declarations
3549         in a limited_withed package.
3550         Improve warnings for in out parameters
3551         (Set_Related_Interaface/Related_Interface): Allow the use of this
3552         attribute with constants.
3553         (Write_Field26_Name): Handle attribute Related_Interface in constants.
3554         Warn on duplicate pragma Preelaborable_Initialialization
3555
3556         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
3557         generation of a freezing node to ensure proper management of null
3558         excluding access types in the backend.
3559         (Create_Extra_Formals): Test base type of the formal when checking for
3560         the need to add an extra accessibility-level formal. Pass the entity E
3561         on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
3562         originally being done in a couple of cases), to ensure that the
3563         Extra_Formals list gets set on the entity E when the first entity is
3564         added.
3565         (Conforming_Types): Add missing calls to Base_Type to the code that
3566         handles anonymous access types. This is required to handle the
3567         general case because Process_Formals builds internal subtype entities
3568         to handle null-excluding access types.
3569         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
3570         functions that need it, even when not marked Requires_Overriding.
3571         Improve warnings for in out parameters
3572         (Analyze_Function_Return): Warn for disallowed null return
3573         Warn on return from procedure with unset out parameter
3574         Ensure consistent use of # in error messages
3575         (Check_Overriding_Indicator): Add in parameter Is_Primitive.
3576         (Analyze_Function_Return): Move call to Apply_Constraint_Check before
3577         the implicit conversion of the expression done for anonymous access
3578         types. This is required to generate the code of the null excluding
3579         check (if required).
3580
3581         * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
3582         A formal parameter is never publicly referenceable outside of its body.
3583         (Check_References): For an unreferenced formal parameter in an accept
3584         statement, use the same warning circuitry as for subprogram formal
3585         parameters.
3586         (Warn_On_Unreferenced_Entity): New subprogram, taken from
3587         Output_Unreferenced_Messages, containing the part of that routine that
3588         is now reused for entry formals as described above.
3589         (Goto_Spec_Entity): New function
3590         (Check_References): Do not give IN OUT warning for dispatching operation
3591         Improve warnings for in out parameters
3592         (Test_Ref): Check that the entity is not undefinite before calling
3593         Scope_Within, in order to avoid infinite loops.
3594         Warn on return from procedure with unset out parameter
3595         Improved warnings for unused variables
3596
3597 2007-08-14  Robert Dewar  <dewar@adacore.com>
3598             Javier Miranda  <miranda@adacore.com>
3599             Gary Dismukes  <dismukes@adacore.com>
3600
3601         * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
3602         (Expand_N_Attribute_Reference): Further unify the handling of the
3603         three forms of access attributes, using common code now for all three
3604         cases. Add a test for the case of applying an access attribute to
3605         an explicit dereference when the context is an access-to-interface
3606         type. In that case we need to apply the conversion to the prefix
3607         of the explicit dereference rather than the prefix of the attribute.
3608         (Attribute_Version, UET_Address): Set entity as internal to ensure
3609         proper dg output of implicit importation.
3610         (Expand_Access_To_Type): Removed.
3611         (Expand_N_Attribute_Reference): Merge the code from the three cases
3612         of access attributes, since the processing is largely identical for
3613         these cases. The substantive fix here is to process the case of a
3614         type name prefix (current instance case) before handling the case
3615         of interface prefixes.
3616
3617 2007-08-14  Thomas Quinot  <quinot@adacore.com>
3618             Ed Schonberg  <schonberg@adacore.com>
3619             Javier Miranda  <miranda@adacore.com>
3620             Robert Dewar  <dewar@adacore.com>
3621
3622         * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
3623         (Freeze_Array_Type, Freeze_Record_Type): For the case of a component
3624         type that is an anonymous access to controlled object, establish
3625         an associated finalization chain to avoid corrupting the global
3626         finalization list when a dynamically allocated object designated
3627         by such a component is deallocated.
3628         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
3629         functions that need it, even when not marked Requires_Overriding.
3630         (Initialize_Tag): Replace call to has_discriminants by call to
3631         Is_Variable_Size_Record in the circuitry that handles the
3632         initialization of secondary tags.
3633         (Is_Variable_Size_Record): New implementation.
3634         (Expand_N_Object_Declaration): Suppress call to init proc if there is a
3635         Suppress_Initialization pragma for a derived type.
3636         (Is_Variable_Size_Record): New subprogram.
3637         (Build_Offset_To_Top_Functions): New implementation that simplifies the
3638         initial version of this routine and also fixes problems causing
3639         incomplete initialization of the table of interfaces.
3640         (Build_Init_Procedure): Improve the generation of code to initialize the
3641         the tag components of secondary dispatch tables.
3642         (Init_Secondary_Tags): New implementation that simplifies the previous
3643         version of this routine.
3644         (Make_DT): Add parameter to indicate when type has been frozen by an
3645         object declaration, for diagnostic purposes.
3646         (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
3647         diagnose attemps to freeze a subprogram when some untagged type of its
3648         profile is a private type whose full view has not been analyzed yet.
3649         (Freeze_Array_Type): Generate init proc for packed array if either
3650         Initialize or Normalize_Scalars is set.
3651         (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
3652         constructing the new profile, copy the null_exclusion indicator for each
3653         parameter, to ensure full conformance of the new body with the spec.
3654
3655         * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
3656         Create wrappers for constructor functions that need it, even when not
3657         marked Requires_Overriding.
3658         (Covers): Handle properly designated types of anonymous access types,
3659         whose non-limited views are themselves incomplete types.
3660         (Add_Entry): Use an entity to store the abstract operation which hides
3661         an interpretation.
3662         (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
3663         (Collect_Interps): Use Empty as an actual for Abstract_Op in the
3664         initialization aggregate.
3665         (Function_Interp_May_Be_Hidden): Rename to
3666         Function_Interp_Has_Abstract_Op.
3667         (Has_Compatible_Type): Remove machinery that skips interpretations if
3668         they are labeled as potentially hidden by an abstract operator.
3669         (Has_Hidden_Interp): Rename to Has_Abstract_Op.
3670         (Set_May_Be_Hidden): Rename to Set_Abstract_Op.
3671         (Write_Overloads): Output the abstract operator if present.
3672         (Add_Entry): Before inserting a new entry into the interpretation table
3673         for a node, determine whether the entry will be disabled by an abstract
3674         operator.
3675         (Binary_Op_Interp_May_Be_Hidden): New routine.
3676         (Collect_Interps): Add value for flag May_Be_Hidden in initialization
3677         aggregate.
3678         (Function_Interp_May_Be_Hidden): New routine.
3679         (Has_Compatible_Type): Do not consider interpretations hidden by
3680         abstract operators when trying to determine whether two types are
3681         compatible.
3682         (Has_Hidden_Interp): New routine.
3683         (Set_May_Be_Hidden_Interp): New routine.
3684         (Write_Overloads): Write the status of flag May_Be_Hidden.
3685
3686 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
3687             Javier Miranda  <miranda@adacore.com>
3688
3689         * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
3690         types declared in the declarative part of a nested package body or in
3691         the proper body of a stub.
3692         (Set_All_DT_Position): Add missing check to avoid wrong assignation
3693         of the same dispatch table slot to renamed primitives.
3694         (Make_Select_Specific_Data_Table): Handle private types.
3695         (Tagged_Kind): Handle private types.
3696         (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
3697         output of implicit importation and exportation.
3698         (Expand_Interface_Thunk): Fix bug in the expansion assuming that the
3699         first formal of the thunk is always associated with the controlling
3700         type. In addition perform the following code cleanup: remove formal
3701         Thunk_Alias which is no longer required, cleanup evaluation of the
3702         the controlling type, and update the documentation.
3703         Replace occurrence of Default_Prim_Op_Count by
3704         Max_Predef_Prims. Addition of compile-time check to verify
3705         that the value of Max_Predef_Prims is correct.
3706         (Check_Premature_Freezing): Apply check in Ada95 mode as well.
3707         (Make_DT): Add parameter to indicate when type has been frozen by an
3708         object declaration, for diagnostic purposes.
3709         (Build_Static_Dispatch_Tables): New subprogram that takes care of the
3710         construction of statically allocated dispatch tables.
3711         (Make_DT): In case of library-level tagged types export the declaration
3712         of the primary tag. Remove generation of tags (now done by Make_Tags).
3713         Additional modifications to handle non-static generation of dispatch
3714         tables. Take care of building tables for asynchronous interface types
3715         (Make_Tags): New subprogram that generates the entities associated with
3716         the primary and secondary tags of Typ and fills the contents of Access_
3717         Disp_Table. In case of library-level tagged types imports the forward
3718         declaration of the primary tag that will be declared later by Make_DT.
3719         (Expand_Interface_Conversion): In case of access types to interfaces
3720         replace an itype declaration by an explicit type declaration to avoid
3721         problems associated with the scope of such itype in transient blocks.
3722
3723 2007-08-14  Robert Dewar  <dewar@adacore.com>
3724             Ed Schonberg  <schonberg@adacore.com>
3725             Javier Miranda  <miranda@adacore.com>
3726
3727         * exp_util.ads, exp_util.adb: 
3728         This patch replaces a number of occurrences of explicit tests for N_Null
3729         with calls to Known_Null. This improves tracking of null values, since
3730         Known_Null also catches null constants, and variables currently known to
3731         be null, so we get better tracking.
3732         (Ensure_Defined): create an itype reference only in the scope of the
3733         itype.
3734         (Side_Effect_Free): A selected component of an access type that
3735         denotes a component with a rep clause must be treated as not
3736         side-effect free, because if it is part of a linked structure its
3737         value may be affected by a renaming.
3738         (Expand_Subtype_From_Expr): For limited objects initialized with build
3739         in place function calls, do nothing; otherwise we prematurely introduce
3740         an N_Reference node in the expression initializing the object, which
3741         breaks the circuitry that detects and adds the additional arguments to
3742         the called function. Bug found working in the new patch for statically
3743         allocated dispatch tables.
3744         (Is_Library_Level_Tagged_Type): New subprogram.
3745         (Remove_Side_Effects): If the expression of an elementary type is an
3746         operator treat as a function call.
3747         (Make_Literal_Range): If the index type of the array is not integer, use
3748         attributes properly to compute the constraint on the resulting aggregate
3749         which is a string.
3750
3751         * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
3752         class-wide type whose base type is an incomplete private type, leave
3753         class-wide type unfrozen so that freeze nodes can be generated
3754         properly at a later point.
3755         (Freeze_Entity, array case): Handle case of pragma Pack and component
3756         size attributre clause for same array.
3757
3758 2007-08-14  Vincent Celier  <celier@adacore.com>
3759
3760         * prj.ads, prj.adb: Update Project Manager to new attribute names for
3761         gprbuild.
3762         Allow all valid declarations in configuration project files
3763         (Reset): Initialize all tables and hash tables in the project tree data
3764         Major update of the Project Manager and of the project aware tools,
3765         including gprmake, so that the same sources in the GNAT repository
3766         can be used by gprbuild.
3767         (Slash_Id): Change type to be Path_Name_Type
3768         (Slash): Return a Path_Name_Type instead of a File_Name_Type
3769
3770         * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
3771         gprbuild.
3772         Update Project Manager to new attribute names for ghprbuild
3773         Allow all valid declarations in configuration project files
3774         Major update of the Project Manager and of the project aware tools,
3775         including gprmake, so that the same sources in the GNAT repository
3776         can be used by gprbuild.
3777
3778         * prj-com.ads: 
3779         Major update of the Project Manager and of the project aware tools,
3780         including gprmake, so that the same sources in the GNAT repository
3781         can be used by gprbuild.
3782
3783         * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
3784         insensitive flag for attributes with optional index.
3785         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
3786         array attribute, put the index in lower case.
3787         Update Project Manager to new attribute names for ghprbuild
3788         Allow all valid declarations in configuration project files
3789         Major update of the Project Manager and of the project aware tools,
3790         including gprmake, so that the same sources in the GNAT repository
3791         can be used by gprbuild.
3792
3793         * prj-env.ads, prj-env.adb: 
3794         Major update of the Project Manager and of the project aware tools,
3795         including gprmake, so that the same sources in the GNAT repository
3796         can be used by gprbuild.
3797         (Get_Reference): Change type of parameter Path to Path_Name_Type
3798
3799         * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
3800         removing '-' from the path to start with the first character of the
3801         next directory.
3802         Major update of the Project Manager and of the project aware tools,
3803         including gprmake, so that the same sources in the GNAT repository
3804         can be used by gprbuild.
3805         Major update of the Project Manager and of the project aware tools,
3806         including gprmake, so that the same sources in the GNAT repository
3807         can be used by gprbuild.
3808
3809         * prj-nmsc.ads, prj-nmsc.adb: 
3810         Update Project Manager to new attribute names for ghprbuild
3811         Allow all valid declarations in configuration project files
3812         (Search_Directories): Detect subunits that are specified with an
3813         attribute Body in package Naming. Do not replace a source/unit in the
3814         same project when the order of the source dirs are known. Detect
3815         duplicate sources/units in the same project when the order of the
3816         source dirs are not known.
3817         (Check_Ada_Name): Allow all identifiers that are not reserved words
3818         in Ada 95.
3819         Major update of the Project Manager and of the project aware tools,
3820         including gprmake, so that the same sources in the GNAT repository
3821         can be used by gprbuild.
3822         (Look_For_Sources): If the list of sources is empty, set the object
3823         directory of non extending project to nil.
3824         Change type of path name variables to be Path_Name_Type
3825         (Locate_Directory): Make sure that on Windows '/' is converted to '\',
3826         otherwise creating missing directories will fail.
3827
3828         * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb, 
3829         prj-part.ads, prj-part.adb:
3830         Major update of the Project Manager and of the project aware tools,
3831         including gprmake, so that the same sources in the GNAT repository
3832         can be used by gprbuild.
3833
3834         * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
3835         insensitive flag for attributes with optional index.
3836         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
3837         array attribute, put the index in lower case.
3838         (Parse_Variable_Reference): Allow the current project name to be used in
3839         the prefix of an attribute reference.
3840
3841         * prj-util.ads, prj-util.adb
3842         (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
3843         defaulted to False. When True, always check against indexes in lower
3844         case.
3845
3846         * snames.ads, snames.h, snames.adb: 
3847         Update Project Manager to new attribute names for gprbuild
3848         Allow all valid declarations in configuration project files
3849
3850 2007-08-14  Robert Dewar  <dewar@adacore.com>
3851             Ed Schonberg  <schonberg@adacore.com>
3852
3853         * opt.ads: Warning for non-local exception propagation now off by
3854         default
3855         New switch -gnatI to disable representation clauses
3856         Implement new pragma Implicit_Packing
3857
3858         * usage.adb: 
3859         Warning for non-local exception propagation now off by default
3860         Add warning for unchecked conversion of pointers wi different
3861         conventions.
3862         New switch -gnatI to disable representation clauses
3863
3864         * usage.adb: new switch -gnatyS
3865
3866         * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
3867         note that aggregates of anonymous array types are not flagged.
3868         -gnatwc now includes membership tests optimized away
3869         -gnatw.x warnings are now off by default
3870         Added conditional compilation Appendix
3871         Add documentation of -gnatI
3872         Add documentation for new -gnatyS style check
3873         Update documentation about SAL and auto-init on Windows.
3874
3875         * gnat_rm.texi: 
3876         Add documentation for pragma Check_Name and 'Enabled attribute
3877         Document that Eliminate on dispatching operation is ignored
3878         Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
3879         Document pragma Main
3880         Document pragma Implicit_Packing
3881
3882         * sem_ch13.adb: Add warning for unchecked conversion of pointers wi
3883         different conventions
3884         New switch -gnatI to disable representation clauses
3885
3886         * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
3887         recognized, report the invalid characters including "-gnat" instead of
3888         just the first character in the switch.
3889         New switch -gnatI to disable representation clauses
3890         Set Warn_On_Object_Renames_Function true for -gnatg
3891
3892         * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
3893         Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
3894         Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
3895         to switch -aP (add directory to project search dir).
3896
3897         * par-prag.adb: Implement new pragma Implicit_Packing
3898
3899         * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
3900         type as having a non-standard representation, to force expansion on
3901         conversion to related types.
3902         (Analyze_Pragma): Warn on misspelled pragma
3903         (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
3904         Ensure consistent use of # in error messages
3905         Implement pragma Implicit_Packing
3906
3907 2007-08-14  Olivier Hainque  <hainque@adacore.com>
3908             Eric Botcazou  <ebotcazou@adacore.com>
3909
3910         * targtyps.c (get_target_maximum_default_alignment): New function.
3911         Maximum alignment
3912         that the compiler might choose by default for a type or object.
3913         (get_target_default_allocator_alignment): New function. Alignment known
3914         to be honored by the target default allocator.
3915         (get_target_maximum_allowed_alignment): New function. Maximum alignment
3916         we might accept for any type or object on the target.
3917         (get_target_maximum_alignment): Now synonym of maximum_default_alignment
3918
3919         * gigi.h (get_target_maximum_default_alignment): Declare new function.
3920         (get_target_default_allocator_alignment): Likewise.
3921         (get_target_maximum_allowed_alignment): Likewise.
3922
3923         PR ada/19037
3924         * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the
3925         result of a function call, first try to use a stabilized reference for
3926         a constant renaming too.
3927         (validate_alignment): Use target_maximum_allowed_alignment instead of
3928         MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
3929         (gnat_to_gnu_entity): Use common nodes directly.
3930         (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate
3931         alignment and size for the object.
3932         (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
3933         and N_Procedure_Call_Statement.
3934         (takes_address): Rename to lvalue_required_p, add third parameter
3935         'aliased' and adjust recursive calls.
3936         <N_Indexed_Component>: Update 'aliased' from the array type.
3937         <N_Selected_Component>: New case.
3938         <N_Object_Renaming_Declaration>: New Likewise.
3939         (Identifier_to_gnu): Adjust for above changes.
3940         (maybe_stabilize_reference) <CONST_DECL>: New case.
3941
3942         * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion
3943         between type variants.
3944         (build_simple_component_ref): Likewise.
3945         (build_call_alloc_dealloc): Use target_default_allocator_alignment
3946         instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
3947         aligning type circuitry for allocations from the default storage pool.
3948         (build_allocator): Likewise.
3949         (build_simple_component_ref): Manually fold the reference for a
3950         constructor if the record type contains a template.
3951
3952         * utils.c (value_zerop): Delete.
3953         (gnat_init_decl_processing): Emit debug info for common types.
3954         (rest_of_record_type_compilation): If a union contains a field
3955         with a non-constant qualifier, treat it as variable-sized.
3956         (finish_record_type): Give the stub TYPE_DECL a name.
3957         (rest_of_record_type_compilation): Likewise.
3958         (convert) <CONSTRUCTOR>: New case.  Build a new constructor if
3959         types are equivalent array types.
3960         (create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
3961         even if the type is not passed by reference.
3962         (static_ctors, static_dtors): Delete.
3963         (end_subprog_body): Do not record constructors and destructors.
3964         (build_global_cdtor): Delete.
3965         (gnat_write_global_declarations): Do not call build_global_cdtor.
3966
3967         * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
3968         -fRTS=rtp is specified.
3969         If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
3970         specified.
3971
3972         * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
3973         of the personality function with SJLJ exceptions.
3974
3975         * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
3976         the name of the personality function with SJLJ exceptions.
3977
3978 2007-08-14  Robert Dewar  <dewar@adacore.com>
3979             Ed Schonberg  <schonberg@adacore.com>
3980
3981         * par.ads, par.adb: Improve handling of extra right parens.
3982         (Par): Remove flag From_Limited_With_Clause.
3983
3984         * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
3985         Improve handling of extra right parens.
3986
3987 2007-08-14  Robert Dewar  <dewar@adacore.com>
3988
3989         * par-tchk.adb (TF_Semicolon): Improve error recovery
3990
3991 2007-08-14  Robert Dewar  <dewar@adacore.com>
3992             Ed Schonberg  <schonberg@adacore.com>
3993
3994         * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
3995         enumeration type, mark all literals as referenced.
3996         (Eval_Attribute, case 'Image): If the argument is an enumeration
3997         literal and names are available, constant-fold but mark nevertheless as
3998         non-static.
3999         Clean up function names.
4000         (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
4001         comment.
4002         (Requires_Simple_Name_Prefix): Removed.
4003
4004 2007-08-14  Robert Dewar  <dewar@adacore.com>
4005             Ed Schonberg  <schonberg@adacore.com>
4006
4007         * sem_ch11.adb: Improved warnings for unused variables
4008
4009         * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
4010         is a synchronized interface, the derived type is limited.
4011         (Analyze_Object_Declaration): Mark the potential coextensions in the
4012         definition and expression of an object declaration node.
4013         (Build_Derived_Type): For the completion of a private type declaration
4014         with a derived type declaration, chain the parent type's representation
4015         items to the last representation item of the derived type (not the
4016         first one) if they are not present already.
4017         (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
4018         object declaration of forward references to tags.
4019         (Access_Subprogram_Declaration): In Ada2005, anonymous access to
4020         subprogram types can appear as access discriminants of synchronized
4021         types.
4022         (OK_For_Limited_Init_In_05): The initialization is legal is it is a call
4023         given in prefixed form as a selected component.
4024         (Process_Discriminants): If not all discriminants have defaults, place
4025         error message on a default that is present.
4026         (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
4027         extend a synchronized tagged type.
4028         Improved warnings for unused variables
4029         (Is_Visible_Component): Fix a visibility hole on a component inherited
4030         by a private extension when parent is itself declared as a private
4031         extension, and the derivation is in a child unit.
4032         (Find_Hidden_Interface): Move spec from the package body.
4033
4034 2007-08-14  Robert Dewar  <dewar@adacore.com>
4035             Ed Schonberg  <schonberg@adacore.com>
4036
4037         * sem_ch5.adb: Improve warnings on redundant assignments
4038
4039         * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
4040         parameter
4041         (Is_Synchronized_Tagged_Type): New subprogram that returns true
4042         in case of synchronized tagged types (AARM 3.9.4 (6/2)).
4043         (Safe_To_Capture_Value): Can now return True for constants, even if Cond
4044         is set to False. Improves handling of Known_[Not_]Null.
4045         (Wrong_Type): Special case address arithmetic attempt
4046         (Collect_Abstract_Interfaces): Add new formal to allow collecting
4047         abstract interfaces just using the partial view of private types.
4048         (Has_Abstract_Interfaces): Add new formal to allow checking types
4049         covering interfaces using the partial view of private types.
4050         (Is_Fully_Initialized_Type): Special VM case for uTag component. This
4051         component still needs to be defined in this case, but is never
4052         initialized as VMs are using other dispatching mechanisms.
4053         (Abstract_Interface_List): For a protected type, use base type to get
4054         proper declaration.
4055         Improve warnings on redundant assignments
4056         (Is_Variable): Handle properly an implicit dereference of a prefixed
4057         function call.
4058         (Build_Actual_Subtype): If this is an actual subtype for an
4059         unconstrained formal parameter, use the sloc of the body for the new
4060         declaration, to prevent anomalises in the debugger.
4061
4062 2007-08-14  Robert Dewar  <dewar@adacore.com>
4063
4064         * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
4065         dispatching operation
4066
4067 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4068             Gary Dismukes  <dismukes@adacore.com>
4069
4070         * exp_aggr.ads, 
4071         exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
4072         expanded aggregate code before allocator, and ahead of declaration for
4073         temporary, to prevent access before elaboration when the allocator is
4074         an actual for an access parameter.
4075         (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
4076         the TSD and the table of interfaces.
4077         (Convert_To_Assignments): Augment the test for delaying aggregate
4078         expansion for limited return statements to include the case of extended
4079         returns, to prevent creation of an unwanted transient scope.
4080         (Is_Static_Dispatch_Table_Aggregate): New subprogram.
4081         (Expand_Array_Aggregate): Handle aggregates associated with
4082         statically allocated dispatch tables.
4083         (Expand_Record_Aggregate): Handle aggregates associated with
4084         statically allocated dispatch tables.
4085         (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
4086         of anonymous access type.
4087
4088 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4089
4090         * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
4091         is a variable that renames a slice, use the variable itself in the
4092         expannsion when the renamed expression itself may be modified between
4093         the declaration of the renaming and the array assignment.
4094
4095 2007-08-14  Jerome Guitton  <guitton@adacore.com>
4096
4097         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb, 
4098         s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb, 
4099         s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
4100         New functions; dummy implementations.
4101
4102         * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
4103         functions, used to implement the multi-tasks mode routines on VxWorks.
4104
4105         * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
4106         New functions, thin
4107         binding to the VxWorks routines which have changed between VxWorks 5
4108         and 6.
4109         (Int_Lock, Int_Unlock): New function, thin binding to kernel routines
4110         which are not callable from a RTP.
4111
4112         * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
4113         implemented for the multi-tasks mode on VxWorks 5 and 6.
4114
4115         * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.
4116
4117         * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
4118         functions.
4119
4120 2007-08-14  Vincent Celier  <celier@adacore.com>
4121
4122         * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb, 
4123         gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
4124         mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb, 
4125         mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb, 
4126         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, 
4127         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
4128         mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
4129         procedure.
4130         (Major_Id_Name): New function.
4131         mlib-tgt.ads/mlib.tgt.adb:
4132         (Library_Major_Minor_Id_Supported): New function, default returns True
4133         Most mlib-tgt-*.adb that support shared libraries and symbolic links:
4134         (Build_Dynamic_Library): Add support for major/minor ids for shared libs
4135         Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
4136         Implementation of Library_Major_Minor_Id_Supported returns False
4137         clean.adb:
4138         (Clean_Library_Directory): If major/minor ids are supported, clean all
4139         library files.
4140         Major update of the Project Manager and of the project aware tools,
4141         including gprmake, so that the same sources in the GNAT repository
4142         can be used by gprbuild.
4143
4144 2007-08-14  Olivier Hainque  <hainque@adacore.com>
4145
4146         * system-solaris-x86.ads (ZCX_By_Default): Switch to True.
4147         (GCC_ZCX_Support): Switch to True.
4148         
4149         * s-intman-solaris.adb (Notify_Exception): Call
4150         Adjust_Context_For_Raise before raising, as expected for signal
4151         handlers in general.
4152         
4153         * s-intman-posix.adb (Notify_Exception): Remove declaration of
4154         Adjust_Context_For_Raise, moved to the spec of this unit to be visible
4155         to other implementation bodies.
4156         
4157         * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
4158         be visible by multiple implementation bodies.
4159         
4160         * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
4161         only for conditions coming from hardware.
4162         [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
4163         adjustments to signal context prior to exception raise from signal
4164         handler.
4165         (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
4166         mode.
4167         Solaris section: (__gnat_adjust_context_for_raise): New function.
4168         Implementation of the machine context adjustments to perform prior to
4169         raise from a signal handler. Version for both sparc and x86.
4170         (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
4171         (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
4172         prior to raising as expected for any handler, before possible nested
4173         faults to make sure all the contexts in a chain have been adjusted by
4174         the time we propagate.
4175
4176 2007-08-14  Pascal Obry  <obry@adacore.com>
4177
4178         * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
4179         (SYSTEM_INFO): New record.
4180         (SetThreadIdealProcessor): New imported routine needed for supporting
4181         task_info pragma on Windows.
4182
4183         * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
4184         info can be applied to the current host.
4185         (Create_Task): Set the ideal processor if information is present.
4186
4187         * s-tasinf-mingw.adb, s-tasinf-mingw.ads,
4188         a-exetim-mingw.adb, a-exetim-mingw.ads: New files.
4189
4190 2007-08-14  Olivier Hainque  <hainque@adacore.com>
4191
4192         * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
4193         stack size and initial stack pointer value for a given task.
4194         (Enter_Task): Get the stack attributes of the task we are entering and
4195         let the stack checking engine know about them.
4196
4197         * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
4198         Let the stack-checking engine know about the initial sp value and stack
4199         size associated with the current task.
4200         (Set_Stack_Info): If a stack base has been notified for the current
4201         task, honor it. Fallback to the previous less accurate method otherwise.
4202
4203         * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.
4204
4205 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4206
4207         * sem_ch10.adb: Create a limited view of an incomplete type, to make
4208         treatment of limited views uniform for all visible declarations in a
4209         limited_withed package.
4210         Set flag indicating that a subprogram body for a child unit has a
4211         generated spec.
4212         (Analyze_Compilation_Unit): If unit is a subprogram body that has no
4213         separate declaration, remove the unit name from visibility after
4214         compilation, so that environment is clean for subsequent compilations.
4215         (Install_Limited_Context_Clauses): Do not install a
4216         limited_private_with_clause unless the current unit is a body or a
4217         private child unit.
4218         (Analyze_Subunit, Install_Parents): Treat generic and non-generic units
4219         in the same fashion.
4220         (Install_Limited_Withed_Unit): Do not install a limited with clause if
4221         it applies to the declaration of the current package body.
4222         (Remove_Private_With_Clauses): If there is a regular with_clause for
4223         the unit, delete Private_With_Clause from context, to prevent improper
4224         hiding when processing subsequent nested packages and instantiations.
4225
4226 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
4227
4228         * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
4229         dir/file, device:/dir/file, and device:drive_letter:/dir/file as
4230         representing absolute path names.
4231         __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.
4232
4233         * cstreams.c (__gnat_full_name for VxWorks): Use
4234         __gnat_is_absolute_path to detect whether we need to add the current
4235         directory to normalize the path.
4236
4237 2007-08-14  Javier Miranda  <miranda@adacore.com>
4238
4239         * a-tags.ads, 
4240         a-tags.adb (Displace): Associate a message with the raised CE
4241         exception.
4242         (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
4243         To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
4244         To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
4245         spec.
4246         (Default_Prim_Op_Count): Removed.
4247         (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
4248         Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
4249         Remove pragma Inline_Always.
4250
4251         * rtsfind.ads (Default_Prim_Op_Count): Removed
4252         (Max_Predef_Prims): New entity
4253         (RE_Expanded_Name): Removed
4254         (RE_HT_Link): Removed
4255         (RE_Iface_Tag): Remmoved
4256         (RE_Ifaces_Table): Removed
4257         (RE_Interfaces_Array): Removed
4258         (RE_Interface_Data_Element): Removed
4259         (RE_Nb_Ifaces): Removed
4260         (RE_RC_Offset): Removed
4261         (RE_Static_Offset_To_Top): Removed
4262
4263         * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
4264         formal.
4265         (Build_Inherit_Predefined_Prims): Replace occurrences of Default_
4266         Prim_Op_Count by Max_Predef_Prims.
4267
4268 2007-08-14  Thomas Quinot  <quinot@adacore.com>
4269             Vincent Celier  <celier@adacore.com>
4270
4271         * binde.adb (Elab_All_Links): Remove unnecessary call to
4272         Generic_Separately_Compiled (if a unit satisfies this predicate, there
4273         won't be an associated Afile).
4274         (Elab_All_Links): Fail if a referenced unit cannot be found
4275
4276         * bindgen.adb: 
4277         Fix comments in bindgen regarding consistency checks done in Bcheck:
4278         the checks are made across units within a partition, not across several
4279         partitions.
4280         Fix generation of C binder file for VxWorks.
4281
4282         * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
4283         Generic_May_Lack_ALI, more descriptive of the current use of the
4284         predicate, and update documentation.
4285
4286         * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
4287         reorganization and documentation update for the case of predefined
4288         library generics (for which we do not reference an Afile).
4289
4290 2007-08-14  Robert Dewar  <dewar@adacore.com>
4291
4292         * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
4293         s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
4294         s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
4295         s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
4296         s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
4297         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
4298         s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
4299         s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
4300         exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
4301         s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
4302         s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
4303         a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
4304         s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
4305         g-altcon.adb: Minor reformatting
4306
4307         ada-tree.h: Delete empty line.
4308
4309         ali.ads: Minor reformatting
4310         Clarification of comments.
4311         Minor spelling correction
4312
4313         * exp_dbug.adb: Add Warnings Off to suppress new warning
4314
4315         * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
4316         formal
4317
4318         * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
4319         value
4320
4321         * a-textio.adb (Write): Remove an unnecessary IN OUT mode from
4322
4323         * a-textio.ads: Reorder the standard input/output/error declarations
4324         for consistency.
4325
4326         * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call
4327
4328         * par-ch2.adb: Recognize RM specially in errout
4329         Change 'R'M to RM in all error messages
4330
4331         * scng.adb: Recognize RM specially in errout
4332
4333         * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
4334         N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.
4335
4336         * s-direio.adb: Add missing routine header box.
4337
4338         * sem_attr.ads: Add ??? comments
4339
4340         * sem_eval.adb: Recognize RM specially in errout
4341         Change 'R'M to RM in all error messages
4342
4343         * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes
4344
4345         * s-tasinf.ads: Fix minor comment typo.
4346
4347         * a-cihama.adb: Minor comment addition
4348
4349         * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
4350         formal
4351
4352         * s-tasinf-tru64.ads: Fix minor comment typo.
4353
4354         * itypes.ads: Comment update.
4355
4356         * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
4357         anymore.
4358
4359         * argv.c: Added protection against null gnat_argv and gnat_envp.
4360
4361         * bcheck.adb (Check_Consistency): Use correct markup character ({) in
4362         warning message when Tolerate_Consistency_Errors is True.
4363
4364         * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
4365         Any_Id, as this subprogram is only applicable to *type* entities (it
4366         sets RM_Size). Instead initialize just Esize and Alignment.
4367
4368 2007-08-14  Bob Duff  <duff@adacore.com>
4369
4370         * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads, 
4371         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
4372         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads, 
4373         a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
4374         a-coorse.ads (Next): Applied pragma Inline.
4375         Make all Containers packages Remote_Types (unless they are already
4376         Pure).
4377         (Previous): applied pragma Inline
4378         (Elements_Type): is now a record instead of an array
4379
4380 2007-08-14  Thomas Quinot  <quinot@adacore.com>
4381
4382         * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
4383         of Set_Item.
4384         (Set_Item): When the new item is an element of the currently allocated
4385         table passed by reference, save a copy on the stack if we're going
4386         to reallocate. Also, in Table.Set_Item, make sure we test the proper
4387         variable to determine whether to call Set_Last.
4388
4389         * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
4390         symbols-vms.adb, symbols-processing-vms-alpha.adb,
4391         symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
4392         some occurrences of the pattern
4393            T.Increment_Last;
4394            T.Table (T.Last) := Value;
4395         with a cleaner call to
4396            T.Append (Value);
4397
4398 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4399             Gary Dismukes  <dismukes@adacore.com>
4400             Thomas Quinot  <quinot@adacore.com>
4401
4402         * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
4403         derived type with interface progenitors use the analyzed formal as the
4404         parent of the actual, to create renamings for all the inherited
4405         operations in Derive_Subprograms.
4406         (Collect_Previous_Instances): new procedure within of
4407         Load_Parent_Of_Generic, to instantiate all bodies in the compilation
4408         unit being loaded, to ensure that the generation of global symbols is
4409         consistent in different compilation modes.
4410         (Is_Tagged_Ancestor): New function testing the ancestor relation that
4411         takes progenitor types into account.
4412         (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
4413         traversing over the primitives of the formal and actual types to locate
4414         any abstract subprograms of the actual type that correspond to a
4415         nonabstract subprogram of the formal type's ancestor type(s), and issue
4416         an error if such is found.
4417         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
4418         Instantiate_Package_Body, Instantiate_Subprogram_Body):
4419         Remove bogus guard around calls to Inherit_Context.
4420         (Reset_Entity): If the entity is the selector of a selected component
4421         that denotes a named number, propagate constant-folding to the generic
4422         template only if the named number is global to the generic unit.
4423         (Set_Instance_Env): Only reset the compilation switches when compiling
4424         a predefined or internal unit.
4425
4426 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4427
4428         * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
4429         parameter to determine whether operation applies to the prefix.
4430         (Complete_Object_Operation): If actual has an access type and
4431         controlling formal is not an in_parameter, reject the actual if it is
4432         an access_to_constant type.
4433         (Try_Primitive_Operation): If the type of the prefix is a formal tagged
4434         type, the candidate operations are found in the scope of declaration of
4435         the type, because the type has no primitive subprograms.
4436         (Analyze_Selected_Component): If prefix is class-wide, and root type is
4437         a private extension, only examine visible components before trying to
4438         analyze as a prefixed call.
4439         Change Entity_List to Type_To_Use, for better readability.
4440         (Has_Fixed_Op): Use base type when checking whether the type of an
4441         operator has a user-defined multiplication/division
4442         (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
4443         user-defined operators are available for fixed-point types.
4444
4445 2007-08-14  Thomas Quinot  <quinot@adacore.com>
4446             Ed Schonberg  <schonberg@adacore.com>
4447
4448         * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
4449         formal At_Any_Place indicating, when True, that we want to test for
4450         availability of the stream attribute at any place (as opposed to the
4451         current visibility context only).
4452         (Missing_Read_Write_Attributes): A stream attribute is missing for the
4453         purpose of enforcing E.2.2(8) only if it is not available at any place.
4454         Take into account the Ada2005 pragma Has_Preelaborable_Initialization
4455         when checking the legality of an extension aggregate in a preelaborable
4456         package. Treat the literal null as a valid default expression in a
4457         component declaration for a type with preelaborable initialization.
4458         A limited interface is a legal progenitor for the designated type of a
4459         remote access to class-wide type.
4460
4461 2007-08-14  Thomas Quinot  <quinot@adacore.com>
4462             Ed Schonberg  <schonberg@adacore.com>
4463
4464         * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
4465         reference): Use correct entity as denoted entity for the selector of
4466         the rewritten node.
4467         (Find_Direct_Name): Add comment about Generate_Reference incorrectly
4468         setting the Referenced_As_LHS flag for entities that are implicitly
4469         dereferenced.
4470         (Find_Type): If the type is an internally generated incomplete type,
4471         mark the full view as referenced, to prevent spurious warnings.
4472         (Find_Selected_Component, Has_Components): Handle properly non-limited
4473         views that are themselves incomplete types.
4474         Handle interfaces visible through limited-with clauses.
4475         (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
4476         subprogram generic actual for which we have generated a renaming.
4477         Warn when the renaming introduces a homonym of
4478         the renamed entity, and the renamed entity is directly visible.
4479
4480 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4481             Hristian Kirtchev  <kirtchev@adacore.com>
4482
4483         * sem_res.adb (Resolve_Allocator): Propagate any coextensions that
4484         appear in the subtree to the current allocator if it is not a static
4485         coextension.
4486         (Resolve_Allocator): Perform cleanup if resolution has determined that
4487         the allocator is not a coextension.
4488         (Resolve): Skip an interpretation hidden by an abstract operator only
4489         when the type of the interpretation matches that of the context.
4490         (Resolve): When looping through all possible interpretations of a node,
4491         do not consider those that are hidden by abstract operators.
4492         (Resolve_Actuals): When verifying that an access to class-wide object
4493         is an actual  for a controlling formal, ignore anonymous access to
4494         subprograms whose return type is an access to class_wide type.
4495         (Resolve_Slice): If the prefix of the slice is a selected component
4496         whose type depends on discriminants, build its actual subtype before
4497         applying range checks on the bounds of the slice.
4498         (Valid_Conversion): In an instance or inlined body, compare root types,
4499         to prevent anomalies between private and public views.
4500         (Resolve): Improve error message for ambiguous fixed multiplication
4501         expressions that involve universal_fixed multiplying operations.
4502
4503 2007-08-14  Javier Miranda  <miranda@adacore.com>
4504             Hristian Kirtchev  <kirtchev@adacore.com>
4505
4506         * exp_ch9.adb (Build_Protected_Entry): Propagate the original source
4507         location to allow the correct generation of errors in case of
4508         restrictions applied to the expanded code.
4509         (Expand_Entry_Barrier): Remove all generated renamings for a barrier
4510         function if the condition does not reference them.
4511         (Expand_Entry_Body_Declarations): Mark the index constant as having a
4512         valid value.
4513
4514 2007-08-14  Thomas Quinot  <quinot@adacore.com>
4515
4516         * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
4517         typecode parameters for a union (in a variant record), remove
4518         extraneous layer of Any wrapping for member label.
4519         (Expand_Receiving_Stubs_Bodies): For an RCI package body that has
4520         elabration statements, register the package with the name server
4521         at the beginning, not at the end, of the elaboration statements so
4522         that they can create remote access to subprogram values that designate
4523         remote subprograms from the package.
4524
4525 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
4526
4527         * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
4528         values to compute the number of seconds since the Unix Epoc in order to
4529         account for Daylight Savings Time. Perform special processing for dates
4530         that are earlier than the Unix Epoc to obtain a negative number.
4531
4532 2007-08-14  Emmanuel Briot  <briot@adacore.com>
4533
4534         * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
4535         switches.
4536
4537 2007-08-14  Eric Botcazou  <ebotcazou@adacore.com>
4538
4539         * gnatlink.adb (Gnatlink): Pass switches to the linker even if the
4540         binder-generated file is not in Ada.
4541         Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
4542         recorded in the ALI file.
4543         Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.
4544
4545 2007-08-14  Vincent Celier  <celier@adacore.com>
4546
4547         * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
4548         (Output_Source): Do nothing if parameter is No_Sdep_Id
4549
4550         * make.adb (Gnatmake): Do not rebuild an archive simply because a
4551         shared library it imports has a later time stamp.
4552         (Check): Resolve the symbolic links in the path name of the object
4553         directory.
4554         Check that the ALI file is in the correct object directory
4555         Check if a file name does not correspond to the mapping of units
4556         to file names.
4557         (Display_Version): New procedure
4558         (Initialize): Process switches --version and --help
4559         Use type Path_Name_Type for path name
4560
4561 2007-08-14  Paul Hilfinger  <hilfinger@adacore.com>
4562
4563         * impunit.adb: Re-organize System.Random_Numbers and
4564         GNAT.Random_Numbers and add to builds.
4565
4566         * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*
4567
4568         * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.
4569
4570         * a-assert.ads, a-assert.adb: New files.
4571
4572 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
4573
4574         * layout.adb (Layout_Type): In the case of access-to-subprogram types,
4575         if AAMP_On_Target is True, then the size of the type encompasses two
4576         addresses (a static link and a subprogram address), except in the case
4577         of library-level access types.
4578
4579 2007-08-14  Vincent Celier  <celier@adacore.com>
4580
4581         * output.ads, output.adb (Write_Eol): Remove trailing spaces before
4582         writing the line.
4583         (Write_Eol_Keep_Blanks): New procedure to write a line, including
4584         possible trailing spaces.
4585         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
4586
4587 2007-08-14  Javier Miranda  <miranda@adacore.com>
4588
4589         * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
4590         null-excluding access types.
4591
4592 2007-08-14  Javier Miranda  <miranda@adacore.com>
4593
4594         * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
4595         that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
4596         of private types add missing check on matching interfaces in the
4597         partial and full declarations.
4598         (Analyze_Protected_Type): Code cleanup.
4599         (Analyze_Task_Type): Code cleanup.
4600
4601 2007-08-14  Javier Miranda  <miranda@adacore.com>
4602
4603         * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
4604         generated interface thunk.
4605
4606 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4607
4608         * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
4609         obsolescent warning on application of 'Class to an incomplete type.
4610
4611         * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
4612         prevent obsolescent warning on application of 'Class to an incomplete
4613         type.
4614
4615 2007-08-14  Pascal Obry  <obry@adacore.com>
4616
4617         * s-fileio.adb (Is_Open): Add check for usability of the underlying
4618         file stream.
4619
4620 2007-08-14  Cyrille Comar  <comar@adacore.com>
4621
4622         * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
4623         since it is potentially used in cases implying double finalization of
4624         the same object.
4625
4626 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
4627
4628         * s-tasini.adb (Get_Stack_Info): Move this function to
4629         System.Soft_Links.Tasking because it is common to the full and the
4630         restricted run times.
4631         (Init_RTS): Do not set the Get_Stack_Info soft link because it is done
4632         in SSL.Tasking.Init_Tasking_Soft_Links.
4633
4634         * s-solita.adb (Get_Stack_Info): Function moved from
4635         System.Tasking.Initialization because it is common to the full and the
4636         restricted run times.
4637         (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.
4638
4639 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
4640
4641         * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
4642         s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
4643         (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
4644         parameter.
4645
4646         * s-tassta.adb (Task_Wrapper): Increased value of the small overflow
4647         guard to 12K.
4648
4649 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
4650
4651         * s-veboop.adb (SU): New named number initialized to
4652         System.Storage_Unit.
4653         (True_Val): The initialization expression is revised to use SU (=
4654         Storage_Unit) rather than assuming 8 for the component size of an
4655         unpacked Boolean array.
4656
4657 2007-08-14  Tristan Gingold  <gingold@adacore.com>
4658
4659         * tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
4660
4661         * tb-ivms.c: New file.
4662
4663         * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2
4664
4665 2007-08-14  Geert Bosch  <bosch@adacore.com>
4666
4667         * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
4668         s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
4669         Add required linker pragmas for automatically linking with the gnalasup
4670         linear algebra support library, and the systems math library.
4671         Rename cdot to cdotu and zdot to zdotu.
4672         Update header comment to describe purpose of package.
4673
4674 2007-08-14  Thomas Quinot  <quinot@adacore.com>
4675
4676         * exp_ch7.adb (Find_Final_List): For an anonymous access type that has
4677         an explicitly specified Associated_Final_Chain, use that list.
4678         (Expand_N_Package_Body): Build dispatch tables of library level tagged
4679         types.
4680         (Expand_N_Package_Declaration): Build dispatch tables of library level
4681         tagged types. Minor code cleanup.
4682
4683 2007-08-14  Vincent Celier  <celier@adacore.com>
4684
4685         * gnatchop.adb (Terminate_Program): Remove exception and use
4686         Types.Terminate_Program instead.
4687
4688         * osint.ads, osint.adb (Current_Exit_Status): New global variable
4689         (Find_Program_Name): Added protection against empty name.
4690         (OS_Exit_Through_Exception): New procedure
4691
4692         * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
4693         (OS_Exit_Default): New procedure that contains the previous
4694         implementation of procedure OS_Exit.
4695         (Final_Value): Remove obsolete Interix stuff.
4696
4697 2007-08-14  Thomas Quinot  <quinot@adacore.com>
4698
4699         * g-socket.ads: Reorganize example code so that it also works on
4700         Windows XP.
4701
4702 2007-08-14  Tristan Gingold  <gingold@adacore.com>
4703
4704         * g-trasym.ads: AIX now supports symbolic backtraces.
4705
4706 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4707
4708         * lib-load.adb (From_Limited_With_Chain): Always scan the stack of
4709         units being loaded to detect circularities. A circularity may be
4710         present even if the current chain of pending units to load starts from
4711         a limited_with_clause.
4712
4713         * lib-load.ads: Change profile of Load_Unit to use a with_clause
4714         rather than a boolean flag, in order to detect circularities in
4715         with_clauses.
4716
4717         * par-load.adb: Use current with_clause in calls to Load_Unit, rather
4718         than propagating the From_Limited_With flag, in order to handle
4719         properly circularities involving with_clauses.
4720
4721 2007-08-14  Nicolas Setton  <setton@adacore.com>
4722
4723         * link.c (FreeBSD): Add "const" keyword where needed, to eliminate
4724         warnings.
4725
4726 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
4727
4728         * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
4729         to build for libgnala.
4730         libgnat: Add rules to build libgnala.a
4731         (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
4732         target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
4733         Add s-osinte-vxworks-kernel.adb to the target pairs of the
4734         kernel run-time lib for VxWorks 6, which would provide a different
4735         implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
4736         x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
4737         running ZCX by default.
4738         Add g-sttsne-locking to LynxOS version.
4739         Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
4740         On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.
4741
4742         * system-darwin-x86.ads: New file.
4743
4744         * Make-lang.in: Delete files before copying onto them, so if they are
4745         read-only, the copy won't fail.
4746         Update dependencies
4747
4748 2007-08-14  Pascal Obry  <obry@adacore.com>
4749
4750         * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
4751         naming scheme.
4752
4753 2007-08-14  Vincent Celier  <celier@adacore.com>
4754
4755         * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
4756         (Gcc): Initialize Gcc_Name at the first call
4757
4758 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4759
4760         * sem_ch7.adb (Analyze_Package_Specification): Do not install private
4761         with_clauses of the enclosing unit when analyzing the package
4762         specification of a nested instance.
4763
4764 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
4765
4766         * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
4767         (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
4768         Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
4769         layout of N_Allocator.
4770
4771 2007-08-14  Thomas Quinot  <quinot@adacore.com>
4772
4773         * rtsfind.adb (Check_RPC): Add PCS version check.
4774
4775         * gnatvsn.ads, gnatvsn.adb: Add PCS version.
4776         (Gnat_Free_Software): New function.
4777
4778         * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
4779         the PCS_Version value from s-parint, used to check that it is consistent
4780         with what exp_dist expects.
4781
4782         * s-parint.ads (PCS_Version): New entity for checking consistency
4783         between exp_dist and PCS.
4784
4785         * gen-soccon.c: (SO_REUSEPORT): New constant.
4786
4787 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
4788
4789         * a-calfor.adb (Image (Duration; Boolean)): Change type of local
4790         variable Sub_Second to Duration in order to accomodate a larger range
4791         of arithmetic operations.
4792
4793 2007-08-14  Bob Duff  <duff@adacore.com>
4794
4795         * g-sttsne-locking.ads: Move comments from spec to body.
4796         * g-sttsne-locking.adb: Move comments from spec to body.
4797         * g-sttsne-vxworks.ads: Removed.
4798         * g-sttsne-vxworks.adb: Removed.
4799
4800 2007-08-11  Ian Lance Taylor  <iant@google.com>
4801
4802         * misc.c (gnat_get_alias_set): Change return type to
4803         alias_set_type.
4804
4805 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4806
4807         * decl.c, utils2.c: Fix whitespace in last change.
4808
4809 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4810
4811         * decl.c (compare_field_bitpos): Constify.
4812         * utils2.c (compare_elmt_bitpos): Likewise.
4813
4814 2007-07-27  Aurelien Jarno  <aurelien@aurel32.net>
4815
4816         * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by 
4817         anonymous access type.
4818         (pthread_sigmask): Now take an access sigset_t.
4819
4820 2007-07-05  Joel Sherrill <joel.sherrill@oarcorp.com>
4821
4822         * s-osinte-rtems.ads: Correct prototype of pthread_sigmask.
4823         
4824 2007-06-21  Eric Botcazou  <ebotcazou@adacore.com>
4825
4826         PR tree-optimization/25737
4827         * misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
4828
4829 2007-06-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4830
4831         * trans.c (Attribute_to_gnu): When subtracting an
4832         offset from a pointer, use POINTER_PLUS_EXPR with
4833         NEGATE_EXPR instead of MINUS_EXPR.
4834         (gnat_to_gnu): Likewise.
4835         * utils.c (convert): When converting between
4836         thin pointers, use POINTER_PLUS_EXPR and sizetype
4837         for the offset.
4838         * utils2.c (known_alignment): POINTER_PLUS_EXPR
4839         have the same semantics as PLUS_EXPR for alignment.
4840         (build_binary_op): Add support for the semantics of
4841         POINTER_PLUS_EXPR's operands.
4842         When adding an offset to a pointer, use POINTER_PLUS_EXPR.
4843
4844 2007-06-11  Rafael Avila de Espindola  <espindola@google.com>
4845
4846         * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
4847         of get_signed_or_unsigned_type.
4848         * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.
4849
4850 2007-06-11  Bob Duff  <duff@adacore.com>
4851             Thomas Quinot  <quinot@adacore.com>
4852
4853         * g-stsifd-sockets.adb (Create): Work around strange behavior of
4854         'bind' on windows that causes 'connect' to fail intermittently, by
4855         retrying the 'bind'.
4856         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
4857
4858 2007-06-10  Duncan Sands  <baldrick@free.fr>
4859
4860         * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
4861         than to void, for the fields when making a new fat pointer type.
4862         (gnat_substitute_in_type): Now substitute_in_type.
4863         * gigi.h (gnat_substitute_in_type): Likewise.  Adjust recursive calls.
4864         * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
4865         * utils.c (update_pointer_to): Update fat pointers by updating the
4866         dummy node pointers used for the fields.
4867
4868 2007-06-06  Thomas Quinot  <quinot@adacore.com>
4869             Bob Duff  <duff@adacore.com>
4870
4871         * g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
4872         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads, 
4873         g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads:  Add new
4874         constant Thread_Blocking_IO, always True by default, set False
4875         on a per-runtime basis.
4876         (Need_Netdb_Buffer): New constant.
4877
4878         * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
4879         g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
4880         files.
4881
4882         * g-socthi-vxworks.ads, g-socthi-vxworks.adb,
4883         g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
4884         Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
4885         child package Task_Safe_NetDB
4886         (Host_Error_Messages): Add stub body.
4887         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
4888
4889         * g-soccon-mingw.ads: Add Windows-specific constants.
4890         (Need_Netdb_Buffer): New constant.
4891         (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
4892         wrapper and import inet_addr(3) from the standard sockets library
4893         directly instead.
4894         (In_Addr): Add alignment clause.
4895         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
4896
4897 2007-06-06  Robert Dewar  <dewar@adacore.com>
4898
4899         * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
4900         s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
4901         s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
4902         s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
4903         s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
4904         s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
4905         a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
4906         a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
4907         a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
4908         g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
4909         g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
4910         i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
4911         s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
4912         s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
4913         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
4914         s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
4915         s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
4916         s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
4917         s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
4918         s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
4919         s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
4920         s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
4921         s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
4922         s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
4923         s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
4924         s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
4925         s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
4926         s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
4927         s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
4928         s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
4929         s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
4930         a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
4931         Unchecked_* by Ada.Unchecked_*
4932
4933 2007-06-06  Robert Dewar  <dewar@adacore.com>
4934
4935         * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
4936         s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
4937         g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
4938         output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
4939         g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
4940         a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.
4941
4942         * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
4943         s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
4944         s-tasloc.adb, s-tasloc.ads: New files.
4945
4946 2007-06-06  Bob Duff  <duff@adacore.com>
4947
4948         * g-expect-vms.adb: 
4949         (Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
4950         * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
4951         (Send_Signal, Close): Raise Invalid_Process if the process id is
4952         invalid.
4953         (Pattern_Matcher_Access): Is now a general access type to be able to
4954         use aliased string.
4955
4956 2007-06-06  Thomas Quinot  <quinot@adacore.com>
4957             Arnaud Charlet  <charlet@adacore.com>
4958
4959         * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
4960         (SIGEMT is now used instead of SIGTERM on AIX).
4961
4962         * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads.
4963         (Time_Slice_Supported): Set to True.
4964         Use SIGEMT instead of SIGTERM as SIGADAABORT.
4965
4966 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
4967
4968         * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-"
4969         (Time, Time)): Use To_Relative_Time rather than manual calculation to
4970         express the bounds of Duration as Time. Raise Time_Error when the
4971         result is greater or equal to the higher bound of Duration (on the
4972         margin case).
4973         ("+" (Time, Duration)): Reorder code. Remove the declaration of constant
4974         Ada_High_And_Leaps.
4975         ("-" (Time, Duration)): Reorder code. Remove the declaration of constant
4976         Ada_High_And_Leaps.
4977         ("-" (Time, Time)): Reorder code.
4978         (All_Leap_Seconds): Removed.
4979         (Arithmetic_Operations.Add): Remove sign related kludge.
4980         (Arithmetic_Operations.Difference): Control the leaps seconds processing
4981         with flag Leap_Support.
4982         (Arithmetic_Operations.Subtract): Remove sign related kludge.
4983         (Check_Within_Time_Bounds): New procedure.
4984         (Clock): Control the leap seconds processing with flag Leap_Support.
4985         (Cumulative_Leap_Seconds): Assert that the target supports leap seconds.
4986         (Formatting_Operations.Split): Control the leap seconds processing with
4987         flag Leap_Support.
4988         (Formatting_Operations.Time_Of): Control the leaps seconds processing
4989         with flag Leap_Support. Adjust the year, month and day (if applicable)
4990         when the value of day seconds designates a new day.
4991         (Split): Use parameter associations for better readability. Integrate
4992         flag Is_Ada_05.
4993         (Time_Of): Use parameter associations for better readability. Integrate
4994         flag Is_Ada_05.
4995
4996         * a-calfor.adb (Split): Use parameter associations for better
4997         readability. Integrate flag Is_Ada_05.
4998         (Time_Of): Remove flag Leap_Checks. Use parameter associations for
4999         better readability. Integrate flag Is_Ada_05.
5000
5001 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
5002
5003         * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb, 
5004         s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb, 
5005         s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb, 
5006         s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads, 
5007         s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb, 
5008         s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb, 
5009         s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads, 
5010         s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads, 
5011         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads, 
5012         s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb,
5013         s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base
5014         time when entering this routine to detect a backward clock setting
5015         (manual setting or DST adjustment), to avoid waiting for a longer delay
5016         than needed.
5017         (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant.
5018         Remove handling of deferred priority change, and replace by setting the
5019         task priority directly, as required by AI-188.
5020         Update comments.
5021         (Max_Task_Image_Length): New constant.
5022         Replace Warnings (Off) by Unreferenced pragma, cleaner.
5023         (Dynamic_Priority_Support): Removed, no longer needed.
5024         (Poll_Base_Priority_Change): Ditto.
5025         (Set_Ceiling): Add this procedure to change the ceiling priority
5026         associated to a lock. This is a dummy implementation because dynamic
5027         priority ceilings are not supported by the underlying system.
5028
5029         * a-dynpri.adb (Set_Priority): Take into account case where Target is
5030         accepting a RV with its priority boosted.
5031         Remove handling of deferred priority change, and replace by setting the
5032         task priority directly, as required by AI-188.
5033
5034         * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for
5035         Succeeded = True.
5036         Remove handling of deferred priority change, and replace by setting the
5037         task priority directly, as required by AI-188.
5038         (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state
5039         of Self_Id earlier.
5040
5041         * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion.
5042         (Poll_Base_Priority_Change): Removed.
5043         Code clean up: use SSL.Current_Target_Exception.
5044
5045         * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks
5046         to run as this is a potentially dispatching point.
5047         (Call_Synchronous): Use Local_Defer_Abort.
5048         (Callable): Relax assertion.
5049         (Selective_Wait): Relax assertion in case abort is not allowed.
5050         Remove handling of deferred priority change, and replace by setting the
5051         task priority directly, as required by AI-188.
5052
5053         * s-tasuti.adb (Make_Passive): Adjust assertions.
5054         Remove handling of deferred priority change, and replace by setting the
5055         task priority directly, as required by AI-188.
5056
5057 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
5058
5059         * system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
5060         system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, 
5061         system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads, 
5062         system-vxworks-mips.ads, system-vxworks-alpha.ads, 
5063         system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads, 
5064         system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads, 
5065         system-interix.ads, system-linux-hppa.ads, system-tru64.ads, 
5066         system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads, 
5067         system-solaris-sparcv9.ads, system-vms.ads, system.ads,
5068         system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads,
5069         system-linux-ia64.ads: Document mapping between Ada and OS priorities.
5070         This patch changes the largest non-binary modulus from 2**31-1 to
5071         2**32-1.
5072         (Compiler_System_Version): Removed, no longer used.
5073         Clean up system files by removing flags only used on a single target.
5074         Also remove obsolete flags, only used during bootstrap from system.ads
5075         (Address): Add a pragma Preelaborable_Initialization.
5076
5077         * system-aix.ads:  Ditto.
5078         (GCC_ZCX_Support): Set to true.
5079         Update priority range on AIX and map Ada priorities to target
5080         priorities appropriately for different scheduling policies.
5081
5082         * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1
5083
5084 2007-06-06  Vincent Celier  <celier@adacore.com>
5085
5086         * mlib-tgt-specific.adb, mlib-tgt-specific.ads,
5087         mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files.
5088
5089         * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb, 
5090         mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb, 
5091         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, 
5092         mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, 
5093         mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package
5094         MLib.Tgt, containing the default versions of the exported subprograms.
5095         For each platform, create a specific version of the body of new child
5096         package MLib.Tgt.Specific that contains only the body of subprograms
5097         that are different from the default.
5098         (Archive_Builder_Append_Options): New function.
5099
5100 2007-06-06  Matthew Gingell  <gingell@adacore.com>
5101
5102         * s-osinte-aix.adb: Map Ada priorities to target priorities
5103         appropriately for different scheduling policies.
5104
5105 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
5106
5107         * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely
5108         its C counterpart.
5109         Remove references to Unchecked_Conversion, and use Ada.xxx instead.
5110         Replace Unchecked_Conversion by Ada.Unchecked_Conversion. 
5111
5112 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
5113
5114         * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure.
5115         Noop on VMS, added for interface commonality.
5116
5117 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
5118             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5119             Olivier Hainque  <hainque@adacore.com>
5120
5121         * decl.c (gnat_to_gnu_entity) <object>: Manually mark the top of the
5122         renamed expression of a full renaming at toplevel.
5123         (gnat_to_gnu_entity, case object): If not defining, do not look inside
5124         the values the constant is initialized to if it is an N_Allocator.
5125         (gnat_to_gnu_entity) <E_Array_Subtype>: Manually mark the top of the
5126         TYPE_SIZE_UNIT of inner types after the stride is elaborated.
5127         (make_aligning_type): Accept an extra ROOM argument for storage to be
5128         made available before the aligned field, and an extra BASE_ALIGN
5129         argument for callers to pass the alignment guaranteed to be honored for
5130         the whole aligning object. Avoid call to finish_record_type, which only
5131         interferes with the sizes we want to set.
5132         (gnat_to_gnu_entity) <E_Variable>: Pass the required extra arguments to
5133         make_aligning_type for super-aligned objects on stack.
5134         (components_to_record): Pass the adjusted size of the type when creating
5135         fields in the qualified union for the variant part.
5136         (gnat_substitute_in_type): Copy TYPE_USER_ALIGN.
5137         (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for
5138         packed array type.
5139         (maybe_pad_type): Set TYPE_USER_ALIGN.
5140         (make_aligning_type): Likewise.
5141         ALIGN argument is unsigned int.
5142         (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism.
5143         (gnat_to_gnu_param): Likewise, for parameters.
5144         (gnat_to_gnu_entity) <object>: Always instantiate the renaming object
5145         if it is constant and stems from a function call.
5146         (gnat_to_gnu_entity) <E_Record_Type>: Set packed to -2 if the alignment
5147         of the record is specified.  Adjust accordingly.
5148         (adjust_packed): New static function.
5149         (gnat_to_gnu_field): Use it to adjust the packedness setting.
5150         (components_to_record): Likewise.
5151         (gnat_to_gnu_entity) <object>: Do not test the renamed expression for
5152         side-effects if the object is deemed constant.
5153         (gnat_to_gnu_entity) <E_Array_Type>: Create a name for the fat pointer
5154         type instead of merely finalizing it.  Tidy.
5155         <E_Access_Subprogram_Type>: Retrieve the type from the TYPE_DECL.
5156         <E_Access_Type>: Likewise.
5157         (defer_debug_incomplete_list): Rename to defer_finalize_list.
5158         (defer_debug_level): Delete.
5159         (gnat_to_gnu_entity) <debug_deferred>: Likewise
5160         <E_Array_Type>: Call rest_of_record_type_compilation on the fat pointer
5161         type.
5162         <E_Record_Type>: Do not explicitly defer finalizing the type.
5163         Adjust for write_record_type_debug_info renaming.
5164         <E_Subprogram_Type>: Likewise.
5165         Finalize deferred types right after deferred incomplete types are
5166         expanded.
5167         (rest_of_type_decl_compilation): New global function.
5168         (components_to_record): Rename defer_debug parameter to do_not_finalize.
5169         (components_to_record): Propagate the packedness to the fields of the
5170         qualified union type if there is a variant part.
5171         (gnat_to_gnu_entity) <E_Array_Type>: Use new function
5172         instead of inline code to adjust the XUT field offsets.
5173         (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type.
5174         <E_Record_Subtype>: Do not let finish_record_type compute the sizes
5175         and write the debug info if the type derives from a discriminated one.
5176         (gnat_to_gnu_entity) <E_Array_Type>: Adjust call to create_index_type.
5177         <E_Array_Subtype>: Likewise.
5178         <E_String_Literal_Subtype>: Likewise.
5179         (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have
5180         an alignment clause.
5181         (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN
5182         before giving warning.
5183         (prepend_one_attribute_to): New function, helper to prepend an attribute
5184         to an attribute list.
5185         (gnat_to_gnu_entity) <E_Procedure>: Use it.
5186         (prepend_attributes): Likewise.
5187         (gnat_to_gnu_entity) <E_Variable>: Use constants of the proper type.
5188         <E_Array_Type>: Declare the padding type for the element type, if any.
5189         <E_Array_Subtype>: Likewise.
5190         (defer_limited_with): New variable.
5191         (Gigi_Equivalent_Type): New function.
5192         (gnat_to_gnu_entity): Use it at start and use result throughout.
5193         (gnat_to_gnu_entity, case E_Access_Type): Rework to use
5194         Gigi_Equivalent_Type, support Limited_With, allow two levels of
5195         indirection, precompute if unconstrained array to simplify logic, and
5196         use defer_limited_with to defer elaboration of some types from limited
5197         with.
5198         (finalize_from_with_types): New function.
5199
5200 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
5201             Eric Botcazou  <ebotcazou@adacore.com>
5202             Tristan Gingold  <gingold@adacore.com>
5203             Olivier Hainque  <hainque@adacore.com>
5204
5205         * trans.c (Identifier_to_gnu): Change test for deferred constant by
5206         adding guard that the entity is an E_Constant before testing presence
5207         of Full_view (and remove unnecessary test that entity is not a type).
5208         For a CONST_DECL used by reference, manually retrieve
5209         the DECL_INITIAL.  Do not invoke fold in the other DECL_P cases either.
5210         (struct language_function): Move from utils.c to here.
5211         (struct parm_attr): New structure.
5212         (parm_attr, parm_attr vector, parm_attr GC vector): New types.
5213         (f_parm_attr_cache): New macro.
5214         (Attribute_to_gnu) <Attr_Length>: When not optimizing, cache the
5215         expressions for the 'First, 'Last and 'Length attributes of the
5216         unconstrained array IN parameters.
5217         (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout.
5218         Allocate the information structure for the function earlier, as well
5219         as the language-specific part.
5220         If the parameter attributes cache has been populated, evaluate the
5221         cached expressions on entry.
5222         (takes_address): Add OPERAND_TYPE parameter.  Handle N_Function_Call,
5223         N_Procedure_Call_Statement and N_Indexed_Component.
5224         (Pragma_to_gnu): Translate inspection_point to an asm statement
5225         containaing a comment and a reference to the object (either its address
5226         for BLKmode or its value).
5227         (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide
5228         to go to DECL_INITIAL. Together with the size constraint relaxation
5229         in create_var_decl, enlarges the set of situations in which an
5230         identifier may be used as an initializer without implying elaboration
5231         code.
5232         (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set
5233         DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the
5234         node.
5235         (maybe_stabilize_reference): Remove lvalues_only parameter.
5236         (gnat_stabilize_reference): Adjust for above change.
5237         (gnat_to_gnu): Do not set location information on the result
5238         if it is a reference.
5239         (add_cleanup): Add gnat_node parameter and set the location of the
5240         cleanup to it.
5241         (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup.
5242         (Exception_Handler_to_gnu_zcx): Likewise.
5243         (gigi): Remove the cgraph node if the elaboration procedure is empty.
5244         (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit
5245         the former right after the latter.
5246         (start_stmt_group): Make global.
5247         (end_stmt_group): Likewise.
5248         (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New
5249         vars.
5250         (gnu_program_error_label_stack): Likewise.
5251         (gigi): Initialize them.
5252         (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise.
5253         (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label):
5254         New cases.
5255         (push_exception_label_stack): New function.
5256         (takes_address): New function.
5257
5258         * utils.c (struct language_function): Move to trans.c from here.
5259         (unchecked_convert): Do not wrap up integer constants in
5260         VIEW_CONVERT_EXPRs.
5261         (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent
5262         the latter for aggregate types, unexpected by later passes, and relax an
5263         arbitrary size constraint on the former.
5264         (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p
5265         to compare the sizes.
5266         (convert_vms_descriptor): When converting to a fat pointer type, be
5267         prepared for a S descriptor at runtime in spite of a SB specification.
5268         (shift_unc_components_for_thin_pointers): New function.
5269         (write_record_type_debug_info): For variable-sized fields, cap the
5270         alignment of the pointer to the computed alignment.
5271         (finish_record_type): Change HAS_REP parameter into REP_LEVEL.
5272         If REP_LEVEL is 2, do not compute the sizes.
5273         (build_vms_descriptor): Adjust for new prototype of finish_record_type.
5274         (build_unc_object_type): Likewise.
5275         (declare_debug_type): New function.
5276
5277         * ada-tree.def: USE_STMT: removed (not emitted anymore).
5278
5279         * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because
5280         no statement is expandable anymore.
5281         (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice.
5282         (gnat_handle_option): Only allow flag_eliminate_debug_types to be set
5283         when the user requested it explicitely.
5284         (gnat_post_options): By default, set flag_eliminate_unused_debug_types
5285         to 0 for Ada.
5286         (get_alias_set): Return alias set 0 for a type if
5287         TYPE_UNIVERSAL_ALIASING_P is set on its main variant.
5288
5289         * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro.
5290         (DECL_FUNCTION_STUB): New accessor macro.
5291         (SET_DECL_FUNCTION_STUB): New setter macro.
5292
5293         * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada.
5294
5295         * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New
5296         declarations.
5297
5298 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
5299
5300         * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal):
5301         Rename to Abort_Task_Interrupt to be able to keep the same interface
5302         as the rest of the targets.
5303
5304         * s-osinte-vxworks.ads s-osinte-vxworks.adb
5305         (To_VxWorks_Priority): Remove explicit "in" mode indicator
5306
5307         * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads:
5308         New files.
5309
5310 2007-06-06  Robert Dewar  <dewar@adacore.com>
5311
5312         * a-chahan.ads: Remove obsolescent pragmas
5313
5314         * a-chlat1.ads: Minor reformatting
5315
5316 2007-06-06  Robert Dewar  <dewar@adacore.com>
5317
5318         * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface
5319         for Errout
5320
5321         * errout.adb: New Finalize/Compilation_Errors/Output_Messages
5322         implementation
5323
5324         * errout.ads (Finalize): Changed interface
5325         (Output_Messages): New procedure
5326         (Compilation_Errors): New Interface
5327
5328         * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New
5329         Finalize/Output_Messages interface for Errout
5330         (Prepare_To_Preprocess): New Finalize/Output_Messages interface for
5331         Errout.
5332
5333 2007-06-06  Thomas Quinot  <quinot@adacore.com>
5334             Olivier Hainque  <hainque@adacore.com>
5335             Robert Dewar  <dewar@adacore.com>
5336
5337         * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18)
5338         check.
5339         (Raise_Current_Excep): Call Debug_Raise_Exception just before
5340         propagation starts, to let debuggers know about the event in a reliable
5341         fashion.
5342         (Local_Raise): Moved to System.Exceptions
5343         More convenient to have this as a separate unit
5344
5345         * s-except.adb, s-except.ads: New files.
5346
5347         * a-exextr.adb (Unhandled_Exception): Delete - replaced by
5348         Debug_Unhandled_Exception in System.Exceptions where it belongs
5349         together with a couple of other debug helpers.
5350         (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of
5351         the former Unhandled_Exception.
5352
5353         * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure
5354         (Warn_No_Exception_Propagation): New procedure
5355         (Warn_If_No_Propagation): Rewritten for new warning generation
5356         (Expand_Exception_Handlers): New warning generation
5357         (Expand_N_Raise_xxx_Error): Rewritten for new warnings
5358         (Add_Exception_Label): Use Special_Exception_Package_Used for test
5359         instead of Most_Recent_Exception_Used (accomodates Exception_Traces)
5360         (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap
5361         even if restriction is set (makes life easier in Check_Returns)
5362         (Expand_Local_Exception_Handlers): Follow renamed entity chain when
5363         checking exception identities.
5364         (Expand_Local_Exception_Handlers): Do not optimize when all others case
5365         (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated
5366         block for handler (used by Check_Returns)
5367         (Expand_Local_Exception_Handlers): Local_Raise now takes an address
5368         (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to
5369         remove all exception handlers when optimizing local raise statements.
5370         (Find_Local_Handler): Use Get_Renamed_Entity
5371         (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is
5372         marked analyzed after expanding exception handlers, do not generate
5373         redundant cleanup actions, because they have been constructed already.
5374
5375 2007-06-06  Thomas Quinot  <quinot@adacore.com>
5376
5377         * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The
5378         presence of this categorization pragma is mandated by the language.
5379         (Limited_Controlled): Add missing pragma Preelaborable_Initialization
5380         for this type.
5381
5382 2007-06-06  Vincent Celier  <celier@adacore.com>
5383             Robert Dewar  <dewar@adacore.com>
5384
5385         * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb, 
5386         butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads, 
5387         err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads, 
5388         fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads, 
5389         lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads, 
5390         makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb, 
5391         par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb, 
5392         prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads, 
5393         prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb, 
5394         sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb, 
5395         uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb,
5396         ali.ads, ali.adb: 
5397         Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to
5398         package Namet. Make File_Name_Type and Unit_Name_Type types derived from
5399         Mame_Id. Add new type Path_Name_Type, also derived from Name_Id.
5400         Use variables of types File_Name_Type and Unit_Name_Type in error
5401         messages.
5402         (Get_Name): Add parameter Ignore_Special, and set it reading file name
5403         (New_Copy): When debugging the compiler, call New_Node_Debugging_Output
5404         here.
5405         Define flags Flag217-Flag230 with associated subprograms
5406         (Flag_Word5): New record type.
5407         (Flag_Word5_Ptr): New access type.
5408         (To_Flag_Word5): New unchecked conversion.
5409         (To_Flag_Word5_Ptr): Likewise.
5410         (Flag216): New function.
5411         (Set_Flag216): New procedure.
5412
5413 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
5414
5415         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length
5416         instead of 'Size.
5417
5418         * a-stwifi.ads, a-stzfix.ads: Minor reformatting
5419
5420 2007-06-06  Javier Miranda  <miranda@adacore.com>
5421
5422         * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to
5423         the package.
5424         (Object_Specific_Data_Array): This is now internal to the package.
5425         (Object_Specific_Data): This is now internal to the package.
5426         (Select_Specific_Data_Element): This is now internal to the package.
5427         (Select_Specific_Data_Array): This is now internal to the package.
5428         (Select_Specific_Data): This is now internal to the package.
5429         (Offset_To_Top_Function_Ptr): This is now public.
5430         (To_Offset_To_Top_Function_Ptr): Removed.
5431         (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now
5432          local to subprogram Offset_To_Top.
5433         (Predefined_DT): Removed.
5434         (Typeinfo_Ptr): Removed.
5435         (OSD): This function is now internal to this package.
5436         (SSD): This function is now internal to this package.
5437         (DT): New function that displaces the pointer to the table of primitives
5438          to get access to the enclosing wrapper record.
5439         (IW_Membership): Code cleanup.
5440         (Offset_To_Top): Code cleanup.
5441         (Predefined_DT): Removed.
5442         (Register_Interface_Tag): Removed.
5443         (Set_Interface_Table): Removed.
5444         (Set_Offset_Index): Removed.
5445         (Set_Offset_To_Top): Code cleanup.
5446         (Set_OSD): Removed.
5447         (Set_Signature): Removed.
5448         (Set_SSD): Removed.
5449         (Set_Tagged_Kind): Removed.
5450         (Typeinfo_Ptr): Removed.
5451         (TSD): Removed.
5452         (Displace): Add missing check on null actual.
5453
5454         * exp_disp.ads, exp_disp.adb
5455         (Select_Expansion_Utilities): Removed.
5456         (Build_Common_Dispatching_Select_Statements): Moved to exp_atags.
5457         (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because
5458         the interface requires a new parameter.
5459         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
5460         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace
5461         calls to subprograms Build_T, Build_S, etc. by the corresponding code.
5462         Done to remove package Select_Expansion_Utilities.
5463         (Make_DT): New implementation for statically allocated dispatch tables.
5464         (Make_Secondary_DT): Moved to the scope of Make_DT.
5465         (Register_Primitive): Code cleanup plus incoporate the use of the new
5466         function DT_Address_Attribute.
5467         (Expand_Interface_Thunk): The profile of this subprogram has been
5468         changed to return the Thunk_Id and the corresponding code.
5469         (Fill_DT_Entry): Removed. Its functionality is now provided by
5470         subprogram Register_Primitive.
5471         (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by
5472         subprogram Register_Primitive.
5473         (Register_Primitive): New subprogram that incorporates the previous
5474         functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry.
5475         (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This
5476         was only required to call Make_DT_Access_Action, which is now removed.
5477         (Ada_Actions): Removed
5478         (Action_Is_Proc): Removed
5479         (Action_Nb_Arg): Removed
5480         Replace all the calls to Make_DT_Access_Action by direct calls to
5481         Make_Procedure_Call_Statement or Make_Function_Call.
5482         (Set_DTC_Entity_Value): New subprogram.
5483         (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value.
5484         (Expand_Interface_Thunk): Add missing support for primitives that are
5485         functions with a controlling result (case in which there is no need
5486         to generate the thunk).
5487
5488         * exp_atag.ads, exp_atag.adb
5489         (Build_DT): New subprogram that displaces the pointer to reference the
5490         base of the wrapper record.
5491         (Build_Typeinfo_Offset): Removed.
5492         (RTE_Tag_Node): Removed.
5493         (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp
5494         (Build_Get_RC_Offset): Removed.
5495         (Build_Inherit_Predefined_Prims): Removed.
5496         (Build_Inherit_TSD: Removed.
5497         (Build_New_TSD): Removed.
5498         (Build_Set_External_Tag): Removed.
5499         (Build_Set_Predefined_Prim_Op_Address): Add documentation.
5500         (Build_Set_Prim_Op_Address): Add documentation.
5501         (Build_Set_TSD): Removed.
5502
5503         * rtsfind.ads, rtsfind.adb
5504         (Load_Fail): If load fails and we are not in configurable run-time
5505         mode, then raise Unrecoverable_Error.
5506         (Text_IO_Kludge): Generate an error message if a run-time library is
5507         not available in a given run-time (ie. zfp run-time).
5508         (RTE_Record_Component): Add code to check that the component we search
5509         for is not found in two records in the given run-time package.
5510         (RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed
5511         (RE_DT_Predef_Prims_Offset): New entity
5512         (RE_Static_Offset_To_Top): New entity
5513         (RE_HT_Link): New entity.
5514         (System_Address_Image): Addition of this run-time package.
5515         (RE_Address_Image): New entity.
5516         (RE_Abstract_Interface): Removed.
5517         (RE_Default_Prim_Op_Count): Removed.
5518         (RE_DT_Entry_Size): Removed.
5519         (RE_DT_Min_Prologue_Size): Removed.
5520         (RE_DT_Prologue_Size): Removed.
5521         (RE_Ifaces_Table_Ptr): Removed.
5522         (RE_Interface_Data_Ptr): Removed.
5523         (RE_Type_Specific_Data): Removed.
5524         (RE_Primary_DT): Removed.
5525         (RE_Register_Interface_Tag): Removed.
5526         (RE_Set_Offset_Index): Removed.
5527         (RE_Set_OSD): Removed.
5528         (RE_Set_SSD): Removed.
5529         (RE_Set_Signature): Removed.
5530         (RE_Set_Tagged_Kind): Removed.
5531         (RE_Address_Array): New entity.
5532         (RE_DT): New entity.
5533         (RE_Iface_Tag): New entity.
5534         (RE_Interfaces_Table): New entity.
5535         (RE_No_Dispatch_Table): New entity.
5536         (RE_NDT_Prims_Ptr): New entity.
5537         (RE_NDT_TSD): New entity.
5538         (RE_Num_Prims): New entity.
5539         (RE_Offset_To_Top_Function_Ptr): New entity.
5540         (RE_OSD_Table): New entity.
5541         (RE_OSD_Num_Prims): New entity.
5542         (RE_Predef_Prims): New entity
5543         (RE_Predef_Prims_Table_Ptr): New entity.
5544         (RE_Primary_DT): New entity.
5545         (RE_Signature): New entity.
5546         (RE_SSD): New entity.
5547         (RE_TSD): New entity.
5548         (RE_Type_Specific_Data): New entity.
5549         (RE_Tag_Kind): New entity.
5550
5551 2007-06-06  Thomas Quinot  <quinot@adacore.com>
5552
5553         * a-textio.ads, a-textio.adb (Write): Add explicit size clause for the
5554         C imported variable.
5555         (Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set
5556         on entry.
5557
5558 2007-06-06  Robert Dewar  <dewar@adacore.com>
5559
5560         * a-tienio.adb (Get): Adjust buffer size to accomodate one extra
5561         character
5562
5563 2007-06-06  Vincent Celier  <celier@adacore.com>
5564
5565         * a-tifiio.adb (Put, internal): For negative numbers, check that there
5566         is room for at least one digit and the minus sign.
5567         (Put.Put_Character): Never put a character outside of the range of
5568         string To.
5569
5570 2007-06-06  Olivier Hainque  <hainque@adacore.com>
5571             Eric Botcazou  <ebotcazou@adacore.com>
5572
5573         * utils2.c (build_allocator): Provide the extra arguments to
5574         make_aligning_type for super-aligned objects allocated from the default
5575         pool. Leave enough room for a pointer before the aligning field, and
5576         store the system's allocator return value there.
5577         (build_call_alloc_dealloc): When releasing a super-aligned object,
5578         retrieve the system's allocator return value from where build_allocator
5579         has stored it, just ahead of the adjusted address we are passed.
5580         (build_call_raise): Handle properly the generation of line numbers when
5581         the node is marked No_Location.
5582         (compare_elmt_bitpos): Use tree_int_cst_compare.  Stabilize the sort
5583         by using DECL_UID on ties.
5584         (build_binary_op) <EQ_EXPR>: Accept fat pointer types with the same
5585         main variant.
5586         (build_call_raise): Handle converting exception into goto; support new
5587         argument KIND.
5588         (build_component_ref): Add new arg to build_call_raise.
5589
5590 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
5591
5592         * a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse
5593         "." in the case of nnn.xxx when nnn terminates with an underscore.
5594         Parse the remaining "#" or ":" in the case of nnn#.xxx#
5595
5596 2007-06-06  Robert Dewar  <dewar@adacore.com>
5597
5598         * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT
5599
5600 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
5601             Vincent Celier  <celier@adacore.com>
5602             Robert Dewar  <dewar@adacore.com>
5603
5604         * bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when
5605         needed.
5606         (Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute
5607         ((destructor)) for adafinal, even when switch -a is used.
5608         Do not issue pragma Linker_Destructor for adafinal when switch -a is
5609         used.
5610         (Gen_Object_Files_Options): Add formatting of Linker Options, when
5611         Output_Linker_Option_List is set. Suppress this formatting when
5612         Zero_Formatting is set.
5613         Add case for CLI_Target.
5614         (System_Restrictions_Used): New flag, used to avoid generating with of
5615         System_Restrictions and initialization of the data unless there is
5616         some use of System.Restrictions in the partition.
5617         (Check_System_Restrictions_Used): New procedure
5618
5619         * s-stalib.adb: Remove with of System.Restrictions. No longer needed
5620         since we only with this unit in the binder file if it is used elsewhere
5621         in the partition.
5622
5623 2007-06-06  Vincent Celier  <celier@adacore.com>
5624
5625         * bindusg.adb: Add line for @<response file>
5626         Add lines for new switches -R and -Z
5627
5628         * gnatbind.adb (Gnatbind): Do not include sources from the GNAT
5629         hierarchy in the list of files of the closure when -R is used
5630         (Gnatbind): Accept arguments starting with '@' to indicate response
5631         files and take the arguments from the response files.
5632         If List_Closure is set, display the referenced files
5633
5634 2007-06-06  Javier Miranda  <miranda@adacore.com>
5635             Robert Dewar  <dewar@adacore.com>
5636             Ed Schonberg  <schonberg@adacore.com>
5637
5638         * checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in
5639         which the address-clause is applied to in-mode actuals (allowed by
5640         13.1(22)).
5641         (Apply_Discriminant_Check): Do not generate a check if the type is
5642         constrained by a current instance.
5643         (Activate_Division_Check): New procedure
5644         (Activate_Overflow_Check): New procedure
5645         (Activate_Range_Check): New procedure
5646         Call these new Activate procedures instead of setting flags directly
5647         (Apply_Array_Size_Check): Removed, no longer needed.
5648         Code clean up: remove obsolete code related to GCC 2.
5649         (Get_E_Length): Protect against bomb in case scope is standard
5650         (Selected_Range_Checks): If the node to be checked is a conversion to
5651         an unconstrained array type, and the expression is a slice, use the
5652         bounds of the slice to construct the required constraint checks.
5653         Improve NOT NULL error messages
5654         (Apply_Constraint_Check): If the context is a null-excluding access
5655         type, diagnose properly the literal null.
5656
5657 2007-06-06  Pascal Obry  <obry@adacore.com>
5658
5659         * clean.adb (Clean_Archive): Use untouched casing for the archive name
5660         and the corresponding .deps file.
5661         (Clean_Interface_Copy_Directory): Use untouched casing for the library
5662         src directory. Minor code-clean-up. Use untouched casing for files
5663         read into the library src dir.
5664         (Clean_Library_Directory): Idem.
5665         (Parse_Cmd_Line): Accept new switch -aP
5666
5667 2007-06-06  Javier Miranda  <miranda@adacore.com>
5668             Ed Schonberg  <schonberg@adacore.com>
5669             Robert Dewar  <dewar@adacore.com>
5670             Eric Botcazou  <ebotcazou@adacore.com>
5671             Arnaud Charlet  <charlet@adacore.com>
5672
5673         * einfo.ads, einfo.adb (Available_View): New synthesized attribute
5674         applicable to types that have the With_Type flag set. Returns the
5675         non-limited view of the type, if available, otherwise the type itself.
5676         For class-wide types, there is no direct link in the tree, so we have
5677         to retrieve the class-wide type of the non-limited view of the Etype.
5678         New attributes Static_Initialization and Static_Elaboration_Desired.
5679         Remove the pragma Thread_Body, and the associated flag
5680         Is_Thread_Body in entities, and all related code.
5681         (Suppress_Value_Tracking_On_Call): New flag
5682         E_Exception has Esize and Alignment fields
5683         (Universal_Aliasing): New function.
5684         (Set_Universal_Aliasing): New procedure.
5685         (Write_Entity_Flags): Deal with Universal_Aliasing flag.
5686         (Check_Nested_Access): New procedure.
5687         (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
5688         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
5689         (Related_Interface): New attribute. Present in dispatch table pointer
5690         components of records. Set to point to the entity of the corresponding
5691         interface type.
5692         (Is_By_Reference_Type): Recurse on the full view of an incomplete type.
5693         (Original_Access_Type): Remove, not needed.
5694         (Root_Type): Handle properly subtypes of class-wide-types.
5695         Update comments.
5696
5697         * sem_ch4.adb (Analyze_Explicit_Dereference): Add support for
5698         class-wide types visible through limited-with clauses.
5699         (Try_Primitive_Operation): When examining all primitive operations of a
5700         tagged type, do not consider subprograms labeled as hidden unless they
5701         belong to a private generic type with a tagged parent.
5702         (Try_Object_Operation): Extensive rewriting, to handle properly various
5703         overloading cases, when several ancestors may have class-wide operations
5704         that are possible candidates, and when the overloaded functions return
5705         array types and have defaulted parameters so that the call may be
5706         interpreted as an indexing.
5707         (Analyze_Allocator): Remove Mark_Allocator and its invocation.
5708         (Process_Function_Call): use Next, rather than Next_Actual, to analyze
5709         successive actuals before analyzing the call itself.
5710         (Try_Primitive_Operation): A primitive operation is compatible with the
5711         prefix if the prefix has a synchronized type and the type of the formal
5712         is its corresponding record, as can be the case when the primitive
5713         operation is declared outside of the body of the type.
5714         (Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to
5715         perform homonym traversal, looking for class-wide operation matches
5716         (formerly done in statements of Try_Class_Wide_Operation). Matches on
5717         access parameters are now restricted to anonymous access types.
5718         (Mark_Allocator): An allocator with a discriminant association parent is
5719         a coextension.
5720         (Try_One_Prefix_Interpretation): If the type of the object is
5721         incomplete, as can be happen when it is a limited view obtained through
5722         a limited_with_clause, the selected component is not part of a prefixed
5723         call.
5724         (Complete_Object_Operation): Diagnose properly an object that is not
5725         aliased when the corresponding controlling formal is an access
5726         parameter.
5727         (Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly
5728         ambiguous calls in prefixed notation, where two primitives differ only
5729         in that the controlling argument of one is an access parameter.
5730
5731         * sem_ch6.adb (Has_Single_Return): Add guard in code that determines
5732         whether a function that returns an unconstrained type can be inlined.
5733         (Process_Formals): Diagnose properly the illegal use of an incomplete
5734         type in the profile of an access_to_subprogram declaration.
5735         (Check_Synchronized_Overriding): Nothing check for concurrent types, the
5736         operations are attached to the corresponding record.
5737         (Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ.
5738         When processing a primitive of a concurrent type which implements an
5739         interface change the type of all controlling formals to that of the
5740         corresponding record type.
5741         (Check_Synchronized_Overriding): Relax the conditional logic when trying
5742         to determine the tagged type to which a primitive belongs.
5743         (Check_Conventions): Capture condition to ignore a primitive operation
5744         (which is shared between the loop in Check_Conventions and the one in
5745         Check_Convention) in a new local function Skip_Check.
5746         (Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible
5747         confusion with Check_Conventions' own Prim_Op local variable.
5748         (Create_Extra_Formals): Test for a tagged result type rather than a
5749         controlling result when determining whether to add a BIP_Alloc_Form
5750         formal and a BIP_Final_List formal to the function.
5751         (Check_Conformance); For parameters that are anonymous access types,
5752         subtype conformance requires that the not null and the constant
5753         indicators must match
5754         (Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery
5755         to retrieve the appropriate type when processing a concurrent type
5756         declared within a generic. Minor comment reformatting. Change invocation
5757         of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri-
5758         mitive.
5759         (Analyze_Subprogram_Body): If the return type of a function is an
5760         anonymous access to the limited view of a class-wide type, and the
5761         non-limited view of the type is available, update the type of the
5762         function so that code can be generated.
5763         (Process_Formals): In case of access-subtype itype whose designated
5764         type is also an itype (situation that happens now with access to
5765         subprograms) we mark the access-type itype with the Has_Delayed_Freeze
5766         attribute to avoid backend problems.
5767         (Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in
5768         init of R_Stm_Type_Is_Anon_Access. Also check that base types of the
5769         anonymous types' designated types are same before testing
5770         Subtypes_Statically_Match.
5771         (Create_Extra_Formals): Test for a named access parameter that is a
5772         controlling formal as an additional condition for adding an
5773         accessibility level formal. This can occur in the subp type created for
5774         dispatching calls in Expand_Dispatching_Call, and allows calling
5775         Create_Extra_Formals from that procedure rather than special-casing the
5776         extra formals there.
5777         (Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals
5778         when the function has a controlling result.
5779         (Check_Returns): Add much more knowledge of the optimization of local
5780         raise statements to gotos, to retain proper warnings in this case.
5781         (Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label
5782         nodes when looking for last statement.
5783
5784         * sem_type.ads, sem_type.adb (Specific_Type): Add support for
5785         class-wide types visible through limited with clauses.
5786         (Add_One_Interp): If the operands are anonymous access types, the
5787         predefined operator on universal_access is immediately visibles
5788         (Find_Unique_Type): Handle anonymous access to subprogram types just as
5789         other anonymous access types.
5790         (Disambiguate): Take into account CIL convention.
5791         (Interface_Present_In_Ancestor): Add support for class-wide interfaces.
5792
5793 2007-06-06  Robert Dewar  <dewar@adacore.com>
5794
5795         * sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb,
5796         sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads,
5797         elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure.
5798         Fix lower bound of tables.
5799         Add rep clauses.
5800
5801         * nlists.adb: Ditto.
5802         (Prev_Node, Next_Node): Change index type to Int so that it properly
5803         covers the range First_Node_Id - 1 up.
5804
5805 2007-06-06  Javier Miranda  <miranda@adacore.com>
5806             Ed Schonberg  <schonberg@adacore.com>
5807             Bob Duff  <duff@adacore.com>
5808             Hristian Kirtchev  <kirtchev@adacore.com>
5809
5810         * exp_aggr.ads, exp_aggr.adb: 
5811         (Build_Record_Aggr_Code): Add missing initialization of secondary tags
5812         in extension aggregates.
5813         (Flatten): Other conditions being met, an aggregate is static if the
5814         low bound given by component associations is different from the low
5815         bound of the base index type.
5816         (Packed_Array_Aggregate_Handled): If the component type is itself a
5817         packed array or record, the front-end must expand into assignments.
5818         (Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to
5819         Init_Pr, instead of Ancestor_Is_Expression.
5820         (Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a
5821         coextension chain root, either generate a list controller or use the
5822         already existing one.
5823         (Static_Array_Aggregate): New procedure to construct a positional
5824         aggregate that can be handled by the backend, when all bounds and
5825         components are compile-time known constants.
5826         (Expand_Record_Aggregate): Force conversion of aggregates of tagged
5827         types covering interface types into assignments.
5828         (Replace_Type): move to Build_Record_Aggr_Code.
5829         (Expand_Record_Aggr_Code): if the target of the aggregate is an
5830         interface type, convert to the definite type of the aggregate itself,
5831         so that needed components are visible.
5832         (Convert_Aggr_In_Object_Decl): If the aggregate has controlled
5833         components and the context is an extended return statement do not
5834         create a transient block for it, to prevent premature finalization
5835         before the return is executed.
5836         (Gen_Assign): Do not generate a call to deep adjust routine if the
5837         component type is itself an array of controlled (sub)-components
5838         initialized with an inner aggregate.
5839         (Component_Check): New name for Static_Check. This name is now more
5840         appropriate, and documentation is added which was missing.
5841         (Component_Check): Add test for bit aligned component value
5842         (Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_
5843         Tagged_Comps, name is more appropriate given added function below.
5844         (Component_Not_OK_For_Backend): Check for bit aligned component ref.
5845
5846 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
5847             Javier Miranda  <miranda@adacore.com>
5848             Robert Dewar  <dewar@adacore.com>
5849
5850         * exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and
5851         Terminated: Add unchecked type conversion from System.Address to
5852         System.Tasking.Task_Id when calling the predefined primitive
5853         _disp_get_task_id.
5854         Disable new Ada 05 accessibility check for JVM.NET targets, which
5855         cannot be implemented in a practical way.
5856         (Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in
5857         the sources always references the tag of the actual object. Therefore,
5858         if 'Tag is applied in the sources to class-wide interface objects we
5859         generate code that displaces "this" to reference the base of the object.
5860         (Expand_N_Attribute_Reference, case Size): Return specified size if
5861         known to front end.
5862         (Expand_N_Attribute_Reference): The expansion of the 'Address attribute
5863         has code that displaces the pointer of the object to manage interface
5864         types. However this code must not be executed when the prefix is a
5865         subprogram. This bug caused the wrong expansion of the internally
5866         generated assignment that fills the dispatch table when the primitive
5867         is a function returning a class-wide interface type.
5868         (Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to
5869         Set_Attribute_Name for Name_Unaligned_Valid.
5870
5871 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
5872             Gary Dismukes  <dismukes@adacore.com>
5873
5874         * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address):
5875         If the initialization is the equivalent aggregate of the initialization
5876         procedure of the type, do not remove it.
5877         (Expand_N_Attribute_Definition_Clause): Exclude access variables
5878         initialized to null from having their expression reset to empty and
5879         note this exception in the comment.
5880
5881 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
5882             Robert Dewar  <dewar@adacore.com>
5883             Ed Schonberg  <schonberg@adacore.com>
5884             Gary Dismukes  <dismukes@adacore.com>
5885
5886         * exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames.
5887         Add "with" and "use" clauses for Sem_Attr.
5888         (Expand_Current_Value): Do not replace occurences of attribute
5889         references where the prefix must be a simple name.
5890
5891         * sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for
5892         Namet. Add new arrays Attribute_Name_Modifies_Prefix and
5893         Attribute_Requires_Simple_Name_Prefix.
5894         (Name_Modifies_Prefix): Body of new function.
5895         (Requires_Simple_Name_Prefix): Body of new function.
5896         (Resolve_Attribute, case Access): Improve error message for case of
5897         mismatched conventions.
5898         (Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an
5899         incomplete type.
5900         (Analyze_Attribute, case 'Access): If the type of the prefix is a
5901         constrained subtype for a nominal unconstrained type, use its base type
5902         to check for conformance with the context.
5903         (Resolve_Attribute): Remove test of the access type being associated
5904         with a return statement from condition for performing accessibility
5905         checks on access attributes, since this case is now captured by
5906         Is_Local_Anonymous_Access.
5907         (Analyze_Access_Attribute): Set Address_Taken on entity
5908         (Analyze_Attribute, case Address): Set Address_Taken on entity
5909         (OK_Self_Reference): Traverse tree to locate enclosing aggregate when
5910         validating an access attribute whose prefix is a current instance.
5911         (Resolve_Attribute): In case of attributes 'Code_Address and 'Address
5912         applied to dispatching operations, if freezing is required then we set
5913         the attribute Has_Delayed_Freeze in the prefix's entity.
5914         (Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in
5915         current scope if access of local subprogram taken
5916         (Analyze_Access_Attribute): Check legality of self-reference even if the
5917         expression comes from source, as when a single component association in
5918         an aggregate has a box association.
5919         (Resolve_Attribute, case 'Access): Do not apply accessibility checks to
5920         the prefix if it is a protected operation and the attribute is
5921         Unrestricted_Access.
5922         (Resolve_Attribute, case 'Access): Set the Etype of the attribute
5923         reference to the base type of the context, to force a constraint check
5924         when the context is an access subtype with an explicit constraint.
5925         (Analyze_Attribute, case 'Class): If the prefix is an interface and the
5926         node is rewritten as an interface conversion. leave unanalyzed after
5927         resolution, to ensure that type checking against the context will take
5928         place.
5929
5930 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
5931             Javier Miranda  <miranda@adacore.com>
5932             Robert Dewar  <dewar@adacore.com>
5933
5934         * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a
5935         wrapper when the full view of the controlling type of an inherited
5936         function that dispatches on result implements interfaces.
5937         (Expand_N_Object_Declaration): In cases where the type of the
5938         declaration is anonymous access, create finalization list for it.
5939         (Expand_N_Object_Declaration): Generate a persistent_bss directive only
5940         if the object has no explicit initialization, to match description of
5941         functionality of pragam Persistent_BSS.
5942         (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate):
5943         new function to build static aggregates, to replace initialization call
5944         when static initialization is desired.
5945         (Freeze_Type): Generate a list controller for an access type whenever
5946         its designated type has controlled anonymous access discriminants.
5947         (Build_Equivalent_Aggregate): New procedure to compute a static
5948         aggregate to be used as default initialization for composite types,
5949         instead of a generating a call to the initialization procedure for the
5950         type.
5951         (Build_Initialization_Call): When available, replace a call to the
5952         initialization procedure with a copy of the equivalent static aggregate
5953         for the type.
5954         (Expand_N_Object_Declaration):  Use New_Occurrence_Of in generated
5955         declarations for objects of a class-wide interface type, rather than
5956         just identifiers, to prevent visibility problems.
5957         (Expand_N_Object_Declaration): When expanding the declaration for an
5958         object of a class-wide interface type, preserve the homonym chain of
5959         the original entity before exchanging it with that of the generated
5960         renaming declaration.
5961         (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation
5962         active, because there is no way to handle the exception.
5963         (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT
5964         to do a minimum decoration of the Access_Disp_Table list.
5965         (Expand_Record_Controller): Avoid the addition of the controller between
5966         the component containing the tag of a secondary dispatch table and its
5967         adjacent component that stores the offset to the base of the object.
5968         This latter component is only generated when the parent type has
5969         discriminants ---documented in Add_Interface_Tag_Components).
5970         (Apply_Array_Size_Check): Removed, no longer needed.
5971         (Expand_N_Full_Type_Declaration): If the type has anonymous access
5972         components, create a Master_Entity for it only if it contains tasks.
5973         (Build_Init_Procedure): Suppress the tag assignment compiling under
5974         no run-time mode.
5975         (Freeze_Record_Type): Remove code associated with creation of dispatch
5976         table.
5977         (Init_Secondary_Tags): Update type of actuals when generating calls to
5978         Ada.Tags.Set_Offset_To_Top
5979         (Stream_Operation_OK): Disable use of streams compiling under no
5980         run-time mode
5981         (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization
5982         if Has_Init_Expression set.
5983         (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to
5984         Register_Primitive, which provides the same functionality.
5985         (Requires_Init_Proc): Return false in case of interface types.
5986         (Add_Secondary_Tables): Use the new attribute Related_Interface to
5987         cleanup the code.
5988         (Predefined_Primitive_Freeze): Do not assume that an internal entity
5989         is always associated with a predefined primitive because the internal
5990         entities associated with interface types are not predefined primitives.
5991         Therefore, the call to Is_Internal is replaced by a call to the
5992         function Is_Predefined_Dispatching_Operation.
5993         (Make_Eq_If): When generating the list of comparisons for the
5994         components of a given variant, omit the controller component that is
5995         present if the variant has controlled components.
5996
5997 2007-06-06  Javier Miranda  <miranda@adacore.com>
5998             Hristian Kirtchev  <kirtchev@adacore.com>
5999             Bob Duff  <duff@adacore.com>
6000
6001         * exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to
6002         handle the creation of finalization lists and calls for nested
6003         coextensions when the root of the chains is part of a return statement.
6004         (Inside_A_Return_Statement): New function inside Complete_Coextension_
6005         Finalization.
6006         (Expand_Record_Equality): Skip components that are interface types.
6007         (Displace_Allocator_Pointer): Add missing support for interface subtypes
6008         (Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant
6009         with Rewrite_Coextension. Change the condition for detecting coextension
6010         root nodes.
6011         (Is_Local_Access_Discriminant): Removed.
6012         (Rewrite_Coextension): New routine which rewrites a static coextension
6013         as a temporary and uses its unrestricted access in the construction of
6014         the outer object.
6015         (Complete_Coextension_Finalization): New routine. Generate finalization
6016         attachment calls to all delayed coextensions.
6017         (Expand_N_Allocator): Call Complete_Coextension_Finalization whenever
6018         the allocator is not a coextension itself and has delayed coextensions.
6019         If the current allocator is controlled, but also a coextension, delay
6020         the generation of the finalization attachment call.
6021         Rename local variable "Node" to "Nod" in order to avoid confusion with
6022         "Elists.Node".
6023         (Expand_Allocator_Expression): Call Adjust for initialized allocators of
6024         limited types that are not inherently limited. Such an allocator is
6025         illegal, but is generated by the expander for a return statement, to
6026         copy the result onto the secondary stack. This is the only case where a
6027         limited object can be copied. Generate code to displace the pointer
6028         to the object if the qualified expression is a class-wide interface
6029         object. Such displacement was missing and hence the copy of the object
6030         was wrong.
6031         (Apply_Accessibility_Check): Handle allocated objects initialized in
6032         place.
6033         (Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator
6034         and Expand_Allocator_Expression. Allocating class-wide interface objects
6035         this routine displaces the pointer to the allocated object to reference
6036         the component referencing the corresponding secondary dispatch table.
6037         Expand_Allocator_Expression): Add missing support to allocate class-wide
6038         interface objects initialized with a qualified expression.
6039         (Get_Allocator_Final_List): Test for an anonymous access type that is a
6040         function result type, and use the finalization list associated with the
6041         function scope in that case (such an anonymous type should not be
6042         treated like an access parameter's type).
6043
6044 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
6045             Gary Dismukes  <dismukes@adacore.com>
6046             Javier Miranda  <miranda@adacore.com>
6047
6048         * exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a
6049         controlled type, use Make_Handler_For_Ctrl_Operation to construct the
6050         required exception handler.
6051         (Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle
6052         properly the case of a function whose return type is a limited
6053         class-wide interface type. Modify the code of the accessibility
6054         check to handle class-wide interface objects. In this case we need to
6055         displace "this" to reference the primary dispatch table to get access
6056         to the TSD of the object (to evaluate its accessibility level).
6057         (Expand_N_Extended_Return_Statement): Test for a tagged result type
6058         rather than a controlling result as one of the conditions for
6059         generating tests of the implicit BIP_Alloc_Form formal. The
6060         initialization assignment is also handled according to whether the
6061         result is tagged instead of controlling.
6062         In the case where the init assignment is inserted in the "then" part of
6063         the allocation conditional, rewrite the target to be a dereference of
6064         the implicit BIP_Object_Access formal.
6065         If the returned value is unconstrained and created on the secondary
6066         stack, mark the enclosing block and function so that the secondary
6067         stack is not reclaimed on return.
6068         Treat returns from functions with controlling results similarly to
6069         returns from functions with unconstrained result subtypes.
6070         If the object returned is unconstrained, and an allocator must be
6071         created for it, analyze the allocator once the block for the extended
6072         return is installed, to ensure that finalizable components
6073         of the expression use the proper finalization list. Guard the call to
6074         Move_Final_List with a check that there is something to finalize.
6075         (Make_Tag_Ctrl_Assignment): Use "old" handling
6076         of controlled type assignment for virtual machines, since new code uses
6077         unsupported features (such as direct access to bytes in memory).
6078
6079 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
6080             Ed Schonberg  <schonberg@adacore.com>
6081
6082         * exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra
6083         accessibility actual, check for the case of an aliased object that has
6084         been rewritten as an Access attribute, and assign Prev to Prev_Orig so
6085         we fall into processing for the attribute rather than the name of the
6086         object.
6087         (Expand_Inline_Call): If an actual is a literal, and the corresponding
6088         formal has its address taken in the body, create a temporary to capture
6089         value.  If the return type is a limited interface, do not treat the
6090         return value as Controlled.
6091         (Is_In_Place_Function):  If the return type is a limited interface,
6092         treat as returning in place. The actual returned object may not always
6093         be limited, but the caller has to assume that it is returned in place.
6094         (Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the
6095         context of an allocator, use the correct finalization chain (that is,
6096         the chain belonging to the access type, rather than the chain belonging
6097         to the current scope).
6098         (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged
6099         result type rather than a controlling result as a precondition for
6100         adding an allocation form actual to a build-in-place call.
6101         (Add_Final_List_Actual_To_Build_In_Place_Call): Ditto.
6102         (Freeze_Subprogram): Code cleanup. Remove all the code that register the
6103         primitive in the dispatch tables. This work is now done by Make_DT when
6104         the type is frozen.
6105         (Register_Predefined_DT_Entry): Removed.
6106         (Add_Return): If end label is not present, use sloc of last statement
6107         for generated return statement in procedure, for better gdb behavior
6108         on expanded code.
6109         (Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the
6110         object address nodes to ensure proper processing by routines like
6111         Insert_After*.
6112         (Expand_Call): Fix generation of validity check for parameter
6113         (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing
6114         the allocation form parameter if the result subtype is constrained,
6115         except when the function has a controlling result.
6116         (Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type
6117         rather than Is_Controlled and Has_Controlled_Component, since we want to
6118         include class-wide result types in this treatment. Also test for a
6119         controlling result, since that also requires passing a finalization
6120         list.
6121         (Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_*
6122         even when the result subtype is constrained, to handle calls involving
6123         controlling results.
6124         (Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_*
6125         is now called even when the result subtype is constrained, to handle
6126         calls involving controlling results.
6127         (Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained
6128         on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure
6129         now performs the test).
6130         (Make_Build_In_Place_Call_In_Object_Declaration):
6131         Add_Alloc_Form_Actual_* is now called even when the result subtype is
6132         constrained, to handle calls involving controlling results.
6133         (Add_Return): Accomodate rewritten pattern from local raise to goto
6134         transformation, so that we still recognize an transfer statement
6135         and do the right thing here in that case.
6136         (Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start
6137         and end of subprogram code.
6138         (Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing
6139         support for primitives that are functions (without formals) with a
6140         controlling result.
6141         (Inherited_From_Formal): If the actual subtype has not generic parent
6142         type, it is not an actual for a formal derived type, and there is no
6143         operation to inherit from the formal.
6144
6145 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
6146             Thomas Quinot  <quinot@adacore.com>
6147
6148         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of
6149         inserted cleanup code appropriately for GDB use.
6150         (Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create
6151         exception handler for Deep_Adjust or Deep_Finalize.
6152         (Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity
6153         Raise_From_Controlled_Operation is available, use a call to that
6154         subprogram instead of a plain "raise Program_Error" node to raise
6155         Program_Error if an exception is propagated from an Adjust or Finalize
6156         operation.
6157         (Insert_Actions_In_Scope_Around): If the statement to be wrapped
6158         appears in the optional statement list of a triggering alternative, the
6159         scope actions can be inserted directly there, and not in the list that
6160         includes the asynchronous select itself.
6161
6162 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
6163             Robert Dewar  <dewar@adacore.com>
6164             Hristian Kirtchev  <kirtchev@adacore.com>
6165
6166         * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of
6167         generated exception handler appropriately when debugging generated code.
6168         Deal properly with No_Exception_Propagation restriction mode.
6169         (Expand_N_Abort_Statement): Add an unchecked type conversion from
6170         System.Address to System.Tasking.Task_Id when processing the result of
6171         the predefined primitive _disp_get_task_id.
6172         (Expand_N_Asynchronous_Select): Clarify comment.
6173         (Expand_N_Protected_Type_Declaration): Minor code cleanup.
6174         (Find_Parameter_Type): New routine inside Type_Conformant_Parameters.
6175         (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup.
6176         (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for
6177         privals and for generated call to Complete_Entry_Body, for better gdb
6178         behavior.
6179         (Copy_Result_Type): Utility to construct a parameter and result profile
6180         for protected functions whose return type is an anonymous access to
6181         subprogram.
6182         (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type):
6183         call the above.
6184         (Build_Task_Activation_Call): Insert Activate_Tasks call at proper
6185         point when the local-raise-to-goto transformation has taken place.
6186
6187 2007-06-06  Javier Miranda  <miranda@adacore.com>
6188             Nicolas Setton  <setton@adacore.com>
6189
6190         * exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its
6191         functionality when the backend is generating code.
6192         Otherwise any serious error
6193         reported by the backend calling the frontend routine Error_Msg
6194         changes the Compilation_Mode to Check_Semantics, disables the
6195         functionality of this routine and causes the generation of
6196         spureous additional errors.
6197
6198         * exp_dbug.ads (Pointers to Unconstrained Arrays): Document the
6199         debugging information now generated by the compiler for fat-pointer
6200         types.
6201         Document the contents of DW_AT_producer in the GNAT Vendor extensions to
6202         DWARF2/3.
6203         Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch.
6204
6205 2007-06-06  Thomas Quinot  <quinot@adacore.com>
6206
6207         * exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram
6208         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
6209         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
6210         For a remote call to a function with a classwide return type, apply an
6211         E.4(18) check to the returned value.
6212         (Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for
6213         stream attributes of the designated type of an RACW, as they are not
6214         dispatching primitive operations.
6215
6216 2007-06-06  Geert Bosch  <bosch@adacore.com>
6217
6218         * exp_fixd.adb (Integer_Literal): Add optional argument to construct a
6219         negative literal
6220         (Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always
6221         positive
6222         (Do_Divide_Fixed_Universal): Handle case of negative Frac.
6223         (Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always
6224         positive
6225         (Do_Multiply_Fixed_Universal): Handle case of negative Frac.
6226
6227 2007-06-06  Javier Miranda  <miranda@adacore.com>
6228
6229         * exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this
6230         attribute compiling package Ada.Tags under No_Run_Time_Mode.
6231
6232 2007-06-06  Javier Miranda  <miranda@adacore.com>
6233
6234         * exp_intr.adb (Expand_Unc_Deallocation): Add missing support for
6235         deallocation of class-wide interface objects.
6236         (Expand_Dispatching_Constructor_Call): Take into account that if the
6237         result of the dispatching constructor is an interface type, the
6238         function returns a class-wide interface type; otherwise the returned
6239         object would be actual. The frontend previously accepted returning
6240         interface types because Expand_Interface_Actuals silently performed
6241         the management of the returned type "as if" it were a class-wide
6242         interface type.
6243         (Expand_Dispatching_Constructor_Call): Replace call to
6244         Make_DT_Access_Action by direct call to Make_Function_Call.
6245
6246 2007-06-06  Robert Dewar  <dewar@adacore.com>
6247             Ed Schonberg  <schonberg@adacore.com>
6248
6249         * exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to
6250         compute masking constant, since we now set Esize properly to the
6251         underlying size.
6252         (Create_Packed_Array_Type): Set proper Esize value adjusted as required
6253         to match the alignment.
6254         (Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for
6255         packed arrays of 8 bits or less.
6256
6257         * freeze.adb (Freeze_Entity): When freezing the formals of a
6258         subprogram, freeze the designated type of a parameter of an access type
6259         only if it is an access parameter.
6260         Increase size of C convention enumeration object
6261         (Freeze_Entity, array type case): Make sure Esize value is properly
6262         adjusted for the alignment if it is known.
6263         (Freeze_Entity, array type case): When checking bit packed arrays for
6264         the size being incorrect, check RM_Size, not Esize.
6265         (Freeze_Record_Type): Check for bad discriminated record convention
6266         (In_Exp_Body): Return true if the body is generated for a subprogram
6267         renaming, either an attribute renaming or a renaming as body.
6268         (Check_Itype): If the designated type of an anonymous access component
6269         is a non-protected subprogram type, indicate that it is frozen, to
6270         prevent out-of-scope freeze node at some subsequent call.
6271         (Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism
6272         only if the subprogram is neither imported nor exported, as well as the
6273         NCA descriptor class if the subprogram is exported.
6274
6275 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
6276             Arnaud Charlet  <charlet@adacore.com>
6277             Robert Dewar  <dewar@adacore.com>
6278             Gary Dismukes  <dismukes@adacore.com>
6279
6280         * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a
6281         default initialization on an imported object, when there is no
6282         initialization call generated for it.
6283         (Expand_Pragma_Assert): Add handling of No_Exception_Propagation
6284         restriction
6285
6286         * snames.h, snames.ads, snames.adb, par-prag.adb: New pragma
6287         Static_Elaboration_Desired.
6288         Remove pragma Thread_Body.
6289         Implement a new pragma No_Body
6290         Removes the Explicit_Overriding pragma
6291         Remove Optional_Overriding pragma
6292         (Prag): Deal with Universal_Aliasing.
6293         (Name_CIL, Name_CIL_Constructor, Convention_CIL,
6294         Pragma_CIL_Constructor): New names.
6295
6296         * sem_cat.adb (Validate_Object_Declaration): An initialization that
6297         uses the equivalent aggregate of a type must be treated as an implicit
6298         initialization.
6299         (Get_Categorization): Check a unit for pragma Preelaborate only if it
6300         has none of the other categories.
6301         (Process_Import_Or_Interface_Pragma): Report an error for an attempt
6302         to apply Import to an object renaming declaration.
6303
6304         * sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported
6305         from a C++ class should be declared as limited and that it will be
6306         considererd limited.
6307         (Analyze_Pragma): Warn that a type specified with pragma CPP_Class
6308         should be declared as limited and that it will be considererd limited.
6309         (Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas
6310         (Analyze_Pragma, case Export): Diagnose export of enumeration literal
6311         (Analyze_Pragma): Deal with Universal_Aliasing.
6312         (Sig_Flags): Likewise.
6313         (Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP.
6314         (Overflow_Checks_Unsuppressed): New flag.
6315         (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
6316         (Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in
6317         case of JVM or .NET targets, and compiling user code.
6318         Add debugging convenience routine rv
6319
6320 2007-06-06  Robert Dewar  <dewar@adacore.com>
6321
6322         * exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that
6323         are interface type.
6324         (Build_Elementary_Input_Call): For floating-point use right type in the
6325         absence of strange size or stream size clauses.
6326         (Build_Elementary_Write_Call): Same fix
6327         (Has_Stream_Standard_Rep): Returns False if Stream_Size attribute
6328         set to value that does not match base type size.
6329
6330 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
6331
6332         * exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an
6333         object of a limited type can be initialized with a call to a function
6334         that returns in place. If the limited type has unknown discriminants,
6335         and the underlying type is a constrained composite type, build an actual
6336         subtype from the function call, as is done for private types.
6337         (Side_Effect_Free): An expression that is the renaming of an object or
6338         whose prefix is the renaming of a object, is not side-effect free
6339         because it may be assigned through the renaming and its value must be
6340         captured in a temporary.
6341         (Has_Controlled_Coextensions): New routine.
6342         (Expand_Subtype_From_Expr): Do nothing if type is a limited interface,
6343         as is done for other limited types.
6344         (Non_Limited_Designated_Type): new predicate.
6345         (Make_CW_Equivalent_Type): Modified to handle class-wide interface
6346         objects.
6347         Remove all handling of with_type clauses.
6348
6349         * par-ch10.adb: Remove all handling of with_type clauses.
6350
6351         * lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the
6352         checksum if the main source could not be parsed.
6353         (Loat_Unit): When processing a child unit, determine properly whether
6354         the parent unit is a renaming when the parent is itself a child unit.
6355         Remove handling of with_type clauses.
6356
6357         * sinfo.ads, sinfo.adb (Is_Static_Coextension): New function.
6358         (Set_Is_Static_Coextension): New procedure.
6359         (Has_Local_Raise): New function
6360         (Set_Has_Local_Raise): New procedure
6361         (Renaming_Exception): New field
6362         (Has_Init_Expression): New flag
6363         (Delay_Finalize_Attach): Remove because flag is obsolete.
6364         (Set_Delay_Finalize_Attach): Remove because flag is obsolete.
6365         Remove all handling of with_type clauses.
6366         (Exception_Junk): Can now be set in N_Block_Statement
6367
6368 2007-06-06  Vincent Celier  <celier@adacore.com>
6369             Robert Dewar  <dewar@adacore.com>
6370
6371         * frontend.adb (Frontend): Return immediately if the main source could
6372         not be parsed, because of preprocessing errors.
6373
6374         * gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully.
6375         (Gnat1drv): Exit with errors if the main source could not be parsed,
6376         because of preprocessing errors.
6377         (Check_Rep_Info): New procedure
6378
6379 2007-06-06  Robert Dewar  <dewar@adacore.com>
6380
6381         * g-hesorg.ads, g-heasor.ads,
6382         g-busorg.ads, g-bubsor.ads: Update documentation
6383         GNAT.Heap/Bubble_Sort_G is now pure
6384
6385 2007-06-06  Robert Dewar  <dewar@adacore.com>
6386
6387         * g-catiio.ads, g-catiio.adb (Image): Check for null picture string
6388
6389 2007-06-06  Robert Dewar  <dewar@adacore.com>
6390             Ed Schonberg  <schonberg@adacore.com>
6391
6392         * g-comlin.ads, g-comlin.adb: 
6393         Add new warning for renaming of function return objects
6394
6395         * opt.adb (Tree_Write, Tree_Read): Use proper expressions for size
6396         (Tree_Read): Use size of object instead of type'object_size, since the
6397         latter is incorrect for packed array types.
6398         (Tree_Write): Same fix
6399
6400         * opt.ads: Add new warning for renaming of function return objects
6401         (Generating_Code): New boolean variable used to indicate that the
6402         frontend as finished its work and has called the backend to process
6403         the tree and generate the object file.
6404         (GCC_Version): Is now private
6405         (Static_Dispatch_Tables): New constant declaration.
6406         (Overflow_Checks_Unsuppressed): New flag.
6407         (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
6408         (List_Closure): New flag for gnatbind (-R)
6409         Zero_Formatting: New flag for gnatbind (-Z)
6410         (Special_Exception_Package_Used): New flag.
6411         (Warn_On_Unrepped_Components): New flag.
6412
6413         * sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed
6414         unit is a compilation unit, rather than relying on its scope, so that
6415         Standard can be renamed.
6416         (Analyze_Object_Renaming): Add new warning for renaming of function
6417         return objects.
6418         Also reject attempt to rename function return object in Ada 83 mode.
6419         (Attribute_Renaming): In case of tagged types, add the body of the
6420         generated function to the freezing actions of the type.
6421         (Find_Type): A protected type is visible right after the reserved word
6422         "is" is encountered in its type declaration. Set the entity and type
6423         rather than emitting an error message.
6424         (New_Scope): Properly propagate Discard_Names to inner scopes
6425         (Check_Nested_Access): New procedure.
6426         (Has_Nested_Access, Set_Has_Nested_Access): New procedures.
6427         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
6428
6429         * sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning
6430         Add new warning for renaming of function return objects
6431         (Check_References): Suppress warnings for objects whose type or
6432         base type has Warnings suppressed.
6433         (Set_Dot_Warning_Switch): Add processing for -gnatw.c/C
6434         (Set_Warning_Switch): Include new -gnatwc in -gnatwa
6435
6436 2007-06-06  Vincent Celier  <celier@adacore.com>
6437             Emmanuel Briot  <briot@adacore.com>
6438             Olivier Hainque  <hainque@adacore.com>
6439
6440         * g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the
6441         absolute value of Header.Block_Size when displaying the freed physical
6442         memory in traces.
6443         (Allocate): Compute Storage_Address using Integer_Address, not
6444         Storage_Offset, because the range of Storage_Offset may not be large
6445         enough.
6446         (Configure): New parameter Low_Level_Traces
6447         (Allocate, Deallocation, Free_Physically): Added low-level traces
6448         (Configure): new parameter Errors_To_Stdout.
6449         (Output_File): new subprogram
6450         (Deallocate, Dereference): Send error messages to the proper stream
6451         (Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as
6452         documented. Previous code would send it to the current output file
6453         defined in GNAT.IO, which might not be stdout
6454         (Is_Valid): Adjust comment to mention that a positive reply means that
6455         Header_Of may be used to retrieve the allocation header associated with
6456         the subprogram Storage address argument. Return False early if this
6457         address argument is misaligned.
6458
6459 2007-06-06  Vincent Celier  <celier@adacore.com>
6460
6461         * gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept
6462         switch -P
6463         (ASIS_Main): New global variable
6464         (Get_Closure): New procedure
6465         (GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat
6466         check, metric or pretty. Call Get_Closure in this case.
6467         (Check_Files): For GNAT LIST, check all sources of all projects when
6468         All_Projects is True.
6469         (GNATCmd): Accept -U for GNAT LIST
6470
6471 2007-06-06  Vincent Celier  <celier@adacore.com>
6472
6473         * gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK=
6474         has been specified
6475         Correct error message when invocation of the linker fails
6476         Add explicit size clause for the C imported variables
6477         Object_List_File_Supported and Using_GNU_Linker to emphasize that
6478         we expect char size.
6479         Read target parameters earlier, since this is needed to set
6480         Target_VM properly. Also do not use -static/shared-libgcc for non GCC
6481         targets.
6482
6483 2007-06-06  Vincent Celier  <celier@adacore.com>
6484
6485         * gnatls.adb: 
6486         Add 3 spaces before the default project directory when displaying
6487         the project search path.
6488         Add new command line switch '-l' to display license information.
6489
6490 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
6491
6492         * gmem.c: Add support for timestamps on memory operations.
6493
6494         * memtrack.adb, gnatmem.adb: Add support for timestamps on memory
6495         operations (not used currently, just foundation for future
6496         enhancements). Add possibility to perform full dump of gmem.out file.
6497         (Print_Back_Traces): Declare accesses to root arrays constants since
6498         they aren't modified.
6499         (Print_Back_Traces): allocate root arrays on the heap rather than stack.
6500
6501 2007-06-06  Vincent Celier  <celier@adacore.com>
6502
6503         * gnatsym.adb: Update Copyright notice
6504         (Parse_Cmd_Line): Accept new switch -D
6505         (Gnatsym): In Direct policy (switch -D) copy reference file to symbol
6506          file.
6507
6508         * prj.ads (Policy): New policy Direct
6509         (Yes_No_Unknown): New enumeration type
6510         (Project_Data): New component Libgnarl_Needed
6511
6512         * prj-nmsc.adb (Check_For_Source): When recording a source file make
6513         use the untouched pathname casing.
6514         (Get_Directories): Ensure that the Display_Exec_Directory is using the
6515         proper casing on non case-sensitive platforms like Windows.
6516         (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s)
6517         on all platforms, as it is not possible to know which one is allowed
6518         before processing the project files.
6519         (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is
6520         specified when symbol policy is Direct. Check that when there is a
6521         symbol file defined (either by default or with attribute
6522         Library_Symbol_File) it is not the same as the reference symbol file.
6523         (Check_Stand_Alone_Library): Recognize new symbol policy Direct.
6524         (Look_For_Sources): Allow Locally_Removed_Files to be declare in non
6525         extending projects.
6526         (Record_Ada_Source): Record a source that has been locally removed in an
6527         imported project.
6528
6529         * symbols.ads (Policy): New policy Direct
6530
6531         * symbols-vms.adb (Initialize): Take new policy Direct in case
6532         statement
6533
6534 2007-06-06  Vincent Celier  <celier@adacore.com>
6535
6536         * g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory):
6537         Correct obvious bug (return Dir; instead of return Directory;).
6538         (Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last
6539
6540 2007-06-06  Thomas Quinot  <quinot@adacore.com>
6541
6542         * g-pehage.adb (Produce): Open output files in Binary mode, so that
6543         they have UNIX line endings (LF only) even on Windows, and thus pass
6544         all GNAT style checks.
6545
6546 2007-06-06  Emmanuel Briot  <briot@adacore.com>
6547
6548         * g-regpat.adb (Quote): Fix improper quoting of '.'
6549
6550 2007-06-06  Thomas Quinot  <quinot@adacore.com>
6551
6552         * g-soccon.ads: Add new constant Thread_Blocking_IO, always True by
6553         default, set False on a per-runtime basis.
6554         (Need_Netdb_Buffer): New constant.
6555
6556         * g-socket.ads, g-socket.adb: Import new package
6557         GNAT.Sockets.Thin.Task_Safe_NetDB.
6558         (Raise_Host_Error): Use Host_Error_Message from platform-specific thin
6559         binding to obtain proper message.
6560         (Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close.
6561         Replace various occurrences of Arry (Arry'First)'Address with the
6562         equivalent Arry'Address (GNAT always follows implementation advice from
6563         13.3(14)).
6564         (Get_Host_By_Address, Get_Host_By_Name,
6565         Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock;
6566         instead, rely on platform-specific task safe netdb operations provided
6567         by g-socthi.
6568
6569         * g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal
6570         parameter Process_Blocking_IO.
6571         (Host_Error_Messages): Add stub body.
6572         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
6573         (Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname,
6574         Safe_Getservbyport): Move functions into new child package
6575         Task_Safe_NetDB.
6576         (Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr,
6577         Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines.
6578         (In_Addr): Add alignment clause.
6579
6580 2007-06-06  Robert Dewar  <dewar@adacore.com>
6581
6582         * g-trasym.ads, g-traceb.ads: Update list of supported targets
6583         Add note about symbolic traceback
6584
6585 2007-06-06  Pascal Obry  <obry@adacore.com>
6586
6587         * hostparm.ads (Normalized_CWD): Use the host directory separator
6588         instead of the hardcoded forward slash which is not the proper
6589         character on Windows for example.
6590         (Java_VM): Removed.
6591
6592 2007-06-06  Vincent Celier  <celier@adacore.com>
6593             Arnaud Charlet  <charlet@adacore.com>
6594
6595         * a-clrefi.adb, a-clrefi.ads: New files
6596
6597         * impunit.adb: Add s-os_lib in the list of user visible units.
6598         (Non_Imp_File_Names_95): Add a-clrefi to this list
6599         Remove obsolete run-time entries.
6600         (Non_Imp_File_Names_05): Add Ada 2005 entries for:
6601          "a-exetim" -- Ada.Execution_Time
6602          "a-extiti" -- Ada.Execution_Time.Timers
6603
6604         * mlib-prj.ads, mlib-prj.adb
6605         (Build_Library): Use untouched object dir and library dir. At the
6606         same time makes sure that the checks are done using the canonical
6607         form. Removes hard-coded directory separator and use the proper host
6608         one instead.
6609         (Process_Project): Do not look in object directory to check if libgnarl
6610         is needed for a library, if there is no object directory.
6611         (Build_Library): Scan the ALI files to decide if libgnarl is needed for
6612         linking.
6613         (Build_Library): When invoking gnatbind, use a response file if the
6614         total size of the arguments is too large.
6615
6616         * Makefile.rtl: (g-sttsne): New object file.
6617         Add entry for a-clrefi, s-utf_32, System.Exceptions
6618
6619         * Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o.
6620         (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o.
6621         (GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o
6622         Change g-string to s-string, g-os_lib to s-os_lib
6623         Change all g-utf_32 references to s-utf_32
6624
6625 2007-06-06  Tristan Gingold  <gingold@adacore.com>
6626             Olivier Hainque  <hainque@adacore.com>
6627
6628         * init.c: Do not adjust IP of an imported VMS exception of ia64.
6629         LIB$STOP is called to raise an exception and the IP of the exception
6630         is the instruction right after the call.
6631         (__gnat_adjust_context_for_raise, AIX): Implement.
6632         (__gnat_error_handler, AIX): Accept SIGINFO related arguments and call
6633          adjust_context_for_raise before Raise_From_Signal_Hanler.
6634         (__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure
6635         siginfo is passed to the handler, necessary to let the zcx propagation
6636         engine unwind past it.
6637
6638 2007-06-06  Olivier Hainque  <hainque@adacore.com>
6639
6640         * initialize.c (__gnat_initialize for vxworks):  Update documentation
6641         on the ZCX support, using different sets of crtstuff objects than with
6642         GCC 3.4.
6643
6644 2007-06-06  Robert Dewar  <dewar@adacore.com>
6645
6646         * layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package
6647         spec from body
6648         (Layout_Type): Fix recomputation of size from alignment.
6649
6650 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
6651             Javier Miranda  <miranda@adacore.com>
6652
6653         * sem_ch12.adb (Analyze_Associations): Diagnose use of an others
6654         association in an instance.
6655         (Copy_Generic_Node): If the node is a string literal, no need to copy
6656         its descendants.
6657         (Is_Generic_Formal): For a formal subprogram, the declaration is the
6658         grandparent of the entity.
6659         (Analyze_Formal_Interface_Type): Transform into a full type declaration,
6660         to simplify handling of formal interfaces that derive from other formal
6661         interfaces.
6662         (Instantiate_Subprogram_Body): The defining unit name of the body of
6663         the instance should be a defining identifier.
6664         (Install_Formal_Packages): make global to the package, for use in
6665         instantiations of child units.
6666         (Analyze_Package_Instantiation): Do not attempt to set information on an
6667         enclosing master of an entry when expansion is disabled.
6668         (Instantiate_Type): If the actual is a tagged synchronized type and the
6669         generic ancestor is an interface, create a generic actual for the
6670         corresponding record.
6671         (Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type
6672         declaration, to ensure that the interface list is processed correctly.
6673         (Inline_Instance_Body): If enclosing scope is an instance body, remove
6674         its entities from visibiility as well.
6675         (Pre_Analyze_Actuals): if the actual is an allocator with  constraints
6676         given with a named association, analyze the expression only, not the
6677         discriminant association itself.
6678         (Reset_Entity): If the analysis of a selected component is transformed
6679         into an expanded name in the prefix of a call with parameters, do not
6680         transform the original node into an expanded name, to prevent visibility
6681         errors in the case of nested generics.
6682         (Check_Private_View): For an array type, check whether the index types
6683         may need exchanging.
6684
6685 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
6686             Vincent Celier  <celier@adacore.com>
6687
6688         * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java,
6689         since both are separated.
6690         Add support for imported CIL packages.
6691         Add further special handling of "value_type" for CIL.
6692         Add special handling of pragma Import for CIL.
6693
6694         * make.ads, make.adb: When switch -eS is used, direct all outputs to
6695         standard output instead of standard error, except errors.
6696         (Absolute_Path): Use untouched casing for the parent directory.
6697         (Add_Library_Search_Dir): Use the untouched directory name.
6698         (Add_Source_Search_Dir): Idem.
6699         (Change_To_Object_Directory): Update output to use proper casing.
6700         (Create_Binder_Mapping_File): Use the untouched filename to set
6701         ALI_Name.
6702         (Gnatmake): Use untouched library and executable directory names.
6703         (Insert_Project_Sources): Use untouched filename for spec and body.
6704         (Is_In_Object_Directory): Use untouched object directory.
6705         (Mark_Directory): Idem.
6706         (Collect_Arguments_And_Compile): Ensure that Full_Source_File always
6707         contains the non-canonical filename in all cases.
6708         (Change_To_Object_Directory): In verbose mode, display the name of the
6709         object directory we're changing to.
6710         (Compile_Sources): Make sure, when a project file is used, to compile
6711         the body of the unit, when there is one, even when only the spec is
6712         recorded in an ALI file.
6713         (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the
6714         spec to the body.
6715         (Report_Compilation_Failed): New procedure
6716         (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg):
6717         procedures moved from the spec to the body.
6718         (Extract_Failure): Removed, not used
6719         Replace explicit raises of exception Bind_Failed and Link_Failed with
6720         calls to Make_Failed with the proper message.
6721         Replace explicit raises of exception Compilation_Failed with calls to
6722         procedure Report_Compilation_Failed.
6723         (Initialize): Create mapping files unconditionally when using project
6724         files.
6725
6726         * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL,
6727         Pragma_CIL_Constructor): New names.
6728
6729         * targparm.ads, targparm.adb
6730         (Compiler_System_Version): Removed, no longer used.
6731         (Get_Target_Parameters): Relax checks on system.ads validity. Add
6732         handling of two new system flags: JVM and CLI.
6733
6734 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
6735             Arnaud Charlet  <charlet@adacore.com>
6736
6737         * Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run
6738         time, use the default s-interr body that provides interrupt support
6739         based on signals.
6740         (LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of
6741         a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b},
6742         g-soccon.ads, and s-taprop.adb for the marte run time.
6743         (EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and
6744         timers are supported on marte.
6745         (EH_MECHANISM for marte): Do not use ZCX.
6746         (THREADSLIB for marte): Use -lmarte.
6747         Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS
6748         Add mlib-tgt-specific.o to gnatmake objects
6749         mlib-tgt-<platforms>.adb is now the body of MLib.Tgt.Specific, no
6750         longer of MLib.Tgt.
6751         (LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks
6752         6, either kernel or rtp, use a specialized version of s-osinte.ads.
6753
6754 2007-06-06  Pascal Obry  <obry@adacore.com>
6755
6756         * mkdir.c (__gnat_mkdir): Add support for UTF-8.
6757
6758 2007-06-06  Vincent Celier  <celier@adacore.com>
6759
6760         * mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory
6761         separator, use instead the proper host directory separator.
6762         (Copy_ALI_Files): Make sure that an already existing ALI file in the
6763         ALI copy dir is writable, before doing the copy.
6764
6765         * mlib-utl.ads, mlib-utl.adb: 
6766         (Gcc): If length of command line is too long, put the list of object
6767         files in a response file, if this is supported by the platform.
6768         (Ar): If invocation of the archive builder is allowed to be done in
6769         chunks and building it in one shot would go above an OS dependent
6770         limit on the number of characters on the command line, build the archive
6771         in chunks.
6772
6773 2007-06-06  Vincent Celier  <celier@adacore.com>
6774
6775         * osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name
6776         of specified object file is not equal to base name of source.
6777
6778 2007-06-06  Javier Miranda  <miranda@adacore.com>
6779             Hristian Kirtchev  <kirtchev@adacore.com>
6780             Ed Schonberg  <schonberg@adacore.com>
6781
6782         * sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
6783         the full type declaration.
6784         (Analyze_Component_Declaration): Add local variable E to capture the
6785         initialization expression of the declaration. Replace the occurences of
6786         Expression (N) with E.
6787         (OK_For_Limited_Init_In_05): Allow initialization of class-wide
6788         limited interface object with a function call.
6789         (Array_Type_Declaration): If the declaration lacks subtype marks for
6790         indices, create a simple index list to prevent cascaded errors.
6791         (Is_Null_Extension): Ignore internal components created for secondary
6792         tags when checking whether a record extension is a null extension.
6793         (Check_Abstract_Interfaces): Add missing support for interface subtypes
6794         and generic formals.
6795         (Derived_Type_Declaration): Add missing support for interface subtypes
6796         and generic formals.
6797         (Analyze_Object_Declaration): If an initialization expression is
6798         present, traverse its subtree and mark all allocators as static
6799         coextensions.
6800         (Add_Interface_Tag_Component): When looking for components that may be
6801         secondary tags, ignore pragmas that can appear within a record
6802         declaration.
6803         (Check_Abstract_Overriding): an inherited function that dispatches on
6804         result does not need to be overriden if the controlling type is a null
6805         extension.
6806         (Mentions_T): Handle properly a 'class attribute in an anonymous access
6807         component declaration, when the prefix is an expanded name.
6808         (Inherit_Component): If the derivation is for a private extension,
6809         inherited components remain visible and their ekind should not be set
6810         to Void.
6811         (Find_Type_Of_Object): In the case of an access definition, always set
6812         Is_Local_Anonymous_Access. We were previously not marking the anonymous
6813         access type of a return object as a local anonymous type.
6814         (Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
6815         range with character literal bounds.
6816         (Constrain_Array): Initialize the Packed_Array_Type field to Empty.
6817         (Access_Subprogram_Declaration): Indicate that the type declaration
6818         depends on an incomplete type only if the incomplete type is declared
6819         in an open scope.
6820         (Analyze_Subtype_Declaration): Handle properly subtypes of
6821         synchronized types that are tagged, and that may appear as generic
6822         actuals.
6823         (Access_Subprogram_Declaration): An anonymous access to subprogram can
6824         appear as an access discriminant in a private type declaration.
6825         (Add_Interface_Tag_Components): Complete decoration of the component
6826         containing the tag of a secondary dispatch table and the component
6827         containing the offset to the base of the object (this latter component
6828         is only generated when the parent type has discriminants --as documented
6829         in this routine).
6830         (Inherit_Components): Use the new decoration of the tag components to
6831         improve the condition that avoids inheriting the components associated
6832         with secondary tags of the parent.
6833         (Build_Discriminanted_Subtype): Indicate to the backend that the
6834         size of record types associated with dispatch tables is known at
6835         compile time.
6836         (Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
6837         (Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
6838         to include task, protected, and synchronized interfaces as limited
6839         interfaces.
6840         (Process_Discriminants): Remove the setting of
6841         Is_Local_Anonymous_Access on the type of (anonymous) access
6842         discriminants of nonlimited types.
6843         (Analyze_Interface_Type_Declaration): Complete the decoration of the
6844         class-wide entity it is is already present. This situation occurs if
6845         the limited-view has been previously built.
6846         (Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
6847         field.
6848         (Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
6849         Related_Interface.
6850
6851 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
6852
6853         * sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components
6854         of the type that specify the position of interface tags when the type
6855         inherits discriminated array components from the parent type.
6856         If a component is initialized with a box, check for the presence of a
6857         default expression in its declaration before using its default
6858         initialization procedure.
6859         (Resolve_Record_Aggregate): If a component is box-initialized, and the
6860         component type has a discriminants, create a partial aggregate for it
6861         by copying the discriminants of the component subtype.
6862         Reject attempt to initialize a discriminant with a box.
6863         (Array_Aggr_Subtype): Indicate to the backend that the size of arrays
6864         associated with dispatch tables is known at compile time.
6865         (Get_Value): If an association in a record aggregate has a box
6866         association, and the corresponding record component has a default
6867         expression, always copy the default expression, even when the
6868         association has a single choice, in order to create a proper
6869         association for the expanded aggregate.
6870
6871 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
6872             Robert Dewar  <dewar@adacore.com>
6873
6874         * par-ch12.adb (P_Generic_Associations): The source position of an
6875         Others association is that of the others keyword, not that of the token
6876         that follows the box.
6877         (P_Formal_Type_Definition): Handle formal access types that carry a
6878         not null indicator.
6879
6880         * par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If
6881         multiple identifier are present, save Scan_State before scanning the
6882         colon, to ensure that separate trees are constructed for each
6883         declaration.
6884         (P_Identifier_Declarations): For object declaration, set new flag
6885         Has_Init_Expression if initialization expression present.
6886         (P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL
6887         Improve NOT NULL error messages
6888
6889 2007-06-06  Robert Dewar  <dewar@adacore.com>
6890
6891         * par-ch4.adb: (P_Name): Recover from literal used as name
6892
6893 2007-06-06  Vincent Celier  <celier@adacore.com>
6894
6895         * prep.ads, prep.adb (Expression): New Boolean parameter Complemented,
6896         defaulted to False.
6897         In the "not" case, recursive call with Complemented set to True.
6898         Do not allow "or" or "and" operators when Complemented is True.
6899
6900 2007-06-06  Vincent Celier  <celier@adacore.com>
6901
6902         * prj.adb (Project_Empty): Gives default value for new component
6903         Libgnarl_Needed
6904
6905         * prj-attr.ads: Minor reformatting
6906
6907         * prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object
6908         directory using the untouched casing.
6909         (For_All_Source_Dirs): Idem.
6910
6911         * prj-ext.ads, prj-ext.adb (Search_Directories): New table to record
6912         directories specified with switches -aP.
6913         (Add_Search_Project_Directory): New procedure
6914         (Initialize_Project_Path): Put the directories in table
6915         Search_Directories in the project search path.
6916         (Initialize_Project_Path): For VMS, transform into canonical form the
6917         project path.
6918
6919 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
6920
6921         * restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return
6922         true if configurable run-time or No_Run_Time is set.
6923         (Set_Restriction): Avoid setting restriction No_Elaboration_Code when
6924         processing an unit which is not the one being compiled.
6925
6926 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
6927
6928         * s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax.
6929         Replace UC by Ada.UC
6930
6931         * s-bitops.adb: Get rid of System.Pure_Exceptions.
6932         Replace UC by Ada.UC
6933
6934 2007-06-06  Robert Dewar  <dewar@adacore.com>
6935
6936         * scng.adb: (Check_End_Of_Line): Deal with very long lines
6937
6938 2007-06-06  Robert Dewar  <dewar@adacore.com>
6939
6940         * sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names
6941         Remove no longer used nodes.
6942
6943 2007-06-06  Javier Miranda  <miranda@adacore.com>
6944             Ed Schonberg  <schonberg@adacore.com>
6945             Robert Dewar  <dewar@adacore.com>
6946
6947         * sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check
6948         on obsolescent withed unit in case of limited-withed units.
6949         (Analyze_Compilation_Unit): Add guard to code that removed an
6950         instantiation from visibility, to prevent compiler aborts when
6951         instantiation is abandoned early on.
6952         (Install_Limited_Withed_Unit): Recognize a limited-with clause on the
6953         current unit being analyzed, and Distinguish local incomplete types
6954         from limited views of types declared elsewhere.
6955         (Build_Limited_Views.Decorate_Tagged_Type): Add documentation
6956         to state that the class-wide entity is shared by the limited-view
6957         and the full-view.
6958         (Analyze_With_Clause): Improve placement of flag for case of
6959         unimplemented unit.
6960         (Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a
6961         manner similar to GNAT.Current_Exception. This is a violation of
6962         restriction (No_Exception_Propagation), and also inhibits the
6963         optimization of local raise to goto.
6964         (Analyze_With_Clause): Check for Most_Recent_Exception being with'ed,
6965         and if so set Most_Recent_Exception_Used flag in Opt, and also check
6966         for violation of restriction No_Exception_Propagation.
6967
6968 2007-06-06  Javier Miranda  <miranda@adacore.com>
6969             Hristian Kirtchev  <kirtchev@adacore.com>
6970             Gary Dismukes  <dismukes@adacore.com>
6971
6972         * sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the
6973         use of entity Exception_Occurrence if it is not available in the
6974         target run-time.
6975
6976         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When
6977         concurrent types are declared within an Ada 2005 generic, build their
6978         corresponding record types since they are needed for overriding-related
6979         semantic checks.
6980         (Analyze_Protected_Type): Rearrange and simplify code for testing that a
6981         protected type does not implement a task interface or a nonlimited
6982         interface.
6983         (Analyze_Task_Type): Rearrange and simplify code for testing that a task
6984         type does not implement a protected interface or a nonlimited interface.
6985         (Single_Task_Declaration, Single_Protected_Declaration): use original
6986         entity for variable declaration, to ensure that debugging information
6987         is correcty generated.
6988         (Analyze_Protected_Type, Analyze_Task_Type): Do not call expander
6989         routines if the expander is not active.
6990         (Analyze_Task_Body): Mark all handlers to stop optimization of local
6991         raise, since special things happen for task exception handlers.
6992
6993         * sem_disp.adb (Check_Controlling_Formals): Add type retrieval for
6994         concurrent types declared within a generic.
6995         (Check_Dispatching_Operation): Do not emit warning about late interface
6996         operations in the context of an instance.
6997         (Check_Dispatching_Call): Remove restriction against calling a
6998         dispatching operation with a limited controlling result.
6999         (Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and
7000         Register_Interface_DT_Entry by calls to Register_Primitive.
7001         (Check_Dispatching_Formals): Handle properly a function with a
7002         controlling access result.
7003
7004 2007-06-06  Robert Dewar  <dewar@adacore.com>
7005             Arnaud Charlet  <charlet@adacore.com>
7006
7007         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size):
7008         Check for restriction No_Implementation_Attributes if in Ada 95 mode.
7009         (Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available
7010         (Analyze_Attribute_Definition_Clause [External_Tag]): Generate error
7011         message when using a VM, since this attribute is not supported.
7012         (Analyze_Record_Representation_Clause): Give unrepped component warnings
7013
7014         * usage.adb: Add new warning for renaming of function return objects
7015         Indicate that -gnatwp and -gnatwP concern front-end inlining
7016         Add line for -gnatyg
7017         Add usage information for -gnatw.c/C
7018
7019 2007-06-06  Robert Dewar  <dewar@adacore.com>
7020             Ed Schonberg  <schonberg@adacore.com>
7021
7022         * sem_ch5.adb
7023         (Find_Var): Do not consider function call in test for infinite loop
7024         warning if warnings set off for function entity.
7025         (One_Bound): Do not create a temporary for a loop bound if it is a
7026         character literal.
7027         (Analyze_Assignment): Traverse the right hand side of an assignment and
7028         mark all allocators as static coextensions.
7029         (Analyze_Assignment): Exempt assignments involving a dispatching call
7030         to a function with a controlling access result from the check requiring
7031         the target to be class-wide.
7032
7033 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
7034             Ed Schonberg  <schonberg@adacore.com>
7035             Robert Dewar  <dewar@adacore.com>
7036             Javier Miranda  <miranda@adacore.com>
7037
7038         * sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the
7039         chain of coextensions when an allocator serves as the root of such a
7040         chain.
7041         (Propagate_Coextensions): Remove the test for the root being an
7042         allocator.
7043         (Resolve_Allocator): Add condition to ensure that all future decoration
7044         occurs on an allocator node. Add processing and cleanup for static
7045         coextensions.
7046         (Valid_Conversion): If the operand type is the limited view of a
7047         class-wide type, use the non-limited view is available to determine
7048         legality of operation.
7049         (Ambiguous_Character): move to spec, for use elsewhere.
7050         (Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode
7051         (Resolve_Range): Diagnose properly an ambiguous range whose bounds are
7052         character literals.
7053         (Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting
7054         Do_Division_Check flag explicitly.
7055         (Resolve_Actuals): If the actual is of a synchronized type, and the
7056         formal is of the corresponding record type, this is a call to a
7057         primitive operation of the type, that is declared outside of the type;
7058         the actual must be unchecked-converted to the type of the actual
7059         (Resolve_Call): Kill all current values for any subprogram call if
7060         flag Suppress_Value_Tracking_On_Call is set.
7061         (Resolve_Type_Conversion): Generate error message the the operand
7062         or target of interface conversions come from a limited view.
7063         (Check_Infinite_Recursion): Ignore generated calls
7064         (Check_Allocator_Discrim_Accessibility): New procedure for checking
7065         that an expression that constrains an access discriminant in an
7066         allocator does not denote an object with a deeper level than the
7067         allocator's access type.
7068         (Resolve_Allocator): In the case of an allocator initialized by an
7069         aggregate of a discriminated type, check that associations for any
7070         access discriminants satisfy accessibility requirements by calling
7071         Check_Allocator_Discrim_Accessibility.
7072         (Resolve_Equality_Op): Handle comparisons of anonymous access to
7073         subprogram types in the same fashion as other anonymous access types.
7074         (Resolve_Concatenation_Arg): Remove initial character '\' in an error
7075         message that is not a continuation message.
7076         (Resolve_Type_Conversion): Add missing support for conversion to
7077         interface type.
7078         (Resolve_Actuals): Introduce a transient scope around the call if an
7079         actual is a call to a function returning a limited type, because the
7080         resulting value must be finalized after the call.
7081         (Resolve_Actuals): If the call was given in prefix notations, check
7082         whether an implicit 'Access reference or implicit dereference must be
7083         added to make the actual conform to the controlling formal.
7084
7085 2007-06-06  Robert Dewar  <dewar@adacore.com>
7086             Javier Miranda  <miranda@adacore.com>
7087
7088         * sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
7089         (Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit
7090         overriding of an inherited private subprogram now there is no need to
7091         inherit its dispatching slot and reduce the size of the dispatch table.
7092         Set_All_DT_Position now ensures that the same slot is now assigned to
7093         both entities. This is required to statically build the dispatch table.
7094         (Declare_Inherited_Private_Subprograms): Rewriten to avoid the need
7095         of calling Set_All_DT_Position to re-evaluate the position of the
7096         entries in the dispatch table. Such reevaluation is not desired if
7097         the tagged type is already frozen.
7098
7099 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
7100             Gary Dismukes  <dismukes@adacore.com>
7101             Robert Dewar  <dewar@adacore.com>
7102             Javier Miranda  <miranda@adacore.com>
7103
7104         * sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute
7105         reference acts as an lvalue when the attribute name modifies the prefix
7106         (Is_Coextension_Root): New routine.
7107         (Mark_Static_Coextensions): New routine.
7108         (Type_Access_Level): Revise code for checking the level of the
7109         anonymous access type of a return object.
7110         (Safe_To_Capture_Value): Not safe to capture if Address_Taken
7111         (Matches_Prefixed_View_Profile): Remove the no longer necessary
7112         retrieval of the corresponding controlling record type.
7113         (Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of
7114         concurrent types declared within a generic as well as class wide types.
7115         Emit a mode incompatibility error whenever a protected entry or routine
7116         override an interface routine whose first parameter is not of mode
7117         "out", "in out" or access to variable.
7118         (Overrides_Synchronized_Primitive): Rename to
7119         Find_Overridden_Synchronized_Primitive.
7120         (Collect_Interface_Components): New subprogram that collects all the
7121         components of a tagged record containing tags of secondary dispatch
7122         tables.
7123         (Add_Global_Declaration): New procedure
7124         (Abstract_Interface_List): Handle properly the case of a subtype of a
7125         private extension.
7126         (Type_Access_Level): In the case of a type whose parent scope is a
7127         return statement, call Type_Access_Level recursively on the enclosing
7128         function's result type to determine the level of the return object's
7129         type.
7130         (Build_Elaboration_Entity): Build name of elaboration entity from the
7131         scope chain of the entity, rather than the unit name of the file name.
7132         (Check_Nested_Access): New procedure.
7133         (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
7134         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
7135         (Get_Renamed_Entity): Utility routine for performing common operation
7136         of chasing the Renamed_Entity field of an entity.
7137
7138 2007-06-06  Robert Dewar  <dewar@adacore.com>
7139
7140         * sem_elab.adb (Check_A_Call): Specialize elaboration warnings on
7141         elaboration model
7142         (Check_A_Call): Add check for entry call which was causing blowup
7143
7144 2007-06-06  Olivier Hainque  <hainque@adacore.com>
7145
7146         * raise-gcc.c (__gnat_eh_personality): Tweak the signature and add
7147         special code on ia64-vms to handle major incompatibilities between the
7148         GCC unwinding ABI and the VMS Condition Handling Facility, both calling
7149         this routine with a very different set of arguments and expectations on
7150         the return value.
7151
7152 2007-06-06  Thomas Quinot  <quinot@adacore.com>
7153
7154         * socket.c (__gnat_close_signalling_fd): New function.
7155         (__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname,
7156         __gnat_safe_getservbyname, __gnat_safe_getservbyport):
7157         New supporting functions for task safe Netdb operations.
7158
7159 2007-06-06  Thomas Quinot  <quinot@adacore.com>
7160             Olivier Hainque  <hainque@adacore.com>
7161
7162         * a-except-2005.ads, a-except-2005.adb
7163         (Raise_From_Controlled_Operation): New procedure in
7164         (private part of) Ada.Exceptions (standard runtime version). Used to
7165         provide informational exception message when Program_Error is raised as
7166         a result of an Adjust or Finalize operation propagating an exception.
7167         (Rmsg_28): Fix description for E.4(18) check.
7168         (Raise_Current_Excep): Call Debug_Raise_Exception just before
7169         propagation starts, to let debuggers know about the event in a reliable
7170         fashion.
7171         Take the address of E and dereference to make sure it is homed on stack
7172         and prevent the stores from being deleted, necessary for proper
7173         debugger behavior on "break exception" hits.
7174         (Local_Raise): Moved to System.Exceptions
7175
7176         * s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate
7177         exception message from the current occurrence and raise Program_Error
7178         has been moved to Ada.Exceptions.Raise_From_Controlled_Operation.
7179
7180 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
7181             Arnaud Charlet  <charlet@adacore.com>
7182
7183         * s-taprob.adb (Unlock): Change the ceiling priority of the underlying
7184         lock, if needed.
7185
7186         * s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling
7187         priority associated to a lock.
7188
7189         * s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax
7190         assertion to take into account case of no abort restriction.
7191         (Initialize_Protection_Entries): Add initialization for the field
7192         New_Ceiling associated to the protected object.
7193         (Unlock_Entries): Change the ceiling priority of the underlying lock, if
7194         needed.
7195
7196         * s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
7197         since this function needs to be set consistently with Update_Exception.
7198
7199         * s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
7200         since this function needs to be set consistently with Update_Exception.
7201
7202         * s-taskin.ads: Update comments on
7203         Interrupt_Server_Blocked_On_Event_Flag.
7204         (Unbind_Handler): Fix handling of server_task wakeup
7205         (Server_Task): Set self's state so that Unbind_Handler can take
7206         appropriate actions.
7207         (Common_ATCB): Now use a constant from System.Parameters to determine
7208         the max size of the Task_Image field.
7209
7210         * s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the
7211         Initialize_Analyzer function.
7212         ([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to
7213         take into account case of no abort restriction.
7214         ([Vulnerable_]Complete_Master): Modify assertion.
7215
7216         * s-tataat.adb (Finalize): Use the nestable versions of
7217         Defer/Undefer_Abort.
7218
7219         * s-tpobop.adb (Protected_Entry_Call): Relax assertion.
7220
7221         * s-tpobop.ads: Update comments.
7222
7223         * s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead
7224         of locking the object manually, to avoid inconsistencies between
7225         Lock/Unlock_Entry assertions.
7226
7227         * s-interr.ads, s-interr.adb (Server_Task): Fix race condition when
7228         terminating
7229         application and System.Parameters.No_Abort is True.
7230         Update comments on Interrupt_Server_Blocked_On_Event_Flag.
7231         (Unbind_Handler): Fix handling of server_task wakeup
7232         (Server_Task): Set self's state so that Unbind_Handler can take
7233         appropriate actions.
7234
7235 2007-06-06  Thomas Quinot  <quinot@adacore.com>
7236
7237         * s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure
7238         declarations instead of an explicit null body, for conciseness.
7239
7240 2007-06-06  Robert Dewar  <dewar@adacore.com>
7241
7242         * sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an
7243         illegal aggregate and the type is still Any_Composite.
7244         (Subtypes_Statically_Match): Fix problem of empty discriminant list
7245
7246 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
7247
7248         * sem_smem.adb (Check_Shared_Var): Check explicitly for as task object,
7249         to prevent subsequent expansion.
7250
7251 2007-06-06  Robert Dewar  <dewar@adacore.com>
7252
7253         * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body
7254
7255 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
7256             Robert Dewar  <dewar@adacore.com>
7257
7258         * sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for
7259         exceptions.
7260         (Write_Itype): Handle case of string literal subtype, which
7261         comes up in this context.
7262         (Update_Itype): when debugging expanded code, update sloc of itypes
7263         associated with defining_identifiers and ranges, for gdb use.
7264         (Sprint_Node_Actual): Add static keyword to object or exception
7265         declaration output if Is_Statically_Allocated is True.
7266         (Sprint_End_Label): Set entity of end marker for a subprogram, package,
7267         or task body, so that the tree carries the proper Sloc information for
7268         debugging use.
7269         (Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes
7270
7271 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
7272
7273         * s-secsta.adb (Chunk): Ensure this object has a static size known at
7274         compile time, to avoid dynamic memory allocation
7275         (Elaboration code): Only use dynamic memory allocation when needed.
7276
7277 2007-06-06  Quentin Ochem  <ochem@adacore.com>
7278
7279         * s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter
7280         "Overflow_Guard".
7281         (Stack_Analyzer): Added field "Overflow_Guard"
7282         (Task_Result): Added field "Overflow_Guard".
7283         (Index_Str): New constant.
7284         (Task_Name_Str): New constant.
7285         (Actual_Size_Str): New constant.
7286         (Pattern_Array_Element_Size): New constant.
7287         (Get_Usage_Range): New subprogram.
7288         (Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len.
7289         Now align the output.
7290         Added comments.
7291         (Initialize): Added value for Overflow_Guard.
7292         (Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant.
7293         Update the value of the overflow guard according to the actual
7294         beginning of the pattern array.
7295         (Initialize_Analyzer): Added parameter Overflow_Guard.
7296         Take this parameter into accound when computing the max size.
7297         (Compute_Result): Use constant Pattern_Array_Elem_Size when relevant.
7298         (Report_Result): Removed extra useless procedure.
7299         Updated call to Output_Result.
7300         Moved full computation of the Task_Result here.
7301
7302 2007-06-06  Thomas Quinot  <quinot@adacore.com>
7303
7304         * g-soccon-darwin.ads, gen-soccon.c: Add new constant
7305         Thread_Blocking_IO, always True by default, set False on a per-runtime
7306         basis.
7307         Add Windows-specific constants
7308         Add new constant Need_Netdb_Buffer.
7309         Add new macros to indicate whether getXXXbyYYY is thread safe and, if
7310         not, whether to use getXXXbyYYY_r.
7311
7312         * gsocket.h: Add new constant Need_Netdb_Buffer.
7313         Add new macros to indicate whether getXXXbyYYY is thread safe and, if
7314         not, whether to use getXXXbyYYY_r.
7315
7316 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
7317
7318         * s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier
7319         than their first call.
7320         Add type Dummy_Communication_Block used in the generation of the pre-
7321         defined dispatching primitive _disp_asynchronous_select.
7322         (Storage_Element): Put Pragma Universal_Aliasing on it.
7323
7324 2007-06-06  Vincent Celier  <celier@adacore.com>
7325
7326         * a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean
7327         function.
7328
7329         * a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive
7330         letter if it is not followed by a '/' or a '\'.
7331         (Windows): New Boolean function
7332
7333         * a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma
7334         Ada 2005.
7335         (Containing_Directory): On Windows, keep at least one '/' or '\' after a
7336         drive letter.
7337         (Containing_Directory): Raise Use_Error when the directory is a root
7338         directory.
7339         (Extension): When returning the result, use a conversion to Result_Type,
7340         not a qualification.
7341
7342 2007-06-06  Robert Dewar  <dewar@adacore.com>
7343
7344         * stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure
7345         (Set_Style_Check_Options): Recognize new -gnatyg style switch
7346
7347         * switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set
7348         Warn_On_Non_Local_Exception to False, to turn off warnings for
7349         No_Exception_Propagation in ZFP runtime.
7350         (Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC
7351         back-ends.
7352         (Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks
7353
7354 2007-06-06  Vincent Celier  <celier@adacore.com>
7355
7356         * switch-b.adb (Scan_Binder_Switches): Add processing for new
7357         switches -R and -Z
7358
7359         * switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E
7360         (Scan_Make_Switches): Recognize new switch -aP
7361
7362 2007-06-06  Matthew Gingell  <gingell@adacore.com>
7363             Jose Ruiz  <ruiz@adacore.com>
7364
7365         * s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the
7366         VxWorks task descriptor in the Ada run time, call a C subprogram
7367         (__gnat_get_stack_info) that extracts the required information.
7368
7369         * sysdep.c: Back out temporary lynxos workaround.
7370         (__gnat_get_stack_info): Add this procedure that passes to the Ada run
7371         time the stack information associated to the currently executing task.
7372         Only VxWorks systems require this function.
7373
7374 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
7375
7376         * tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not
7377         add the stack bias if the offset is computed from a frame address.
7378         (__gnat_backtrace): Adjust for above change.
7379
7380 2007-06-06  Thomas Quinot  <quinot@adacore.com>
7381
7382         * types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to
7383         PE_Non_Transportable_Actual.
7384         (By_Descriptor_Last): New constant.
7385         (By_Copy_Return): Likewise.
7386
7387 2007-06-06  Vincent Celier  <celier@adacore.com>
7388
7389         * vms_conv.adb (Process_Argument): Keep arguments starting with '+' as
7390         is.
7391
7392         * vms_data.ads: Add entries for -gnatw.x and -gnatw.X
7393         /STYLE_CHECKS=GNAT: Change meaning to -gnatyg
7394         /GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg
7395         Add missing comment for /OPTIMIZE=SPACE
7396         Add entry for OPTIMIZE=SPACE
7397         Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST
7398         Add documentation for new qualifiers corresponding to -gnatw.c/.C
7399
7400 2007-06-06  Vincent Celier  <celier@adacore.com>
7401             Robert Dewar  <dewar@adacore.com>
7402
7403         * xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and
7404         -gnatw.C)
7405
7406         * gnat_ugn.texi: Fix ordering of -g switch for gnatmake
7407         Document gnatbind switch -a
7408         (case Constructions): Document that variables declarations are allowed
7409         for previously declared variables.
7410         Fix external lib project example
7411         -gnatg: Indicate new VMS qualifier /GNAT_INTERNAL
7412         Indicate that "#if not X or Y then" is not allowed in input files to
7413         gnatprep.
7414         Document gnatw.x and gnatw.X warning flags
7415         Mention -Winline switch to activate warnings when back-end inlining is
7416         ineffective.
7417         Add gnatcheck rule descriptions
7418         Describe how to use the GNAT driver to call a tool on a closure.
7419         Describe how to run project-wide checks or metrics.
7420         Document gnatbind's -R option
7421         Updated to account for Ada 2005 support
7422
7423         * gnat_rm.texi (Case Construction): Allow variable declarations for
7424         previously declared variables.
7425         (Representation Clauses and Pragmas): Lift restriction on alignment
7426         clauses for record types.
7427         (Ada.Characters.*): Fix typo in reference to A.3.3(27).
7428         Document No_Exception_Propagation restriction
7429         Document No_Body pragma
7430         Updated to account for Ada 2005 support; corrected some typos
7431         (Implementation Defined Pragmas): Document pragma Universal_Aliasing.
7432
7433         * gnat-style.texi: Make it clear that we never use mode IN for
7434         procedures or functions
7435
7436         * ug_words: Add entries for -gnatw.x and -gnatw.X
7437         Add entries for -gnatw.c/.C
7438
7439 2007-06-06  Pascal Obry  <obry@adacore.com>
7440             Vincent Celier  <celier@adacore.com>
7441
7442         * makegpr.adb (Add_Archive_Path): Use untouched object and library
7443         dirs and library name.
7444         (Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate
7445         comments.
7446         (Build_Library): Idem.
7447         (Compile_Individual_Sources): Idem.
7448         (Compile_Link_With_Gnatmake): Idem.
7449         (Compile_Sources): Idem.
7450         (Get_Imported_Directories): Idem.
7451         (Link_Executables): Idem. Same change for the executable dir.
7452         (Check_Compilation_Needed): C_Source_Path new variable containing
7453         the canonical form of Source_Path to check against the source names
7454         in the dependency file.
7455         (Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In
7456         verbose mode, display the name of the object directory we're changing
7457         to.
7458         (Saved_Switches): New name of table X_Switches
7459         (Scan_Arg): Recognize new switch -aP and save in table Saved_Switches
7460         (Usage): New line for switch -aP
7461         (Get_Imported_Directories.Add): Make sure that Add_Arg is True before
7462         testing if a directory should be added to the search path.
7463
7464 2007-06-06  Javier Miranda  <miranda@adacore.com>
7465
7466         * a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads, 
7467         a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object
7468         declaration after freezing point of all its associated tagged types;
7469         otherwise such types are frozen too early.
7470
7471 2007-06-06  Robert Dewar  <dewar@adacore.com>
7472
7473         * a-reatim.adb: Documentation addition
7474
7475         * g-cgideb.adb: Minor code reorganization
7476
7477         * tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb,
7478         mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads,
7479         s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting.
7480
7481         * debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete
7482         function.  Change name New_Scope to Push_Scope
7483         (Get_Debug_Flag_K): Remove unused obsolete function.
7484
7485         * exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to
7486         Push_Scope.
7487
7488         * makeusg.adb: Update Copyright notice
7489         Add line for switch -aP
7490
7491         * makeusg.adb: Fix wording of some usage messages
7492
7493         * s-assert.adb (Raise_Assert_Failure): Add call to
7494         Debug_Raise_Assert_Failure.
7495
7496         * s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min
7497         (2, Standard'Alignment) for compatibility with AAMP (where alignment
7498         is restricted to 1).
7499
7500         * s-wchjis.adb: Remove use of System.Pure_Exceptions
7501
7502         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the
7503         node location to No_Location when we're not debugging the expanded
7504         code.
7505
7506 2007-05-22  Alexandre Oliva  <aoliva@redhat.com>
7507
7508         * misc.c (enumerate_modes): Consider log2_b to always be one.
7509
7510 2007-05-14  Rafael Avila de Espindola  <espindola@google.com>
7511
7512         * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
7513
7514 2007-05-02  Pascal Obry  <obry@adacore.com>
7515
7516         * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
7517         to use Stream_IO.File_Type. This is needed to make use of the UTF-8
7518         encoding support of Stream_IO.
7519         (Write_Unit): Idem.
7520
7521         * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
7522         filename and corresponding encoding to match the OS requirement.
7523         (__gnat_file_exists): Do not call __gnat_stat() on Windows as this
7524         routine will fail on specific devices like CON: AUX: ...
7525
7526         PR ada/29856: Add missing braces
7527
7528 2007-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7529
7530         PR ada/31660
7531         * ada-tree.h (lang_tree_node): Fix typo in chain_next.
7532
7533 2007-04-21  Jan Hubicka  <jh@suse.cz>
7534
7535         * misc.c (gnat_expand_body): Don't call target for destructors,
7536         avoid redundant check on syntax errors.
7537
7538 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7539
7540         * ada-tree.h (lang_tree_node): Use GENERIC_NEXT
7541         instead of checking GIMPLE_STMT_P in chain_next.
7542
7543 2007-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
7544
7545         PR ada/31576
7546         * system-linux-alpha.ads: Disable constant condition warning for the
7547         Default_Bit_Order variable.
7548         * system-linux-s390.ads: Likewise.
7549         * system-linux-s390x.ads: Likewise.
7550         * system-linux-sparc.ads: Likewise.
7551
7552 2007-04-06  Javier Miranda  <miranda@adacore.com>
7553             Matt Heaney  <heaney@adacore.com>
7554             Robert Dewar  <dewar@adacore.com>
7555
7556         a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
7557         a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
7558         a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
7559         a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
7560         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
7561         a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
7562         a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
7563         a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
7564         a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
7565         a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
7566         a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
7567         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
7568         a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
7569         a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
7570         a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
7571         a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
7572         a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
7573         i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
7574         unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
7575         a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
7576         a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
7577         a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
7578         expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
7579         s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
7580         s-taprop-tru64.adb, s-taprop-irix.adb,
7581         s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
7582         s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
7583         s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
7584         s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb, 
7585         s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads, 
7586         a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb, 
7587         a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads, 
7588         g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads, 
7589         s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb, 
7590         s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads, 
7591         s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb, 
7592         s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, 
7593         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb, 
7594         s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb, 
7595         a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads, 
7596         a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads, 
7597         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb, 
7598         a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
7599         a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads, 
7600         a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
7601         access types.
7602         Update documentation.
7603         Minor rewording.
7604
7605 2007-04-06  Robert Dewar  <dewar@adacore.com>
7606
7607         * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
7608         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
7609         system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads,
7610         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
7611         system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads,
7612         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
7613         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
7614         system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
7615         system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
7616         system-hpux-ia64.ads, targparm.adb,
7617         targparm.ads (Functions_Return_By_DSP_On_Target): Removed
7618
7619         * system.ads: Move Functions_Return_By_DSP to obsolete section,
7620         kept for bootstrap purposes only.
7621
7622 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
7623
7624         * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
7625         s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads,
7626         s-taprop-posix.adb (Create_Task): Fix handling of Task_Info.
7627         (PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants.
7628
7629 2007-04-06  Robert Dewar  <dewar@adacore.com>
7630
7631         * a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb
7632         (Local_Raise): New dummy procedure called when a raise is converted
7633         to a local goto. Used for debugger to detect that the exception
7634         is raised.
7635
7636         * debug.adb: Document new d.g flag (expand local raise statements to
7637         gotos even if pragma Restriction (No_Exception_Propagation) is not set)
7638
7639         * exp_sel.adb: Use Make_Implicit_Exception_Handler
7640
7641         * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to
7642         suppress warnings for unused handlers.
7643         (Warn_If_No_Propagation):  Use new flag -gnatw.x to suppress
7644         warnings for raise statements not handled locally.
7645         (Get_RT_Exception_Entity): New function
7646         (Get_Local_Call_Entity): New function
7647         (Find_Local_Handler): New function
7648         (Warn_If_No_Propagation): New procedure
7649         (Expand_At_End_Handler): Call Make_Implicit_Handler
7650         (Expand_Exception_Handlers): Major additions to deal with local handlers
7651         (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error,
7652         Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling
7653         for local raise
7654
7655         * exp_ch11.ads (Get_RT_Exception_Entity): New function
7656         (Get_Local_Call_Entity): New function
7657
7658         * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list
7659         of restrictions that the binder will never suggest adding.
7660
7661         * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field
7662         to No_Elist.
7663
7664         * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not
7665         be with'ed in the presence of pragma Restriction
7666         (No_Exception_Propagation).
7667
7668         * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes
7669
7670         * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
7671         parameter, then the handler is not a suitable target for a local raise,
7672         and this is a violation of restriction No_Exception_Propagation.
7673         (Analyze_Handled_Statements): Analyze choice parameters in exception
7674         handlers before analyzing statement sequence (needed for proper
7675         detection of local raise statements).
7676         (Analyze_Raise_Statement): Reraise statement is a violation of the
7677         No_Exception_Propagation restriction.
7678
7679         * s-rident.ads: Add new restriction No_Exception_Propagation
7680
7681         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
7682         function, like Make_Exception_Handler but sets Local_Raise_Statements
7683         to No_List.
7684         (Add_Unique_Serial_Number): Deal with case where this is called during
7685         processing of configuration pragmas.
7686
7687 2007-04-06  Thomas Quinot  <quinot@adacore.com>
7688             Pat Rogers  <rogers@adacore.com>
7689             Pascal Obry  <obry@adacore.com>
7690
7691         * g-stsifd-sockets.adb: New file.
7692
7693         * g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
7694         g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
7695         g-socthi-vms.adb: Move signalling
7696         fd management to a nested package, so that they can conveniently be
7697         moved to a subunit that is shared across Windows, VMS, and VxWorks
7698         (Ada implementation) or completed with imported bodies from socket.c
7699         (UNIX case).
7700         (Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
7701         subprograms.
7702         (Check_Selector): Use Read_Signalling_Fd to read and discard data from
7703         the signalling file descriptor.
7704         (Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
7705         signalling file descriptor.
7706         (Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
7707         instead of creating a pair of sockets for signalling here.
7708
7709         * g-socthi.adb: Ditto.
7710         Set the runtime process to ignore SIGPIPEs on platforms that support
7711         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
7712
7713         * g-socthi-mingw.adb: Ditto.
7714         (WS_Version): Use Windows 2.2.
7715         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
7716
7717         * g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
7718         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
7719
7720         * Makefile.in: New libgnat pair g-stsifd.adb<g-stsifd-sockets.adb.
7721         added GNAT byte swapping facility
7722         Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.
7723
7724         * g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.
7725
7726         * socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
7727         New subprograms.
7728         (__gnat_create_signalling_fds): New subprogram.
7729         Set the runtime process to ignore SIGPIPEs on platforms that support
7730         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
7731
7732 2007-04-06  Hristian Kirtchev  <kirtchev@adacore.com>
7733             Vincent Celier  <celier@adacore.com>
7734
7735         * a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
7736         New version of Ada.Calendar which supports the new upper bound of Ada
7737         time (2399-12-31 86_399.999999999).
7738         The following modifications have been made to the package:
7739          - New representation of time as count of nanoseconds since the start of
7740            Ada time (1901-1-1 0.0).
7741          - Target independent Split and Time_Of routines which service both
7742            Ada 95 and Ada 2005 code.
7743          - Target independent interface to the Ada 2005 children of Calendar.
7744          - Integrated leap seconds into Ada 95 and Ada 2005 mode.
7745          - Handling of non-leap centenial years.
7746          - Updated clock function.
7747          - Updated arithmetic and comparison operators.
7748
7749         * a-caldel.adb (To_Duration): Add call to target independent routine in
7750         Ada.Calendar to handle the conversion of time to duration.
7751
7752         * sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
7753         (UTC Offset).
7754         If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
7755         set off to 0.
7756         (__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
7757         targets do not have a natural time zone, GMT is used as a default.
7758         (__gnat_get_task_options): New.
7759
7760         * a-direct.adb (Modification_Time): Add with and use clauses for
7761         Ada.Calendar and Ada.
7762         Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
7763         since it is no longer needed.
7764         (Duration_To_Time): Removed.
7765         (OS_Time_To_Long_Integer): Removed.
7766         (Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
7767         Formatting Time_Of routines which automatically handle time zones,
7768         buffer periods and leap seconds.
7769
7770         * a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
7771         target independent routines in Ada.Calendar.
7772
7773         * a-calfor.ads, a-calfor.adb: 
7774         Code cleanup and addition of validity checks in various routines.
7775         (Day_Of_Week, Split, Time_Of): Add call to target independent routine in
7776         Ada.Calendar.
7777
7778         * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
7779         independent routine in Ada.Calendar.
7780
7781 2007-04-06  Olivier Hainque  <hainque@adacore.com>
7782
7783         * adaint.c: 
7784         (convert_addresses): Adjust prototype and dummy definition to expect an
7785          extra file_name argument.
7786
7787         * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
7788         filling the now expected file_name argument with the appropriate
7789         argv[0] expansion.
7790         (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
7791         (tracebk): Array of void * instead of char *, corresponding to what
7792          convert_addresses expects.
7793         (exename): New static global, to hold the executable file name to be
7794         used in all convert_addresses invocations.
7795         (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
7796         change.
7797         (__gnat_gmem_a2l_initialize): Resolve exename.
7798         (__gnat_convert_addresses): Use exename as the convert_addresses
7799         file_name argument.
7800
7801         * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
7802         "convert_addresses", now expecting a filename argument. Import the
7803         necessary entities to compute the filename to use and pass it to
7804         convert_addresses.
7805
7806 2007-04-06  Matt Gingell  <gingell@adacore.com>
7807
7808         * system-aix.ads: Back out previous change.
7809         (Functions_Return_By_DSP): Removed
7810
7811 2007-04-06  Pascal Obry  <obry@adacore.com>
7812
7813         * s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
7814         or the monotonic used by Ada.Real_Time) to compute the sleep duration
7815         on Windows.
7816
7817 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
7818
7819         * s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
7820         function. Its value changes in different VxWorks versions, and it is
7821         now handled by the function __gnat_get_task_options.
7822
7823         * s-taprop-vxworks.adb (Create_Task): Call the function
7824         __gnat_get_task_options to get the required options for creating a task.
7825
7826 2007-04-06  Pascal Obry  <obry@adacore.com>
7827             Thomas Quinot  <quinot@adacore.com>
7828
7829         * adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
7830         dealing with filename.
7831         (__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
7832         filename from a standard string to a wide-string depending on the
7833         encoding value.
7834         (__gnat_freopen): Idem.
7835         (__gnat_current_time): New function (wrapper for time(3) standard C
7836         function).
7837
7838         * g-os_lib.ads (Current_Time): New function. Returns the current
7839         system time as an OS_Time value.
7840
7841         * s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
7842         (Monotonic_Clock): Same.
7843
7844 2007-04-06  Quentin Ochem  <ochem@adacore.com>
7845
7846         * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
7847         not on a natural.
7848         (Scan_ALI): Cancel the xref line if there has been a reading ALI error.
7849
7850 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
7851
7852         * a-retide.adb: Add elaboration code to ensure that the tasking run
7853         time is initialized when using delay operations even when no task is
7854         created.
7855
7856 2007-04-06  Javier Miranda  <miranda@adacore.com>
7857
7858         * a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
7859         component Num_Prim_Ops.
7860         (Set_Num_Prim_Ops): Removed.
7861         Remove all the assertions because all the routines of this
7862         package are inline always.
7863         (Get_Offset_Index): Add support to primary dispatch tables.
7864         Move the documentation about the dispatch table to a-tags.ads
7865         (Set_External_Tag): Removed
7866         (Inherit_TSD): Removed.
7867         (Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
7868         moved to a-tags.ads
7869         (Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
7870         Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
7871         of the TSD field "Table" because this field has been renamed to
7872         "Ifaces_Table".
7873         (Inherit_CPP_DT): Removed.
7874         (K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
7875         Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
7876         declarations have been moved to a-tags.ads
7877         (Check_Size): Removed.
7878         (Expanded_Name): Updated to get access to the new field of TSD
7879         containing the address of the expanded name.
7880         (Get_Access_Level/Set_Access_Level): Removed.
7881         (Get_Predefined_Prim_Op_Address): Removed.
7882         (Set_Predefined_Prim_Op_Address): Removed.
7883         (Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
7884         (Get_Remotely_Callable/Set_Remotely_Callable): Removed.
7885         (Set_Expanded_Name): Removed.
7886         (Inherit_DT): Removed.
7887         (Inherit_CPP_DT): Removed.
7888         (Set_RC_Offset): Removed.
7889         (Set_TSD): Removed.
7890         (Base_Address): New function that displaces "this" to point to the base
7891         of the object (that is, to point to the primary tag of the object).
7892
7893 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
7894             Javier Miranda  <miranda@adacore.com>
7895
7896         * exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
7897         anonymous access component, do not create a master_id if type already
7898         has one, as may happen if the type is a subcomponent of a packed array
7899         type.
7900         (Build_Init_Procedure, Component_Needs_Simple_Initialization,
7901         Initialize_Tag): Remove code associated with the old CPP pragmas.
7902         CPP_Virtual and CPP_Vtable are no longer supported.
7903         (Build_Offset_To_Top_Internal): Add support for concurrent record types
7904         (Build_Offset_To_Top_Functions): Add support for concurrent record types
7905         (Freeze_Record_Type): Remove call to
7906         Init_Predefined_Interface_Primitives.
7907         (Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
7908         code required to initialize the tags of the secondary dispatch tables.
7909         This leaves the algoritm more clear.
7910         (Init_Secondary_Tags): Add support for concurrent record types
7911         (Make_Predefined_Primitive_Specs): Code cleanup.
7912         (Predefined_Primitive_Bodies): Code cleanup.
7913         (Build_Master_Renaming): New local subprogram.
7914         (Expand_N_Full_Type_Declaration): Build the master_id associated with
7915         anonymous access to task type components.
7916         (Expand_N_Subtype_Indication): The bounds of a range constraint in a
7917         subtype indication are resolved during analysis, and must not be done
7918         here.
7919         (Stream_Operation_OK): Check Restriction_Active before RTE_Available.
7920
7921 2007-04-06  Geert Bosch  <bosch@adacore.com>
7922             Ed Schonberg  <schonberg@adacore.com>
7923             Javier Miranda  <miranda@adacore.com>
7924             Bob Duff  <duff@adacore.com>
7925
7926         * exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
7927         for conversion of a Float_Type'Truncation to integer.
7928
7929         * exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to
7930         check if a node is an attribute that can be handled directly by the
7931         back end.
7932         (Expand_N_Attribute_Reference): Suppress expansion of floating-point
7933         attributes that can be handled directly by the back end.
7934         (Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access):
7935         use new predicate Is_Access_Protected_Subprogram_Type.
7936         (Expand_N_Attribute_Reference, case 'Write): The reference is legal for
7937         and Unchecked_Union if it is generated as part of the default  Output
7938         procedure for a type with default discriminants.
7939         (Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
7940         if we are compiling under restriction No_Dispatching_Calls.
7941         (Constrained): Use Underlying_Type, in case the type is private without
7942         discriminants, but the full type has discriminants.
7943         (Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
7944         call to Build_Get_Access_Level.
7945         (Expand_N_Attribute_Reference): The use of 'Address with class-wide
7946         interface objects requires a call to the run-time subprogram that
7947         returns the base address of the object.
7948         (Valid_Conversion): Improve error message on illegal attempt to store
7949         an anonymous access to subprogram value into a record component.
7950
7951         * sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access =
7952         null".
7953         (Simplify_Type_Conversion): New procedure that performs simplification
7954         of Int_Type (Float_Type'Truncation (X)).
7955         (Resolve_Type_Conversion): Call above procedure after resolving operand
7956         and before performing checks. This replaces the existing ineffective
7957         code in Exp_Ch4.
7958         (Set_String_Literal_Subtype): When creating the internal static lower
7959         bound subtype for a string literal, use a newly created copy of the
7960         subtree representing the lower bound.
7961         (Resolve_Call): Exclude build-in-place function calls from transient
7962         scope treatment. Update comments to describe this exception.
7963         (Resolve_Equality_Op): In case of dispatching call check violation of
7964         restriction No_Dispatching_Calls.
7965         (Resolve_Call): If the call returns an array, the context imposes the
7966         component type of the array, and the function has one non-defaulted
7967         parameter, rewrite the call as the indexing of a call with a single
7968         parameter, to handle an Ada 2005 syntactic ambiguity for calls written
7969         in prefix form.
7970         (Resolve_Actuals): If an actual is an allocator for an access parameter,
7971         the master of the created object is the innermost enclosing statement.
7972         (Remove_Conversions): For a binary operator, check if type of second
7973         formal is numeric, to check if an abstract interpretation is present
7974         in the case of exponentiation as well.
7975
7976 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
7977             Bob Duff  <duff@adacore.com>
7978
7979         * atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
7980         copying a parameter list in a call, set properly the First_Named_Formal
7981         and Next_Named_Formal fields in the new list and in the enclosing call.
7982         (Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
7983         names, to ease typing in the debugger. Improve comments.
7984         (Watch_Node): New variable, intended to be set in the debugger.
7985         (New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
7986         called when the watched node is created.
7987         (New_Node_Debugging_Output): Combined version of local procedures
7988         New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
7989         with a parameter so that conditional breakpoints like "if Node = 12345"
7990         work.
7991         (New_Node, New_Entity): Call the global New_Node_Debugging_Output.
7992         Add Elist1 function
7993
7994 2007-04-06  Thomas Quinot  <quinot@adacore.com>
7995             Ed Schonberg  <schonberg@adacore.com>
7996             Gary Dismukes  <dismukes@adacore.com>
7997
7998         * checks.ads, checks.adb (Selected_Range_Checks): No range check is
7999         required for a conversion between two access-to-unconstrained-array
8000         types.
8001         (Expr_Known_Valid): Validity checks do not apply to discriminants, but
8002         to discriminant constraints on discriminant objects. This rule must
8003         apply as well to discriminants of protected types in private components.
8004         (Null_Exclusion_Static_Checks): If No_Initialization is set on an
8005         object of a null-excluding access type then don't require the
8006         the object declaration to have an expression and don't emit a
8007         run-time check.
8008
8009 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
8010             Eric Botcazou <botcazou@adacore.com>
8011
8012         * gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
8013         and made constant.
8014
8015         * comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
8016         Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't
8017         carry any.
8018
8019         * fe.h (Compiler_Abort): Add third parameter.
8020
8021         * misc.c (internal_error_function): Build third argument from current
8022         input location and pass it to Compiler_Abort.
8023
8024 2007-04-06  Gary Dismukes  <dismukes@adacore.com>
8025
8026         * cstand.adb (Create_Standard): When the target's storage unit size is
8027         greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
8028         Standard_String.
8029
8030 2007-04-06  Nicolas Roche  <roche@adacore.com>
8031
8032         * cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
8033         absolute path can have the following form: device:/a/b. In this case
8034         '/' should be inserted between the path and the filename.
8035
8036 2007-04-06  Olivier Hainque  <hainque@adacore.com>
8037             Eric Botcazou <botcazou@adacore.com>
8038
8039         * decl.c (gnat_to_gnu_entity) <E_Constant>: Associate an external
8040         VAR_DECL to a CONST_DECL we make for a public constant when we know the
8041         corresponding definition has created the so made visible variable.
8042         Handle anonymous access to protected subprogram.
8043         (gnat_to_gnu_entity) <E_Variable>: Do not make the underlying type of an
8044         object with an address clause volatile.  Re-enable original fix.
8045         <E_Subprogram_Type>: Set TYPE_REF_CAN_ALIAS_ALL on the reference type
8046         too.
8047         (gnat_to_gnu_entity) <E_Class_Wide_Type>: Retrieve the TYPE_DECL
8048         associated with either the Equivalent or Root type, instead of the
8049         naked type node.
8050         (gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
8051         subtree for every field of a global record type.
8052         (gnat_to_gnu_entity) <E_Record_Subtype>: If the subtype has
8053         discriminants, invoke again variable_size on its newly computed sizes.
8054
8055 2007-04-06  Robert Dewar  <dewar@adacore.com>
8056             Thomas Quinot  <quinot@adacore.com>
8057             Ed Schonberg  <schonberg@adacore.com>
8058             Bob Duff  <duff@adacore.com>
8059
8060         * einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
8061         (Next_Component_Or_Discriminant): New function and procedure
8062         (First_Index, First_Literal, Master_Id,
8063         Set_First_Index, Set_First_Literal, Set_Master_Id):
8064         Add missing Ekind assertions.
8065         (Is_Access_Protected_Subprogram_Type): New predicate.
8066         (Has_RACW): New entity flag, set on package entities to indicate that
8067         the package contains the declaration of a remote accecss-to-classwide
8068         type.
8069         (E_Return_Statement): This node type has the Finalization_Chain_Entity
8070         attribute, in case the result type has controlled parts.
8071         (Requires_Overriding): Add this new flag, because "requires
8072         overriding" is subtly different from "is abstract" (see AI-228).
8073         (Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
8074         Is_Abstract_Type. Make sure these are called only when appropriate.
8075         (Has_Pragma_Unreferenced_Objects): New flag
8076
8077         * exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
8078         class-wide, the tag of the right-hand side must be an exact match, not
8079         an ancestor of that of the object on left-hand side.
8080         (Move_Activation_Chain): New procedure to create the call to
8081         System.Tasking.Stages.Move_Activation_Chain.
8082         (Expand_N_Extended_Return_Statement): Generate code to call
8083         System.Finalization_Implementation.Move_Final_List at the end of a
8084         return statement if the function's result type has controlled parts.
8085         Move asserts to Build_In_Place_Formal.
8086         (Move_Final_List): New function to create the call statement.
8087         (Expand_N_Assignment_Statement): In case of assignment to a class-wide
8088         tagged type, replace generation of call to the run-time subprogram
8089         CW_Membership by call to Build_CW_Membership.
8090         (Expand_N_Return_Statement): Replace generation of call to the run-time
8091         subprogram Get_Access_Level by call to Build_Get_Access_Level.
8092         (Expand_N_Simple_Function_Return): Replace generation of call to the
8093         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
8094
8095         * exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate
8096         Is_Access_Protected_Subprogram_Type, to handle both named and anonymous
8097         access to protected operations.
8098         (Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the
8099         master and chain actual parameters to a build-in-place function call
8100         involving tasks.
8101         (BIP_Formal_Suffix): Add new enumeration literals to complete the case
8102         statement.
8103         (Make_Build_In_Place_Call_In_Allocator,
8104         Make_Build_In_Place_Call_In_Anonymous_Context,
8105         Make_Build_In_Place_Call_In_Assignment,
8106         Make_Build_In_Place_Call_In_Object_Declaration): Call
8107         Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master.
8108         (Expand_Inlined_Call): If the subprogram is a null procedure, or a
8109         stubbed procedure with a null body, replace the call with a null
8110         statement without using the full inlining machinery, for efficiency
8111         and to avoid invalid values in source file table entries.
8112
8113         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for
8114         renamings of calls to build-in-place functions.
8115
8116         * rtsfind.adb (RTE_Record_Component_Available): New subprogram that
8117         provides the functionality of RTE_Available to record components.
8118         (RTU_Entity): The function Entity has been renamed to RTU_Entity
8119         to avoid undesired overloading.
8120         (Entity): New subprogram that returns the entity for the referened
8121         unit. If this unit has not been loaded, it returns Empty.
8122         (RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities.
8123         Remove no longer used entities.
8124         (RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities.
8125         (RE_Type_Specific_Data): New entity.
8126         (RE_Move_Any_Value): New entity.
8127         (RE_TA_A, RE_Get_Any_Type): New entities.
8128         (RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count,
8129          RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable,
8130          RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added.
8131         (Entity): New subprogram that returns the entity for the referened
8132         unit. If this unit has not been loaded, it returns Empty.
8133         (RTE): Addition of a new formal that extends the search to the scopes
8134         of the record types found in the chain of the package.
8135
8136         * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print
8137         "abstract subprograms must be visible" message, whether or not the type
8138         is an interface; that is, remove the special case for interface types.
8139         (Analyze_Function_Return): Remove error message "return of task objects
8140         is not yet implemented" because this is now implemented.
8141         (Create_Extra_Formals): Add the extra master and activation chain
8142         formals in case the result type has tasks.
8143         Remove error message "return of limited controlled objects is not yet
8144         implemented".
8145         (Create_Extra_Formals): Add the extra caller's finalization list formal
8146         in case the result type has controlled parts.
8147         (Process_Formals): In case of access formal types there is no need
8148         to continue with the analysis of the formals if we already notified
8149         errors.
8150         (Check_Overriding_Indicator): Add code to check overriding of predefined
8151         operators.
8152         (Create_Extra_Formals): Prevent creation of useless Extra_Constrained
8153         flags for formals that do not require them,.
8154         (Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
8155         hidden entity is use visible or directly visible.
8156         (Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
8157         Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
8158         Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
8159         New_Overloaded_Entity): Split Is_Abstract flag into
8160         Is_Abstract_Subprogram and Is_Abstract_Type.
8161
8162         * s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
8163         a return statement's finalization list to the caller's list, used for
8164         build-in-place functions with result type with controlled parts.
8165         Remove no longer used entities.
8166
8167         * s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
8168         longer needed, because the full type is now limited, and therefore a
8169         pass-by-reference type.
8170         (Foreign_Task_Level): New constant.
8171
8172         * s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
8173         move tasks from the activation chain belonging to a return statement to
8174         the one passed in by the caller, and update the master to the one
8175         passed in by the caller.
8176         (Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
8177         of unactivated tasks, so we don't kill the ones that are being returned
8178         by a build-in-place function.
8179         (Create_Task): Ignore AI-280 for foreign threads.
8180
8181 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
8182             Robert Dewar  <dewar@adacore.com>
8183             Bob Duff  <duff@adacore.com>
8184             Gary Dismukes  <dismukes@adacore.com>
8185
8186         * errout.adb (Unwind_Internal_Type): Use predicate
8187         Is_Access__Protected_Subprogram_Type.
8188
8189         * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant
8190         (Freeze_Entity, packed array case): Do not override explicitly set
8191         alignment and size clauses.
8192         (Freeze_Entity):  An entity declared in an outer scope can be frozen if
8193         the enclosing subprogram is a child unit body that acts as a spec.
8194         (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type.
8195         (Freeze_Record_Type): New Ada 2005 processing for reverse bit order
8196         Remove all code for DSP option
8197
8198         * layout.adb (Layout_Record_Type): Use First/
8199         Next_Component_Or_Discriminant
8200         (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type,
8201         to handle properly the anonymous access case.
8202
8203         * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type
8204         for all access attributes, because overload resolution should work the
8205         same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This
8206         causes the error message for the ambiguous "X'Access = Y'Access" and
8207         "X'Unrestricted_Access = Y'Access" and so forth to match.
8208         (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type,
8209         now that anonymous access to protected operations have their own kind.
8210         (Resolve_Attribute): In case of dispatching call check the violation of
8211         restriction No_Dispatching_Calls.
8212         (Check_Array_Type): Check new -gnatyA array index style option
8213
8214         * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an
8215         attempt to derive from a synchronized tagged type.
8216         (Analyze_Type_Declaration): If there is a incomplete tagged view of the
8217         type, inherit the class-wide type already created, because it may
8218         already have been used in a self-referential anonymous access component.
8219         (Mentions_T): Recognize self-referential anonymous access components
8220         that use (a subtype of) the class-wide type of the enclosing type.
8221         (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass
8222         Derived_Type for Prev formal on call to
8223         Check_Anonymous_Access_Components rather than Empty.
8224         (Make_Incomplete_Type_Declaration): Add test for case where the type has
8225         a record extension in deciding whether to create a class-wide type,
8226         rather than just checking Tagged_Present.
8227         (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies
8228         to stand-alone object declarations as well as component declarations.
8229         (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to
8230         prevent accidental overwriting when enclosing package appears in
8231         a limited_with_clause.
8232         (Array_Type_Declaration): If the component type is an anonymous access,
8233         the associated_node for the itype is the type declaration itself.
8234         (Add_Interface_Tag_Components): Modified to support concurrent
8235         types with abstract interfaces.
8236         (Check_Abstract_Interfaces): New subprogram that verifies the ARM
8237         rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2).
8238         (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration
8239         to complete the decoration of synchronized interface types. Add also
8240         a call to Check_Abstract_Interfaces to verify the ARM rules.
8241         (Derive_Interface_Subprograms): Modified to support concurrent types
8242         with abstract interfaces.
8243         (Analyze_Subtype_Indication): Resolve the range with the given subtype
8244         mark, rather than delaying the full resolution depending on context.
8245         (Analyze_Component_Declaration,Analyze_Interface_Declaration,
8246         Analyze_Object_Declaration,Analyze_Subtype_Declaration,
8247         Array_Type_Declaration,Build_Derived_Record_Type,
8248         Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion,
8249         Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type,
8250         Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into
8251         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
8252         called only when appropriate.
8253         (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type
8254         to private type.
8255         (Analyze_Subtype_Declaration): For an access subtype declaration, create
8256         an itype reference for the anonymous designated subtype, to prevent
8257         scope anonmalies in gigi.
8258         (Build_Itype_Reference): New utility, to simplify construction of such
8259         references.
8260
8261 2007-04-06  Vincent Celier  <celier@adacore.com>
8262
8263         * errutil.adb (Initialize): Initialize warnings table, if all warnings
8264         are suppressed, supply an initial dummy entry covering all possible
8265         source locations.
8266
8267         * make.adb (Scan_Make_Arg): Reject options that should start with "--"
8268         and start with only one, such as "-RTS=none".
8269         (Collect_Arguments): Do not check for sources outside of projects.
8270         Do not collect arguments if project is externally built.
8271         (Compile_Sources): Do nothing, not even check if the source is up to
8272         date, if its project is externally built.
8273         (Compile): When compiling a predefined source, add -gnatpg
8274         as the second switch, after -c.
8275         (Compile_Sources): Allow compilation of Annex J renames without -a
8276         (Is_In_Object_Directory): Check if the ALI file is in the object
8277         even if there is no project extension.
8278         (Create_Binder_Mapping_File): Only put a unit in the mapping file for
8279         gnatbind if the ALI file effectively exists.
8280         (Initialize): Add the directory where gnatmake is invoked in front of
8281         the path if it is invoked from a bin directory, even without directory
8282         information, so that the correct GNAT tools will be used when spawned
8283         without directory information.
8284
8285         * makeusg.adb: Change switch -S to -eS
8286         Add lines for new switches -we, -wn and -ws
8287         Add line for new switch -p
8288
8289         * prj-proc.adb (Process): Set Success to False when Warning_Mode is
8290         Treat_As_Error and there are warnings.
8291
8292         * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip
8293         -gnatww Change gnatmake switch -S to -eS
8294         (Scan_Make_Switches): Code reorganisation. Process separately multi
8295         character switches and single character switches.
8296         (Scan_Make_Switches): New Boolean out parameter Success. Set Success to
8297         False when switch is not recognized by gnatmake.
8298         (Scan_Make_Switches): Set Setup_Projects True when -p or
8299         --create-missing-dirs is specified.
8300
8301         * fname.adb (Is_Predefined_File_Name): Return True for annex J
8302         renamings Calendar, Machine_Code, Unchecked_Conversion and
8303         Unchecked_Deallocation only when Renamings_Included is True.
8304
8305         * par.adb: Allow library units Calendar, Machine_Code,
8306         Unchecked_Conversion and Unchecked_Deallocation to be recompiled even
8307         when -gnatg is not specified.
8308         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
8309         there is no need to generate always a record_definition_node in case
8310         of synchronized interface types.
8311         (SIS_Entry_Active): Initialize global variable to False
8312         (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to
8313         indicate cases where AI-447 says "not null" is legal.
8314
8315         * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function
8316
8317         * makegpr.adb (Check_Compilation_Needed): Take into account dependency
8318         files with with several lines starting with the object fileb name.
8319         (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs
8320         is specified.
8321         (Initialize): Add the directory where gprmake is invoked in front of the
8322         path, if it is invoked from a bin directory or with directory
8323         information, so that the correct GNAT tools will be used when invoked
8324         directly.
8325         (Check_Compilation_Needed): Process correctly backslashes on Windows.
8326
8327         * vms_data.ads: Update switches/qualifiers
8328
8329 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
8330             Thomas Quinot  <quinot@adacore.com>
8331
8332         * exp_aggr.adb:
8333         If the array component is a discriminated record, the array aggregate
8334         is non-static even if the component is given by an aggregate with
8335         static components.
8336         (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
8337         (Convert_Aggr_In_Allocator): If the allocator is for an access
8338         discriminant and the type is controlled. do not place on a finalization
8339         list at this point. The proper list will be determined from the
8340         enclosing object.
8341         (Build_Record_Aggr_Code): If aggregate has box-initialized components,
8342         initialize record controller if needed, before the components, to ensure
8343         that they are properly finalized.
8344         (Build_Record_Aggr_Code): For the case of an array component that has a
8345         corresponding array aggregate in the record aggregate, perform sliding
8346         if required.
8347
8348 2007-04-06  Javier Miranda  <miranda@adacore.com>
8349             Gary Dismukes  <dismukes@adacore.com>
8350             Ed Schonberg  <schonberg@adacore.com>
8351
8352         * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the
8353         run-time subprogram Set_External_Tag by call to Build_Set_External_Tag.
8354
8355         * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time
8356         accessibility on class-wide allocators if the allocator occurs at the
8357         same scope level as the allocator's type. The check is guaranteed to
8358         succeed in that case, even when the expression originates from a
8359         parameter of the containing subprogram.
8360         (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling
8361         under No_Dispatching_Calls restriction. During the semantic analysis
8362         we already notified such violation.
8363         (Tagged_Membership): Constant folding. There is no need to check
8364         the tag at run-time if the type of the right operand is non
8365         class-wide abstract.
8366         Replace call to Is_Ancestor by call to Is_Parent
8367         to support concurrent types with interface types.
8368         (Expand_N_Allocator): Add an assertion associated with the generation
8369         of the master_id.
8370         (Expand_N_Slice): Do not enable range check to nodes associated
8371         with the frontend expansion of the dispatch table.
8372         (Is_Local_Access_Discriminant): Subsidiary function to
8373         Expand_N_Allocator.
8374         (Tagged_Membership): Replace generation of call to the run-time
8375         subprogram CW_Membership by call to Build_CW_Membership.
8376         (Expand_Allocator_Expression): Replace generation of call to the
8377         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
8378
8379         * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to
8380         initialize most the TSD components by means of an aggregate.
8381         Modify the declaration of the object containing the TSD
8382         because we now expand code that has a higher level of abstraction.
8383         The TSD has a discriminant containing the Inheritance Depth Level,
8384         value that is used in the membership test but also to fix the size
8385         of the table of ancestors.
8386         (Expand_Interface_Conversion): Insert function body at the closest place
8387         to the conversion expression, to prevent access-before-elaboration
8388         errors in the backend.
8389         Code improved to reduce the size of the dispatch table if
8390         compiling under restriction No_Dispatching_Calls plus code cleanup.
8391         Code reorganization plus removal of calls to Set_Num_Prim_Ops
8392         (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops.
8393         (Expand_Dispatching_Call): Minor code reorganization plus addition of
8394         code to return immediately if compiling under No_Dispatching_Calls
8395         restriction.
8396         (Set_All_DT_Position): Remove code associated with the old CPP pragmas.
8397         CPP_Virtual and CPP_Vtable are no longer supported.
8398         (Expand_Interface_Conversion): Add missing support for interface type
8399         derivations.
8400         (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to
8401         Is_Parent to support concurrent types with interfaces.
8402         (Init_Predefined_Interface_Primitives): Removed.
8403         (Make_Secondary_DT): Modified to support concurrent record types.
8404         (Set_All_DT_Position): Modified to support concurrent record types.
8405         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
8406         with Get_External_Tag, Inherit_TSD, Set_External_Tag.
8407         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated
8408         with CW_Membership.
8409         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
8410         with Get_Access_Level, Get_Predefined_Prim_Op_Address,
8411         Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT,
8412         Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address,
8413         Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD.
8414         (Expand_Dispatching_Call): Replace generation of call to the run-time
8415         subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by
8416         calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_
8417         Address.
8418         (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to
8419         the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_
8420         Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and
8421         Build_Set_Prim_Op_Address.
8422         (Get_Remotely_Callable): Subprogram removed.
8423         (Init_Predefined_Interface_Primitives): Replace generation of call to
8424         the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_
8425         Prims.
8426
8427         * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to
8428         First (Parameter_Associations ()) with the call to First_Actual that
8429         returns an actual parameter expression for both named and positional
8430         associations.
8431
8432         * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call
8433         check violation of restriction No_Dispatching_Calls.
8434         (Check_Controlling_Type): A formal of a tagged incomplete type is a
8435         controlling argument.
8436
8437         * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use
8438         First/Next_Component_Or_Discriminant
8439         (Insert_Actions): Add entries for new N_Push and N_Pop nodes
8440         (Find_Implemented_Interface): Removed. All the calls to this subprogram
8441         specify Any_Limited_Interface, and this functionality is already
8442         provided by the function Has_Abstract_Interfaces.
8443         (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to
8444         support concurrent types implementing interfaces.
8445         (Find_Implemented_Interface): Removed. All the calls to this subprogram
8446         specify kind Any_Limited_Interface, and this functionality is already
8447         provided by the function Has_Abstract_Interfaces.
8448         (Remove_Side_Effects): replace Controlled_Type by
8449         CW_Or_Controlled_Type whenever the issue is related to
8450         using or not the secondary stack.
8451
8452         * par-ch12.adb (P_Formal_Type_Definition): Update calls to
8453         P_Interface_Type_Definition to fulfill the new interface (the formal
8454         Is_Synchronized is no longer required).
8455
8456         * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o
8457         Update dependencies.
8458
8459         * exp_atag.ads, exp_atag.adb: New file
8460
8461 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
8462             Bob Duff  <duff@adacore.com>
8463             Cyrille Comar  <comar@adacore.com>
8464
8465         * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is
8466         anonymous, use finalization list of enclosing dynamic scope.
8467         (Expand_N_Package_Declaration): For a library package declaration
8468         without a corresponding body, generate RACW subprogram bodies in the
8469         spec (just as we do for the task activation call).
8470         (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and
8471         Is_Abstract_Type. Make sure these are called only when appropriate.
8472         Remove all code for DSP option
8473         (CW_Or_Controlled_Type): new subprogram.
8474
8475 2007-04-06  Eric Botcazou <botcazou@adacore.com>
8476             Ed Schonberg  <schonberg@adacore.com>
8477             Gary Dismukes  <dismukes@adacore.com>
8478
8479         * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
8480         parameter. If it is set to true, return a result capped according to
8481         the global upper bound for the index of an entry family.
8482         (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
8483         (Build_Find_Body_Index): Adjust for above change.
8484         (Entry_Index_Expression): Likewise.
8485         (Is_Potentially_Large_Family): New function extracted from...
8486         (Collect_Entry_Families): ...here. Call it to detect whether the family
8487         is potentially large.
8488         (Build_Entry_Count_Expression): If the family is potentially large, call
8489         Family_Size with 'Cap' set to true.
8490         (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
8491         a protected version of an operation declared in the private part of
8492         a protected object, because they may be invoked through a callback.
8493         (Set_Privals): If the type of a private component is an anonymous access
8494         type, do not create a new itype for each protected body.
8495         If the body of a protected operation creates
8496         controlled types (including allocators for class-widetypes), the
8497         body of the corresponding protected subprogram must include a
8498         finalization list.
8499         (Build_Activation_Chain_Entity): Build the chain entity for extended
8500         return statements.
8501         (Type_Conformant_Parameters): Use common predicate Conforming_Types
8502         to determine whether operation overrides an inherited primitive.
8503         (Build_Wrapper_Spec): Add code to examine the parents while looking
8504         for a possible overriding candidate.
8505         (Build_Simple_Entry_Call): Set No_Initialization on the object used to
8506         hold an actual parameter value since its initialization is separated
8507         from the the declaration. Prevents errors on null-excluding access
8508         formals.
8509
8510 2007-04-06  Thomas Quinot  <quinot@adacore.com>
8511
8512         * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call):
8513         Do an Unchecked_Conversion to handle the passage from the Underlying
8514         Type to the Base Type when calling Build_To_Any_Call and
8515         Build_From_Any_Call.
8516         (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or
8517         E_Constant, depending upon Variable formal.
8518         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
8519         PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
8520         parameter that requires an extra constrained parameter, declare
8521         temporary for actual as a variable, not a constant.
8522         (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
8523         the unit being compiled is the one that contains the stub type.
8524         Change primitive operation name for the RACW associated with a RAS
8525         from Call to _Call so it cannot clash with any legal identifier.
8526         (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
8527         Is_RAS.
8528         (Append_RACW_Bodies): New subprogram.
8529         (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to
8530         Add_Receiving_Stubs_To_Declarations functions.
8531         When expanding a package body, this list correspond to the
8532         statements in the HSS at the end of the pacakge.
8533         When expanding a package spec, this list correspond to the
8534         spec declarations.
8535         (Add_Receiving_Stubs_To_Declarations): Append the function
8536         registering the receiving stubs at the end of the 'Stmts' list.
8537         (RCI_Package_Locator): Pass the new Version generic formal when
8538         instantiating a RCI_Locator package.
8539         (Build_From_Any_Function): To compute the High bound for an
8540         unconstrained array actual, we add the Low bound with the length.
8541         Thus we must convert the low bound and the length to an appropriate
8542         type before doing the sum.
8543         (Build_Subprogram_Receiving_Stubs, PolyORB):
8544          * Retrieve the extra formals parameters at the
8545            end of the parameter stream.
8546          * Use Move_Any_Value to write back out parameters
8547            after executing the request as it is more efficient
8548            than Copy_Any_Value.
8549          * Build the any containing Extra Formals with the
8550            appropriate typecode.
8551         (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
8552         empty Component_List.
8553         (Build_Actual_Object_Declaration): New subprogram. Build and insert into
8554         the tree the declaration for an object that serves as actual parameter
8555         in server-side stubs.
8556         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
8557         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
8558         Use Build_Actual_Object_Declaration to prepare the actuals.
8559         (Add_Parameter_To_NVList): Set the parameter mode to In for
8560         Extra Constrained Parameters.
8561         (Build_General_Calling_Stubs): Set the parameter type to boolean for
8562         Extra Constrained parameters.
8563         (Build_To_Any_Function, Build_From_Any_Function,
8564         Built_TypeCode_Function): When Typ is implicit, call the correct
8565         function with the first not implicit parent type.
8566         (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
8567         (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
8568         typecode from the Etype. Therefore we retrieve the correct typecode
8569         with a call to Get_Any_Type.
8570         (Copy_Specification): Do controlling formal type substitution based on
8571         Is_Controlling_Formal flag, instead of caller-provided object type.
8572         (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
8573         a RACW primitive operation, we might get a subprogram declaration for an
8574         ancestor of the RACW designated type (not for the designated type
8575         itself), in the case where this operation is inherited. In this case we
8576         have no easy means of determining the original tagged type for which
8577         the primitive was declared, so instead we now rely on
8578         Copy_Specification to use the Is_Controlling_Formal flag to determine
8579         which formals require type substitution.
8580
8581 2007-04-06  Robert Dewar  <dewar@adacore.com>
8582             Ed Schonberg  <schonberg@adacore.com>
8583
8584         * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
8585         GNAT.Current_Exception are not allowed if pragma Restrictions
8586         (No_Exception_Propagation) is set and in any case make the associated
8587         handler unsuitable as a target for a local raise statement.
8588         (Expand_Dispatching_Constructor_Call): Replace generation of call to the
8589         run-time subprogram CW_Membership by call to Build_CW_Membership.
8590         (Expand_Dispatching_Constructor_Call): If the dispatching tag is given
8591         by a function call, a temporary must be created before expanding the
8592         Constructor_Call itself, to prevent out-of-order elaboration in the
8593         back-end when stack checking is enabled..
8594
8595 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
8596
8597         * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
8598         result are the bounds of the left operand, not the right.
8599
8600 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
8601
8602         * exp_strm.adb
8603         (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
8604          discriminant defaults.
8605         (Build_Record_Or_Elementary_Output_Procedure): Ditto.
8606         (Make_Component_List_Attributes): Ditto.
8607
8608 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
8609             Bob Duff  <duff@adacore.com>
8610
8611         * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
8612         an association with a box as providing a value even though the
8613         initialization procedure for the type is not available.
8614         (Resolve_Record_Aggregate): Check that a choice of an association with a
8615         box corresponds to a component of the type.
8616         (Resolve_Record_Aggregate): Split Is_Abstract flag into
8617         Is_Abstract_Subprogram and Is_Abstract_Type.
8618
8619         * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
8620         assert.
8621
8622         * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
8623         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
8624         called only when appropriate.
8625
8626 2007-04-06  Olivier Hainque  <hainque@adacore.com>
8627
8628         * g-alleve.ads (Low Level Vector type definitions): Map each to the
8629         associated vector view instead of all to the unsigned char view.
8630
8631         * g-altcon.adb (Generic_Conversions): New internal generic package,
8632         offering facilities for all the Vector/View conversion routines
8633         implemented by this unit.
8634         (To_View/To_Vector - all versions): Reimplemented in a systematic
8635         manner, using the internal Generic_Conversions facilities.
8636
8637 2007-04-06  Pascal Obry  <obry@adacore.com>
8638
8639         * g-arrspl.adb (Free) [Element_Access]: New routine to free the source
8640         string.
8641         (Create): Free the source string before storing the new one.
8642
8643 2007-04-06  Vincent Celier  <celier@adacore.com>
8644
8645         * g-debpoo.adb (Validity): New package with a complete new
8646         implementation of subprograms Is_Valid and Set_Valid.
8647         (Is_Valid): Move to local package Validity
8648         (Set_Valid): Move to local package Validity
8649
8650 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
8651
8652         * g-expect.adb (Get_Command_Output): When expanding the output buffer
8653         we must ensure that there is enough place for the new data we are going
8654         to copy in.
8655
8656 2007-04-06  Thomas Quinot  <quinot@adacore.com>
8657
8658         * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
8659         computation.
8660
8661 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
8662             Vincent Celier  <celier@adacore.com>
8663
8664         * gnatcmd.adb (B_Start): Add prefix of binder generated file.
8665         (Stack_String): Add this String that contains the name of the Stack
8666         package in the project file.
8667         (Packages_To_Check_By_Stack): Add this list that contains the packages
8668         to be checked by gnatstack, which are the naming and the stack packages.
8669         (Check_Files): If no .ci files were specified for gnatstack we add all
8670         the .ci files belonging to the projects, including binder generated
8671         files.
8672         (Non_VMS_Usage): Document that gnatstack accept project file switches.
8673         (GNATCmd): Update the B_Start variable if we are in a VMS environment.
8674         Add gnatstack to the list of commands that use project file related
8675         switches, and get the single attribute Switches from the stack package
8676         in a project file when calling gnatstack. Parse the -U flag for
8677         processing files belonging to all projects in the project tree.
8678         Remove all processing for command Setup
8679
8680         * prj-attr.adb: Add new package Stack with single attribute Switches
8681
8682         * vms_conv.ads (Command_Type): Add command Stack.
8683         Move to body declarations that are only used in the body: types Item_Id,
8684         Translation_Type, Item_Ptr, Item and its subtypes.
8685
8686         * vms_conv.adb: (Initialize): Add data for new command Stack.
8687         Add declarations moved from the spec: types Item_Id, Translation_Type,
8688         Item_Ptr, Item and its subtypes.
8689         (Cargs_Buffer): New table
8690         (Cargs): New Boolean global variable
8691         (Process_Buffer): New procedure to create arguments
8692         (Place): Put character in table Buffer or Cargs_Buffer depending on the
8693          value of Cargs.
8694         (Process_Argument): Set Cargs when processing qualifiers for GNAT
8695         COMPILE
8696         (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
8697         empty, for table Cargs_Buffer.
8698         (Initialize): Remove component Setup in Command_List
8699
8700 2007-04-06  Vincent Celier  <celier@adacore.com>
8701
8702         * gprep.adb (Process_Files.Process_One_File): Use full file name when
8703         issuing pragma Source_Reference.
8704
8705 2007-04-06  Emmanuel Briot  <briot@adacore.com>
8706
8707         * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
8708         [[:xdigit:]] character class.
8709         Also raise an exception when an invalid character class is used.
8710
8711 2007-04-06  Pascal Obry  <obry@adacore.com>
8712
8713         * i-cstrea.ads: (fopen): Add encoding parameter.
8714         (freopen): Idem.
8715         Change reference from a-sysdep.c to sysdep.c in comment.
8716         Update copyright notice.
8717         This set of patch add support for the encoding form parameter.
8718
8719         * mingw32.h (S2WSU): New macro to convert from a string to a
8720         wide-string using the UTF-8 encoding. The S2WS macro supports now only
8721         standard 8bits encoding.
8722         (WS2SU): As above but converting from wide-sring to string.
8723         This is needed as it is necessary to have access to both versions in the
8724         runtime for the form parameter encoding support.
8725         This set of patch add support for the encoding form parameter.
8726         (S2WS): Improve implementation to handle cases where the filename is not
8727         UTF-8 encoded. In this case we default to using the current code page
8728         for the conversion.
8729
8730         * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
8731         type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
8732         the constants defined in adaint.h.
8733         (fopen): Add encoding parameter.
8734         (freopen): Idem.
8735
8736         * s-ficobl.ads (AFCB): Add Encoding field to record the filename
8737         encoding. This is needed for the Reset routine (freopen low level-call).
8738
8739         * s-fileio.adb (Open): Decode encoding form parameter and set the
8740         corresponding encoding value into AFCB structure.
8741         (Reset): Pass the encoding value to freopen.
8742         (Close): Move the call to Lock_Task to the beginning of the procedure.
8743
8744 2007-04-06  Geert Bosch  <bosch@adacore.com>
8745             Robert Dewar  <dewar@adacore.com>
8746
8747         * i-fortra.ads: Add Double_Complex type.
8748
8749         * impunit.adb: (Is_Known_Unit): New function
8750         Add Gnat.Byte_Swapping
8751         Add GNAT.SHA1
8752         Add new Ada 2005 units
8753         Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
8754         Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
8755         Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
8756         Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
8757
8758         * impunit.ads (Is_Known_Unit): New function
8759
8760         * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
8761         a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
8762         a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
8763         g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
8764         s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
8765         s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
8766         New files.
8767
8768         * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
8769
8770         * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
8771
8772 2007-04-06  Eric Botcazou <botcazou@adacore.com>
8773             Arnaud Charlet  <charlet@adacore.com>
8774
8775         * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
8776         __gnat_adjust_context_for_raise.
8777         (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
8778         implementation of floating point operations as native x86 targets.
8779         So the FPU should be initialized in the same way using finit. Fix
8780         floating point operations accuracy issues.
8781         (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
8782         member in struct sigaction, so as to avoid warning for incompatible
8783         pointer types.
8784
8785 2007-04-06 Serguei Rybin <rybin@adacore.com>
8786
8787         * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
8788         switches from previously loaded tree
8789
8790 2007-04-06  Thomas Quinot  <quinot@adacore.com>
8791
8792         * lib-writ.adb (Write_With_Lines): Factor duplicated code between the
8793         cases where a given dependency has a body or not.
8794         (Write_With_File_Names): New subprogram, common code for the two cases
8795         above.
8796
8797 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
8798             Javier Miranda  <miranda@adacore.com>
8799
8800         * lib-xref.ads, lib-xref.adb: 
8801         Modify the loop that collects type references, to include interface
8802         types that the type implements. List each of these interfaces when
8803         building the entry for the type.
8804         (Generate_Definition): Initialize component Def and Typ of new entry
8805         in table Xrefs, to avoid to have these components unitialized.
8806         (Output_References): Split Is_Abstract flag into
8807         Is_Abstract_Subprogram and Is_Abstract_Type.
8808         (Generate_Reference): Add barrier to do not generate the warning
8809         associated with Ada 2005 entities with entities generated by the
8810         expander.
8811
8812 2007-04-06  Robert Dewar  <dewar@adacore.com>
8813             Arnaud Charlet  <charlet@adacore.com>
8814             Vincent Celier  <celier@adacore.com>
8815
8816         * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
8817         Update 'Exception Handling Control' chapter which was outdated.
8818         Minor fix to documentation of -gnatwq
8819         Remove section "Adapting the Run Time to a New C++ Compiler" because
8820         it is now obsolete.
8821         Add passage on need of -nostart-files in some non-ada-main cases.
8822         Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
8823         Update documentation about Interfacing with C++
8824         Add documentation for new gnatmake switch -p
8825         Add missing protocol part in URLs.
8826         Document -gnatyA
8827         Document pragma Compile_Time_Error
8828         Add documentation for Object_Size indicating that stand alone
8829         objects can have a larger size in some cases.
8830         Add node for GNAT.Byte_Swapping, GNAT.SHA1
8831         Update reference to the Ravenscar profile.
8832         Document pragma Unreferenced_Objects
8833
8834         * gnat-style.texi: Fix typo
8835
8836 2007-04-06  Vincent Celier  <celier@adacore.com>
8837
8838         * mlib.adb (Building_Library): Only output "building a library..." in
8839         verbose mode
8840
8841         * mlib-prj.adb (Build_Library): Only output lists of object and ALI
8842         files in verbose mode.
8843
8844         * mlib-utl.adb (Ar): Only output the first object files when not in
8845         verbose mode.
8846         (Gcc): Do not display all the object files if not in verbose mode, only
8847         the first one.
8848
8849 2007-04-06  Robert Dewar  <dewar@adacore.com>
8850
8851         * namet.ads, namet.adb (wn): Improve this debugging routine. Calling
8852         it no longer destroys the contents of Name_Buffer or Name_Len and
8853         non-standard and invalid names are handled better.
8854         (Get_Decoded_Name_String): Improve performance by using
8855         Name_Has_No_Encodings flag in the name table.
8856         (Is_Valid_Name): New function to determine whether a Name_Id is valid.
8857         Used for debugging printouts.
8858
8859 2007-04-06  Robert Dewar  <dewar@adacore.com>
8860             Javier Miranda  <miranda@adacore.com>
8861             Bob Duff  <duff@adacore.com>
8862
8863         * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
8864         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
8865         there is no need to generate always a record_definition_node in case
8866         of synchronized interface types.
8867         (P_Type_Declaration): Update calls to P_Interface_Type_Definition.
8868         (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
8869         illegal in Ada 95, in cases where it is legal. Change the warnings to
8870         errors in other cases. Don't give the error unless the "not null"
8871         parses properly. Correct the source position at which the error occurs.
8872         (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
8873         P_Null_Exclusion, to suppress "not null" warnings.
8874         (P_Identifier_Declarations): Code cleanup. Removed unrequired label and
8875         associated goto statements.
8876
8877         * par-endh.adb (Pop_End_Context): Allow more flexibility in placement
8878         of END RECORD
8879
8880         * scans.ads (Type_Token_Location): New flag
8881
8882         * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
8883         (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
8884         P_Null_Exclusion, to suppress "not null" warnings.
8885
8886 2007-04-06  Robert Dewar  <dewar@adacore.com>
8887             Javier Miranda  <miranda@adacore.com>
8888             Bob Duff  <duff@adacore.com>
8889             Vincent Celier  <celier@adacore.com>
8890
8891         * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
8892         (Extensions_Allowed): No longer sets Ada_Version
8893         Entry for pragma Unreferenced_Objects
8894
8895         * sem_prag.adb (Analyze_Pragma, case Priority): Force with of
8896         system.tasking if pragma priority used in a procedure
8897         (Analyze_Pragma, case Warning): Handle dot warning switches
8898         (Process_Compile_Time_Warning_Or_Error): New procedure
8899         (Analyze_Pragma): Add processing for Compile_Time_Error
8900         Add support for extra arguments External_Name and Link_Name.
8901         Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
8902         (Process_Import_Or_Interface): Add support for the use of pragma Import
8903         with tagged types.
8904         (Extensions_Allowed): No longer affects Ada_Version
8905         (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
8906         Is_Abstract_Type. Make sure these are called only when appropriate.
8907         Add processing for pragma Unreferenced_Objects
8908
8909         * snames.h, snames.ads, snames.adb: Add entry for pragma
8910         Compile_Time_Error
8911         Add new standard name Minimum_Binder_Options for new gprmake
8912         Add new standard names for gprmake: Archive_Suffix,
8913         Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
8914         Library_Support, Library_Version_Options,
8915         Shared_Library_Minimum_Options,
8916         Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
8917         Change Name_Call to Name_uCall so that it cannot clash with a legal
8918         subprogram name.
8919         Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
8920         Append C_Plus_Plus to convention identifiers as synonym for CPP
8921         Add new standard names Stack and Builder_Switches
8922         Add new standard names: Compiler_Minimum_Options, Global_Config_File,
8923         Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
8924         Run_Path_Option, Toolchain_Version.
8925         Entry for pragma Unreferenced_Objects
8926
8927         * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
8928         switches, without repetition of "eD". Make sure that last character of
8929         -gnatep= switch is not taken as -gnat switch character.
8930         Complete rewrite of circuit for handling saving compilation options
8931         Occasioned by need to support dot switchs for -gnatw, but cleans up
8932         things in general.
8933         -gnatX does not affect Ada_Version
8934         Include -gnatyA in -gnatg style switches
8935
8936         * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
8937         warnings on return objects.
8938         (Warn_On_Useless_Assignment): Exclude warnings on return objects
8939         (Set_Dot_Warning_Switch): New procedure
8940         (Check_References): Add missing case of test for
8941         Has_Pragma_Unreferenced_Objects
8942         (Output_Unreferenced_Messages): Implement effect of new pragma
8943         Unreferenced_Objects, remove special casing of limited controlled
8944         variables.
8945
8946 2007-04-06  Vincent Celier  <celier@adacore.com>
8947
8948         * prj-ext.adb (Initialize_Project_Path): New procedure that initialize
8949         the default project path, initially done during elaboration of the
8950         package.
8951         If the prefix returned by Sdefault is null, get the prefix from a call
8952         to Executable_Prefix_Path.
8953         (Project_Path): Call Initialize_Project_Path if Current_Project_Path is
8954         null.
8955
8956         * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
8957         canonical directory name to open the directory from which files are
8958         retrieved.
8959         (Record_Other_Sources): Idem.
8960         (Locate_Directory): Add the possibility to create automatically missing
8961         directories when Setup_Projects is True.
8962         Call Locate_Directory so that the directory will be created when
8963         Setup_Projects is True, for object dir, library dir, library ALI dir,
8964         library source copy dir and exec dir.
8965
8966         * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
8967         versions of GNAT.
8968
8969 2007-04-06  Robert Dewar  <dewar@adacore.com>
8970
8971         * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
8972         Use First/Next_Component_Or_Discriminant
8973         (Analyze_Record_Representation_Clause):
8974         Use First/Next_Component_Or_Discriminant
8975         (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
8976         (Analyze_Attribute_Definition_Clause, case Value_Size): Reject
8977         definition if type is unconstrained.
8978         (Adjust_Record_For_Reverse_Bit_Order): New procedure
8979         (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
8980         Is_Abstract_Subprogram and Is_Abstract_Type.
8981         (Adjust_Record_For_Reverse_Bit_Order): New procedure
8982
8983         * repinfo.adb (List_Record_Info): Use First/
8984         Next_Component_Or_Discriminant.
8985
8986         * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
8987         New procedure.
8988
8989         * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
8990         Include -gnatyA in default switches
8991
8992         * opt.ads: (Warn_On_Non_Local_Exception): New flag
8993         (Warn_On_Reverse_Bit_Order): New flag
8994         (Extensions_Allowed): Update the documentation.
8995         (Warn_On_Questionable_Missing_Parens): Now on by default
8996
8997         * usage.adb: Add documentation of -gnatw.x/X switches
8998         Document new -gnatyA style switch
8999         -gnatq warnings are on by default
9000
9001 2007-04-06  Ed Falis  <falis@adacore.com>
9002
9003         * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
9004         full word is no longer compared twice.
9005
9006 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9007
9008         * sem_ch10.adb (Install_Limited_Context_Clauses.
9009         Expand_Limited_With_Clause): Use a new copy of selector name in the
9010         call to Make_With_Clause. This fixes the tree structure for ASIS
9011         purposes. Nothing is changed in the compiler behaviour.
9012         (Process_Body_Clauses): Handle properly use clauses whose prefix is
9013         a package renaming.
9014         (Install_Limited_With_Clauses): Do not install non-limited view when it
9015         is still incomplete.
9016
9017 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9018             Gary Dismukes  <dismukes@adacore.com>
9019
9020         * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
9021         when capturing size information, instead of base type, which for a
9022         formal array type will be the unconstrained type.
9023         (Analyze_Formal_Object_Declaration): Add check for illegal default
9024         expressions for a formal in object of a limited type.
9025         (Instantiate_Object): Ditto.
9026         (Check_Formal_Package_Instance): Skip entities that are formal objects,
9027         because they were defaulted in the formal package and no check applies
9028         to them.
9029         (Check_Formal_Package_Instance): Extend conformance check to other
9030         discrete types beyond Integer.
9031         (Process_Default): Copy directly the unmatched formal. A generic copy
9032         has already been performed in Analyze_Formal_Package.
9033         (Analyze_Associations): If a formal subprogram has no match, check for
9034         partial parametrization before looking for a default, to prevent
9035         spurious errors.
9036         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
9037         not set the instantiation environment before analyzing the actuals.
9038         Fixes regression on 8515-003 with implementation of AI-133.
9039         Set_Instance_Env checks whether the generic unit is a predefined
9040         unit, in which case the instance must be analyzed with the latest Ada
9041         mode. This setting must take place after analysis of the actuals,
9042         because the actuals must be analyzed and frozen in the Ada mode extant
9043         outside of the current instantiation.
9044         (Save_Env, Restore_Env): Preserve and restore the configuration
9045         parameters so that predefined units can be compiled in the proper Ada
9046         mode.
9047         (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
9048         Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
9049         and Is_Abstract_Type.
9050         (Analyze_Formal_Package): For better error recovery, Add exception
9051         handler to catch Instantion_Error, which can be raised in
9052         Analyze_Associations
9053
9054 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9055             Bob Duff  <duff@adacore.com>
9056             Gary Dismukes  <dismukes@adacore.com>
9057
9058         * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
9059         prefix type is a discriminated subtype of the type of the formal.
9060         (Analyze_Allocator): Collect all coextensions regardless of the context.
9061         Whether they can be allocated statically is determined in exp_ch4.
9062         (Analyze_Selected_Component): If the prefix is a limited view and the
9063         non-limited view is available, use the non-limited one.
9064         (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
9065         therefore illegal), suggest a qualified expression rather than a type
9066         conversion, because a type conversion would be illegal in this context.
9067         (Anayze_Allocator): Trace recursively all nested allocators so that all
9068         coextensions are on the corresponding list for the root. Do no mark
9069         coextensions if the root allocator is within a declaration for a stack-
9070         allocated object, because the access discriminants will be allocated on
9071         the stack as well.
9072         (Analyze_Call): Remove restriction on calls to limited functions for the
9073         cases of generic actuals for formal objects, defaults for formal objects
9074         and defaults for record components.
9075         (Analyze_Allocator): Before analysis, chain coextensions on the proper
9076         element list. Their expansion is delayed until the enclosing allocator
9077         is processed and its finalization list constructed.
9078         (Try_Primitive_Operation): If the prefix is a concurrent type, looks
9079         for an operation with the given name among the primitive operations of
9080         the corresponding record type.
9081         (Analyze_Selected_Component): If the prefix is a task type that
9082         implements an interface, and there is no entry with the given name,
9083         check whether there is another primitive operation (e.g. a function)
9084         with that name.
9085         (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
9086         properly the indexing of a function call written in prefix form, where
9087         the function returns an array type, and all parameters of the function
9088         except the first have defaults.
9089         (Analyze_Equality_Op): If this is a call to an implicit inequality, keep
9090         the original operands, rather than relocating them, for efficiency and
9091         to work properly when an operand is overloaded.
9092         (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
9093         Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
9094         (Analyze_Selected_Component): If the prefix is a private extension, only
9095         scan the visible components, not those of the full view.
9096         (Try_Primitive_Operation): If the operation is a procedure, collect all
9097         possible interpretations, as for a function, because in the presence of
9098         classwide parameters several primitive operations of the type can match
9099         the given arguments.
9100
9101 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9102             Robert Dewar  <dewar@adacore.com>
9103
9104         * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
9105         tag-indeterminate call to an abstract function, when the left-hand side
9106         is not classwide.
9107         (Analyze_Loop_Statement): Improve detection of infinite loops
9108
9109 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9110             Thomas Quinot  <quinot@adacore.com>
9111
9112         * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
9113         out of Analyze_Package_Declaration, because processing must be applied
9114         to package bodies as well, for deferred constants completed by pragmas.
9115         (Analyze_Package_Declaration): When the package declaration being
9116         analyzed does not require an explicit body, call Check_Completion.
9117         (May_Need_Implicit_Body): An implicit body is required when a package
9118         spec contains the declaration of a remote access-to-classwide type.
9119         (Analyze_Package_Body): If the package contains RACWs, append the
9120         pending subprogram bodies generated by exp_dist at the end of the body.
9121         (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
9122         Is_Abstract_Subprogram and Is_Abstract_Type.
9123         (Preserve_Full_Attributes): The full entity list is not an attribute
9124         that must be preserved from full to partial view.
9125
9126         * sem_dist.adb (Add_RAS_Dereference_TSS):
9127         Change primitive name to _Call so it cannot clash with any legal
9128         identifier, and be special-cased in Check_Completion.
9129         Mark the full view of the designated type for the RACW associated with
9130         a RAS as Comes_From_Source to get proper view switching when installing
9131         private declarations.
9132         Provite a placeholder nested package body along with the nested spec
9133         to have a place for Append_RACW_Bodies to generate the calling stubs
9134         and stream attributes.
9135
9136 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9137             Robert Dewar  <dewar@adacore.com>
9138
9139         * sem_ch8.adb (Has_Components): If the argument is an incomplete type
9140         that is a limited view, check the non-limited view if available.
9141         (Undefined): Refine error message for missing with of Text_IO
9142         (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
9143         to distinguish real missing with cases.
9144         Fix format of all missing with messages
9145         (Analyze_Subprogram_Renaming): Emit proper error message on illegal
9146         renaming as body when renamed entity is abstract.
9147
9148 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9149             Javier Miranda  <miranda@adacore.com>
9150
9151         * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
9152         predicate recursive, to handle complex expressions on literals whose
9153         spurious ambiguity comes from the abstract interpretation of some
9154         subexpression.
9155         (Interface_Present_In_Ancestor): Add support to concurrent record
9156         types.
9157         (Add_One_Interp,Disambiguate): Split Is_Abstract flag into
9158         Is_Abstract_Subprogram and Is_Abstract_Type.
9159
9160 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9161             Javier Miranda  <miranda@adacore.com>
9162
9163         * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
9164         dereference of a local object R created as a reference to another
9165         object O, use the access level of O.
9166         (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
9167         rather than local Same_Formal_Type, to check whether protected operation
9168         overrides an inherited one.
9169         (Same_Formal_Type): New predicate, used when matching signatures of
9170         overriding synchronized operations, to handle the case when a formal
9171         has a type that is a generic actual.
9172         (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
9173         predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
9174         (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
9175         syntactic ambiguities involving indexing of function calls that return
9176         arrays.
9177         (Abstract_Interface_List): New subprogram that returns the list of
9178         abstract interfaces associated with a concurrent type or a
9179         concurrent record type.
9180         (Interface_Present_In_Parent): New subprogram used to check if a
9181         given type or some of its parents implement a given interface.
9182         (Collect_Abstract_Interfaces): Add support for concurrent types
9183         with interface types.
9184         (Has_Abstract_Interfaces): Add support for concurrent types with
9185         interface types.
9186         (Is_Parent): New subprogram that determines whether E1 is a parent
9187         of E2. For a concurrent type its parent is the first element of its
9188         list of interface types; for other types this function provides the
9189         same result than Is_Ancestor.
9190         (Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
9191         (Collect_Synchronized_Interfaces): Removed because the subprogram
9192         Collect_Abstract_Interfaces provides this functionality.
9193         (Collect_Abstract_Interfaces): Minor update to give support to
9194         concurrent types and thus avoid undesired code duplication.
9195         (Get_Subprogram_Entity): Handle entry calls.
9196         (May_Be_Lvalue): Include actuals that appear as in-out parameters in
9197         entry calls.
9198         (Enter_Name): Do not give -gnatwh hiding warning for record component
9199         entities, they never result in hiding.
9200
9201 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9202             Robert Dewar  <dewar@adacore.com>
9203
9204         * sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
9205         to chain nested components that are allocators for access discriminants
9206         of the enclosing object.
9207         Add N_Push and N_Pop nodes
9208         New field Exception_Label added
9209         (Local_Raise_Statements): New field in N_Exception_Handler_Node
9210         (Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
9211         (Is_Coextension): New flag for allocators, to mark allocators that
9212         correspond to access discriminants of dynamically allocated objects.
9213         (N_Block_Statement): Document the fact that the corresponding entity
9214         can be an E_Return_Statement.
9215         (Is_Coextension): New flag for allocators.
9216         Remove all code for DSP option
9217
9218         * sprint.ads, sprint.adb: Display basic information for class_wide
9219         subtypes. Add handling of N_Push and N_Pop nodes
9220
9221 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
9222
9223         * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
9224         before propagating exception.
9225
9226 2007-04-06  Olivier Hainque  <hainque@adacore.com>
9227
9228         * tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
9229         an address always within the call instruction from a return address.
9230
9231 2007-04-06  Olivier Hainque  <hainque@adacore.com>
9232             Eric Botcazou <botcazou@adacore.com>
9233
9234         * trans.c (call_to_gnu) <TYPE_RETURNS_BY_TARGET_PTR_P>: Return an
9235         expression with a COMPOUND_EXPR including the call instead of emitting
9236         the call directly here.
9237         (gnat_to_gnu) <N_Slice>: Do not return a non-constant low bound if the
9238         high bound is constant and the slice is empty.  Tidy.
9239         (tree_transform, case N_Op_Not): Handle properly the case where the
9240         operation applies to a private type whose full view is a modular type.
9241         (Case_Statement_To_gnu): If an alternative is an E_Constant with an
9242         Address_Clause, use the associated Expression as the GNAT tree
9243         representing the choice value to ensure the corresponding GCC tree is
9244         of the proper kind.
9245         (maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
9246         instead of just the operands, as the base GCC stabilize_reference does.
9247         <CALL_EXPR>: New case. Directly stabilize the call if an lvalue is not
9248         requested; otherwise fail.
9249         (addressable_p) <COMPONENT_REF>: Do not test DECL_NONADDRESSABLE_P.
9250
9251 2007-04-06  Thomas Quinot  <quinot@adacore.com>
9252
9253         * uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
9254         implementation of UI_Div.
9255         (UI_Div): Reimplement as a call to UI_Div_Rem.
9256         (UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
9257         remainder, avoiding the cost of a multiplication and a subtraction.
9258         (UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
9259         provides both quotient and remainder in a single computation.
9260         (UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
9261         functions for uint.
9262         (UI_Modular_Inverse): Add a note that the behaviour of this subprogram
9263         is undefined if the given n is not inversible.
9264
9265 2007-04-06  Olivier Hainque  <hainque@adacore.com>
9266
9267         * utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
9268         BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
9269         opcodes.
9270
9271 2007-04-06  Eric Botcazou <botcazou@adacore.com>
9272             Olivier Hainque  <hainque@adacore.com>
9273
9274         * utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs
9275         when updating the contents of the old pointer to an unconstrained array.
9276         (end_subprog_body): Set error_gnat_node to Empty.
9277         (write_record_type_debug_info): Do not be unduly sparing with our bytes.
9278         (unchecked_convert): For subtype to base type conversions, require that
9279         the source be a subtype if it is an integer type.
9280         (builtin_decls): New global, vector of available builtin functions.
9281         (gnat_pushdecl): Add global builtin function declaration nodes to the
9282         builtin_decls list.
9283         (gnat_install_builtins): Adjust comments.
9284         (builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before
9285         calling gnat_pushdecl, so that it knows when it handed a builtin
9286         function declaration node.
9287         (builtin_decl_for): Search the builtin_decls list.
9288
9289 2007-04-06  Eric Botcazou <botcazou@adacore.com>
9290
9291         * s-stchop-vxworks.adb: 
9292         (Stack_Check): Raise Storage_Error if the argument has wrapped around.
9293
9294 2007-04-06  Robert Dewar  <dewar@adacore.com>
9295             Arnaud Charlet  <charlet@adacore.com>
9296
9297         * a-diroro.ads: Inserted the pragma Unimplemented_Unit
9298
9299         * bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
9300         of files
9301         Add mention of -Sev (set initialize_scalars option from environment
9302         variable at run time) in gnatbind usage message.
9303
9304         * elists.ads, elists.adb: (Append_Unique_Elmt): New procedure
9305
9306         * fname-uf.ads: Minor comment fix
9307
9308         * osint.ads: Change pragma Elaborate to Elaborate_All
9309
9310         * par-load.adb: Add documentation.
9311
9312         * sem_cat.ads, sem_cat.adb: Minor code reorganization
9313
9314         * s-parint.ads (RCI_Locator) : Add 'Version' generic formal
9315
9316         * s-secsta.ads: Extra comments
9317
9318         * s-soflin.ads: Minor comment fixes
9319
9320         * s-stratt.ads (Block_Stream_Ops_OK): Removed.
9321
9322         * s-wchcon.ads: Minor comment addition
9323
9324         * treepr.adb: Minor change in message
9325         (Print_Name,Print_Node): Make these debug printouts more robust: print
9326         "no such..." instead of crashing on bad input.
9327
9328 2007-03-30  Rafael Avila de Espindola  <espindola@google.com>
9329
9330         * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
9331         instead of gnat_signed_or_unsigned_type.
9332         * utils.c (gnat_signed_or_unsigned_type): Remove.
9333         * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
9334         * gigi.h (gnat_signed_or_unsigned_type): Remove
9335
9336 2007-03-09  Roger Sayle  <roger@eyesopen.com>
9337
9338         * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
9339         fold with the result of buildN.
9340         * decl.c (gnat_to_gnu_entity): Likewise.
9341         * trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
9342         * utils.c (finish_record_type, merge_sizes, max_size, convert):
9343         Likewise.
9344         * utils2.c (gnat_truthvalue_conversion, compare_arrays,
9345         nonbinary_modular_operation, build_binary_op, build_unary_op,
9346         build_cond_expr): Likewise.
9347
9348         * utils.c (convert): Use fold_build1 when casting values to void.
9349         * utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
9350         fold_convert instead of convert when appropriate.
9351
9352 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
9353
9354         * Make-lang.in: Add install-pdf target as copied from
9355         automake v1.10 rules.
9356
9357 2007-02-28  Andreas Schwab  <schwab@suse.de>
9358
9359         * Make-lang.in (doc/gnat_ugn_unw.texi): Depend on
9360         $(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi.
9361         (doc/gnat-style.info): Likewise.
9362
9363 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
9364
9365         * gnat-style.texi: Standardize title page.
9366         * gnat_rm.texi: Likewise.
9367         * gnat_ugn.texi: Likewise.
9368
9369 2007-02-25  Mark Mitchell  <mark@codesourcery.com>
9370
9371         * decl.c (annotate_value): Adjust for refactoring of tree_map
9372         hierarchy.
9373
9374 2007-02-24  Mark Mitchell  <mark@codesourcery.com>
9375
9376         * decl.c (annotate_value): Adjust for refactoring of tree_map
9377         hierarchy.
9378
9379 2007-02-21  Ed Schonberg  <schonberg@adacore.com>
9380
9381         PR ada/18819
9382         * sem_ch3.adb (Create_Constrained_Components): for a subtype of an
9383         untagged derived type, add hidden components to keep discriminant
9384         layout consistent, when a given discriminant of the derived type
9385         constraints several discriminants of the parent type.
9386
9387 2007-02-16  Eric Botcazou  <ebotcazou@adacore.com>
9388             Sandra Loosemore  <sandra@codesourcery.com>
9389
9390         * trans.c (call_to_gnu):  Use build_call_list instead of build3 to
9391         build the call expression.
9392         (gnat_stabilize_reference_1): Handle tcc_vl_exp.
9393         * utils.c (max_size) <tcc_exceptional>: Delete.
9394         <tcc_vl_exp>: New case.
9395         <tcc_expression>: Delete CALL_EXPR subcase.
9396         (build_global_cdtor): Use build_call_nary instead of build3.
9397         * utils2.c (build_call_1_expr): Likewise.
9398         (build_call_2_expr): Likewise.
9399         (build_call_0_expr): Likewise.
9400         (build_call_alloc_dealloc): Likewise.
9401
9402 2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
9403
9404         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
9405         get_action_description_for): Replace _Unwind_Word with _uleb128_t 
9406         and _Unwind_SWord with _sleb128_t.
9407
9408 2007-02-06  Paolo Bonzini  <bonzini@gnu.org>
9409
9410         * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
9411         * decl.c: Include gt-ada-decl.h.
9412         (annotate_value_cache): New.
9413         (annotate_value): Use it instead of TREE_COMPLEXITY.
9414
9415 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
9416
9417         * misc.c, utils2.c: Fix comment typos.
9418
9419 2007-01-24  Roger Sayle  <roger@eyesopen.com>
9420
9421         * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
9422         TREE_CONSTANT_OVERFLOW.
9423         (allocatable_size_p, annotate_value): Likewise.
9424         * trans.c (gnat_to_gnu): Likewise.
9425         * utils.c (unchecked_convert): Likewise.
9426         * utils2.c (build_simple_component_ref): Likewise.
9427
9428 2007-01-23  Richard Guenther  <rguenther@suse.de>
9429
9430         PR bootstrap/30541
9431         * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
9432         (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
9433         (gnatboot3): Likewise.
9434         (GNATBIND): Do not define.
9435         * Makefile.in (GNATBIND): Do not define.
9436
9437 2007-01-08  Richard Guenther  <rguenther@suse.de>
9438
9439         * cuintp.c (build_cst_from_int): Use built_int_cst_type.
9440         * trans.c (gnat_to_gnu): Likewise.
9441
9442 2006-12-07  Geoffrey Keating  <geoffk@apple.com>
9443
9444         * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
9445         * adaint.c: Likewise.
9446
9447 2006-12-05  Aldy Hernandez  <aldyh@redhat.com>
9448
9449         Merge from gimple-tuples-branch:
9450         2006-11-02  Aldy Hernandez  <aldyh@redhat.com>
9451
9452         * ada-tree.h (lang_tree_node): Handle gimple tuples.
9453         * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
9454         GIMPLE_MODIFY_STMT.
9455
9456 2006-12-02  Kazu Hirata  <kazu@codesourcery.com>
9457
9458         * Makefile.in, mingw32.h, trans.c: Fix comment typos.
9459         * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
9460         Fix typos.
9461
9462 2006-11-17  Eric Botcazou  <ebotcazou@adacore.com>
9463
9464         PR ada/27936
9465         * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
9466         if the initializer takes into account the padding.
9467
9468 2006-11-11  Richard Guenther  <rguenther@suse.de>
9469
9470         * trans.c (maybe_stabilize_reference): Remove handling of
9471         FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
9472
9473 2006-11-05  Arnaud Charlet  <charlet@adacore.com>
9474
9475         PR ada/29707
9476         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
9477         (To_Target_Priority): New function.
9478
9479 2006-10-31  Robert Dewar  <dewar@adacore.com>
9480
9481         * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
9482         a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
9483         s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
9484         a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
9485         a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
9486         a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
9487         a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
9488         a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
9489         a-szbzha.adb: Minor reformatting. Fix header.
9490
9491         * a-numaux-x86.adb: Add parentheses for use of unary minus
9492         * a-ngcefu.adb: Supply missing parentheses for unary minus
9493         * a-ngcoty.adb: Add parens for use of unary minus
9494         * a-ngelfu.adb: Add missing parens for unary minus
9495         * a-tifiio.adb: Add parentheses for uses of unary minus
9496
9497 2006-10-31  Robert Dewar  <dewar@adacore.com>
9498             Bob Duff  <duff@adacore.com>
9499             Ed Schonberg  <schonberg@adacore.com>
9500
9501         * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
9502         with multiplying operator.
9503         (Expected_Type_Is_Any_Real): New function to determine from the Parent
9504         pointer whether the context expects "any real type".
9505         (Resolve_Arithmetic_Op): Do not give an error on calls to the
9506         universal_fixed "*" and "/" operators when they are used in a context
9507         that expects any real type. Also set the type of the node to
9508         Universal_Real in this case, because downstream processing requires it
9509         (mainly static expression evaluation).
9510         Reword some continuation messages
9511         Add some \\ sequences to continuation messages
9512         (Resolve_Call): Refine infinite recursion case. The test has been
9513         sharpened to eliminate some false positives.
9514         Check for Current_Task usage now includes entry barrier, and is now a
9515         warning, not an error.
9516         (Resolve): If the call is ambiguous, indicate whether an interpretation
9517         is an inherited operation.
9518         (Check_Aggr): When resolving aggregates, skip associations with a box,
9519         which are priori correct, and will be replaced by an actual default
9520         expression in the course of expansion.
9521         (Resolve_Type_Conversion): Add missing support for conversion from
9522         a class-wide interface to a tagged type. Minor code cleanup.
9523         (Valid_Tagged_Converion): Add support for abstact interface type
9524         conversions.
9525         (Resolve_Selected_Component): Call Generate_Reference here rather than
9526         during analysis, and use May_Be_Lvalue to distinguish read/write.
9527         (Valid_Array_Conversion): New procedure, abstracted from
9528         Valid_Conversion, to incorporate accessibility checks for arrays of
9529         anonymous access types.
9530         (Valid_Conversion): For a conversion to a numeric type occurring in an
9531         instance or inlined body, no need to check that the operand type is
9532         numeric, since this has been checked during analysis of the template.
9533         Remove legacy test for scope name Unchecked_Conversion.
9534
9535         * sem_res.ads: Minor reformatting
9536
9537         * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
9538         (PE_Current_Task_In_Entry_Body): New exception code
9539         (SE_Restriction_Violation): Removed, not used
9540
9541         * a-except.ads:  Update comments.
9542
9543         * types.h, types.ads: Add definition for Validity_Check
9544         (PE_Current_Task_In_Entry_Body): New exception code
9545         (SE_Restriction_Violation): Removed, not used
9546
9547 2006-10-31  Thomas Quinot  <quinot@adacore.com>
9548
9549         * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
9550         error status.
9551
9552 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
9553             Jose Ruiz  <ruiz@adacore.com>
9554
9555         * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
9556         part of Ada.Calendar: all subprogram raise Unimplemented.
9557         (Split_W_Offset): Temp function body, raising Unimplemented
9558
9559         * a-calend.ads, a-calend-vms.ads: 
9560         Add imported variable Invalid_TZ_Offset used to designate targets unable
9561         to support time zones.
9562         (Unimplemented): Temporary function raised by the body of new
9563         subprograms below.
9564         (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
9565         unit provides handling of leap seconds and is used by the new Ada 2005
9566         packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
9567         (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
9568         version returns an extra value which is the offset to UTC.
9569
9570         * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
9571         (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
9572         (Split_W_Offset): New function body.
9573         (Time_Of): When a date is close to UNIX epoch, compute the time for
9574         that date plus one day (that amount is later substracted after
9575         executing mktime) so there are no problems with time zone adjustments.
9576
9577         * a-calend-mingw.adb: Remove Windows specific version no longer needed.
9578
9579         * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
9580         a-catizo.ads, a-catizo.adb: New files.
9581
9582         * impunit.adb: Add new Ada 2005 entries
9583
9584         * sysdep.c: Add external variable __gnat_invalid_tz_offset.
9585         Rename all occurences of "__gnat_localtime_r" to
9586         "__gnat_localtime_tzoff".
9587         (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
9588         zone data and calculate the GMT offset.
9589         (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
9590         Use the field "tm_gmtoff" to extract the GMT offset.
9591         (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
9592         the external variable "timezone" to calculate the GMT offset.
9593
9594 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
9595             Jose Ruiz  <ruiz@adacore.com>
9596
9597         * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb, 
9598         s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads, 
9599         s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
9600         s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
9601         System.Any_Priority to a POSIX priority on the target.
9602
9603         * system-linux-ia64.ads: 
9604         Extend range of Priority types on Linux to use the whole range made
9605         available by the system.
9606
9607         * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
9608         function maps from System.Any_Priority to a POSIX priority on the
9609         target.
9610         (PTHREAD_PRIO_PROTECT): Set real value.
9611         (PTHREAD_PRIO_INHERIT): Now a function.
9612         (SIGCPUFAIL): New signal.
9613         (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
9614         are documented as reserved by the OS.
9615
9616         * system-aix.ads: Use the full range of priorities provided by the
9617         system on AIX.
9618
9619         * s-taprop-posix.adb: Call new function To_Target_Priority.
9620         (Set_Priority): Take into account Task_Dispatching_Policy and
9621         Priority_Specific_Dispatching pragmas when determining if Round Robin
9622         must be used for scheduling the task.
9623
9624         * system-linux-x86_64.ads, system-linux-x86.ads, 
9625         system-linux-ppc.ads: Extend range of Priority types on Linux to use
9626         the whole range made available by the system.
9627
9628         * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb, 
9629         s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb, 
9630         s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
9631         when deallocating the TCB in order to avoid potential references to
9632         deallocated data.
9633         (Set_Priority): Take into account Task_Dispatching_Policy and
9634         Priority_Specific_Dispatching pragmas when determining if Round Robin
9635         or FIFO within priorities must be used for scheduling the task.
9636
9637         * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
9638         the Thread field (to be used internally by the run-time system) and the
9639         kernel-level task id in the LWP field (to be used by the debugger).
9640         (Create_Task): Reorganize to unify the calls to taskSpawn into a single
9641         instance, and propagate the current task options to the spawned task.
9642         (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
9643         (Initialize): Set Round Robin dispatching when the corresponding pragma
9644         is in effect.
9645
9646 2006-10-31  Robert Dewar  <dewar@adacore.com>
9647
9648         * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, 
9649         system-linux-hppa.ads, system-hpux-ia64.ads, 
9650         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads, 
9651         system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
9652         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, 
9653         system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads, 
9654         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, 
9655         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, 
9656         system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
9657         Default_Bit_Order) to kill constant condition warnings for references
9658         to this switch.
9659
9660 2006-10-31  Vincent Celier  <celier@adacore.com>
9661             Eric Botcazou  <ebotcazou@adacore.com>
9662
9663         * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
9664         mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
9665         mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
9666         Ext_To, when building the library file name
9667
9668         * mlib-tgt-vxworks.adb: ditto.
9669         (Get_Target_Suffix): Add support for x86 targets.
9670
9671         * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
9672
9673         * mlib-tgt-darwin.adb: 
9674         Use Append_To, instead of Ext_To, when building the library file name
9675         (Flat_Namespace): New global variable.
9676         (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
9677         (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
9678         (Link_Shared_Libgcc): Delete.
9679         (Build_Dynamic_Library): Adjust for above changes.
9680         Use Opt package.
9681         (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
9682
9683 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
9684
9685         * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
9686         (Initialize): Add type conversions required by above change.
9687
9688 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
9689
9690         * s-osinte-vxworks.ads, s-osinte-vxworks.adb: 
9691         (getpid): New body for this function that uses the underlying taskIdSelf
9692         function for VxWorks 5 and VxWorks 6 in kernel mode.
9693         (unsigned_int): New type, modular to allow logical bit operations.
9694         (taskOptionsGet): New imported function.
9695
9696         * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
9697         field to be compliant with the type used by the corresponding operating
9698         system primitive.
9699
9700 2006-10-31  Pascal Obry  <obry@adacore.com>
9701             Eric Botcazou  <ebotcazou@adacore.com>
9702             Vincent Celier  <celier@adacore.com>
9703
9704         * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
9705         ASCII version of the registry API. This is needed as the GNAT runtime
9706         is now UNICODE by default.
9707         Include version.h.
9708         (get_gcc_version): Do not hardcode the return value.
9709         (__gnat_file_time_name): On Windows properly set the default returned
9710         value to -1 which corresponds to Invalid_Time.
9711         (__gnat_fopen): New routine. A simple wrapper on all plateforms
9712          except on Windows where it does conversion for unicode support.
9713         (__gnat_freopen): Idem.
9714         (__gnat_locate_exec_on_path): If environment variable PATH does not
9715         exist, return a NULL pointer
9716
9717         * adaint.h: (__gnat_fopen): Declare.
9718         (__gnat_freopen): Likewise.
9719
9720         * mingw32.h (_tfreopen): Define this macro here for older MingW
9721         version.
9722         Activate the unicode support on platforms using a MingW runtime
9723         version 3.9 or newer.
9724
9725         * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
9726         This is needed for proper unicode support on Windows.
9727         (freopen): Idem.
9728
9729 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
9730             Nicolas Setton  <setton@adacore.com>
9731             Olivier Hainque  <hainque@adacore.com>
9732             Gary Dismukes  <dismukes@adacore.com>
9733
9734         * gigi.h: (tree_code_for_record_type): Declare.
9735         (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
9736         (get_global_renaming_pointers): Rename to
9737         invalidate_global_renaming_pointers.
9738         (static_ctors): Delete.
9739         (static_dtors): Likewise.
9740         (gnat_write_global_declarations): Declare.
9741         (create_var_decl): Adjust descriptive comment to indicate that the
9742         subprogram may return a CONST_DECL node.
9743         (create_true_var_decl): Declare new function, similar to
9744         create_var_decl but forcing the creation of a VAR_DECL node.
9745         (get_global_renaming_pointers): Declare.
9746         (add_global_renaming_pointer): Likewise.
9747
9748         * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
9749
9750         * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
9751         tree before setting TREE_ADDRESSABLE for by-reference return mechanism
9752         processing.
9753         (gnat_to_gnu_entity): Remove From_With_Type from computation for
9754         imported_p.
9755         <E_Access_Type>: Use the Non_Limited_View as the full view of the
9756         designated type if the pointer comes from a limited_with clause.  Make
9757         incomplete designated type if it is in the main unit and has a freeze
9758         node.
9759         <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
9760         Underlying_Full_View similarly.  Return earlier if the full view already
9761         has an associated tree.
9762         (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
9763         (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
9764         (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
9765         reference type built for objects with an address clause.
9766         Use create_true_var_decl with const_flag set for
9767         DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
9768         TREE_READONLY set.
9769         (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
9770         for Character and Wide_Character types. This info is read by the
9771         dwarf-2 writer, and is needed to be able to use the command "ptype
9772         character" in the debugger.
9773         (gnat_to_gnu_entity): When generating a type representing
9774         a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
9775         so that debug writers can distinguish it from ordinary integers.
9776         (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
9777         addition to TREE_READONLY to assert the constantness of variables for
9778         elaboration purposes.
9779         (gnat_to_gnu_entity, subprogram cases): Change loops on formal
9780         parameters to call new Einfo function First_Formal_With_Extras.
9781         (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
9782         protected type with its corresponding discriminant, to obtain a usable
9783         declaration
9784         (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
9785         for a multiple elaboration of the "equivalent" type.
9786         (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
9787         into record_global_renaming_pointer.
9788         (gnat_to_gnu_entity) <E_Array_Type>: Do not force
9789         TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
9790         <E_Array_Subtype>: Likewise.
9791         (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
9792         incomplete subtypes and incomplete subtypes of incomplete types visible
9793         through a limited with clause.
9794         (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
9795         the base index type for the maximum size of the array only if they are
9796         constant.
9797         (gnat_to_gnu_entity, renaming object case): Do not wrap up the
9798         expression into a SAVE_EXPR if stabilization failed.
9799
9800         * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
9801         a result decl into DECL_BY_REFERENCE on this decl, now what is expected
9802         by lower level compilation passes.
9803         (gnat_genericize): New function, lowering a function body to GENERIC.
9804         Turn the type of RESULT_DECL into a real reference type if the decl
9805         has been marked DECL_BY_REFERENCE, and adjust references to the latter
9806         accordingly.
9807         (gnat_genericize_r): New function. Tree walking callback for
9808         gnat_genericize.
9809         (convert_from_reference, is_byref_result): New functions. Helpers for
9810         gnat_genericize_r.
9811         (create_type_decl): Call gnat_pushdecl before calling
9812         rest_of_decl_compilation, to make sure that field TYPE_NAME of
9813         type_decl is properly set before calling the debug information writers.
9814         (write_record_type_debug_info): The heuristics which compute the
9815         alignment of a field in a variant record might not be accurate. Add a
9816         safety test to make sure no alignment is set to a smaller value than
9817         the alignment of the field type.
9818         (make_dummy_type): Use the Non_Limited_View as the underlying type if
9819         the type comes from a limited_with clause. Do not loop on the full view.
9820         (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
9821         (dummy_node_table): New global variable, moved from decl.c.
9822         (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
9823         (save_gnu_tree): Use above macros.
9824         (get_gnu_tree): Likewise.
9825         (present_gnu_tree): Likewise.
9826         (init_dummy_type): New function, moved from decl.c. Use above macros.
9827         (make_dummy_type): Likewise.
9828         (tree_code_for_record_type): New function extracted from make_dummy_type
9829         (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
9830         (static_ctors): Change it to a vector, make static.
9831         (static_dtors): Likewise.
9832         (end_subprog_body): Adjust for above change.
9833         (build_global_cdtor): Moved from trans.c.
9834         (gnat_write_global_declarations): Emit global constructor and
9835         destructor, and call cgraph_optimize before emitting debug info for
9836         global declarations.
9837         (global_decls): New global variable.
9838         (gnat_pushdecl): Store the global declarations in global_decls, for
9839         later use.
9840         (gnat_write_global_declarations): Emit debug information for global
9841          declarations.
9842         (create_var_decl_1): Former create_var_decl, with an extra argument to
9843          state whether the creation of a CONST_DECL is allowed.
9844         (create_var_decl): Behavior unchanged. Now a wrapper around
9845         create_var_decl_1 allowing CONST_DECL creation.
9846         (create_true_var_decl): New function, similar to create_var_decl but
9847         forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
9848         (create_field_decl): Do not always mark the field as addressable
9849         if its type is an aggregate.
9850         (global_renaming_pointers): New static variable.
9851         (add_global_renaming_pointer): New function.
9852         (get_global_renaming_pointers): Likewise.
9853
9854         * misc.c (gnat_dwarf_name): New function.
9855         (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
9856         (gnat_post_options): Add comment about structural alias analysis.
9857         (gnat_parse_file): Do not call cgraph_optimize here.
9858         (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
9859
9860         * trans.c (process_freeze_entity): Don't abort if we already have a
9861         non dummy GCC tree for a Concurrent_Record_Type, as it might
9862         legitimately have been elaborated while processing the associated
9863         Concurrent_Type prior to this explicit freeze node.
9864         (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
9865         exception handler volatile if it is of variable size.
9866         (process_type): Remove bypass for types coming from a limited_with
9867         clause.
9868         (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
9869         actual, convert the corresponding gnu_actual to the real destination
9870         type when necessary.
9871         (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
9872         originally TREE_READONLY but whose elaboration cannot be performed
9873         statically.
9874         Part of fix for F504-021.
9875         (tree_transform, subprogram cases): Change loops on formal parameters to
9876         call new Einfo function First_Formal_With_Extras.
9877         (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
9878         stemming from type conversion for the lhs.
9879         (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
9880         number of bits per unit for components of records.
9881         (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
9882         (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
9883         with At_End_Proc after the SJLJ EH cleanup.
9884         (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
9885         compilation unit.
9886         (elaborate_all_entities): Do not retest type_annotate_only.
9887         (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
9888         result type of an abstract subprogram, which may be an itype associated
9889         with an anonymous access result (related to AI-318-02).
9890         (build_global_cdtor): Move to utils.c.
9891         (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
9892         this choice is not a null tree nor an integer constant.
9893         (gigi): Run unshare_save_expr via walk_tree_without_duplicates
9894         on the body of elaboration routines instead of mark_unvisited.
9895         (add_stmt): Do not mark the tree.
9896         (add_decl_expr): Tweak comment.
9897         (mark_unvisited): Delete.
9898         (unshare_save_expr): New static function.
9899         (call_to_gnu): Issue an error when making a temporary around a
9900         procedure call because of non-addressable actual parameter if the
9901         type of the formal is by_reference.
9902         (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
9903         after building the elaboration routine.
9904
9905 2006-10-31  Bob Duff  <duff@adacore.com>
9906
9907         * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
9908         as finalization-started, so we can raise Program_Error on 'new'.
9909
9910         * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
9911         collection has already started.
9912
9913         * s-finimp.ads (Collection_Finalization_Started): Added new special
9914         flag value for indicating that a collection's finalization has started.
9915
9916         * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
9917         create a task whose master has already waited for dependent tasks.
9918
9919 2006-10-31  Robert Dewar  <dewar@adacore.com>
9920
9921         * lib.adb, lib.ads: (In_Predefined_Unit): New functions
9922
9923         * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads, 
9924         a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads, 
9925         a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads, 
9926         a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads, 
9927         a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads, 
9928         a-except-2005.ads: Add pragma Preelaborable_Warning
9929
9930 2006-10-31  Robert Dewar  <dewar@adacore.com>
9931             Jose Ruiz  <ruiz@adacore.com>
9932
9933         * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
9934
9935         * ali.adb (Get_Name): Properly handle scanning of wide character names
9936         encoded with brackets notation.
9937         (Known_ALI_Lines): Add S lines to this list.
9938         (Scan_ALI): Acquire S (priority specific dispatching) lines.
9939         New flag Elaborate_All_Desirable in unit table
9940
9941         * ali.ads (Priority_Specific_Dispatching): Add this range of
9942         identifiers to be used for Priority_Specific_Dispatching table entries.
9943         (ALIs_Record): Add First_Specific_Dispatching and
9944         Last_Specific_Dispatching that point to the first and last entries
9945         respectively in the priority specific dispatching table for this unit.
9946         (Specific_Dispatching): Add this table for storing each S (priority
9947         specific dispatching) line encountered in the input ALI file.
9948         New flag Elaborate_All_Desirable in unit table
9949
9950         * bcheck.adb: (Check_Configuration_Consistency): Add call to
9951         Check_Consistent_Dispatching_Policy.
9952         (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
9953         verifying that the use of Priority_Specific_Dispatching,
9954         Task_Dispatching_Policy, and Locking_Policy is consistent across the
9955         partition.
9956
9957         * bindgen.adb: (Public_Version_Warning): function removed.
9958         (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
9959         required information from ALI files in order to initialize the table
9960         containing the specific dispatching policy.
9961         (Gen_Adainit_Ada): Generate the variables required for priority specific
9962         dispatching entries (__gl_priority_specific_dispatching and
9963         __gl_num_specific_dispatching).
9964         (Gen_Adainit_C): Generate the variables required for priority specific
9965         dispatching entries (__gl_priority_specific_dispatching and
9966         __gl_num_specific_dispatching).
9967         (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
9968         pragma entries.
9969         (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
9970         (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
9971         (Tab_To): Removed.
9972         (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
9973         a call to gnat_set_globals.
9974         Generate a string containing settings from
9975         Priority_Specific_Dispatching pragma entries.
9976         (Gen_Object_Files_Options): Do not include the runtime libraries when
9977         pragma No_Run_Time is specified.
9978
9979         * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
9980         consistency with s-intman-posix.adb.
9981         (__gnat_error_handler, case FreeBSD): Account for the fact that the
9982         handler is installed with SA_SIGINFO.
9983         (__gnat_adjust_context_for_raise, FreeBSD case): New function for
9984         FreeBSD ZCX support, copied from Linux version.
9985         Add MaRTE-specific definitions for the linux target. Redefine sigaction,
9986         sigfillset, and sigemptyset so the routines defined by MaRTE.
9987         (__gl_priority_specific_dispatching): Add this variable that stores the
9988         string containing priority specific dispatching policies in the
9989         partition.
9990         (__gl_num_specific_dispatching): Add this variable that indicates the
9991         highest priority for which a priority specific dispatching pragma
9992         applies.
9993         (__gnat_get_specific_dispatching): Add this routine that returns the
9994         priority specific dispatching policy, as set by a
9995         Priority_Specific_Dispatching pragma appearing anywhere in the current
9996         partition. The input argument is the priority number, and the result
9997         is the upper case first character of the policy name.
9998         (__gnat_set_globals): Now a dummy function.
9999         (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
10000         mechargs instead of sigargs, as the latter can be retrieved from the
10001         former and sigargs is not what we want on ia64.
10002         (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
10003         mechargs argument.
10004         (__gnat_adjust_context_for_raise, ia64-vms): New function.
10005         (tasking_error): Remove unused symbol.
10006         (_abort_signal): Move this symbol to the IRIX specific part since this
10007         is the only target that uses this definition.
10008         (Check_Abort_Status): Move this symbol to the IRIX specific part since
10009         this is the only target that uses this definition.
10010         (Lock_Task): Remove unused symbol.
10011         (Unlock_Task): Remove unused symbol.
10012
10013         * lib-writ.adb (Write_ALI): Output new S lines for
10014         Priority_Specific_Dispatching pragmas.
10015         Implement new flag BD for elaborate body desirable
10016
10017         * lib-writ.ads: Document S lines for Priority Specific Dispatching.
10018         (Specific_Dispatching): Add this table for storing the entries
10019         corresponding to Priority_Specific_Dispatching pragmas.
10020         Document new BD flag for elaborate body desirable
10021
10022         * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
10023         of known pragmas.
10024
10025 2006-10-31  Javier Miranda  <miranda@adacore.com>
10026
10027         * a-tags.ads, a-tags.adb: 
10028         (Predefined_DT): New function that improves readability of the code.
10029         (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
10030         Inherit_DT): Use the new function Predefined_DT to improve code
10031         readability.
10032         (Register_Interface_Tag): Update assertion.
10033         (Set_Interface_Table): Update assertion.
10034         (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
10035         determining progenitor interfaces in Tags.
10036         (Inherit_CPP_DT): New subprogram.
10037
10038         * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
10039         analysis of the thunk code.
10040         (Expand_Interface_Conversion): Handle run-time conversion of
10041         access to class wide types.
10042         (Expand_Dispatching_Call): When generating the profile for the
10043         subprogram itype for a dispatching operation, properly terminate the
10044         formal parameters chaind list (set the Next_Entity of the last formal
10045         to Empty).
10046         (Collect_All_Interfaces): Removed. This routine has been moved to
10047         sem_util and renamed as Collect_All_Abstract_Interfaces.
10048         (Set_All_DT_Position): Hidden entities associated with abstract
10049         interface primitives are not taken into account in the check for
10050         3.9.3(10); this check is done with the aliased entity.
10051         (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
10052         interfacing with CPP by default.
10053         (Expand_Interface_Conversion): Add missing support for static conversion
10054         from an interface to a tagged type.
10055         (Collect_All_Interfaces): Add new out formal containing the list of
10056         abstract interface types to cleanup the subprogram Make_DT.
10057         (Make_DT): Update the code to generate the table of interfaces in case
10058         of abstract interface types.
10059         (Is_Predefined_Dispatching_Alias): New function that returns true if
10060         a primitive is not a predefined dispatching primitive but it is an
10061         alias of a predefined dispatching primitive.
10062         (Make_DT): If the ancestor of the type is a CPP_Class and we are
10063         compiling under full ABI compatibility mode we avoid the generation of
10064         calls to run-time services that fill the dispatch tables because under
10065         this mode we currently inherit the dispatch tables in the IP subprogram.
10066         (Write_DT): Emit an "is null" indication for a null procedure primitive.
10067         (Expand_Interface_Conversion): Use an address as the type of the formal
10068         of the internally built function that handles the case in which the
10069         target type is an access type.
10070
10071 2006-10-31  Robert Dewar  <dewar@adacore.com>
10072
10073         * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
10074
10075 2006-10-31  Robert Dewar  <dewar@adacore.com>
10076
10077         * bindusg.ads, bindusg.adb:
10078         Change to package and rename procedure as Display, which
10079         now ensures that it only outputs usage information once.
10080
10081 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
10082
10083         * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
10084         using RTPs.
10085
10086         * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
10087         when using RTPs.
10088
10089 2006-10-31  Robert Dewar  <dewar@adacore.com>
10090             Ed Schonberg  <schonberg@adacore.com>
10091
10092         * treepr.adb: Use new subtype N_Membership_Test
10093
10094         * checks.ads, checks.adb: Add definition for Validity_Check
10095         (Range_Or_Validity_Checks_Suppressed): New function
10096         (Ensure_Valid): Test Validity_Check suppressed
10097         (Insert_Valid_Check): Test Validity_Check suppressed
10098         (Insert_Valid_Check): Preserve Do_Range_Check flag
10099         (Validity_Check_Range): New procedure
10100         (Expr_Known_Valid): Result of membership test is always valid
10101         (Selected_Range_Checks): Range checks cannot be applied to discriminants
10102         by themselves. Disabling those checks must also be done for task types,
10103         where discriminants may be used for the bounds of entry families.
10104         (Apply_Address_Clause_Check): Remove side-effects if address expression
10105         is non-static and is not the name of a declared constant.
10106         (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
10107         Code cleanup and new error messages.
10108         (Enable_Range_Check): Test for some cases of suppressed checks
10109         (Generate_Index_Checks): Suppress index checks if index checks are
10110         suppressed for array object or array type.
10111         (Apply_Selected_Length_Checks): Give warning for compile-time detected
10112         length check failure, even if checks are off.
10113         (Ensure_Valid): Do not generate a check on an indexed component whose
10114         prefix is a packed boolean array.
10115         * checks.adb: (Alignment_Checks_Suppressed): New function
10116         (Apply_Address_Clause_Check): New procedure, this is a completely
10117         rewritten replacement for Apply_Alignment_Check
10118         (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
10119         we request a discriminal value only in case of discriminants.
10120         (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
10121         assignments where the target subtype is unconstrained and the target
10122         object is a parameter or dereference (other aliased cases are known
10123         to be unconstrained).
10124
10125 2006-10-31  Robert Dewar  <dewar@adacore.com>
10126
10127         * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
10128         prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
10129         vms_conv.adb: Fix bad table increment values (much too small)
10130
10131         * table.adb (Realloc): Make sure we get at least some new elements
10132         Defends against silly small values for table increment
10133
10134 2006-10-31  Robert Dewar  <dewar@adacore.com>
10135             Ed Schonberg  <schonberg@adacore.com>
10136             Bob Duff  <duff@adacore.com>
10137
10138         * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
10139         entities. Move other fields around to make this possible
10140         (Is_Derived_Type): Add missing call to Is_Type.
10141         (Extra_Formals): New function for subprograms, entries, subprogram
10142         types.
10143         (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
10144         (First_Formal_With_Extras): New function for subprogs, entries, subp
10145         types.
10146         (Write_Field28_Name): New procedure for node display of "Extra_Formals".
10147         Add node information for E_Return_Statement.
10148         (Elaborate_Body_Desirable): New flag
10149         (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
10150         to be Is_Inherently_Limited_Type, because return-by-reference has
10151         no meaning in Ada 2005.
10152         (E_Return_Statement): New entity kind.
10153         (Return_Applies_To): Field of E_Return_Statement.
10154         (Is_Return_Object): New flag in object entities.
10155         (Is_Dynamic_Scope): Make it True for E_Return_Statement.
10156         (Must_Have_Preelab_Init): New flag
10157         (Known_To_Have_Preelab_Init): New flag
10158         (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
10159         (Is_Visible_Formal): New flag on entities in formal packages.
10160         (Low_Bound_Known): New flag
10161         (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
10162         Incomplete_Kind.
10163         (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
10164         output when Id is an incomplete subtype.
10165
10166 2006-10-31  Robert Dewar  <dewar@adacore.com>
10167
10168         * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
10169         Avoid abbreviation Creat
10170         (Finalize): List all sources in extended mail source if -gnatl
10171         switch is active.
10172         Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
10173         (Finalize): Implement new -gnatl=xxx switch to output listing to file
10174         (Set_Specific_Warning_On): New procedure
10175         (Set_Specific_Warning_Off): New procedure
10176         Add implementation of new insertion \\
10177         (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
10178         (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
10179         types.
10180         (Error_Msg_Internal): Make sure that we set Last_Killed to
10181         True when a message from another package is suppressed.
10182         Implement insertion character ~ (insert string)
10183         (First_Node): Minor adjustments to get better placement.
10184
10185         * frontend.adb: 
10186         Implement new -gnatl=xxx switch to output listing to file
10187
10188         * gnat1drv.adb: 
10189         Implement new -gnatl=xxx switch to output listing to file
10190
10191         * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
10192         (Commands_To_Stdout): New flag
10193         Implement new -gnatl=xxx switch to output listing to file
10194         New switch Dump_Source_Text
10195         (Warn_On_Deleted_Code): New warning flag for -gnatwt
10196         Define Error_Msg_Line_Length
10197         (Warn_On_Assumed_Low_Bound): New switch
10198
10199         * osint.ads, osint.adb
10200         (Normalize_Directory_Name): Fix bug.
10201         Implement new -gnatl=xxx switch to output listing to file
10202         (Concat): Removed, replaced by real concatenation
10203         Make use of concatenation now allowed in compiler
10204         (Executable_Prefix.Get_Install_Dir): First get the full path, so that
10205         we find the 'lib' or 'bin' directory even when the tool has been
10206         invoked with a relative path.
10207         (Executable_Name): New function taking string parameters.
10208
10209         * osint-c.ads, osint-c.adb: 
10210         Implement new -gnatl=xxx switch to output listing to file
10211
10212         * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
10213
10214         * switch-c.adb: 
10215         Implement new -gnatl=xxx switch to output listing to file
10216         Recognize new -gnatL switch
10217         (no longer keep in old warning about old style usage)
10218         Use concatenation to simplify code
10219         Recognize -gnatjnn switch
10220         (Scan_Front_End_Switches): Clean up handling of -gnatW
10221         (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
10222
10223 2006-10-31  Robert Dewar  <dewar@adacore.com>
10224
10225         * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
10226         (Set_Specific_Warning_Off): New procedure
10227         (Warning_Specifically_Suppressed): New function
10228         (Validate_Specific_Warnings): New procedure
10229         (Output_Msg_Text): Complete rewrite to support -gnatjnn
10230
10231         * err_vars.ads: Implement insertion character ~ (insert string)
10232
10233 2006-10-31  Bob Duff  <duff@adacore.com>
10234             Ed Schonberg  <schonberg@adacore.com>
10235
10236         * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
10237         the parent part is a build-in-place function call, generate assignments.
10238         (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
10239         are build-in-place function calls.
10240         (Replace_Self_Reference): New subsidiary of
10241         Make_OK_Assignment_Statement, to replace an access attribute that is a
10242         self-reference into an access to the appropriate component of the
10243         target object. Generalizes previous mechanism to handle self-references
10244         nested at any level.
10245         (Is_Self_Referential_Init): Remove, not needed.
10246         (Is_Self_Referential_Init): New predicate to simplify handling of self
10247         referential components in record aggregates.
10248         (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
10249         check for presence of entity before checking for self-reference.
10250         (Has_Default_Init_Comps): Return True if a component association is a
10251         self-reference to the enclosing type, which can only come from a
10252         default initialization.
10253         (Make_OK_Assignment_Statement): If the expression is of the form
10254         Typ'Acc, where Acc is an access attribute, the expression comes from a
10255         default initialized self-referential component.
10256         (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
10257         that has been derived from several abstract interfaces we must also
10258         initialize the tags of the secondary dispatch tables.
10259
10260 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
10261             Thomas Quinot  <quinot@adacore.com>
10262             Javier Miranda  <miranda@adacore.com>
10263             Robert Dewar  <dewar@adacore.com>
10264
10265         * exp_attr.adb: 
10266         (Expand_Access_To_Protected_Op): If the context indicates that an access
10267         to a local operation may be transfered outside of the object, create an
10268         access to the wrapper operation that must be used in an external call.
10269         (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
10270         target, pass the Valid attribute applied to a floating-point prefix on
10271         to the back end without expansion.
10272         (Storage_Size): Use the new run-time function Storage_Size to retrieve
10273         the allocated storage when it is specified by a per-object expression.
10274         (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
10275         Nothing to do here, the attribute has been rewritten during semantic
10276         analysis.
10277         (Expand_Attribute_Reference): Handle expansion of the new Priority
10278         attribute
10279         (Find_Fat_Info): Handle case of universal real
10280         (Expand_Access_To_Protected_Op): Fix use of access to protected
10281         subprogram from inside the body of a protected entry.
10282         (Expand_Access_To_Protected_Op): Common procedure for the expansion of
10283         'Access and 'Unrestricted_Access, to transform the attribute reference
10284         into a fat pointer.
10285         (Is_Constrained_Aliased_View): New predicate to help determine whether a
10286         subcomponent's enclosing variable is aliased with a constrained subtype.
10287         (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
10288         test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
10289         an aliased prefix must be known to be constrained in order to use True
10290         for the attribute value, and now it's possible for some aliased views
10291         to be unconstrained.
10292
10293 2006-10-31  Robert Dewar  <dewar@adacore.com>
10294
10295         * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
10296         (Expand_Entity_Reference): Correct error of not handling subprogram
10297         formals in current_value processing.
10298
10299 2006-10-31  Javier Miranda  <miranda@adacore.com>
10300             Robert Dewar  <dewar@adacore.com>
10301             Ed Schonberg  <schonberg@adacore.com>
10302             Gary Dismukes  <dismukes@adacore.com>
10303
10304         * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
10305         register in the final list objects containing class-wide interfaces;
10306         otherwise we incorrectly register the tag of the interface in the final
10307         list.
10308         (Make_Controlling_Function_Wrappers): Add missing barrier to do not
10309         generate the wrapper if the parent primitive is abstract. This is
10310         required to report the correct error message.
10311         (Expand_N_Subtype_Indication): Do validity checks on range
10312         (Clean_Task_Names): If an initialization procedure includes a call to
10313         initialize a task (sub)component, indicate that the procedure will use
10314         the secondary stack.
10315         (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
10316         compatibility for interfacing with CPP by default.
10317         (Expand_N_Object_Declaration): Only build an Adjust call when the
10318         object's type is a nonlimited controlled type.
10319         * exp_ch3.adb: Add with and use of Exp_Ch6.
10320         (Expand_N_Object_Declaration): Check for object initialization that is a
10321         call to build-in-place function and apply Make_Build_In_Place_Call_In_
10322         Object_Declaration to the call.
10323         (Freeze_Type): When the designated type of an RACW was not frozen at the
10324         point where the RACW was declared, validate the primitive operations
10325         with respect to E.2.2(14) when it finally is frozen.
10326         (Build_Initialization_Call,Expand_Record_Controller): Rename
10327         Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
10328         return-by-reference has no meaning in Ada 2005.
10329         (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
10330         to register tag of the immediate ancestor interfaces in the
10331         run-time structure.
10332         (Init_Secondary_Tags): Moved to the specification to allow the
10333         initialization of extension aggregates with abstract interfaces.
10334         (Build_Master_Renaming): Make public, for use by function declarations
10335         whose return type is an anonymous access type.
10336         (Freeze_Record_Type): Replace call to Insert_List_Before by call to
10337         Insert_List_Before_And_Analyze after the generation of the specs
10338         associated with null procedures.
10339         (Expand_Tagged_Root): Update documentation in its specification.
10340         (Init_Secondary_Tags): Update documentation.
10341         (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
10342         tibility mode and the immediate ancestor is a CPP_Pragma tagged type
10343         then generate code to inherit the contents of the dispatch table
10344         directly from the ancestor.
10345         (Expand_Record_Controller): Insert controller component after tags of
10346         implemented interfaces.
10347         (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
10348         create null procedure overridings when null procedures are inherited
10349         from interfaces.
10350         (Make_Null_Procedure_Specs): New procedure to generate null procedure
10351         declarations for overriding null primitives inherited from interfaces.
10352         (Is_Null_Interface_Procedure): New function in
10353         Make_Null_Procedure_Specs.
10354         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
10355         immediate ancestor of a tagged type is an abstract interface type we
10356         must generate the specification of the predefined primitives associated
10357         with controlled types (because the dispatch table of the ancestor is
10358         null and hence these entries cannot be inherited). This is required to
10359         elaborate well the dispatch table.
10360
10361 2006-10-31  Javier Miranda  <miranda@adacore.com>
10362             Ed Schonberg  <schonberg@adacore.com>
10363             Bob Duff  <duff@adacore.com>
10364             Gary Dismukes  <dismukes@adacore.com>
10365             Robert Dewar  <dewar@adacore.com>
10366
10367         * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
10368         conversion.
10369         (Expand_N_In): Do validity checks on range
10370         (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
10371         (Expand_N_Allocator): For "new T", if the object is constrained by
10372         discriminant defaults, allocate the right amount of memory, rather than
10373         the maximum for type T.
10374         (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
10375         when the allocator is initialized by a build-in-place call, since the
10376         allocator is already rewritten as a reference to the function result,
10377         and this prevents an unwanted duplication of the function call.
10378         Add with and use of Exp_Ch6.
10379         (Expand_Allocator_Expresssion): Check for an allocator whose expression
10380         is a call to build-in-place function and apply
10381         Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
10382         untagged designated types).
10383         (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
10384         optimization if source or target is biased.
10385         (Expand_N_Allocator): Add comments for case of an allocator within a
10386         function that returns an anonymous access type designating tasks.
10387         (Expand_N_Allocator): apply discriminant checks for access
10388         discriminants of anonymous access types (AI-402, AI-416)
10389
10390 2006-10-31  Bob Duff  <duff@adacore.com>
10391             Robert Dewar  <dewar@adacore.com>
10392             Gary Dismukes  <dismukes@adacore.com>
10393             Ed Schonberg  <schonberg@adacore.com>
10394
10395         * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
10396
10397         * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
10398         (Expand_N_Assignment_Statement): Call
10399         Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
10400         build-in-place function call. Currently, this can happen only for
10401         assignments that come from aggregates.
10402         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
10403         in order to alleviate the upward compatibility introduced by AI-318.
10404         (Expand_N_Extended_Return_Statement): Add support for handling the
10405         return object as a build-in-place result.
10406         (Expand_Non_Function_Return): Implement simple return statements nested
10407         within an extended return.
10408         (Enable_New_Return_Processing): Turn on the new processing of return
10409         statements.
10410         (Expand_Non_Function_Return): For a return within an extended return,
10411         don't raise Program_Error, because Sem_Ch6 now gives a warning.
10412         (Expand_N_Extended_Return_Statement): Implement AI-318
10413         (Expand_Simple_Function_Return): Ditto.
10414         (Expand_N_If_Statement): Handle new -gnatwt warning
10415         (Expand_N_Case_Statement): Handle new -gnatwt warning
10416         (Expand_N_Assignment): Handle assignment to the Priority attribute of
10417         a protected object.
10418         (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
10419         validity checking of assignments to elementary record components.
10420         (Expand_N_Return_Statement): return Class Wide types on the secondary
10421         stack independantly of their controlled status since with HIE runtimes,
10422         class wide types are not potentially controlled anymore.
10423
10424         * expander.adb (Expand): Add case for new N_Extended_Return_Statement
10425         node kind.
10426
10427         * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
10428         Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
10429         it expects a block, procedure, or task. The return statement will get
10430         turned into a block, and Expand_Cleanup_Actions will happen then.
10431
10432 2006-10-31  Robert Dewar  <dewar@adacore.com>
10433             Ed Schonberg  <schonberg@adacore.com>
10434             Bob Duff  <duff@adacore.com>
10435             Gary Dismukes  <dismukes@adacore.com>
10436
10437         * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
10438         capability.
10439         (Expand_Inlined_Call): Tagged types are by-reference types, and
10440         therefore should be replaced by a renaming declaration in the expanded
10441         body, as is done for limited types.
10442         (Expand_Call): If this is a call to a function with dispatching access
10443         result, propagate tag from context.
10444         (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
10445         CPP by default.
10446         (Make_Build_In_Place_Call_In_Assignment): New procedure to do
10447         build-in-place when the right-hand side of an assignment is a
10448         build-in-place function call.
10449         (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
10450         of the explicit dereference of the allocator to the result subtype of
10451         the build-in-place function. This is needed to satisfy type checking
10452         in cases where the caller's return object is created by an allocator for
10453         a class-wide access type and the type named in the allocator is a
10454         specific type.
10455         (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
10456         conversion of the reference to the declared object to the result subtype
10457         of the build-in-place function. This is needed to satisfy type checking
10458         in cases where the declared object has a class-wide type. Also, in the
10459         class-wide case, change the type of the object entity to the specific
10460         result subtype of the function, to avoid passing a class-wide object
10461         without explicit initialization to the back end.
10462         (Register_Interface_DT_Entry): Moved outside the body of
10463         Freeze_Subprogram because this routine is now public; it is called from
10464         Check_Dispatching_Overriding to handle late overriding of abstract
10465         interface primitives.
10466         (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
10467         adding an implicit access actual on a call to a build-in-place function.
10468         (Expand_Actuals): Test for an actual parameter that is a call to a
10469         build-in-place function and apply
10470         Make_Build_In_Place_Call_In_Anonymous_Context to the call.
10471         (Is_Build_In_Place_Function): New function to determine whether an
10472         entity is a function whose calls should be handled as build-in-place.
10473         (Is_Build_In_Place_Function_Call): New function to determine whether an
10474         expression is a function call that should handled as build-in-place.
10475         (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
10476         calls to build-in-place functions as the initialization of an allocator.
10477         (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
10478         handling calls to build-in-place functions in contexts that do not
10479         involve init of a separate object (for example, actuals of subprogram
10480         calls).
10481         (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
10482         handling calls to build-in-place functions as the initialization of an
10483         object declaration.
10484         (Detect_Infinite_Recursion): Add explicit parameter Process to
10485         instantiation of Traverse_Body to avoid unreferenced warning.
10486         (Check_Overriding_Inherited_Interfaces): Removed.
10487         (Register_Interface_DT_Entry): Code cleanup.
10488         (Register_Predefined_DT_Entry): Code cleanup.
10489         (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
10490         inlined statements if within a transient scope.
10491         (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
10492         formal parameters with occurrences of actuals in inlined body, establish
10493         visibility on the proper view of the actual's subtype for the body's
10494         context.
10495         (Freeze_Subprogram): Do nothing if we are compiling under full ABI
10496         compatibility mode and we have an imported CPP subprogram because
10497         for now we assume that imported CPP primitives correspond with
10498         objects whose constructor is in the CPP side (and therefore we
10499         don't need to generate code to register them in the dispatch table).
10500         (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
10501         aligned selected component.
10502         (Add_Call_By_Copy_Node): Add missing code to handle the case in which
10503         the actual of an in-mode parameter is a type conversion.
10504         (Expand_Actuals): If the call does not come from source and the actual
10505         is potentially misaligned, let gigi handle it rather than rejecting the
10506         (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
10507         Class Wide types as returning by reference independantly of their
10508         controlled status since with HIE runtimes class wide types are not
10509         potentially controlled anymore.
10510
10511 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
10512
10513         * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
10514         references that are private components of the protected object.
10515         (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
10516         (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
10517         instantiation to deal with warnings.
10518         (Initialize_Protection): If expression for priority is non-static, use
10519         System_Priority as its expected type, in case the expression has not
10520         been analyzed yet.
10521
10522 2006-10-31  Robert Dewar  <dewar@adacore.com>
10523
10524         * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
10525         initialization of Homonym_Len.
10526         (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
10527         names from fully qualified name. Fixes problem of duplicate
10528         external names differing only in the presence of such a block name.
10529
10530 2006-10-31  Thomas Quinot  <quinot@adacore.com>
10531             Pablo Oliveira  <oliveira@adacore.com>
10532
10533         * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
10534         subprogram Ids, even if they are not yet assigned.
10535         (Build_Subprogram_Id): It is now this function that will take care of
10536         calling Assign_Subprogram_Ids if necessary.
10537         (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
10538         should be done only once they are assigned.
10539         (Build_From_Any_Function, case of tagged types): Add missing call to
10540         Allocate_Buffer.
10541         (Corresponding_Stub_Type): New subprogram. Returns the associated stub
10542         type for an RACW type.
10543         (Add_RACW_Features): When processing an RACW declaration for which the
10544         designated type is already frozen, enforce E.2.2(14) rules immediately.
10545         (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
10546         special reordering of controlling formals.
10547
10548         * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
10549         associated stub type for an RACW type.
10550
10551 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
10552
10553         * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
10554         fixed-point operations in an integer context, i.e. as operands of a
10555         conversion to an integer type, indicate that result must be rounded.
10556
10557 2006-10-31  Robert Dewar  <dewar@adacore.com>
10558
10559         * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
10560         cases, pass the encoding method, since it is now required by the run
10561         time.
10562
10563         * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
10564         assumption that Str'First = 1.
10565         (Value_Wide_Character): Takes EM (encoding method) parameter and passes
10566         it on to the Value_Wide_Wide_Character call.
10567         (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
10568         properly handles a string of the form quote-encoded_wide_char-quote.
10569
10570         * s-wchcnv.adb: Minor reformatting
10571
10572 2006-10-31  Javier Miranda  <miranda@adacore.com>
10573
10574         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
10575         run-time membership test to ensure that the constructed object
10576         implements the target abstract interface.
10577
10578 2006-10-31  Robert Dewar  <dewar@adacore.com>
10579
10580         * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
10581         Machine_Attribute pragma internally to implement the user pragma.
10582         Add processing for pragma Interface so that it is now completely
10583         equivalent to pragma Import.
10584
10585         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
10586         so that it can be applied to all entities, including record components
10587         and enumeration literals.
10588         (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
10589         priority ranges are correct, verify compatibility against task
10590         dispatching and locking policies, and if everything is correct an entry
10591         is added to the table containing priority specific dispatching entries
10592         for this compilation unit.
10593         (Delay_Config_Pragma_Analyze): Delay processing
10594         Priority_Specific_Dispatching pragmas because when processing the
10595         pragma we need to access run-time data, such as the range of
10596         System.Any_Priority.
10597         (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
10598         Allow pragma Unreferenced as a context item
10599         Add pragma Preelaborable_Initialization
10600         (Analyze_Pragma, case Interface): Interface is extended so that it is
10601         now syntactically and semantically equivalent to Import.
10602         (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
10603         insertion characters.
10604         Add handling for Pragma_Wide_Character_Encoding
10605         (Process_Restrictions_Restriction_Warnings): Ensure that a warning
10606         never supercedes a real restriction, and that a real restriction
10607         always supercedes a warning.
10608         (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
10609         appropriate form.
10610
10611 2006-10-31  Bob Duff  <duff@adacore.com>
10612             Ed Schonberg  <schonberg@adacore.com>
10613             Robert Dewar  <dewar@adacore.com>
10614
10615         * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
10616         Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
10617         Is_Inherently_Limited_Type, because return-by-reference has no meaning
10618         in Ada 2005.
10619         (Find_Node_To_Be_Wrapped): Use new method of determining the result
10620         type of the function containing a return statement, because the
10621         Return_Type field was removed. We now use the Return_Applies_To field.
10622
10623         * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
10624         (Build_Task_Image_Decl): If procedure is not called from an
10625         initialization procedure, indicate that function that builds task name
10626         uses the sec. stack. Otherwise the enclosing initialization procedure
10627         will carry the indication.
10628         (Insert_Actions): Remove N_Return_Object_Declaration. We now use
10629         N_Object_Declaration instead.
10630         (Kill_Dead_Code): New interface to implement -gnatwt warning for
10631         conditional dead code killed, and change implementation accordingly.
10632         (Insert_Actions): Add N_Return_Object_Declaration case.
10633         Correct comment to mention N_Extension_Aggregate node.
10634         (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
10635         attempts to save information for global variables which cannot be
10636         safely tracked.
10637         (Get_Current_Value_Condition): Handle conditions the other way round
10638         (constant on left). Also handle right operand of AND and AND THEN
10639         (Set_Current_Value_Condition): Corresponding changes
10640         (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
10641         (Get_Current_Value_Condition): Handle simple boolean operands
10642         (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
10643         (Get_Current_Value_Condition): If the variable reference is within an
10644         if-statement, does not appear in the list of then_statments, and does
10645         not come from source, treat it as being at unknown location.
10646         (Get_Current_Value_Condition): Enhance to allow while statements to be
10647         processed as well as if statements.
10648         (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
10649         come from source.
10650         (OK_To_Do_Constant_Replacement): Allow constant replacement within body
10651         of loop. This is safe now that we fixed Kill_Current_Values.
10652         (OK_To_Do_Constant_Replacement): Check whether current scope is
10653         Standard, before examining outer scopes.
10654
10655 2006-10-31  Vincent Celier  <celier@adacore.com>
10656
10657         * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
10658         When True, apply VMS treatment to children of packages A, G, I and S.
10659         For F320-016
10660
10661         * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
10662
10663 2006-10-31  Robert Dewar  <dewar@adacore.com>
10664             Ed Schonberg  <schonberg@adacore.com>
10665
10666         * freeze.adb: Add handling of Last_Assignment field
10667         (Warn_Overlay): Supply missing continuation marks in error msgs
10668         (Freeze_Entity): Add check for Preelaborable_Initialization
10669
10670         * g-comlin.adb: Add Warnings (Off) to prevent new warning
10671
10672         * g-expect.adb: Add Warnings (Off) to prevent new warning
10673
10674         * lib-xref.adb: Add handling of Last_Assignment field
10675         (Generate_Reference): Centralize handling of pragma Obsolescent here
10676         (Generate_Reference): Accept an implicit reference generated for a
10677         default in an instance.
10678         (Generate_Reference): Accept a reference for a node that is not in the
10679         main unit, if it is the generic body corresponding to an subprogram
10680         instantiation.
10681
10682         * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
10683
10684         * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
10685         -gnatwq/Q.
10686         (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
10687         exception handler.
10688         (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
10689         use clauses, to avoid messages on packages used to qualify, and also
10690         to avoid messages from obsolescent units.
10691         (Warn_On_Useless_Assignments): Don't generate messages for imported
10692         and exported variables.
10693         (Warn_On_Useless_Assignments): New procedure
10694         (Output_Obsolescent_Entity_Warnings): New procedure
10695         (Check_Code_Statement): New procedure
10696
10697         * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
10698         Change name Is_Ada_2005 to Is_Ada_2005_Only
10699         (Last_Assignment): New field for useless assignment warning
10700
10701 2006-10-31  Olivier Hainque  <hainque@adacore.com>
10702
10703         * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
10704         closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
10705
10706 2006-10-31  Bob Duff  <duff@adacore.com>
10707             Robert Dewar  <dewar@adacore.com>
10708             Ed Schonberg  <schonberg@adacore.com>
10709
10710         * g-awk.adb (Default_Session, Current_Session): Compile this file in
10711         Ada 95 mode, because it violates the new rules for AI-318.
10712
10713         * g-awk.ads: Use overloaded subprograms in every case where we used to
10714         have a default of Current_Session. This makes the code closer to be
10715         correct for both Ada 95 and 2005.
10716
10717         * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
10718         code, relying on the fact that the compiler generates a warning
10719         instead of an error in -gnatg mode.
10720
10721         * lib-xref.ads (Xref_Entity_Letters): Add entry for new
10722         E_Return_Statement entity kind.
10723         Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
10724
10725         * par.adb (P_Interface_Type_Definition): Addition of one formal to
10726         report an error if the reserved word abstract has been previously found.
10727         (SS_End_Type): Add E_Return for new extended_return_statement syntax.
10728
10729         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
10730         parenthesized range attribute usage
10731         (P_Expression_No_Right_Paren): Add missing comment about error recovery.
10732
10733         * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
10734         in the syntax for extended_return_statement. This is not in the latest
10735         RM, but the ARG is expected to issue an AI allowing this.
10736         (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
10737         N_Return_Object_Declaration. We now use N_Object_Declaration instead.
10738         (P_Return_Object_Declaration, P_Return_Subtype_Indication,
10739         P_Return_Statement): Parse the new syntax for extended_return_statement.
10740
10741         * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
10742         Output_End_Missing): Add error-recovery code for the new
10743         extended_return_statement syntax; that is, the new E_Return entry on
10744         the scope stack.
10745
10746         * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
10747         limited to nonlimited, because otherwise we violate the new Ada 2005
10748         rules about returning limited types in function Create_AST_Handler in
10749         s-asthan.adb.
10750
10751         * sem.adb (Analyze): Add cases for new node kinds
10752         N_Extended_Return_Statement and N_Return_Object_Declaration.
10753
10754         * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
10755         type is in the same category as type of context before applying check,
10756         to prevent anomalies in instantiations.
10757         (Resolve_Aggregate): Remove test for limited components in aggregates.
10758         It's unnecessary in Ada 95, because if it has limited components, then
10759         it must be limited. It's wrong in Ada 2005, because limited aggregates
10760         are now allowed.
10761         (Resolve_Record_Aggregate): Move check for limited types later, because
10762         OK_For_Limited_Init requires its argument to have been resolved.
10763         (Get_Value): When copying the component default expression for a
10764         defaulted association in an aggregate, use the sloc of the aggregate
10765         and not that of the original expression, to prevent spurious
10766         elaboration errors, when the expression includes function calls.
10767         (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
10768         were missing. We also didn't handle qualified expressions. Now also
10769         allow function calls. Use new common routine OK_For_Limited_Init.
10770         (Resolve_Extension_Aggregate): Minor fix to bad error message (started
10771         with space can upper case letter).
10772
10773         * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
10774         Has_Static_Discriminants flag
10775         (Record_Type_Declaration): Diagnose an attempt to declare an interface
10776         type with discriminants.
10777         (Process_Range_Expr_In_Decl): Do validity checks on range
10778         (Build_Discriminant_Constraints): Use updated form of
10779         Denotes_Discriminant.
10780         (Process_Subtype): If the subtype is a private subtype whose full view
10781         is a concurrent subtype, introduce an itype reference to prevent scope
10782         anomalies in gigi.
10783         (Build_Derived_Record_Type, Collect_Interface_Primitives,
10784         Record_Type_Declaration):  The functionality of the subprograms
10785         Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
10786         is now performed by a single routine.
10787         (Build_Derived_Record_Type): If the type definition includes an explicit
10788         indication of limitedness, then the type must be marked as limited here
10789         to ensure that any access discriminants will not be treated as having
10790         a local anonymous access type.
10791         (Check_Abstract_Overriding): Issue a detailed error message when an
10792         abstract subprogram was not overridden due to incorrect mode of its
10793         first parameter.
10794         (Analyze_Private_Extension_Declaration): Add support for the analysis of
10795         synchronized private extension declarations. Verify that the ancestor is
10796         a limited or synchronized interface or in the generic case, the ancestor
10797         is a tagged limited type or synchronized interface and all progenitors
10798         are either limited or synchronized interfaces.
10799         Derived_Type_Declaration): Check for presence of private extension when
10800         dealing with synchronized formal derived types.
10801         Process_Full_View): Enchance the check done on the usage of "limited" by
10802         testing whether the private view is synchronized.
10803         Verify that a synchronized private view is completed by a protected or
10804         task type.
10805         (OK_For_Limited_Init_In_05): New function.
10806         (Analyze_Object_Declaration): Move check for limited types later,
10807         because OK_For_Limited_Init requires its argument to have been resolved.
10808         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
10809         in order to alleviate the upward compatibility introduced by AI-318.
10810         (Constrain_Corresponding_Record): If the constraint is for a component
10811         subtype, mark the itype as frozen, to avoid out-of-scope references to
10812         discriminants in the back-end.
10813         (Collect_Implemented_Interfaces): Protect the recursive algorithm of
10814         this subprogram against wrong sources.
10815         (Get_Discr_Value, Is_Discriminant): Handle properly references to a
10816         discriminant of limited type completed with a protected type, when the
10817         discriminant is used to constrain a private component of the type, and
10818         expansion is disabled.
10819         (Find_Type_Of_Object): Do not treat a return subtype that is an
10820         anonymous subtype as a local_anonymous_type, because its accessibility
10821         level is the return type of the enclosing function.
10822         (Check_Initialization): In -gnatg mode, turn the error "cannot
10823         initialize entities of limited type" into a warning.
10824         (OK_For_Limited_Init): Return true for generated nodes, since it
10825         sometimes violates the legality rules.
10826         (Make_Incomplete_Declaration): If the type for which an incomplete
10827         declaration is created happens to be the currently visible entity,
10828         preserve the homonym chain when removing it from visibility.
10829         (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
10830         inherited subprograms.
10831         (Access_Definition): If this is an access to function that is the return
10832         type of an access_to_function definition, context is a type declaration
10833         and the scope of the anonymous type is the current one.
10834         (Analyze_Subtype_Declaration): Add the defining identifier of a regular
10835         incomplete subtype to the set of private dependents of the original
10836         incomplete type.
10837         (Constrain_Discriminated_Type): Emit an error message whenever an
10838         incomplete subtype is being constrained.
10839         (Process_Incomplete_Dependents): Transform an incomplete subtype into a
10840         corresponding subtype of the full view of the original incomplete type.
10841         (Check_Incomplete): Properly detect invalid usage of incomplete types
10842         and subtypes.
10843
10844 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
10845
10846         * g-catiio.ads, g-catiio.adb (Value): New function.
10847         Given an input String, try and parse a valid Time value.
10848
10849 2006-10-31  Vincent Celier  <celier@adacore.com>
10850
10851         * g-debpoo.adb (Is_Valid): Correctly compute Offset using
10852         Integer_Address arithmetic, as in Set_Valid.
10853
10854 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
10855             Robert Dewar  <dewar@adacore.com>
10856
10857         * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
10858         handling executable extension manually and duplicating code.
10859
10860         * make.adb: Implement new -S switch
10861         (Gnatmake): Use new function Osint.Executable_Name instead
10862         of handling executable extension manually.
10863
10864         * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
10865         is specified, the executable name ends with this suffix.
10866         Take advantage of Osint.Executable_Name instead of duplicating code.
10867
10868         * switch-m.adb: Recognize new gnatmake -S switch
10869
10870         * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
10871         variable.
10872         (Get_Target_Parameters): Set Executable_Extension_On_Target if
10873         available.
10874
10875         * makeusg.adb: Add line for gnatmake -S switch
10876
10877 2006-10-31  Vincent Celier  <celier@adacore.com>
10878
10879         * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
10880         call it with -static-libgcc, as there are some platforms, such as
10881         Darwin, where one of these two switches is compulsory to link.
10882
10883 2006-10-31  Vincent Celier  <celier@adacore.com>
10884
10885         * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
10886         instead of ADA_PROJECT_PATH, for the project path.
10887         (Gnatls): When displaying the project path directories, use host dir
10888         specs.
10889
10890         * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
10891         names in the project path, as absolute paths may correspond to
10892         multi-valued VMS logical names.
10893
10894 2006-10-31  Vincent Celier  <celier@adacore.com>
10895
10896         * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
10897         absolute path name.
10898         (Locate_Regular_File): Ditto
10899         (Change_Dir): Remove, no longer used
10900         (Normalize_Pathname): Do not use Change_Dir to get the drive letter
10901         on Windows. Get it calling Get_Current_Dir.
10902         (OpenVMS): Remove imported boolean, no longer needed.
10903         (Normalize_Pathname)[VMS]: Do not resolve directory names.
10904         (Pid_To_Integer): New function to convert a Process_Id to  Integer
10905
10906 2006-10-31  Thomas Quinot  <quinot@adacore.com>
10907
10908         * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
10909         sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
10910         to No_Socket.
10911         (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
10912         W_Sig_Socket.
10913
10914 2006-10-31  Robert Dewar  <dewar@adacore.com>
10915
10916         * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
10917         initial letter o as a zero.
10918
10919 2006-10-31  Robert Dewar  <dewar@adacore.com>
10920
10921         * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
10922
10923 2006-10-31  Robert Dewar  <dewar@adacore.com>
10924
10925         * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
10926         variant records
10927         (Layout_Variant_Record): Retrieve the discriminants from the entity
10928         rather than from the type definition, because in the case of a full
10929         type for a private type we need to take the discriminants from the
10930         partial view.
10931         (Layout_Component_List): When applying the Max operator to variants with
10932         a nonstatic size, check whether either operand is static and scale that
10933         operand from bits to storage units before applying Max.
10934         (Layout_Type): In VMS, if a C-convention access type has no explicit
10935         size clause (and does not inherit one in the case of a derived type),
10936         then the size is reset to 32 from 64.
10937
10938 2006-10-31  Vincent Celier  <celier@adacore.com>
10939
10940         * lib-load.adb (Load_Unit): Skip the test for a unit not found when
10941         its file has already been loaded, according to the unit being loaded,
10942         not to the current value of Multiple_Unit_Index.
10943
10944 2006-10-31  Thomas Quinot  <quinot@adacore.com>
10945             Eric Botcazou  <ebotcazou@adacore.com>
10946             Arnaud Charlet  <charlet@adacore.com>
10947
10948         * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
10949         (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
10950         possible.
10951         (a-except.o): Pass it to the compiler.
10952         (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
10953         (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
10954         a-calend-mingw.adb version.
10955
10956         * Makefile.rtl: Added s-dsaser.
10957         Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
10958         (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
10959         Ada.Dispatching.Round_Robin.
10960         Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
10961
10962         * Make-lang.in: Remove all references to gt-ada-decl.h.
10963         Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
10964         sources.
10965         Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
10966         Update dependencies.
10967
10968         * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
10969
10970 2006-10-31  Vincent Celier  <celier@adacore.com>
10971
10972         * mlib-utl.adb (Initialized): Remove, no longer used
10973         (Initialize): Remove, no longer used
10974         (Ar): If Ar_Exec is null, get the location of the archive builder and,
10975         if there is one, the archive indexer. Fail if the archive builder cannot
10976         be found.
10977         (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
10978         be found.
10979
10980 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
10981
10982         * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
10983         Process_Body_Clauses): If the context of a body includes a use clause
10984         for P.Q then a with_clause for P in the same body is not redundant,
10985         even if the spec also has a with_clause on P.
10986         Add missing continuation mark to error msg
10987         (Build_Limited_Views): A limited view of a type is tagged if its
10988         declaration includes a record extension.
10989         (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
10990         node, even if the subunit has errors. This avoids malfunction by
10991         Lib.Check_Same_Extended_Unit in the presence of syntax errors.
10992         (Analyze_Compilation_Unit): Add circuit to make sure we get proper
10993         generation of obsolescent messages for with statements (cannot do
10994         this too early, or we cannot implement avoiding the messages in the
10995         case of obsolescent units withing obsolescent units).
10996         (Install_Siblings): If the with_clause is on a remote descendant of
10997         an ancestor of the current compilation unit, find whether there is
10998         a sibling child unit that is immediately visible.
10999         (Remove_Private_With_Clauses): New procedure, invoked after completing
11000         the analysis of the private part of a nested package, to remove from
11001         visibility the private with_clauses of the enclosing package
11002         declaration.
11003         (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
11004         now centralized in Generate_Reference.
11005         (Install_Limited_Context_Clauses): Remove superfluous error
11006         message associated with unlimited view visible through use
11007         and renamings. In addition, at the point in which the error
11008         is reported, we add the backslash to the text of the error
11009         to ensure that it is reported as a single error message.
11010         Use new // insertion for some continuation messages
11011         (Expand_Limited_With_Clause): Use copy of name rather than name itself,
11012         to create implicit with_clause for parent unit mentioned in original
11013         limited_with_clause.
11014         (Install_Limited_With_Unit): Set entity of parent identifiers if the
11015         unit is a child unit. For ASIS queries.
11016         (Analyze_Subunit): If the subunit appears within a child unit, make all
11017         ancestor child units directly visible again.
11018
11019 2006-10-31  Robert Dewar  <dewar@adacore.com>
11020
11021         * par-ch10.adb (P_Context_Clause): Minor error message fix
11022
11023 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
11024             Javier Miranda  <miranda@adacore.com>
11025
11026         * par-ch12.adb: Grammar update and cleanup.
11027         (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
11028         support for synchronized derived type definitions.
11029         Add the new actual Abstract_Present to every call to
11030         P_Interface_Type_Definition.
11031         (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
11032         a formal object declaration with an access definition or a subtype mark
11033         with a null exclusion.
11034         (P_Generic_Association): Handle association with box, and others_choice
11035         with box, to support Ada 2005 partially parametrized formal packages.
11036
11037 2006-10-31  Robert Dewar  <dewar@adacore.com>
11038             Javier Miranda  <miranda@adacore.com>
11039
11040         * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
11041         (P_Type_Declaration): Remove barrier against the reserved word "limited"
11042         after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
11043         (P_Type_Declaration): Minor code cleanup. Add support for synchronized
11044         private extensions.
11045         (P_Type_Declaration): Add the new actual Abstract_Present to every call
11046         to P_Interface_Type_Definition.
11047         (P_Interface_Type_Definition): Addition of one formal to report an error
11048         if the reserved word abstract has been previously found.
11049         (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
11050         object renaming declaration with an access definition or subtype mark
11051         with a possible null exclusion.
11052
11053         * par-ch9.adb: Minor error msg fix
11054
11055         * par-load.adb: Add missing continuation mark to error msg
11056
11057         * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
11058
11059 2006-10-31  Vincent Celier  <celier@adacore.com>
11060
11061         * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
11062         unknown attribute in unknown package or in package that does not need
11063         to be checked.
11064         (Parse_Package_Declaration): Do not issue warning for unknown package in
11065         quiet output.
11066
11067 2006-10-31  Vincent Celier  <celier@adacore.com>
11068
11069         * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
11070         (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
11071         Packages_To_Check.
11072
11073 2006-10-31  Vincent Celier  <celier@adacore.com>
11074
11075         * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
11076         on VMS, change "__" to '.' before checking the name.
11077         (Record_Ada_Source): Always add the source file name in the list of
11078         of sources, even if it is not the first time, as it is for another
11079         source index.
11080         (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
11081         dot, instead of replacing only the first '_'.
11082
11083         * prj-part.adb (Parse): Convert project file path to canonical form
11084
11085         * prj-proc.adb (Recursive_Process): Make sure that, when a project is
11086         extended, the project id of the project extending it is recorded in its
11087         data, even when it has already been processed as an imported project.
11088
11089 2006-10-31  Robert Dewar  <dewar@adacore.com>
11090
11091         * repinfo.adb (List_Entities): Don't list entities from renaming
11092         declarations.
11093
11094 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
11095             Robert Dewar  <dewar@adacore.com>
11096
11097         * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
11098         only a restriction warning is active for the given restriction. This is
11099         desirable because we do not want to modify code in the case where only
11100         a warning is set.
11101         (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
11102         causes overriding of real restrictions.
11103         Take advantage of new No_Restrictions constant.
11104
11105         * raise.h: (__gnat_set_globals): Change profile.
11106
11107 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
11108
11109         * rtsfind.adb: Remove s-polint from comment as it exists no more.
11110
11111         * rtsfind.ads: 
11112         Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
11113         Move all the entities in obsolete package System.PolyORB_Interface to
11114         System.Partition_Interface.
11115         (RE_Storage_Size): New function in System.Tasking.
11116         (RE_Get_Ceiling): New entity.
11117         (RE_Set_Ceiling): New entity.
11118         (RO_PE_Get_Ceiling): New entity.
11119         (RO_RE_Set_Ceiling): New entity.
11120         (Inherit_CPP_DT): New entity
11121
11122 2006-10-31  Robert Dewar  <dewar@adacore.com>
11123
11124         * scng.adb (Scan, case of numeric literal): Better msg for identifier
11125         starting with a digit.
11126
11127 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
11128             Thomas Quinot  <quinot@adacore.com>
11129             Javier Miranda  <miranda@adacore.com>
11130             Gary Dismukes  <dismukes@adacore.com>
11131
11132         * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
11133         properly an attempt to apply Unchecked_Access to a protected operation.
11134         (OK_Self_Reference): New subprogram to check the legality of an access
11135         attribute whose prefix is the type of an enclosing aggregate.
11136         Generalizes previous mechanism to handle attribute references nested
11137         arbitrarily deep within the aggregate.
11138         (Analyze_Access_Attribute): An access attribute whose prefix is a type
11139         can appear in an aggregate if this is a default-initialized aggregate
11140         for a self-referential type.
11141         (Resolve_Attribute, case Access): Ditto.
11142         Add support for new implementation defined attribute Stub_Type.
11143         (Eval_Attribute, case Attribute_Stub_Type): New case.
11144         (Analyze_Attribute, case Attribute_Stub_Type): New case.
11145         (Stream_Attribute_Available): Implement using new subprogram from
11146         sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
11147         Has_Specified_Stream_Attribute flag.
11148         Disallow Storage_Size and Storage_Pool for access to subprogram
11149         (Resolve_Attribute, case 'Access et al): Take into account anonymous
11150         access types of return subtypes in extended return statements. Remove
11151         accessibility checks on anonymous access types when Unchecked_Access is
11152         used.
11153         (Analyze_Attribute): Add support for the use of 'Class to convert
11154         a class-wide interface to a tagged type.
11155         Add support for the attribute Priority.
11156         (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
11157         whether the designated type is discriminated with a constrained partial
11158         view and require static matching in that case.
11159         Add local variable Des_Btyp. The Designated_Type
11160         of an access to incomplete subtype is either its non-limited view if
11161         coming from a limited with or its etype if regular incomplete subtype.
11162
11163         * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
11164         Fix predicate to identify and allow cases of (expander-generated)
11165         references to tag of designated object of a RACW.
11166         (Validate_Static_Object_Name): In Ada 2005, a formal object is
11167         non-static, and therefore cannot appear as a primary in a preelaborable
11168         package.
11169         (Has_Stream_Attribute_Definition): New subprogram, abstracted from
11170         Has_Read_Write_Attributes.
11171         (Has_Read_Write_Attributes): Reimplement in termes of
11172         Has_Stream_Attribute_Definition.
11173         (Missing_Read_Write_Attributes): When checking component types in a
11174         record, unconditionally call Missing_Read_Write_Attributes recursively
11175         (remove guard checking for Is_Record_Type / Is_Access_Type).
11176
11177 2006-10-31  Robert Dewar  <dewar@adacore.com>
11178
11179         * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
11180         useless assignments here and conditionalize it on absence of exception
11181         handlers.
11182         (Analyze_Exception_Handlers): Small code reorganization of error
11183         detection code, for new handling of formal packages.
11184
11185 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
11186             Hristian Kirtchev  <kirtchev@adacore.com>
11187
11188         * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
11189         that has been constant-folded, preserve information of original tree,
11190         for ASIS uses.
11191         (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
11192         generated private extension declaration if the formal derived type is
11193         synchronized. Carry synchronized present over to the generated private
11194         extension.
11195         (Validate_Derived_Type_Instance): Ensure that the actual of a
11196         synchronized formal derived type is a synchronized tagged type.
11197         (Instantiate_Formal_Package): When creating the instantiation used to
11198         validate the actual package of a formal declared without a box, check
11199         whether the formal itself depends on a prior actual.
11200         (Instantiate_Formal_Subprogram): Create new entities for the defining
11201         identifiers of the formals in the renaming declaration, for ASIS use.
11202         (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
11203         a renaming declaration or a subtype declaration for an actual in an
11204         instance, capture location information of declaration in generic, for
11205         ASIS use.
11206         (Instantiate_Formal_Package): Add comments on needed additional tests.
11207         AI-317 (partial parametrization) is fully implemented.
11208         (Validate_Private_Type_Instance): Add check for actual which
11209         must have preelaborable initialization
11210         Use new // insertion for some continuation messages
11211         (Analyze_Formal_Object_Declaration): Change usage of Expression to
11212         Default_Expression. Add type retrieval when the declaration has an
11213         access definition. Update premature usage of incomplete type check.
11214         (Check_Access_Definition): New subsidiary routine. Check whether the
11215         current compilation version is Ada 05 and the supplied node has an
11216         access definition.
11217         (Instantiate object): Alphabetize local variables. Handle the creation
11218         of new renaming declarations with respect to the kind of definition
11219         used - either an access definition or a subtype mark. Guard against
11220         unnecessary error message in the context of anonymous access types after
11221         they have been resolved. Add check for required null exclusion in a
11222         formal object declaration.
11223         (Switch_View): A private subtype of a non-private type needs to be
11224         switched (the base type can have been switched without its private
11225         dependents because of the last branch of Check_Private_View.
11226         (Check_Private_View): Do not recompute Base_Type (T), instead use cached
11227         value from BT.
11228         (Instantiate_Type): Emit an error message whenever a class-wide type of
11229         a tagged incomplete type is used as a generic actual.
11230         (Find_Actual_Type): Extend routine to handle a component type in a child
11231         unit that is imported from a formal package in a parent.
11232         (Validate_Derived_Type_Instance): Check that analyzed formal and actual
11233         agree on constrainedness, rather than checking against ultimate ancestor
11234         (Instantiate_Subprogram_Body): Create a cross-reference link to the
11235         generic body, for navigation purposes.
11236
11237 2006-10-31  Robert Dewar  <dewar@adacore.com>
11238             Thomas Quinot  <quinot@adacore.com>
11239
11240         * sem_ch13.adb: Storage pool cannot be given for access to subprogram
11241         type.
11242         (New_Stream_Subprogram): When processing an attribute definition clause
11243         for a stream-oriented subprogram, record an entity node occurring at
11244         the point of clause to use for checking the visibility of the clause,
11245         as defined by 8.3(23) as amended by AI-195.
11246         (New_Stream_Subprogram): New procedure, factoring behaviour from both
11247          New_Stream_Function and New_Stream_Procedure.
11248         (New_Stream_Function, New_Stream_Procedure): Removed.
11249         (Analyze_Attribute_Definition_Clause, case Address): Check new
11250         Alignment_Check check
11251
11252 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
11253             Javier Miranda  <miranda@adacore.com>
11254             Robert Dewar  <dewar@adacore.com>
11255
11256         * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
11257         generate the same errors compiling under -gnatc.
11258         (Try_Object_Operation): If no candidate interpretation succeeds, but
11259         there is at least one primitive operation with the right name, report
11260         error in call rather than on a malformed selected component.
11261         (Analyze_Selected_Component): If the prefix is an incomplete type from
11262         a limited view, and the full view is available, use the full view to
11263         determine whether this is a prefixed call to a primitive operation.
11264         (Operator_Check): Verify that a candidate interpretation is a binary
11265         operation before checking the type of its second formal.
11266         (Analyze_Call): Add additional warnings for function call contexts not
11267         yet supported.
11268         (Analyze_Allocator): Move the check for "initialization not allowed for
11269         limited types" after analyzing the expression. This is necessary,
11270         because OK_For_Limited_Init looks at the structure of the expression.
11271         Before analysis, we don't necessarily know what sort of expression it
11272         is. For example, we don't know whether F(X) is a function call or an
11273         indexed component; the former is legal in Ada 2005; the latter is not.
11274         (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
11275         were missing. We also didn't handle qualified expressions. Now also
11276         allow function calls. Use new common routine OK_For_Limited_Init.
11277         (Analyze_Type_Conversion): Do not perform some legality checks in an
11278         instance, because the error message will be redundant or spurious.
11279         (Analyze_Overloaded_Selected_Component): Do not do style check when
11280         setting an entity, since we do not know it is the right entity yet.
11281         (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
11282         (Analyze_Overloaded_Selected_Component): Same change
11283         (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
11284         since regular incomplete subtypes are transformed into corresponding
11285         subtypes of their full views.
11286         (Complete_Object_Operation): Treat name of transformed subprogram call
11287         as coming from source, for browsing purposes.
11288         (Try_Primitive_Operation): If formal is an access parameter, compare
11289         with base type of object to determine whether it is a primitive
11290         operation.
11291         (Operator_Check): If no interpretation of the operator matches, check
11292         whether a use clause on any candidate might make the operation legal.
11293         (Try_Class_Wide_Operation): Check whether the first parameter is an
11294         access type whose designated type is class-wide.
11295
11296 2006-10-31  Robert Dewar  <dewar@adacore.com>
11297             Ed Schonberg  <schonberg@adacore.com>
11298             Gary Dismukes  <dismukes@adacore.com>
11299
11300         * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
11301         warn on infinite loops.
11302         Add \\ to some continuation messages
11303         (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
11304         (Process_Bounds): If the bounds are integer literals that result from
11305         constant-folding, and they carry a user-defined type, preserve that type
11306         rather than treating this as an integer range.
11307         (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
11308         (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
11309         (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
11310         left hand side of assignment.
11311         (Analyze_Assignment): Add suport to manage assigments to the attribute
11312         priority of a protected object.
11313         (Check_Possible_Current_Value_Condition): Allow fully qualified names
11314         not just identifiers.
11315         (Check_Possible_Current_Value_Condition): Acquire left operand of AND
11316         or AND THEN for possible tracking.
11317         (Analyze_Iteration_Scheme): Check for setting Current_Value for the
11318         case of while loops so we can track values in the loop body.
11319
11320 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
11321             Hristian Kirtchev  <kirtchev@adacore.com>
11322             Bob Duff  <duff@adacore.com>
11323
11324         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
11325         procedure cannot be a protected operation (it is a basic_declaration,
11326         not a subprogram_declaration).
11327         (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
11328         Subp. Add logic for entry processing.
11329         (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
11330         Determine whether an entry or subprogram of a protected or task type
11331         override an inherited primitive of an implemented interface.
11332         (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
11333         Update the actual used in calls to Check_Overriding_Indicator.
11334         (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
11335         generate the proper reference to the parent unit, for cross-reference.
11336         (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
11337         Is_Formal.
11338         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
11339         (Add_Extra_Formal): Revise procedure to allow passing in associated
11340         entity, scope, and name suffix, and handle setting of the new
11341         Extra_Formals field.
11342         (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
11343         pass new parameters. Add support for adding the new extra access formal
11344         for functions whose calls are treated as build-in-place.
11345         (Analyze_A_Return_Statement): Correct casing in error message.
11346         Move Pop_Scope to after Analyze_Function_Return, because an extended
11347         return statement really is a full-fledged scope. Otherwise, visibility
11348         doesn't work right. Correct use of "\" for continuation messages.
11349         (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
11350         evilly trying to call Analyze_Object_Declaration directly. Otherwise,
11351         the node doesn't get properly marked as analyzed.
11352         (Analyze_Subprogram_Body): If subprogram is a function that returns
11353         an anonymous access type that denotes a task, build a Master Entity
11354         for it.
11355         (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
11356         proper usage of null exclusion in a result definition.
11357         (Process_Formals): Code cleanup and new error message.
11358         (Process_Formals): Detect incorrect application of null exclusion to
11359         non-access types.
11360         (Conforming_Types): Handle conformance between [sub]types and itypes
11361          generated for entities that have null exclusions applied to them.
11362         (Maybe_Primitive_Operation): Add an additional type retrieval when the
11363          base type is an access subtype. This case arrises with null exclusions.
11364         (New_Overloaded_Entity): Do not remove the overriden entity from the
11365         homonym chain if it corresponds with an abstract interface primitive.
11366         (Process_Formals): Replace membership test agains Incomplete_Kind with a
11367         call to the synthesized predicate Is_Incomplete_Type.
11368         (Analyze_Subprogram_Body): Check wrong placement of abstract interface
11369         primitives.
11370         (Analyze_Subprogram_Declaration): Check that abstract interface
11371         primitives are abstract or null.
11372         (Analyze_Subprogram_Specification): Remove previous check for abstract
11373         interfaces because it was not complete.
11374         (Has_Interface_Formals): Removed.
11375
11376 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
11377             Javier Miranda  <miranda@adacore.com>
11378
11379         * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
11380         of Analyze_Package_Body, to create Itype references for anonymous
11381         access types created in the package declaration, whose designated types
11382         may have only a limited view.
11383         (Analyze_Package_Specification): For the private part of a nested
11384         package, install private_with_clauses of enclosing compilation unit if
11385         we are in its visible part.
11386         (Declare_Inherited_Private_Subprograms): Complete barrier
11387         to ensure that the primitive operation has an alias to some parent
11388         primitive. This is now required because, after the changes done for the
11389         implementation of abstract interfaces, the contents of the list of
11390         primitives has entities whose alias attribute references entities of
11391         such list of primitives.
11392         (Analyze_Package_Specification): Simplify code that handles parent units
11393         of instances and formal packages.
11394         (Uninstall_Declarations): Check the convention consistency among
11395         primitive overriding operations of a tagged record type.
11396
11397 2006-10-31  Robert Dewar  <dewar@adacore.com>
11398             Hristian Kirtchev  <kirtchev@adacore.com>
11399             Javier Miranda  <miranda@adacore.com>
11400             Ed Schonberg  <schonberg@adacore.com>
11401
11402         * sem_ch8.adb: Minor error msg rewording
11403         (Undefined): When checking for misspellings, invert arguments (to get
11404         expected and found set right)
11405         (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
11406         (Analyze_Generic_Renaming): Same fix
11407         (Use_One_Package): Do not take into account the internal entities of
11408         abstract interfaces during the analysis of entities that are marked
11409         as potentially use-visible.
11410         (Find_Type): Handle the case of an attribute reference for
11411         implementation defined attribute Stub_Type (simply let the analysis of
11412         the attribute reference rewrite it).
11413         (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
11414         type that appears in a Use_Type clause.
11415         (Analyze_Object_Renaming): Add support for renaming of the Priority
11416         attribute.
11417         (Find_Type): In Ada 2005, a task type can be used within its own body,
11418         when it appears in an access definition.
11419         (Analyze_Object_Renaming): Remove warning on null_exclusion.
11420         (Analyze_Object_Renaming): Introduce checks for required null exclusion
11421          in a formal object declaration or in a subtype declaration.
11422         (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
11423         (Check_Null_Exclusion): New local routine to
11424         Analyze_Subprogram_Renaming. Check whether the formals and return
11425         profile of a renamed subprogram have required null exclusions when
11426         their counterparts of the renaming already impose them.
11427         (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
11428         Determine whether an entity is inside a generic scope.
11429         (In_Open_Scope): First pass of documentation update.
11430         (Find_Expanded_Name): Add support for shadow entities associated with
11431         limited withed packages. This is required to handle nested packages.
11432         (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
11433         that makes a renaming of a limited withed package illegal.
11434
11435 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
11436             Ed Schonberg  <schonberg@adacore.com>
11437
11438         * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
11439         Check_Overriding_Indicator.
11440         (Analyze_Task_Definition): Ditto.
11441         (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
11442         (Check_Overriding_Indicator): To find overridden interface operation,
11443         examine only homonyms that have an explicit subprogram declaration, not
11444         inherited operations created by an unrelated type derivation.
11445         (Check_Overriding_Indicator): When checking for the presence of "null"
11446         in a procedure, ensure that the queried node is a procedure
11447         specification.
11448         (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
11449         type when the formal is an access to variable.
11450         (Analyze_Protected_Type): Add check for Preelaborable_Initialization
11451         (Analyze_Task_Type): Same addition
11452         (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
11453         provide navigation capabilities for entries.
11454
11455 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
11456             Ed Schonberg  <schonberg@adacore.com>
11457             Javier Miranda  <miranda@adacore.com>
11458             Gary Dismukes  <dismukes@adacore.com>
11459
11460         * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
11461         inherited from an interface ancestor by another interface in the
11462         context of an instance as 'late'.
11463         (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
11464         of a call to a function that dispatches on access result.
11465         (Check_Dispatching_Operation): In case of late overriding of a primitive
11466         that covers abstract interface subprograms we register it in all the
11467         secondary dispatch tables associated with abstract interfaces.
11468         (Check_Dispatching_Call): Add check that a dispatching call is not made
11469         to a function with a controlling result of a limited type. This is a
11470         current implementation restriction.
11471         (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
11472         (Check_Dispatching_Operation): Do no emit a warning if the controlling
11473         argument is an interface type that is a generic formal.
11474         (Is_Interface_Subprogram): Removed.
11475         (Check_Dispatching_Operation): If the subprogram is not a dispatching
11476         operation, check the formals to handle the case in which it is
11477         associated with an abstract interface type.
11478
11479 2006-10-31  Robert Dewar  <dewar@adacore.com>
11480             Ed Schonberg  <schonberg@adacore.com>
11481
11482         * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
11483         Add new calls to this procedure during traversal
11484         (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
11485         another unit if expansion is disabled.
11486
11487 2006-10-31  Robert Dewar  <dewar@adacore.com>
11488
11489         * sem_eval.adb (Compile_Time_Compare): Make use of information from
11490         Current_Value in the conditional case, to evaluate additional
11491         comparisons at compile time.
11492
11493 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
11494             Hristian Kirtchev  <kirtchev@adacore.com>
11495             Javier Miranda  <miranda@adacore.com>
11496
11497         * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
11498         subprogram type to provide better diagnostics in case of ambiguity.
11499         (Covers): Handle coverage of formal and actual anonymous access types in
11500         the context of generic instantiation.
11501         (Covers/Interface_Present_In_Ancestors): Use the base type to manage
11502         abstract interface types; this is required to handle concurrent types
11503         with discriminants and abstract interface types.
11504         (Covers): Include type coverage of both regular incomplete subtypes and
11505         incomplete subtypes of incomplete type visibles through a limited with
11506         clause.
11507
11508 2006-10-31  Robert Dewar  <dewar@adacore.com>
11509             Hristian Kirtchev  <kirtchev@adacore.com>
11510             Ed Schonberg  <schonberg@adacore.com>
11511
11512         * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
11513         messages for entities in packages which are not used.
11514         (Collect_Synchronized_Interfaces): New procedure.
11515         (Overrides_Synchronized_Primitive): New function.
11516         (Denotes_Discriminant): Extend predicate to apply to task types.
11517         Add missing continuation marks in error msgs
11518         (Unqualify): New function for removing zero or more levels of
11519         qualification from an expression. There are numerous places where this
11520         ought to be used, but we currently only deal properly with zero or one
11521         level.
11522         (In_Instance); The analysis of the actuals in the instantiation of a
11523         child unit is not within an instantiation, even though the parent
11524         instance is on the scope stack.
11525         (Safe_To_Capture_Value): Exclude the case of variables that are
11526         renamings.
11527         (Check_Obsolescent): Removed
11528         (Is_Aliased_View): A reference to an enclosing instance in an aggregate
11529         is an aliased view, even when rewritten as a reference to the target
11530         object in an assignment.
11531         (Get_Subprogram_Entity): New function
11532         (Known_To_Be_Assigned): New function
11533         (Type_Access_Level): Compute properly the access level of a return
11534         subtype that is an anonymous access type.
11535         (Explain_Limited_Type): Correct use of "\" for continuation messages.
11536         (Is_Transfer): The new extended_return_statement causes a transfer of
11537         control.
11538         (Has_Preelaborable_Initialization): New function
11539         (Has_Null_Exclusion): New function. Given a node N, determine whether it
11540         has a null exclusion depending on its Nkind.
11541         Change Is_Lvalue to May_Be_Lvalue
11542         (May_Be_Lvalue): Extensive additional code to deal with subprogram
11543         arguments (IN parameters are not Lvalues, IN OUT parameters are).
11544         (Safe_To_Capture_Value): Extend functionality so it can be used for
11545         the current value condition case.
11546         (Has_Compatible_Alignment): New function
11547         (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
11548         objects to handle the Ada 2005 case, where aliasedness no longer implies
11549         that the object is constrained. In particular, for dereferenced names,
11550         the designated object must be assumed to be unconstrained.
11551         (Kill_Current_Values): Properly deal with the case where we encounter
11552         a loop in the scope chain.
11553         (Safe_To_Capture_Value): Do not let a loop stop us from capturing
11554         a value.
11555         (Compile_Time_Constraint_Error): Improve error message in error case
11556
11557         * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
11558         associated with entities of abstract interface primitives.
11559         Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
11560
11561 2006-10-31  Robert Dewar  <dewar@adacore.com>
11562
11563         * s-osinte-tru64.adb: 
11564         Mark Asm statements Volatile to prevent warnings (seems a
11565         reasonable change anyway)
11566         Fixes new warnings
11567
11568         * s-mastop-irix.adb: Add Volatile to Asm statements
11569         Suppresses warning, and seems appropriate in any case
11570
11571         * s-osinte-vms.adb: Add Volatile to Asm statement
11572
11573         * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
11574
11575         * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
11576         returned.
11577         Add call to Check_Code_Statement
11578
11579 2006-10-31  Robert Dewar  <dewar@adacore.com>
11580             Ed Schonberg  <schonberg@adacore.com>
11581             Bob Duff  <duff@adacore.com>
11582
11583         * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
11584         Synchronized_Present): Add Formal_Derived_Type_Definition and
11585         Private_Extension_Declaration to the list of assertions.
11586         (Is_Entry_Barrier_Function): New flag
11587         (Has_Self_Reference): New flag on aggregates, to indicate that they
11588         contain a reference to the enclosing type, inserted through a default
11589         initialization.
11590         (Next_Rep_Item): Move from Node4 to Node5.
11591         (Entity): Add this field for N_Attribute_Definition_Clause.
11592         (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
11593         (N_Return_Object_Declaration): Remove this node kind. We now use
11594         N_Object_Declaration instead.
11595         (Actual_Designated_Subtype): Move to a different place to make room in
11596         N_Extended_Return_Statement.
11597         (Procedure_To_Call): Move to a different place to make room in
11598         N_Extended_Return_Statement.
11599         (Return_Type): Removed this field to make room in return statements
11600         (both kinds).
11601         (Return_Statement_Entity): New field in return statements, in part to
11602         replace Return_Type, and in part to support the fact that return
11603         statements are now pushed on the scope stack during semantic analysis.
11604         (Return_Object_Declarations): New field to support extended return
11605         statements.
11606         (N_Extended_Return_Statement): New node for extended_return_statement
11607         nonterminal.
11608         (N_Return_Object_Declaration): New node for part of
11609         extended_return_statement nonterminal. Needed because all the necessary
11610         fields won't fit in N_Extended_Return_Statement.
11611         Generic_associations now carry the Box_Present flag, to indicate a
11612         default for an actual in a partially parametrized formal package.
11613
11614         * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
11615         (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
11616         and for the new predefined dispatching policies: EDF_Across_Priorities,
11617         Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
11618         Introduce new name Stub_Type for implementation defined attribute.
11619         Add pragma Preelaborable_Initialization
11620         Add entry for Priority attribute.
11621         Add Pragma_Wide_Character_Encoding
11622         (Get_Convention_Name): Given a convention id, this function returns the
11623         corresponding name id from the names table.
11624
11625 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
11626             Robert Dewar  <dewar@adacore.com>
11627             Bob Duff  <duff@adacore.com>
11628
11629         * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
11630         print null exclusion twice in the case of an access definition,
11631         Implement new -gnatL switch
11632         Remove N_Return_Object_Declaration. We now use
11633         N_Object_Declaration instead. Implement the case for
11634         N_Extended_Return_Statement. Alphabetize the cases.
11635         Add cases for new nodes N_Extended_Return_Statement and
11636         N_Return_Object_Declaration. The code is not yet written.
11637         Update the output for N_Formal_Object_Declaration
11638         and N_Object_Renaming_Declaration.
11639         (Write_Itype): Account for the case of a modular integer subtype whose
11640         base type is private.
11641
11642 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
11643
11644         * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
11645         Remove elaboration code, now done in the binder.
11646
11647         * s-rident.ads: Make this unit Preelaborate.
11648         (No_Restrictions): New constant used to clean up code and follow
11649         preelaborate constraints.
11650
11651         * s-stalib.adb: 
11652         Add System.Restrictions dependence, referenced directly from the
11653         binder generated file.
11654
11655 2006-10-31  Gary Dismukes  <dismukes@adacore.com>
11656
11657         * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
11658         True when AAMP extended floating-point is in use (48-bit). Change type
11659         ByteLF to ByteLLF, add new array type ByteLF and condition the size of
11660         the two byte array types on AFloat. Change type of IV_Ilf overlay
11661         variable from Byte8 to ByteLF. Add appropriate initializations of
11662         floating-point overlays for AAMP cases.
11663
11664 2006-10-31  Javier Miranda  <miranda@adacore.com>
11665
11666         * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
11667         (Get_Ceiling): New subprogram that returns
11668         the ceiling priority of the protected object.
11669         (Set_Ceiling): New subprogram that sets the new ceiling priority of
11670         the protected object.
11671
11672         * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
11673
11674         * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
11675
11676 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
11677
11678         * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
11679         requeuing to the same protected object to give higher priority tasks
11680         the opportunity to execute.
11681
11682 2006-10-31  Robert Dewar  <dewar@adacore.com>
11683
11684         * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
11685         add more precise check for the character sequence that follows '[' to
11686         avoid possible confusion in case if '[' is the last character of a
11687         string literals.
11688         (Scan_Wide): Always allow brackets encoding
11689
11690 2006-10-31  Olivier Hainque  <hainque@adacore.com>
11691
11692         * s-stchop.ads: make this unit preelaborate. This is desirable in
11693         general and made mandatory by the use of this unit by s-taprop which
11694         is itself preelaborate.
11695
11696         * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
11697         Td_Events component.
11698
11699 2006-10-31  Vincent Celier  <celier@adacore.com>
11700
11701         * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
11702         in file names.
11703
11704 2006-10-31  Vincent Celier  <celier@adacore.com>
11705
11706         * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
11707
11708 2006-10-31  Vincent Celier  <celier@adacore.com>
11709
11710         * makegpr.adb (Check_Compilation_Needed): Take into account path names
11711         with spaces.
11712         (Check_Compilation_Needed): When checking a C or C++ source, do not
11713         resolve symbolic links.
11714         (Display_Command): New Boolean parameter Ellipse, defaulted to False.
11715         When not in verbose mode and Ellipse is True, display "..." for the
11716         first argument with Display set to False.
11717         (Build_Global_Archive): Always set Display True for the first object
11718         file. Call Display_Command with Ellipse set to True.
11719
11720 2006-10-31  Matt Heaney  <heaney@adacore.com>
11721
11722         * a-crbtgo.ads: Commented each subprogram
11723
11724         * a-crbtgo.adb: Added reference to book from which algorithms were
11725         adapted.
11726
11727         * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
11728         indicate which child.
11729         (Generic_Conditional_Insert): changed parameter name from "Success" to
11730         "Inserted".
11731         (Generic_Unconditional_Insert_With_Hint): improved algorithm
11732
11733         * a-coorse.adb (Replace_Element): changed parameter name in call to
11734         conditional insert operation.
11735
11736         * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
11737
11738         * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
11739         Generic_Iteration
11740
11741         * a-ciorse.adb (Replace_Element): changed parameter name in call to
11742         conditional insert operation.
11743
11744         * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
11745         Generic_Iteration.
11746
11747         * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
11748         instead of mode inout.
11749
11750         * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
11751         draft
11752         (Generic_Read): preserve existing buckets array if possible
11753         (Generic_Write): don't send buckets array length anymore
11754
11755         * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
11756         instead of mode inout.
11757
11758         * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
11759         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
11760
11761         * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
11762         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
11763         (Replace_Element): local operation is now an instantiation
11764
11765         * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
11766         check current length.
11767         (Generic_Replace_Element): new operation
11768
11769 2006-10-31  Doug Rupp  <rupp@adacore.com>
11770
11771         * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
11772         Call TBK$SYMBOLIZE without omitting parameters.
11773
11774 2006-10-31  Vincent Celier  <celier@adacore.com>
11775
11776         * symbols-processing-vms-ia64.adb,
11777         symbols-processing-vms-alpha.adb (Process): Do not include symbols
11778         that come from generic instantiations in bodies.
11779
11780 2006-10-31  Pat Rogers  <rogers@adacore.com>
11781
11782         * a-rttiev.ads, a-rttiev.adb: 
11783         This is a significant redesign primarily for the sake of automatic
11784         timer task termination but also to fix a design flaw.
11785         Therefore we are now using an RTS lock, instead of a protected
11786         object, to provide mutual exclusion to the queue of pending events
11787         and the type Timing_Event is no longer a protected type.
11788
11789 2006-10-31  Robert Dewar  <dewar@adacore.com>
11790             Cyrille Comar  <comar@adacore.com>
11791             Ben Brosgol  <brosgol@adacore.com>
11792
11793         * debug.adb:  Update flags documentation
11794
11795         * gnat_ugn.texi: Add documentation for new -gnatwq switch
11796         Clean up documentation for several other warning switches
11797         Clarify how task stack size can be specified with various
11798         versions of Windows.
11799         Add note that -gnatVo includes ranges including loops
11800         Add documentation for -gnatL switch
11801         Add note on elaboration warning for initializing variables
11802         Add documentation for new -gnatwt warning switch
11803         Document new form of pragma Warnings (On|Off, string)
11804         Add comment on use of pragma Warnings to control warnings
11805         Add documentation for -gnatjnn switch
11806         Modify section on interfacing with C for VMS 64-bit.
11807         Add doc for -gnatVe/E
11808         Add documentation of new warning flags -gnatww/-gnatwW
11809         Add warnings about address clause overlays to list of warnings
11810         (Exception Handling Control): Document that the option --RTS must be
11811         used consistently for gcc and gnatbind.
11812         Clarify that inlining is not always possible
11813         Update documentation on pragma Unchecked_Union.
11814
11815         * gnat_rm.texi: 
11816         Add documentation for new extended version of pragma Obsolescent
11817         Add documentation for implementation defined attribute 'Stub_Type.
11818         Add note on use of Volatile in asm statements
11819         Add documentation on use of pragma Unreferenced in context clause
11820         Document new form of pragma Warnings (On|Off, pattern)
11821         Document pragma Wide_Character_Encoding
11822         Add note that pragma Restrictions (No_Elaboration_Code) is only fully
11823         enforced if code generation is active.
11824         Add section on pragma Suppress to document GNAT specific check
11825         Alignment_Check
11826         Clarify difference between No_Dispatching_Calls & No_Dispatch.
11827         Add documentation for pragma Restrictions (No_Elaboration_Code)
11828
11829         * gnat-style.texi: 
11830         Add comments on layout of subprogram local variables in the
11831         presence of nested subprograms.
11832
11833         * ug_words: Resync.
11834
11835         * elists.ads: Minor reformatting
11836         Node returns Node_Or_Entity_Id (doc change only)
11837
11838         * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
11839
11840         * g-arrspl.ads (Create): Update comments.
11841
11842         * sem.ads: Add details on the handling of the scope stack.
11843
11844         * usage.adb: Update documentation.
11845
11846         * validsw.ads, validsw.adb: 
11847         Add definition of Validity_Check_Components and implement -gnatVe/E
11848
11849         * vms_data.ads: Add missing VMS qualifiers.
11850
11851         * s-addope.ads: Add documentation on overflow and divide by zero
11852
11853 2006-10-31  Robert Dewar  <dewar@adacore.com>
11854             Thomas Quinot  <quinot@adacore.com>
11855             Arnaud Charlet  <charlet@adacore.com>
11856
11857         * fmap.adb: Put routines in alpha order
11858
11859         * g-boumai.ads: Remove redundant 'in' keywords
11860
11861         * g-cgi.adb: Minor reformatting
11862
11863         * g-cgi.ads: Remove redundant 'in' keywords
11864
11865         * get_targ.adb: Put routines in alpha order
11866
11867         * prj-attr.ads: Minor reformatting
11868
11869         * s-atacco.ads: Minor reformatting
11870
11871         * scn.adb: Put routines in alpha order
11872
11873         * sinput-l.adb: Minor comment fix
11874
11875         * sinput-p.adb: Minor comment fix
11876
11877         * s-maccod.ads: Minor reformatting
11878
11879         * s-memory.adb: Minor reformatting
11880
11881         * s-htable.adb: Fix typo in comment.
11882
11883         * s-secsta.adb: Minor comment update.
11884
11885         * s-soflin.adb: Minor reformatting
11886
11887         * s-stoele.ads: 
11888         Add comment about odd qualification in Storage_Offset declaration
11889
11890         * s-strxdr.adb: 
11891         Remove unnecessary 'in' keywords for formal parameters.
11892
11893         * treeprs.adt: Minor reformatting
11894
11895         * urealp.adb: Put routines in alpha order
11896
11897         * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
11898         taking string.
11899
11900         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
11901
11902         * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
11903
11904         * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
11905         workaround as on other platforms.
11906
11907         * g-eacodu-vms.adb: Remove redundant 'in' keywords
11908         * g-expect-vms.adb: Remove redundant 'in' keywords
11909
11910         * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
11911         clear error message if the list-of-files file cannot be opened.
11912
11913         * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
11914         equality operator is always visible.
11915
11916         * lang.opt: Woverlength-strings: New option.
11917
11918         * nmake.adt: 
11919         Update copyright, since nmake.ads and nmake.adb have changed.
11920
11921         * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
11922         (Binder_Output_Time_Stamps_Set): removed.
11923         (Old_Binder_Output_Time_Stamp): idem.
11924         (New_Binder_Output_Time_Stamp): idem.
11925         (Recording_Time_From_Last_Bind): idem.
11926         (Recording_Time_From_Last_Bind): Make constant.
11927
11928         * output.ads, output.adb (Write_Str): Allow LF characters
11929         (Write_Spaces): New procedure
11930
11931         * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
11932
11933         * inline.adb: Minor reformatting
11934
11935         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
11936
11937         * s-mastop-vms.adb: Remove redundant 'in' keywords
11938
11939         * s-osprim-vms.adb: Remove redundant 'in' keywords
11940
11941         * s-trafor-default.adb: Remove redundant 'in' keywords
11942
11943         * 9drpc.adb: Remove redundant 'in' keywords
11944
11945         * s-osinte-mingw.ads: Minor reformatting
11946
11947         * s-inmaop-posix.adb: Minor reformatting
11948
11949         * a-direio.ads: Remove quotes from Compile_Time_Warning message
11950
11951         * a-exexda.adb: Minor code reorganization
11952
11953         * a-filico.adb: Minor reformatting
11954
11955         * a-finali.adb: Minor reformatting
11956
11957         * a-nudira.ads: Remove quote from Compile_Time_Warning message
11958
11959         * a-numeri.ads: Minor reformatting
11960
11961         * a-sequio.ads: Remove quotes from Compile_Time_Warning message
11962
11963         * exp_pakd.ads: Fix obsolete comment
11964
11965         * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
11966         a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
11967         Probably not a bug, but certainly neater and more efficient.
11968
11969         * a-tienio.adb: Minor reformatting
11970
11971         * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
11972         Avoid assuming low bound of string is 1.
11973
11974         * gnatbind.adb: Change Bindusg to package and rename procedure as
11975         Display, which now ensures that it only outputs usage information once.
11976         (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
11977
11978         * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
11979         Table'First.
11980
11981         * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
11982         warning.
11983         (Match): Add pragma Assert to ensure that Matches'First is zero
11984
11985         * g-regpat.ads (Match): Document that Matches lower bound must be zero
11986
11987         * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
11988         documented preconditions (also kills warnings about bad indexes).
11989
11990         * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
11991         is 1.
11992         (Build_Import_Library): Ditto;
11993
11994         * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
11995
11996         * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
11997
11998         * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
11999         lower bound of choice table is 1.
12000
12001         * sem_case.ads (Analyze_Choices): Document that lower bound of
12002         Choice_Table is 1.
12003
12004         * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
12005         string is 1.
12006
12007         * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
12008         and add appropriate Assert pragma to suppress warnings.
12009
12010         * atree.h, atree.ads, atree.adb
12011         Change Elist24 to Elist25
12012         Add definitions of Field28 and Node28
12013         (Traverse_Field): Use new syntactic parent table in sinfo.
12014
12015         * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
12016
12017         * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
12018
12019         * exp_tss.adb: Put routines in alpha order
12020
12021         * fe.h: Remove redundant declarations.
12022
12023 2006-10-23 Rafael Avila de Espindola  <rafael.espindola@gmail.com>
12024
12025         * utils.c (builtin_function): Rename to gnat_builtin_function.
12026         Move common code to add_builtin_function.
12027         * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
12028         gnat_builtin_function.
12029         * gigi.h (builtin_function): Rename to gnat_builtin_function.
12030         Change the signature.
12031
12032 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
12033
12034         * Makefile.in: Add TEXI2PDF definition.
12035         * Make-lang.in: Add "ada.pdf" target.
12036
12037 2006-10-03  Kazu Hirata  <kazu@codesourcery.com>
12038
12039         * decl.c, utils.c: Fix comment typos.
12040         * utils.c: Fix a typo.
12041
12042 2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>
12043
12044         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
12045         on "pure" Ada subprograms if SJLJ exceptions are used.
12046         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
12047         on the declaration node of JMPBUF_SAVE.
12048         * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
12049         of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
12050         * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
12051
12052 2006-08-20  Laurent GUERBY  <laurent@guerby.net>
12053
12054         PR ada/28716
12055         g-socket.adb (Bind_Socket): Call Set_Address.
12056
12057 2006-09-15  Eric Botcazou  <ebotcazou@adacore.com>
12058
12059         PR ada/15802
12060         * decl.c (same_discriminant_p): New static function.
12061         (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
12062         subtype and we have discriminants, fix up the COMPONENT_REFs
12063         for the discriminants to make them reference the corresponding
12064         fields of the parent subtype after it has been built.
12065
12066 2006-09-15  Roger Sayle  <roger@eyesopen.com>
12067
12068         PR ada/18817
12069         * utils.c (max_size): Perform constant folding of (A ? B : C) - D
12070         into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
12071
12072 2006-09-13  Olivier Hainque  <hainque@adacore.com>
12073
12074         PR ada/29025
12075         * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
12076         of a SAVE_EXPR, just make the operand addressable/not-readonly and
12077         let the common gimplifier code make and propagate a temporary copy.
12078         (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
12079         out/in-out actuals and defer setting the addressable/readonly bits
12080         to the gimplifier.
12081
12082 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
12083
12084         PR ada/28591
12085         * decl.c (components_to_record): Defer emitting debug info for the
12086         record type associated with the variant until after we are sure to
12087         actually use it.
12088
12089 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
12090
12091         PR ada/21952
12092         * gigi.h (gnat_internal_attribute_table): Declare.
12093         * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
12094         * utils.c (gnat_internal_attribute_table): New global variable.
12095         (builtin_function): Always call decl_attributes on the builtin.
12096         (handle_const_attribute): New static function.
12097         (handle_nothrow_attribute): Likewise.
12098
12099 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
12100
12101         * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
12102
12103 2006-06-23  Olivier Hainque  <hainque@adacore.com>
12104
12105         * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
12106         not been able to get a constant upper bound from TYPE_SIZE_UNIT.
12107
12108 2006-06-20  James A. Morrison  <phython@gcc.gnu.org>
12109             Eric Botcazou  <ebotcazou@adacore.com>
12110
12111         PR ada/18692
12112         * Make-lang.in: Add check-gnat to lang_checks.  Rename existing
12113         check-gnat into check-acats.
12114
12115 2006-06-17  Karl Berry  <karl@gnu.org>
12116
12117         * gnat-style.texi (@dircategory): Use "Software development"
12118         instead of "Programming", following the Free Software Directory.
12119
12120 2006-06-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12121
12122         PR ada/27944
12123         * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
12124
12125 2006-06-06  Laurent GUERBY  <laurent@guerby.net>
12126
12127         PR ada/27769
12128         mlib-utl.adb: Use Program_Name.
12129
12130 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
12131
12132         * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
12133         sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
12134         trans.c, utils.c: Fix comment typos.  Follow spelling
12135         conventions.
12136         * gnat_rm.texi, gnat_ugn.texi, : Fix typos.  Follow spelling
12137         conventions.
12138
12139 2006-05-19  Nicolas Setton  <setton@adacore.com>
12140
12141         * misc.c (gnat_dwarf_name): New function.
12142         (LANG_HOOKS_DWARF_NAME): Define to it.
12143
12144 2006-05-14  H.J. Lu  <hongjiu.lu@intel.com>
12145
12146         * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
12147         (ada/misc.o): Likewise.
12148         (ada/utils.o): Likewise.
12149
12150 2006-04-08  Aurelien Jarno  <aurel32@debian.org>
12151
12152         * Makefile.in: Add Ada support for GNU/kFreeBSD.
12153         * s-osinte-kfreebsd-gnu.ads: New file.
12154
12155 2006-03-29  Carlos O'Donell  <carlos@codesourcery.com>
12156
12157         * Make-lang.in: Rename docdir to gcc_docdir.
12158
12159 2006-03-04  Eric Botcazou  <ebotcazou@adacore.com>
12160
12161         * gigi.h (get_ada_base_type): Delete.
12162         * utils2.c (get_ada_base_type): Likewise.
12163         * trans.c (convert_with_check): Operate in the real base type.
12164
12165 2006-03-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12166
12167         * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
12168
12169 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
12170
12171         * utils.c (create_var_decl): Use have_global_bss_p when deciding
12172         whether to make the decl common.
12173
12174 2006-02-20  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
12175
12176         * Make-lang.in (Ada): Remove.
12177         (.PHONY): Remove Ada
12178
12179 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
12180
12181         * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
12182         aggregate, check the interpretations of the other operand to find one
12183         that may be a boolean array.
12184
12185         (Analyze_Selected_Component): Fix flow-of-control typo in case where
12186         the prefix is a private extension.
12187
12188 2006-02-17  Eric Botcazou  <botcazou@adacore.com>
12189
12190         PR ada/26315
12191         * utils2.c (find_common_type): If both input types are BLKmode and
12192         have the same constant size, keep using the first one.
12193
12194         * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
12195
12196         * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
12197
12198         * misc.c (gnat_handle_option): New case for -Woverlength-strings.
12199
12200 2006-02-17  Jose Ruiz  <ruiz@adacore.com>
12201
12202         * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb, 
12203         s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 
12204         s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb, 
12205         s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
12206         Abort_Defer/Undefer pairs to avoid the possibility of a task being
12207         aborted while owning a lock.
12208
12209 2006-02-17  Javier Miranda  <miranda@adacore.com>
12210             Robert Dewar  <dewar@adacore.com>
12211
12212         * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
12213         through an access to class-wide interface we force the displacement of
12214         the pointer to the allocated object to reference the corresponding
12215         secondary dispatch table.
12216         (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
12217         if Long_Shifts are supported on the target, even if 64 bit divides
12218         are not supported (configurable run time mode).
12219         (Expand_N_Type_Conversion): Do validity check if validity checks on
12220         operands are enabled.
12221         (Expand_N_Qualified_Expression): Do validity check if validity checks
12222         on operands are enabled.
12223
12224 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
12225
12226         * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
12227         must be materialized when the renamed expression is an explicit
12228         dereference.
12229
12230 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
12231
12232         * freeze.adb (Statically_Discriminated_Components): Return false if
12233         the bounds of the type of the discriminant are not static expressions.
12234
12235         * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
12236         the bounds of the discriminant type are not static.
12237
12238 2006-02-17  Robert Dewar  <dewar@adacore.com>
12239
12240         * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
12241         then we close To if it is valid.
12242
12243 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
12244
12245         * init.c (facility_resignal_table): new array
12246         (__gnat_default_resignal_p): enhance default predicate to resignal if
12247         VMS condition has one of the predefined facility codes.
12248
12249 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
12250
12251         * Makefile.in: Use VMS64 specialized versions of several units in
12252         Interfaces.C hierarchy to be compatible with HP C default size choices.
12253         Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
12254
12255 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
12256
12257         * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
12258         instantiation, the corresponding entity is the related_instance of the
12259         wrapper package created for the instance.
12260
12261 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
12262
12263         * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
12264         the current instance is nested within another instance in a child unit.
12265
12266 2006-02-17  Javier Miranda  <miranda@adacore.com>
12267             Ed Schonberg  <schonberg@adacore.com>
12268
12269         * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
12270         type we cannot inherit the primitive operations; we inherit the
12271         Corresponding_Record_Type (which has the list of primitive operations).
12272         (Check_Anonymous_Access_Types): When creating anonymous access types for
12273         access components, use Rewrite in order to preserve the tree structure,
12274         for ASIS use.
12275         (Analyze_Object_Declaration): For limited types with access
12276         discriminants with defaults initialized by an aggregate, obtain
12277         subtype from aggregate as for other mutable types.
12278         (Derived_Type_Declaration): If the derived type is a limited interface,
12279         set the corresponding flag (Is_Limited_Record is not sufficient).
12280
12281 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
12282
12283         * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
12284         to inline a function that returns an unconstrained type, the return
12285         expression must be the first variable declared in the body of the
12286         function.
12287
12288 2006-02-17  Javier Miranda  <miranda@adacore.com>
12289
12290         * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
12291         abstract interface type, the static analysis is not enough to know if
12292         the interface is implemented or not by the source tagged type. Hence
12293         we must pass the work to the expander to generate the required code to
12294         evaluate the conversion at run-time.
12295         (Resolve_Equality_Op): Do not apply previous
12296         transformation if expansion is disasbled, to prevent anomalies when
12297         locating global references in a generic unit.
12298
12299 2006-02-17  Vincent Celier  <celier@adacore.com>
12300
12301         * snames.ads, snames.adb: New standard names for new project attributes:
12302         archive_builder, archive_indexer, compiler_pic_option,
12303         config_body_file_name, config_body_file_name_pattern,
12304         config_file_switches, config_file_unique, config_spec_file_name,
12305         config_spec_file_name_pattern, default_builder_switches,
12306         default_global_compiler_switches, default_language,
12307         dependency_file_kind, global_compiler_switches, include_path,
12308         include_path_file, language_kind, linker_executable_option,
12309         linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
12310         roots, runtime_project.
12311
12312 2006-02-17  Matthew Heaney  <heaney@adacore.com>
12313
12314         * a-convec.ads, a-convec.adb: 
12315         (operator "&"): handle potential overflow for large index types
12316         (Insert): removed Contraint_Error when using large index types
12317         (Insert_Space): removed Constraint_Error for large index types
12318         (Length): moved constraint check from Length to Insert
12319
12320         * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
12321         as not null access.
12322         Explicit raise statements now include an exception message.
12323         (operator "&"): handle potential overflow for large index types
12324         (Insert): removed Contraint_Error when using large index types
12325         (Insert_Space): removed Constraint_Error for large index types
12326         (Length): moved constraint check from Length to Insert
12327
12328 2006-02-17  Robert Dewar  <dewar@adacore.com>
12329
12330         * s-wchcnv.adb: Document handling of [ on output (we do not change
12331         this to ["5B"] and the new comments say why not.
12332
12333         * gnat_ugn.texi: 
12334         Add note for -gnatVo that this now includes the cases of type
12335         conversions and qualified expressions.
12336         Add comments on handling of brackets encoding for Text_IO
12337
12338 2006-02-17  Ramon Fernandez  <fernandez@adacore.com>
12339             Thomas Quinot  <quinot@adacore.com>
12340             Robert Dewar  <dewar@adacore.com>
12341             Javier Miranda  <miranda@adacore.com>
12342
12343         * expander.adb: Fix typo in comment
12344
12345         * exp_pakd.adb: Fix typo
12346         Minor comment reformatting.
12347
12348         * g-dyntab.adb: Minor reformatting
12349
12350         * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
12351         aliased subprograms to look for the abstract interface subprogram.
12352
12353 2006-02-16  Eric Botcazou  <ebotcazou@adacore.com>
12354
12355         * env.c (__gnat_setenv): Use size_t.
12356         (__gnat_unsetenv): Likewise.
12357         (__gnat_clearenv): Likewise.
12358
12359 2006-02-16  Arnaud Charlet  <charlet@adacore.com>
12360
12361         * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
12362
12363 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
12364
12365         * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
12366         g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
12367         i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
12368         s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
12369         s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
12370         s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
12371         s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
12372         s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
12373         s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
12374         no longer used.
12375
12376 2006-02-13  Jose Ruiz  <ruiz@adacore.com>
12377
12378         * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
12379         protection against race conditions is not needed.
12380         (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
12381         fallback handler.
12382         (Set_Specific_Handler): Add mutual exclusive access to the specific
12383         handler.
12384         (Specific_Handler): Add mutual exclusive access for retrieving the
12385         specific handler.
12386
12387         * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
12388         back handler.
12389
12390         * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
12391         Fall_Back_Handler and Specific_Handler.
12392
12393         * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
12394         termination handlers.
12395         Set two different owerflow depending on the maximal stack size.
12396
12397         * s-solita.adb (Task_Termination_Handler_T): Document why explicit
12398         protection against race conditions is not needed when executing the
12399         task termination handler.
12400
12401 2006-02-13  Robert Dewar  <dewar@adacore.com>
12402
12403         * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
12404         a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
12405         a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
12406         a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
12407         a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
12408         a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
12409         a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
12410         a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
12411         a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
12412         a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
12413         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
12414         a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
12415         a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
12416         a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
12417         a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
12418         a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
12419         a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
12420         a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
12421         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
12422         a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
12423         g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
12424         g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
12425         mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
12426         prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
12427         s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
12428         s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
12429         s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
12430         s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
12431         s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
12432         s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
12433         a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
12434         fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
12435         par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
12436         system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
12437         reformatting.
12438
12439 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
12440
12441         * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
12442         s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
12443         s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
12444         s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
12445         a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
12446         s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
12447         a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
12448         s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
12449         s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
12450
12451 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
12452
12453         * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads, 
12454         s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads, 
12455         s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads, 
12456         s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads, 
12457         s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads, 
12458         s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
12459         replaced by anonymous access type.
12460         (pthread_sigmask): Now take an access sigset_t
12461
12462         * s-osinte-hpux.ads:  Ditto.
12463         (pthread_mutex_t, pthread_cond_t): Update definitions to support
12464         properly 32 and 64 bit ABIs.
12465
12466 2006-02-13  Pascal Obry  <obry@adacore.com>
12467
12468         * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb, 
12469         s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb, 
12470         s-taprop-linux.adb, s-taprop-solaris.adb,
12471         s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
12472         adjustement is already done when calling this routine.
12473
12474 2006-02-13  Pascal Obry  <obry@adacore.com>
12475
12476         * system-mingw.ads (Underlying_Priorities): Update the priority mapping
12477         table to take advantage of the 16 priority levels available on Windows
12478         2000 and XP. On NT4 there are only 7 priority levels, this is properly
12479         supported by this new mapping.
12480
12481 2006-02-13  Nicolas Setton  <setton@adacore.com>
12482
12483         * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
12484         (get_encoding): New subprogram. Extracts the encodings from an encoded
12485         Ada name.
12486
12487 2006-02-13  Pascal Obry  <obry@adacore.com>
12488             Nicolas Roche  <roche@adacore.com>
12489             Arnaud Charlet  <charlet@adacore.com>
12490
12491         * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
12492         support.
12493         (__gnat_try_lock): Add unicode support by using a specific section on
12494         Windows.
12495         (__gnat_get_current_dir): Idem.
12496         (__gnat_open_read): Idem.
12497         (__gnat_open_rw): Idem.
12498         (__gnat_open_create): Idem.
12499         (__gnat_create_output_file): Idem.
12500         (__gnat_open_append): Idem.
12501         (__gnat_open_new): Idem.
12502         (__gnat_file_time_name): Idem.
12503         (__gnat_set_file_time_name): Idem.
12504         (__gnat_stat): Idem.
12505         (win32_no_block_spawn): Idem.
12506         (__gnat_locate_exec_on_path): Idem.
12507         (__gnat_opendir): New routine.
12508         (__gnat_closedir): Idem.
12509         (__gnat_readdir): Add new parameter length (pointer to int). Update
12510         implementation to use it and add specific Win32 code for Unicode
12511         support.
12512         (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
12513         (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
12514         (convert_addresses): Do not define this dummy routine on VMS.
12515
12516         * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
12517         runtime Unicode support will be activated.
12518         (S2WS): String to Wide-String conversion. This version just copy a
12519         string in non Unicode version.
12520         (WS2S): Wide-String to String conversion. This version just copy a
12521         string in non Unicode version.
12522
12523         * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
12524         (Open): Now import __gnat_opendir from adaint.c.
12525         (Read): Change the implementation to support unicode characters. It is
12526         not possible to use strlen() on Windows as this version supports only
12527         standard ASCII characters. So the length of the directory entry is now
12528         returned from the imported __gnat_readdir routine.
12529         Update copyright notice.
12530
12531         * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
12532         (opendir): Moved to adaint.c.
12533
12534         * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
12535         (Get_Directory): Fix wrong indexing.
12536         (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
12537         __gnat_getenv from env.c
12538         (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
12539         from env.c
12540
12541         * env.h, env.c: New file.
12542
12543         * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
12544         adaint.c by __gnat_getenv from env.c
12545
12546         * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
12547         adaint.c by __gnat_getenv from env.c
12548
12549         * Make-lang.in: Add env.o in the list of C object needed by gnat1
12550         and gnatbind.
12551         Update dependencies.
12552
12553 2006-02-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12554             Olivier Hainque  <hainque@adacore.com>
12555             Eric Botcazou  <ebotcazou@adacore.com>
12556
12557         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
12558         
12559         * gigi.h (value_factor_p): Add prototype and description, now public.
12560
12561         * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
12562         promotion for field with rep clause if the associated size was proven
12563         to be in error.
12564         Expand comments describing attempts to use a packable type.
12565         (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
12566         E_Floating_Point_Subtype>: Inherit alias set of what we are making a
12567         subtype of to ensure conflicts amongst all subtypes in a hierarchy,
12568         necessary since these are not different types and pointers may
12569         actually designate any subtype in this hierarchy.
12570         (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
12571         discriminants but put them into record only if not Unchecked_Union;
12572         pass flag to components_to_record showing Unchecked_Union.
12573         (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
12574         components before variants; don't set TYPE_UNCHECKED_UNION_P.
12575         (components_to_record): New argument UNCHECKED_UNION.
12576         Remove special case code for Unchecked_Union and instead use main code
12577         with small changes.
12578
12579         PR ada/26096
12580         (gnat_to_gnu_entity) <E_Variable>: Do not initialize the aligning
12581         variable with the expression being built, only its inner field.
12582
12583         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
12584         emit_sequence_entry_statements.
12585         (emit_sequence_entry_statements, body_with_handlers_p): Delete.
12586         (establish_gnat_vms_condition_handler): Move before
12587         Subprogram_Body_to_gnu.
12588         (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
12589         for a subprogram if it has a foreign convention or is exported.
12590         (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
12591         substituted for a CONST_DECL.
12592         (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
12593         Etype to assoc_to_constructor.
12594         (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
12595         discriminants of Unchecked_Union.
12596         (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
12597         don't need cluttering preprocessor directives.
12598         (establish_gnat_vms_condition_handler): New function. Establish the GNAT
12599         condition handler as current in the compiled function.
12600         (body_with_handlers_p): New function. Tell whether a given sequence of
12601         statements node is attached to a package or subprogram body and involves
12602         exception handlers possibly nested within inner block statements.
12603         (emit_sequence_entry_statements): New function, to emit special
12604         statements on entry of sequences when necessary. Establish GNAT
12605         condition handler in the proper cases for VMS.
12606         (Handled_Sequence_Of_Statements_to_gnu): Start block code with
12607         emit_sequence_entry_statements.
12608
12609         * utils2.c (find_common_type): If both input types are BLKmode and
12610         have a constant size, use the smaller one.
12611         (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
12612         the same.
12613
12614         * utils.c (value_factor_p): Make public, to allow uses from other gigi
12615         units.
12616         (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
12617         (convert, case UNION_TYPE): Remove special treatment for unchecked
12618         unions.
12619
12620         PR ada/18659
12621         (update_pointer_to): Update variants of pointer types to unconstrained
12622         arrays by attaching the list of fields of the main variant.
12623
12624 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
12625             Robert Dewar  <dewar@adacore.com>
12626
12627         * a-exexpr.adb, a-exexpr-gcc.adb
12628         (Process_Raise_Exception): Removed, merged with Propagate_Exception.
12629         (Propagate_Exception): Now take extra From_Signal_Handler parameter.
12630         Remove code unused for exception propagation for the compiler itself
12631         from a-except.adb and update to still share separate packages.
12632
12633         * a-except.ads, a-except.adb: Ditto.
12634         Add comments that this version is now used only by the compiler and
12635         other basic tools. The full version that includes the Ada 2005 stuff
12636         is in separate files a-except-2005.ads/adb. The reason is that we do
12637         not want to cause bootstrap problems with compilers not recognizing
12638         Wide_Wide_String.
12639         Add exception reason code PE_Implicit_Return
12640         Add new exception reason code (Null Exception_Id)
12641
12642         * a-except-2005.adb, a-except-2005.ads: New files.
12643
12644         * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
12645
12646         * s-wchcon.adb: New file.
12647
12648         * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
12649         (traceback.o deps): Likewise.
12650         (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
12651         Activate build of GMEM instrumentation library on VMS targets.
12652         (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
12653         Use a-except-2005.ads/adb for all run-time library builds unless
12654         specified otherwise.
12655         [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
12656         s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
12657         Use s-parame.adb on all native platforms.
12658         Use s-parame-vxworks.adb on all vxworks platforms.
12659         Add env.c env.h in LIBGNAT_SRCS
12660         Add env.o in LIBGNAT_OBJS
12661         (GNATMAKE_OBJS): Remove ctrl_c.o object.
12662         (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
12663         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
12664         supports VxWorks 6 RTPs.
12665         (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
12666         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
12667
12668         * types.h, types.ads (Terminate_Program): New exception
12669         Add comment on modifying multiple versions of a-except.adb when the
12670         table of exception reasons is modified.
12671         Add exception reason code PE_Implicit_Return
12672         Add new exception reason code (Null Exception_Id)
12673
12674         * clean.adb (Initialize): Get the target parameters before checking
12675         if target is OpenVMS. Move the OpenVMS specific code here from package
12676         body elaboration code.
12677
12678 2006-02-13  Thomas Quinot  <quinot@adacore.com>
12679             Vincent Celier  <celier@adacore.com>
12680             Robert Dewar  <dewar@adacore.com>
12681
12682         * ali-util.adb (Get_File_Checksum): Update to account for change in
12683         profile of Initialize_Scanner.
12684
12685         * gprep.adb (Gnatprep): Update to account for change in profile of
12686         Initialize_Scanner.
12687         (Process_One_File): Same.
12688
12689         * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
12690         common code between Get_Code_Unit and Get_Source_Unit. Reimplement
12691         that behaviour using the new Unit information recorded in the source
12692         files table, rather than going through all units every time.
12693         (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
12694         (Get_Source_Unit): Same.
12695
12696         * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
12697         change in profile of Initialize_Scanner.
12698         (Prepare_To_Preprocess): Same.
12699
12700         * lib.ads: Fix typo in comment (templace -> template).
12701
12702         * prj-part.adb (Parse_Single_Project): Update to account for change in
12703         profile of Initialize_Scanner.
12704
12705         * scn.adb (Initialize_Scanner): Account for change in profile of
12706         Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
12707         Also record the association of the given Source_File_Index to the
12708         corresponding Unit_Number_Type.
12709
12710         * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
12711         procedure.
12712         (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
12713         Remove Unit formal for generic scanner: this formal
12714         is only relevant to Scn (the scanner instance used to parse Ada source
12715         files), not to other instances. Update comment accordingly.
12716         (Scan): Use new function Snames.Is_Keyword_Name.
12717
12718         * sinfo-cn.adb: Fix typo in comment.
12719
12720         * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
12721         Unit.
12722
12723         * sinput.ads (Source_File_Record): New component Unit, used to capture
12724         the unit identifier (if any) associated to a source file.
12725
12726         * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
12727         Unit in Source_File_Record.
12728
12729         * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
12730         in profile of Initialize_Scanner.
12731
12732         * scans.adb (Initialize_Ada_Keywords): New procedure
12733
12734         * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
12735         Ada keywords in the Namet table, without the need to call
12736         Initialize_Scanner.
12737
12738         * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
12739         (Is_Keyword_Name): New function
12740
12741         * snames.ads: Add subtype Configuration_Pragma_Names
12742         Add pragma Ada_2005 (synonym for Ada_05)
12743         (Is_Keyword_Name): New function
12744
12745         * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
12746
12747 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
12748
12749         * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
12750         index.
12751
12752         * a-stwima.adb (To_Set): Add extra check when N = 0.
12753
12754         * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
12755
12756 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
12757
12758         * s-parame-mingw.adb, s-parame-linux.adb,
12759         s-parame-solaris.adb: Removed, replaced by s-parame.adb
12760
12761         * s-parame-vxworks.ads: Fix typo.
12762
12763         * s-parame-vxworks.adb: New file.
12764
12765         * s-parame.adb: Version now used by all native platforms.
12766         (Default_Stack_Size): Use 2 megs for default stack size and use
12767         __gl_default_stack_size when available.
12768         (Minimum_Stack_Size): Use 12K.
12769
12770         * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
12771         (Create_Task): Refine implementation taking advantage of the XP stack
12772         size support. On XP, we now create the thread using the flag
12773         STACK_SIZE_PARAM_IS_A_RESERVATION.
12774
12775         * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
12776
12777         * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
12778         XP and 0 on older Windows versions.
12779
12780         * interfac-vms.ads: Removed, no longer used.
12781
12782 2006-02-13  Matthew Heaney  <heaney@adacore.com>
12783
12784         * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb, 
12785         a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb, 
12786         a-cohase.adb: All explicit raise statements now include an exception
12787         message.
12788
12789         * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
12790         (Update_Element_Preserving_Key): renamed op to just Update_Element.
12791         Explicit raise statements now include an exception message
12792
12793         * a-cihase.ads, a-cohase.ads: Removed comment.
12794
12795         * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
12796         a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
12797         a-szbzha.adb, a-szfzha.ads: New files.
12798
12799 2006-02-13  Matthew Heaney  <heaney@adacore.com>
12800
12801         * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
12802         quicksort.
12803
12804 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
12805
12806         * lang.opt: Wvariadic-macros: New option.
12807         Wold-style-definition: Likewise.
12808         Wmissing-format-attribute: Likewise.
12809
12810         * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
12811         -Wold-style-definition and -Wmissing-format-attribute.
12812
12813 2006-02-13  Robert Dewar  <dewar@adacore.com>
12814
12815         * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
12816
12817         * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
12818
12819 2006-02-13  Nicolas Roche  <roche@adacore.com>
12820
12821         * a-envvar.adb, a-envvar.ads: New files.
12822
12823 2006-02-13  Douglas Rupp  <rupp@adacore.com>
12824
12825         * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
12826
12827         * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
12828
12829 2006-02-13  Pat Rogers  <rogers@adacore.com>
12830
12831         * a-rttiev.adb, a-rttiev.ads: New files.
12832
12833 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
12834
12835         * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
12836         a-wwboio.ads, a-zzboio.adb, a-zzboio.ads:  New files.
12837
12838         * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
12839
12840 2006-02-13  Robert Dewar  <dewar@adacore.com>
12841
12842         * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb, 
12843         sem_case.adb: Minor code reorganization (not Present should be No)
12844
12845 2006-02-13  Geert Bosch  <bosch@adacore.com>
12846             Gary Dismukes  <dismukes@adacore.com>
12847
12848         * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
12849         0, since the lower bound of the actual string may be greater than one.
12850
12851         PR ada/20753
12852         * a-tifiio.adb (Put): Fix condition to raise Layout_Error when invalid
12853         layout is requested.
12854
12855 2006-02-13  Vincent Celier  <celier@adacore.com>
12856
12857         * back_end.adb (Scan_Compiler_Arguments): Check if
12858         Search_Directory_Present is True and, if it is, add the argument in
12859         the source search directory path.
12860
12861         * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
12862         Search_Directory_Present to True.
12863
12864 2006-02-13  Joel Brobecker  <brobecke@adacore.com>
12865
12866         * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
12867         volatile, to tell the compiler to preserve this variable at any level
12868         of optimization.
12869         (Gen_Versions_Ada): Temporarily work around codegen bug.
12870
12871 2006-02-13  Vincent Celier  <celier@adacore.com>
12872
12873         * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
12874         gcc to link with option -shared-libgcc.
12875         (Gnatlink): Remove duplicate switches -shared-libgcc
12876
12877 2006-02-13  Robert Dewar  <dewar@adacore.com>
12878
12879         * gnatvsn.ads (Current_Year): New constant, used to easily update
12880         copyright on all GNAT tools.
12881
12882         * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
12883         copyright notice.
12884
12885 2006-02-13  Robert Dewar  <dewar@adacore.com>
12886
12887         * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
12888         after hyphen (small aesthetic change useful for a range of numbers
12889         using ^-^.
12890         Suppress range checks for a couple of assignments which otherwise
12891         cause validity checks with validity checking turned on.
12892
12893         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
12894         Improvement in error message for object.
12895         (Rep_Item_Too_Late): Remove '!' in warning message.
12896
12897 2006-02-13  Robert Dewar  <dewar@adacore.com>
12898             Eric Botcazou  <ebotcazou@adacore.com>
12899
12900         * err_vars.ads: Suppress range checks for a couple of assignments
12901         which otherwise cause validity checks with validity checking turned on.
12902         Update comments.
12903
12904         * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
12905         Make message unconditional if it is a warning.
12906         (Error_Msg_NEL): Always output warning messages.
12907         Suppress range checks for a couple of assignments which otherwise
12908         cause validity checks with validity checking turned on.
12909
12910         * errout.ads (Message Insertion Characters): Document that '!' is
12911         implied by '?' in error messages.
12912
12913         * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
12914         (Gnat1drv): Use a goto to end of main subprogram instead of
12915         Exit_Program (E_Success) so that finalization can occur normally.
12916
12917 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
12918
12919         * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
12920         wrapped around.
12921
12922 2006-02-13  Vincent Celier  <celier@adacore.com>
12923
12924         * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
12925         Unchecked_Conversion functions.
12926         (Modification_Time): Use direct conversion of OS_Time to Calendar time
12927         when OpenVMS returns False.
12928
12929         * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
12930         a-dirval.adb (OpenVMS): New Boolean function
12931
12932 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
12933             Thomas Quinot  <quinot@adacore.com>
12934
12935         * checks.adb (Build_Discriminant_Checks): If the expression being
12936         checks is an aggregate retrieve the values of its discriminants to
12937         generate the check, rather than creating a temporary and a reference
12938         to it.
12939         (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
12940         (Install_Null_Excluding_Check): Ditto
12941         (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
12942         not for the renamed object, so that the actual itype is attached in the
12943         proper context.
12944
12945 2006-02-13  Robert Dewar  <dewar@adacore.com>
12946             Vincent Celier  <celier@adacore.com>
12947
12948         * debug.adb: Eliminate numeric switches for binder/gnatmake
12949
12950         * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
12951         switches for the compiler.
12952         (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
12953         (Scan_Make_Switches): When failing with an illegal switch, output an
12954         error message with the full switch.
12955         Eliminate numeric switches for binder/gnatmake
12956
12957         * switch.ads, switch.adb (Bad_Switch): New procedure
12958
12959         * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
12960         Remove 0-9 as debug flag character possibilities
12961         -d is now controlling the primary stack size when its value is a
12962         positive. Also add checks against invalid values, and support for kb,
12963         mb. Ditto for -D switch.
12964
12965 2006-02-13  Robert Dewar  <dewar@adacore.com>
12966             Serguei Rybin  <rybin@adacore.com>
12967
12968         * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
12969         save/restore routines.
12970         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
12971         were not always properly handled previously.
12972         Since we are changing the tree format anyway, also get rid of the
12973         junk obsolete Immediate_Errors flag.
12974         (Tree_Read): Change the way of reading Tree_Version_String - now we
12975         read the version string from the tree even if its length is not the
12976         same as the length of the version string computed from Gnatvsn.
12977         (Search_Directory_Present): New Boolean flag for the compiler.
12978         Define Tree_Version_String as a dynamic string.
12979         (Default_Stack_Size): new variable, used to handle switch -d.
12980
12981         * par-prag.adb: 
12982         For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
12983         only for main unit.
12984         Add pragma Ada_2005 (synonym for Ada_05)
12985         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
12986         were not always properly handled previously.
12987
12988         * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
12989         explicit Ada_95 to Ada_2005.
12990
12991 2006-02-13  Javier Miranda  <miranda@adacore.com>
12992             Robert Dewar  <dewar@adacore.com>
12993             Ed Schonberg  <schonberg@adacore.com>
12994
12995         * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
12996         against errors in the source program: a private types for which the
12997         corresponding full type declaration is missing and pragma CPP_Virtual
12998         is used.
12999         (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
13000         (Is_Known_Null): New flag
13001         (Has_Pragma_Pure): New flag
13002         (No_Return): Present in all entities, set only for procedures
13003         (Is_Limited_Type): A type whose ancestor is an interface is limited if
13004         explicitly declared limited.
13005         (DT_Offset_To_Top_Func): New attribute that is present in E_Component
13006         entities. Only used for component marked Is_Tag. If present it stores
13007         the Offset_To_Top function used to provide this value in tagged types
13008         whose ancestor has discriminants.
13009
13010         * exp_ch2.adb: Update status of new Is_Known_Null flag
13011
13012         * sem_ch7.adb: Maintain status of new Is_Known_Null flag
13013
13014         * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
13015         the categorization sense if Is_Pure was set by pragma Pure_Function.
13016
13017 2006-02-13  Quentin Ochem  <ochem@adacore.com>
13018             Olivier Hainque  <hainque@adacore.com>
13019
13020         * bindusg.adb: Updated documentation for -d and -D switches.
13021
13022         * raise.h (__gnat_set_globals): added new parameter for
13023         Default_Stack_Size.
13024
13025         * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
13026         (__gnat_handle_vms_condition): Adjust context before raise.
13027         (__gnat_install_handler): Restore the global vector setup for GCC
13028         versions before 3.4, as the frame based circtuitry is not available
13029         in this case.
13030         (__gnat_set_globals): added a parameter default_stack_size
13031         (__gl_default_stack_size): new variable.
13032
13033 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13034
13035         * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
13036         "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
13037         does not exist in the Ada RM.
13038         (Compatible_Int_Bounds): Determine whether two integer range bounds
13039         are of equal length and have the same start and end values.
13040         (Is_Int_Range_Bounds): Determine whether a node is an integer range.
13041         (Build_Record_Aggr_Code): Perform proper sliding of a nested array
13042         aggregate when it is part of an object declaration.
13043         (Build_Record_Aggr_Code)  If the aggregate ttype is a derived type that
13044         constrains discriminants of its parent, add explicitly the discriminant
13045         constraints of the ancestor by retrieving them from the
13046         stored_constraint of the parent.
13047
13048 2006-02-13  Robert Dewar  <dewar@adacore.com>
13049
13050         * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
13051         attribute Mechanism_Code is applied to renamed subprogram, modify
13052         prefix to point to base subprogram.
13053         Max/Min attributes now violate Restriction No_Implicit_Conditionals
13054
13055         * sinfo.ads: Document that Mechanism_Code cannot be applied to
13056         renamed subprograms so that the front-end must replace the prefix
13057         appropriately.
13058
13059 2006-02-13  Javier Miranda  <miranda@adacore.com>
13060             Gary Dismukes  <dismukes@adacore.com>
13061
13062         * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
13063         availability of RE_Interface_Tag.
13064         (Build_Initialization_Call): Fix wrong access to the discriminant value.
13065         (Freeze_Record_Type): Do not generate the tables associated with
13066         timed and conditional dispatching calls through synchronized
13067         interfaces if compiling under No_Dispatching_Calls restriction.
13068         When compiling for Ada 2005, for a nonabstract
13069         type with a null extension, call Make_Controlling_Function_Wrappers
13070         and insert the wrapper function declarations and bodies (the latter
13071         being appended as freeze actions).
13072         (Predefined_Primitive_Bodies): Do not generate the bodies of the
13073         predefined primitives associated with timed and conditional
13074         dispatching calls through synchronized interfaces if we are
13075         compiling under No_Dispatching_Calls.
13076         (Build_Init_Procedure):  Use RTE_Available to check if a run-time
13077         service is available before generating a call.
13078         (Make_Controlling_Function_Wrappers): New procedure.
13079         (Expand_N_Full_Type_Declaration): Create a class-wide master for
13080         access-to-limited-interfaces because they can be used to reference
13081         tasks that implement such limited interface.
13082         (Build_Offset_To_Top_Functions): Build the tree corresponding to the
13083         procedure spec and body of the Offset_To_Top function that is generated
13084         when the parent of a type with discriminants has secondary dispatch
13085         tables.
13086         (Init_Secondary_Tags): Handle the case in which the parent of the type
13087         containing secondary dispatch tables has discriminants to generate the
13088         correct arguments to call Set_Offset_To_Top.
13089         (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
13090
13091         * a-tags.ads, a-tags.adb: (Check_Index): Removed.
13092         Add Wide_[Wide_]Expanded_Name.
13093         (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
13094         the same functionality of Get_Prim_Op_Address but applied to predefined
13095         primitive operations because the pointers to the predefined primitives
13096         are now saved in a separate table.
13097         (Parent_Size): Modified to get access to the separate table of primitive
13098         operations or the parent type.
13099         (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
13100         functionality of Set_Prim_Op_Address but applied to predefined primitive
13101         operations.
13102         (Set_Signature): New subprogram used to store the signature of a DT.
13103         (Displace): If the Offset_To_Top value is not static then call the
13104         function generated by the expander to get such value; otherwise use
13105         the value stored in the table of interfaces.
13106         (Offset_To_Top): The type of the actual has been changed to Address to
13107         give the correct support to tagged types with discriminants. In this
13108         case this value is stored just immediately after the tag field.
13109         (Set_Offset_To_Top): Two new formals have been added to indicate if the
13110         offset_to_top value is static and hence pass this value to the run-time
13111         to store it in the table of interfaces, or else if this value is dynamic
13112         and then pass to the run-time the address of a function that is
13113         generated by the expander to provide this value for each object of the
13114         type.
13115
13116         * rtsfind.ads (Default_Prin_Op_Count): Removed.
13117         (Default_Prim_Op_Count): New entity
13118         (Get_Predefined_Prim_Op_Address): New entity
13119         (Set_Predefined_Prim_Op_Address): New entity
13120         (RE_Set_Signature): New entity
13121
13122 2006-02-13  Thomas Quinot  <quinot@adacore.com>
13123             Ed Schonberg  <schonberg@adacore.com>
13124
13125         * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
13126         Make_Adjust_Call done for a newly-allocated object.
13127
13128         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
13129         in a subprogram are wrapped in a cleanup block, indicate that the
13130         subprogram contains an inner block with an exception handler.
13131         (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
13132         Adjust call is for a newly-allocated object. In that case we must not
13133         assume that the finalization list chain pointers are correct (since they
13134         come from a bit-for-bit copy of the original object's pointers) so if
13135         the attach level would otherwise be zero (no change), we set it to 4
13136         instead to cause the pointers to be reset to null.
13137
13138         * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
13139         reset chain pointers to null.
13140
13141 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13142
13143         * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
13144         string, and the context requires a loop for the assignment (e.g.
13145         because the left-hand side is packed), generate a unique name for the
13146         temporary that holds the string, to prevent spurious name clashes.
13147
13148 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13149             Javier Miranda  <miranda@adacore.com>
13150             Robert Dewar  <dewar@adacore.com>
13151             Gary Dismukes  <dismukes@adacore.com>
13152
13153         * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
13154         return unconstrained arrays.
13155         Update comments.
13156         (Expand_Call):  An indirect call through an access parameter of a
13157         protected operation is not a protected call.
13158         Add circuit to raise CE in Ada 2005 mode following call
13159         to Raise_Exception.
13160         (Register_DT_Entry): Do nothing if
13161         the run-time does not give support to abstract interfaces.
13162         (Freeze_Subprogram): In case of dispatching operations, do not generate
13163         code to register the operation in the dispatch table if the source
13164         is compiled with No_Dispatching_Calls.
13165         (Register_Predefined_DT_Entry): Generate code that calls the new
13166         run-time subprogram Set_Predefined_Prim_Op_Address instead of
13167         Set_Prim_Op_Address.
13168
13169         * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
13170         on array assignments if the right-hand side is a function call that has
13171         been inlined. Check is performed on the assignment in the block.
13172         (Process_Bounds): If bounds and range are overloaded, apply preference
13173         rule for root operations to disambiguate, and diagnose true ambiguity.
13174         (Analyze_Assignment): Propagate the tag for a class-wide assignment with
13175         a tag-indeterminate right-hand side even when Expander_Active is True.
13176         Needed to ensure that dispatching calls to T'Input are allowed and
13177         get the tag of the target class-wide object.
13178
13179         * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
13180         an inherited primitive operation that already overrides several
13181         abstract interface primitives. For transitivity, the new entity must
13182         also override all the abstract interface primitives covered by the
13183         inherited overriden primitive.
13184         Emit warning if new entity differs from homograph in same scope only in
13185         that one has an access parameter and the other one has a parameter of
13186         a general access type with the same designated type, at the same
13187         position in the signature.
13188         (Make_Inequality_Operator): Use source locations of parameters and
13189         subtype marks from corresponding equality operator when creating the
13190         tree structure for the implicit declaration of "/=". This does not
13191         change anything in behaviour except that the decoration of the
13192         components of the subtree created for "/=" allows ASIS to get the
13193         string images of the corresponding identifiers.
13194         (Analyze_Return_Statement): Remove '!' in warning message.
13195         (Check_Statement_Sequence): Likewise.
13196         (Analyze_Subprogram_Body): For an access parameter whose designated type
13197         is an incomplete type imported through a limited_with clause, use the
13198         type of the corresponding formal in the body.
13199         (Check_Returns): Implicit return in No_Return procedure now raises
13200         Program_Error with a compile time warning, instead of beging illegal.
13201         (Has_Single_Return):  Function returning unconstrained type cannot be
13202         inlined if expression in unique return statement is not an identifier.
13203         (Build_Body_To_Inline): It is possible to inline a function call that
13204         returns an unconstrained type if all return statements in the function
13205         return the same local variable. Subsidiary procedure Has_Single_Return
13206         verifies that the body conforms to this restriction.
13207
13208         * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
13209         same type, and  one of them is of an anonymous access type, convert
13210         the other operand to it, so that this is a valid binary operation for
13211         gigi.
13212         (Resolve_Type_Conversion): Handle subtypes of protected types and
13213         task types when accessing to the corresponding record type.
13214         (Resolve_Allocator): Add '\' in 2-line warning message.
13215         Remove '!' in warning message.
13216         (Resolve_Call): Add '\' in 2-line warning message.
13217         (Valid_Conversion): Likewise.
13218         (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
13219         resulting type may be an access type with an implicit dereference.
13220         Obtain the proper component from the designated type.
13221         (Make_Call_Into_Operator): Handle properly a call to predefined equality
13222         given by an expanded name with prefix Standard, when the operands are
13223         of an anonymous access type.
13224         (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
13225         Explicit_Dereference and Resolve_Selected_Component, to verify that the
13226         prefix of the expression is not of an incomplete type. Allows full
13227         diagnoses of all semantic errors.
13228         (Resolve_Actuals): If the actual is an allocator whose directly
13229         designated type is a class-wide interface we build an anonymous
13230         access type to use it as the type of the allocator. Later, when
13231         the subprogram call is expanded, if the interface has a secondary
13232         dispatch table the expander will add a type conversion to force
13233         the displacement of the pointer.
13234         (Resolve_Call): If a function that returns an unconstrained type is
13235         marked Inlined_Always and inlined, the call will be inlined and does
13236         not require the creation of a transient scope.
13237         (Check_Direct_Boolean_Op): Removed
13238         (Resolve_Comparison_Op): Remove call to above
13239         (Resolve_Equality_Op): Remove call to above
13240         (Resolve_Logical_Op): Inline above, since this is only call.
13241         (Valid_Conversion): Handle properly conversions between arrays of
13242         convertible anonymous access types.
13243
13244         PR ada/25885
13245         (Set_Literal_String_Subtype): If the lower bound is not static, wrap
13246         the literal in an unchecked conversion, because GCC 4.x needs a static
13247         value for a string bound.
13248
13249 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13250             Hristian Kirtchev  <kirtchev@adacore.com>
13251
13252         * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
13253         components of the corresponding record, take into account component
13254         definitions that are access definitions.
13255         (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
13256         procedure is not considered a dispatching call and will be expanded
13257         properly.
13258
13259 2006-02-13  Javier Miranda  <miranda@adacore.com>
13260
13261         * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
13262         controlling argument of the dispatching call is an abstract interface
13263         class-wide type then we use it directly.
13264         Check No_Dispatching_Calls restriction.
13265         (Default_Prim_Op_Position): Remove the code that looks for the last
13266         entity in the list of aliased subprograms. This code was wrong in
13267         case of renamings.
13268         (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
13269         when the source is compiled with the No_Dispatching_Calls restriction.
13270         (Init_Predefined_Interface_Primitives): No need to inherit primitives
13271         if we are compiling with restriction No_Dispatching_Calls.
13272         (Make_Disp_XXX): Addition of assertion to avoid the use of all these
13273         subprograms if we are compiling under No_Dispatching_Calls restriction.
13274         (Make_DT): Generate a dispatch table with a single dummy entry if
13275         we are compiling with the No_Dispatching_Calls restriction. In
13276         addition, in this case we don't generate code that calls to the
13277         following run-time subprograms: Set_Type_Kind, Inherit_DT.
13278         (Make_Select_Specific_Data_Table): Add assertion to avoid the use
13279         of this subprogram if compiling with the No_Dispatching_Calls
13280         restriction.
13281         (Expand_Type_Conversion): Instead of using the actual parameter,
13282         the argument passed as parameter to the conversion function was
13283         erroneously referenced by the expander.
13284         (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
13285         Set_Predefined_Primitive_Op_Address and Set_Signature.
13286         (Expand_Dispatching_Call): Generate call to
13287         Get_Predefined_Prim_Op_Address for predefined primitives.
13288         (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
13289         predefined primitives.
13290         (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
13291         primitives we reserve one dummy entry to ensure that the tag does not
13292         point to some memory that is associated with some other object. In
13293         addition, remove all the old code that generated the assignments
13294         associated with the signature of the dispatch table and replace them
13295         by a call to the new subprogram Set_Signature.
13296         (Set_All_DT_Position): Change the algorithm because now we have a
13297         separate dispatch table associated with predefined primitive operations.
13298         (Expand_Interface_Conversion): In case of non-static offset_to_top
13299         add explicit dereference to get access to the object after the call
13300         to displace the pointer to the object.
13301         (Expand_Interface_Thunk): Modify the generation of the actual used
13302         in the calls to the run-time function Offset_To_Top to fulfil its
13303         new interface.
13304         (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
13305
13306 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13307
13308         * exp_dist.adb (Copy_Specification): For access parameters, copy
13309         Null_Exclusion flag, which will have been set for stream subprograms
13310         in Ada2005 mode.
13311
13312 2006-02-13  Pascal Obry  <obry@adacore.com>
13313
13314         * expect.c (__gnat_expect_portable_execvp): New implementation. The
13315         previous implementation was using the C runtime spawnve routine but
13316         the corresponding wait was using directly the Win32 API. This was
13317         causing some times a lock when waiting for an event using
13318         WaitForSingleObject in __gnat_waitpid. This new implementation uses
13319         the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
13320         API fixes this problem.
13321
13322 2006-02-13  Robert Dewar  <dewar@adacore.com>
13323
13324         * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
13325         call.
13326
13327 2006-02-13  Thomas Quinot  <quinot@adacore.com>
13328
13329         * exp_pakd.ads: Fix typos in comments.
13330
13331         * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
13332         array reference that is an explicit dereference, mark the converted
13333         (packed) array reference as analyzed to prevent a forthcoming
13334         reanalysis from resetting its type to the original (non-packed) array
13335         type.
13336
13337 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13338             Javier Miranda  <miranda@adacore.com>
13339             Eric Botcazou  <ebotcazou@adacore.com>
13340
13341         * exp_util.ads, exp_util.adb (Find_Prim_Op,
13342         Is_Predefined_Primitive_Operation): When
13343         searching for the predefined equality operator, verify that operands
13344         have the same type.
13345         (Is_Predefined_Dispatching_Operation): Remove the code that looks
13346         for the last entity in the list of aliased subprograms. This code
13347         was wrong in case of renamings.
13348         (Set_Renamed_Subprogram): New procedure
13349         (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
13350         Exp_Type constant computed when entering this subprogram.
13351         (Known_Null): New function
13352         (OK_To_Do_Constant_Replacement): New function
13353         (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
13354         (Side_Effect_Free): An attribute reference 'Input is not free of
13355         side effect, unlike other attributes that are functions. (from code
13356         reading).
13357         (Remove_Side_Effects): Expressions that involve packed arrays or records
13358         are copied at the point of reference, and therefore must be marked as
13359         renamings of objects.
13360         (Is_Predefined_Dispatching_Operation): Return false if the operation is
13361         not a dispatching operation.
13362
13363         PR ada/18819
13364         (Remove_Side_Effects): Lift enclosing type conversion nodes for
13365         elementary types in all cases.
13366
13367 2006-02-13  Javier Miranda  <miranda@adacore.com>
13368
13369         * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
13370         task types when accessing to the corresponding record type.
13371         Remove '!' in warning message.
13372
13373 2006-02-13  Olivier Hainque  <hainque@adacore.com>
13374
13375         * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
13376         to avoid useless and space inefficient overalignments on targets where
13377         Max_Alignment is larger than 16.
13378
13379 2006-02-13  Pascal Obry  <obry@adacore.com>
13380
13381         * g-catiio.adb (Sec_Number): New type used to compute the number of
13382         seconds since 1-1-1970.
13383         (Image) [Natural]: The parameter was an Integer, as we can't deal with
13384         negative numbers (years, months...) it is better to have a Natural here.
13385         Code clean-up.
13386         (Image) [Number]: Change parameter from Long_Integer to Number.
13387         (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
13388         overflow for dates past year 2038.
13389
13390 2006-02-13  Matthew Heaney  <heaney@adacore.com>
13391
13392         *  g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
13393         Constraint_Error.
13394
13395 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
13396
13397         * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
13398         native platforms.
13399         (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
13400         finalization can occur normally.
13401
13402 2006-02-13  Vincent Celier  <celier@adacore.com>
13403
13404         * gnatcmd.adb (Rules_Switches): New table
13405         (Add_To_Rules_Switches): New procedure
13406         (GNATCmd): For command CHECK, put all options following "-rules" in the
13407         Rules_Switches table. Append these -rules switches after the -cargs
13408         switches.
13409
13410 2006-02-13  Robert Dewar  <dewar@adacore.com>
13411
13412         * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
13413         These two cases were generating incorrect output, and if this unit
13414         was built with checks on, generated a discriminant mismatch constraint
13415         error.
13416
13417 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13418             Robert Dewar  <dewar@adacore.com>
13419
13420         * lib-xref.adb (Get_Type_Reference): For a private type whose full
13421         view is an array type, indicate the component type as well, for
13422         navigation purposes.
13423         (Generate_Reference): Don't consider array ref on LHS to be a case
13424         of violating pragma Unreferenced.
13425         Do not give Ada 2005 warning except on real reference.
13426
13427 2006-02-13  Vincent Celier  <celier@adacore.com>
13428
13429         * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
13430         main source, add switch -mdebug-main=_ada_ so that the executable can
13431         be debugged by the standard VMS debugger.
13432         (Gnatmake): Set No_Main_Subprogram to True when there is no main
13433         subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
13434         Exit the Multi_Main_Loop when Unique_Compile is True after compilation
13435         of the last source, as the binding and linking phases are never
13436         performed.
13437         Set all executable obsolete when rebuilding a library.
13438
13439         * makeutl.adb (Linker_Options_Switches): Do not process empty linker
13440         options.
13441
13442 2006-02-13  Javier Miranda  <miranda@adacore.com>
13443
13444         PR ada/23973
13445         * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
13446         code to improve the error message reported when the program has
13447         declarations of abstract interface types and it is not compiled with
13448         the -gnat05 switch.
13449         (P_Access_Definition): Reorganize the code to improve the error
13450         message reported when the new Ada 2005 syntax for anonymous
13451         access types is used and the program is not compiled with the
13452         -gnat05 switch.
13453
13454 2006-02-13  Robert Dewar  <dewar@adacore.com>
13455
13456         * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
13457         stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
13458         (MODE_IN)
13459
13460 2006-02-13  Javier Miranda  <miranda@adacore.com>
13461
13462         * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
13463         against source containing syntax errors.
13464
13465 2006-02-13  Vincent Celier  <celier@adacore.com>
13466
13467         * prj.adb (Reset): Initialize the first element of table Namings with
13468         the standard naming data.
13469
13470 2006-02-13  Vincent Celier  <celier@adacore.com>
13471
13472         * prj.ads (Error_Warning): New enumeration type
13473
13474         * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
13475         unknown, use the location of the project to report the error.
13476         (When_No_Sources): New global variable
13477         (Report_No_Ada_Sources): New procedure
13478         (Check): New parameter When_No_Sources. Set value of global variable
13479         When_No_Sources,
13480         (Find_Sources): Call Report_No_Ada_Sources when appropriate
13481         (Get_Sources_From_File): Ditto
13482         (Warn_If_Not_Sources): Better warning messages indicating the unit name
13483         and the file name.
13484
13485         * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
13486         Call Prj.Proc.Process with parameter When_No_Sources.
13487
13488         * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
13489         Call Recursive_Check with parameter When_No_Sources.
13490         (Recursive_Check): New parameter When_No_Sources. Call itself and
13491         Prj.Nmsc.Check with parameter When_No_Sources.
13492         (Process): New parameter When_No_Sources. Call Check with parameter
13493         When_No_Sources.
13494         (Copy_Package_Declarations): New procedure to copy renamed parameters
13495         and setting the location of the declared attributes to the location
13496         of the renamed package.
13497         (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
13498         packages.
13499
13500 2006-02-13  Vincent Celier  <celier@adacore.com>
13501
13502         * prj-makr.adb (Make): Preserve the comments from the original project
13503         file.
13504         When removing nodes (attributes Source_Dirs, Source_Files,
13505         Source_List_File and package Naming), save the comments and attach the
13506         saved comments to the newly created nodes.
13507         Do not add a with clause for the naming package if one already exists.
13508
13509 2006-02-13  Javier Miranda  <miranda@adacore.com>
13510             Gary Dismukes  <dismukes@adacore.com>
13511             Robert Dewar  <dewar@adacore.com>
13512
13513         * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
13514
13515         * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
13516         aliased entities to look for the overriden abstract interface
13517         subprogram.
13518         (Is_Interface_Subprogram): Complete documentation.
13519         (Check_Dispatching_Operation): Do not generate code to register the
13520         operation in the dispatch table if the source is compiled with
13521         restriction No_Dispatching_Calls.
13522         (Override_Dispatching_Operation): Check for illegal attempt to override
13523         No_Return procedure with procedure that is not No_Return
13524         (Check_Dispatching_Call): Suppress the check for an abstract operation
13525         when the original node of an actual is a tag-indeterminate attribute
13526         call, since the attribute, which must be 'Input, can never be abstract.
13527         (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
13528         call to the Input attribute (even when rewritten).
13529         (Propagate_Tag): Augment comment to indicate the possibility of a call
13530         to an Input attribute.
13531
13532         * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
13533         calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
13534
13535         * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
13536         No_Wide_Characters is no longer partition-wide
13537         No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
13538         rather than GNAT
13539
13540 2006-02-13  Douglas Rupp  <rupp@adacore.com>
13541
13542         * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
13543
13544 2006-02-13  Javier Miranda  <miranda@adacore.com>
13545
13546         * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
13547         handles default-initialized components to keep separate the management
13548         of this feature but also avoid the unrequired resolution and
13549         expansion of components that do not have partially initialized
13550         values.
13551         (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
13552         (Check_Bounds): Likewise.
13553         (Check_Length): Likewise.
13554
13555 2006-02-13  Javier Miranda  <miranda@adacore.com>
13556             Ed Schonberg  <schonberg@adacore.com>
13557
13558         * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
13559         abstract interface type call analyze_and_resolve to expand the type
13560         conversion into the corresponding displacement of the
13561         reference to the base of the object.
13562         (Eval_Attribute, case Width): For systems where IEEE extended precision
13563         is supported, the maximum exponent occupies 4 decimal digits.
13564         (Accessibility_Message): Add '\' in 2-line warning message.
13565         (Resolve_Attribute): Likewise.
13566         (case Attribute_Access): Significantly revise checks
13567         for illegal access-to-subprogram Access attributes to properly enforce
13568         the rules of 3.10.2(32/2).
13569         Diagnose use of current instance with an illegal attribute.
13570
13571         * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
13572         to a Node_Id.
13573         (Enclosing_Generic_Unit): New function to return a node's innermost
13574         enclosing generic declaration node.
13575         (Compile_Time_Constraint_Error): Remove '!' in warning messages.
13576         (Type_Access_Level): The accessibility level of anonymous acccess types
13577         associated with discriminants is that of the current instance of the
13578         type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
13579         (Compile_Time_Constraint_Error): Handle case of conditional expression.
13580         (Kill_Current_Values_For_Entity): New function
13581         (Enter_Name): Change formal type to Entity_Id
13582
13583 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
13584             Ed Schonberg  <schonberg@adacore.com>
13585             Gary Dismukes  <dismukes@adacore.com>
13586
13587         * sem_ch10.adb (Check_Redundant_Withs): New procedure in
13588         Analyze_Compilation_Unit.
13589         Detect and warn on redundant with clauses detected in a package spec
13590         and/or body when -gnatwr is used.
13591         (Analyze_Context): Analyze config pragmas before other items
13592         (Install_Context_Items): Don't analyze config pragmas here
13593         (Install_Limited_Withed_Unit): Set limited entity of package in
13594         with_clause so that cross-reference information or warning messages on
13595         unused packages can be properly generated
13596         (Is_Visible_Through_Renamings): Return false if the limited_with_clause
13597         has Error_Posted set. Prevent infinite loops in illegal programs.
13598         (Check_Private_Child_Unit): Move test for a nonprivate with clause down
13599         to the point of the error test requiring the current unit to be private.
13600         This ensures that private with clauses are not exempted from the basic
13601         checking for being a descendant of the same library unit parent as a
13602         withed private descendant unit.
13603         (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
13604         handle private with clauses properly, as well as to account for cases
13605         where the withed unit is a public descendant of a private ancestor
13606         (in which case the current unit must be a descendant of the private
13607         ancestor's parent). The spec comments were updated accordingly. Also,
13608         the old error message in this subprogram was replaced with error
13609         messages that mirror the errors tested and reported by
13610         Check_Private_Child_Unit.
13611         Parameter and variable names improved for readability.
13612         (Install_Limited_Context_Clauses): Remove test for a withed unit being
13613         private as the precondition for calling
13614         Check_Private_Limited_Withed_Unit since that subprogram has been
13615         revised to test public units as well as private units.
13616
13617 2006-02-13  Thomas Quinot  <quinot@adacore.com>
13618             Robert Dewar  <dewar@adacore.com>
13619             Ed Schonberg  <schonberg@adacore.com>
13620             Javier Miranda  <miranda@adacore.com>
13621
13622         * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
13623         that Scope_Stack.First = 1.
13624         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
13625         were not always properly handled previously.
13626         (Formal_Entity): Complete rewrite, to handle properly some complex case
13627         with multiple levels of parametrization by formal packages.
13628         (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
13629         to the corresponding derived type declaration for proper semantics.
13630
13631         * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
13632         (Check_Component): Enforce restriction on components of
13633         unchecked_unions: a component in a variant cannot contain tasks or
13634         controlled types.
13635         (Unchecked_Union): Allow nested variants and multiple discriminants, to
13636         conform to AI-216.
13637         Add pragma Ada_2005 (synonym for Ada_05)
13638         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
13639         were not always properly handled previously.
13640         Document that pragma Propagate_Exceptions has no effect
13641         (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
13642         (Set_Convention_From_Pragma): Check that if a convention is
13643         specified for a dispatching operation, then it must be
13644         consistent with the existing convention for the operation.
13645         (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
13646         longer required to specify an vtable-ptr component in the record. For
13647         compatibility reasons we leave the support for the previous definition.
13648         (Analyze_Pragma, case No_Return): Allow multiple arguments
13649
13650         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
13651         non-overrideen inherited operation with a controlling result as
13652         illegal only its implicit declaration comes from the derived type
13653         declaration of its result's type.
13654         (Check_Possible_Deferred_Completion): Relocate the object definition
13655         node of the subtype indication of a deferred constant completion rather
13656         than directly analyzing it. The analysis of the generated subtype will
13657         correctly decorate the GNAT tree.
13658         (Record_Type_Declaration): Check whether this is a declaration for a
13659         limited derived record before analyzing components.
13660         (Analyze_Component_Declaration): Diagnose record types  not explicitly
13661         declared limited when a component has a limited type.
13662         (Build_Derived_Record_Type): Code reorganization to check if some of
13663         the inherited subprograms of a tagged type cover interface primitives.
13664         This check was missing in case of a full-type associated with a private
13665         type declaration.
13666         (Constant_Redeclaration): Check that the subtypes of the partial and the
13667         full view of a constrained deferred constant statically match.
13668         (Mentions_T): A reference to the current type in an anonymous access
13669         component declaration  must be an entity name.
13670         (Make_Incomplete_Type_Declaration): If type is tagged, set type of
13671         class_wide type to refer to full type, not to the incomplete one.
13672         (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
13673         available. Required to give support to the certified run-time.
13674         (Analyze_Component_Declaration): In case of anonymous access components
13675         perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
13676         (Process_Discriminants): For an access discriminant, use the
13677         discriminant specification as the associated_node_for_itype, to
13678         simplify accessibility checks.
13679
13680 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13681             Javier Miranda  <miranda@adacore.com>
13682
13683         * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
13684         abstract interpretations on an operator, remove interpretations that
13685         yield Address or a type derived from it, if one of the operands is an
13686         integer literal.
13687         (Try_Object_Operation.Try_Primitive_Operation,
13688         Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
13689         location when creating the new reference to a primitive or class-wide
13690         operation as a part of rewriting a subprogram call.
13691         (Try_Primitive_Operations): If context requires a function, collect all
13692         interpretations after the first match, because there may be primitive
13693         operations of the same type with the same profile and different return
13694         types. From code reading.
13695         (Try_Primitive_Operation): Use the node kind to choose the proper
13696         operation when a function and a procedure have the same parameter
13697         profile.
13698         (Complete_Object_Operation): If formal is an access parameter and prefix
13699         is an object, rewrite as an Access reference, to match signature of
13700         primitive operation.
13701         (Find_Equality_Type, Find_One_Interp): Handle properly equality given
13702         by an expanded name with prefix Standard, when the operands are of an
13703         anonymous access type.
13704         (Remove_Abstract_Operations): If the operation is abstract because it is
13705         inherited by a user-defined type derived from Address, remove it as
13706         well from the set of candidate interpretations of an overloaded node.
13707         (Analyze_Membership_Op): Membership test not applicable to cpp-class
13708         types.
13709
13710 2006-02-13  Bob Duff  <duff@adacore.com>
13711
13712         * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
13713         redundant use clauses.
13714         In particular, if the scope of two use clauses overlaps, but one is not
13715         entirely included in the other, we should not warn.  This can happen
13716         with nested packages.
13717         (Analyze_Subprogram_Renaming): Protect the compiler against previously
13718         reported errors. The bug was reported when the compiler was built
13719         with assertions enabled.
13720         (Find_Type): If the node is a 'Class reference and the prefix is a
13721         synchronized type without a corresponding record, return the type
13722         itself.
13723
13724 2006-02-13  Javier Miranda  <miranda@adacore.com>
13725
13726         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
13727         if this is the full-declaration associated with a private declaration
13728         that implement interfaces, then the private type declaration must be
13729         limited.
13730         (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
13731         as aliased. The use of the 'access attribute is not available for such
13732         object (for this purpose the object should be explicitly marked as
13733         aliased, but being an anonymous type this is not possible).
13734
13735 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13736             Robert Dewar  <dewar@adacore.com>
13737
13738         * sem_elab.adb (Same_Elaboration_Scope): A package that is a
13739         compilation unit is an elaboration scope.
13740         (Add_Task_Proc): Add '\' in 2-line warning message.
13741         (Activate_All_Desirable): Deal with case of unit with'ed by parent
13742
13743 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13744             Javier Miranda  <miranda@adacore.com>
13745
13746         * sem_type.adb (Write_Overloads): Improve display of candidate
13747         interpretations.
13748         (Add_One_Interp): Do not add to the list of interpretations aliased
13749         entities corresponding with an abstract interface type that is an
13750         immediate ancestor of a tagged type; otherwise we have a dummy
13751         conflict between this entity and the aliased entity.
13752         (Disambiguate): The predefined equality on universal_access is not
13753         usable if there is a user-defined equality with the proper signature,
13754         declared in the same declarative part as the designated type.
13755         (Find_Unique_Type): The universal_access equality operator defined under
13756         AI-230 does not cover pool specific access types.
13757         (Covers): If one of the types is a generic actual subtype, check whether
13758         it matches the partial view of the other type.
13759
13760 2006-02-13  Thomas Quinot  <quinot@adacore.com>
13761
13762         * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
13763         line. This is necessary to allow In_Extended_Main_Unit to provide
13764         correct results for itypes while writing out expanded source.
13765         (Close_File): No need to update the source_index_table here since it's
13766         now done for each line.
13767
13768 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13769             Robert Dewar  <dewar@adacore.com>
13770
13771         * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
13772         preserve the source unit where the itype is declared, and prevent a
13773         backend abort.
13774         (Note_Implicit_Run_Time_Call): New procedure
13775         (Write_Itype): Handle missing cases (E_Class_Wide_Type and
13776         E_Subprogram_Type)
13777
13778         * sprint.ads: Document use of $ for implicit run time routine call
13779
13780 2006-02-13  Quentin Ochem  <ochem@adacore.com>
13781
13782         * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
13783         task name.
13784
13785 2006-02-13  Bob Duff  <duff@adacore.com>
13786
13787         * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
13788         Scan_Unsigned, so we do not scan leading blanks and sign twice.
13789         Integer'Value("- 5") and Integer'Value("-+5") now correctly
13790         raise Constraint_Error.
13791
13792         * s-vallli.adb (Scan_Long_Long_Integer): Call
13793         Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
13794         do not scan leading blanks and sign twice.
13795         Integer'Value("- 5") and Integer'Value("-+5") now correctly
13796         raise Constraint_Error.
13797
13798         * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
13799         Scan_Long_Long_Unsigned): Split out most of the processing from
13800         Scan_Long_Long_Unsigned out into
13801         Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
13802         This prevents scanning leading blanks and sign twice.
13803         Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
13804         See RM-3.5(44).
13805
13806         * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
13807         out most of the processing from Scan_Unsigned out into
13808         Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
13809         This prevents scanning leading blanks and sign twice.
13810
13811         * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
13812         use with Modular'Value attribute.
13813         (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
13814         attribute.
13815
13816 2006-02-13  Robert Dewar  <dewar@adacore.com>
13817
13818         * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
13819
13820 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
13821
13822         * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
13823         (PPC VxWorks): Likewise.
13824         (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
13825         (forced_callee): Make non-inlinable and non-pure.
13826         (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
13827
13828 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
13829             Ben Brosgol  <brosgol@adacore.com>
13830             Robert Dewar  <dewar@adacore.com>
13831
13832         * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
13833         support.
13834         Document that gnatbind -M option is for cross environments only.
13835         Added description of using gnatmem to trace gnat rtl allocs and deallocs
13836         Add note on use of $ to label implicit run time calls
13837         Add documentation for -gnatyI (check mode IN)
13838         Updated chapter on compatibility with HP Ada
13839         VMS-oriented edits.
13840         Ran spell and corrected errors
13841         Add documentation for gnatbind -d and rework documentation of -D
13842         at the same time.
13843         Add subprogram/data elimination section.
13844         Minor editing of annex A.
13845         Add section for gnatcheck.
13846         Add documentation for restriction No_Dispatching_Calls
13847         Add documentation for pragma Ada_2005
13848         Remove mention of obsolete pragma Propagate_Exceptions
13849         Document that pragma Unreferenced can appear after DO in ACCEPT
13850         Clarify Pure_Function for library level units
13851         Mention Max/Min in connection with No_Implicit_Conditionals
13852         No_Wide_Characters restriction is no longer partition-wide
13853         Add a nice example for Universal_Literal_String attribute
13854         Document that pragma No_Return can take multiple arguments
13855
13856         * ug_words: Added entry for gnatcheck
13857
13858         * g-ctrl_c.ads (Install_Handler): Enhance comments
13859
13860         * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
13861
13862         * g-trasym.ads: Add documentation on how to do off line symbolic
13863         traceback computation.
13864
13865         * s-fatgen.adb: Add comments for Unaligned_Valid
13866
13867         * stand.ads: Fix typo in comment
13868
13869 2006-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13870
13871         * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
13872
13873 2006-02-06  Roger Sayle  <roger@eyesopen.com>
13874
13875         * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
13876
13877 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13878
13879         PR target/25926
13880         * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
13881         implementation that calls __main.
13882
13883 2006-01-25  Peter O'Gorman  <peter@pogma.com>
13884
13885         PR bootstrap/25859
13886         * Makefile.in (GCC_LINK): Remove quotes.
13887         (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
13888         or $(GCC_LINK).
13889
13890         (powerpc-darwin): Pass -shared-libgcc when building shared library.
13891
13892 2006-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13893
13894         PR ada/24533
13895         * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
13896
13897 2005-12-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13898
13899         * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
13900
13901 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
13902
13903         * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
13904         needed.
13905
13906 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
13907
13908         * Make-lang.in: Update dependencies
13909
13910 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
13911
13912         * Make-lang.in: Add rule for ada/exp_sel.o
13913
13914 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
13915
13916         * Makefile.in (mingw section): Remove EH_MECHANISM setting.
13917
13918 2005-12-09  Arnaud Charlet  <charlet@adacore.com>
13919
13920         * gnatvsn.ads (Library_Version): Bump to version 4.2
13921         (ASIS_Version_Number): Bumped.
13922
13923 2005-12-09  Doug Rupp  <rupp@adacore.com>
13924
13925         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
13926         Ada bind file prefix on VMS from b$ to b__.
13927         (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
13928         __init.
13929
13930         * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
13931         Targparm.OpenVMS_On_Target.
13932         (Object_Suffix): Initialize with target object suffix.
13933         (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
13934
13935         * butil.adb: Change some Hostparm.OpenVMS checks to
13936         Targparm.OpenVMS_On_Target.
13937
13938         * clean.adb: Change some Hostparm.OpenVMS checks to
13939         Targparm.OpenVMS_On_Target.
13940         (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
13941         ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
13942         Ada bind file prefix on VMS from b$ to b__.
13943
13944         * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
13945         --GCC so that Get_Target_Parameters can find system.ads.
13946         (Gnatlink): Call Get_Target_Parameters in mainline.
13947         Initialize standard packages for Targparm.
13948         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
13949         (Process_Args): Also Check for object files with target object
13950         extension.
13951         (Make_Binder_File_Names): Create with target object extension.
13952         (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
13953         to b__.
13954
13955         * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
13956         Targparm.OpenVMS_On_Target.
13957         ({declaration},Build_Library,Check_Library): Change Ada bind file
13958         prefix on VMS from b$ to b__.
13959
13960         * osint-b.adb: Change some Hostparm.OpenVMS checks to
13961         Targparm.OpenVMS_On_Target.
13962         (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
13963         b__.
13964
13965         * targext.c: New file.
13966
13967         * Makefile.in: add support for vxworks653 builds
13968         (../../vxaddr2line): gnatlink with targext.o.
13969         (TOOLS_LIBS): Move targext.o to precede libgnat.
13970         (init.o, initialize.o): Minor clean up in dependencies.
13971         (GNATLINK_OBJS): Add targparm.o, snames.o
13972         Add rules fo building targext.o and linking it explicitly with all
13973         tools.
13974         Also add targext.o to gnatlib.
13975
13976         * Make-lang.in: Add rules for building targext.o and linking it in
13977         with gnat1 and gnatbind.
13978         Add entry for exp_sel.o.
13979
13980         * osint.adb Change some Hostparm.OpenVMS checks to
13981         Targparm.OpenVMS_On_Target.
13982         (Object_File_Name): Use target object suffix.
13983
13984         * osint.ads (Object_Suffix): Remove, no longer used.
13985         (Target_Object_Suffix): Initialize with target object suffix.
13986
13987         * rident.ads: Add special exception to license.
13988
13989         * targparm.adb (Get_Target_Parameters): Set the value of
13990         Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
13991         value.
13992         (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
13993         
13994         * targparm.ads: Add special exception to license.
13995
13996         * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
13997         function.
13998         (Copy_File): Make sure from file is closed if error on to file
13999         (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
14000
14001         * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
14002         (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
14003
14004         * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
14005         target object suffix.
14006
14007 2005-12-09  Jose Ruiz  <ruiz@adacore.com>
14008             Quentin Ochem  <ochem@adacore.com>
14009             Florian Villoing  <villoing@adacore.com>
14010
14011         * a-taster.ads, a-taster.adb: New files.
14012
14013         * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
14014         link to the version that does nothing. This way the task termination
14015         routine is not executed twice for the environment task when finishing
14016         because of an unhandled exception.
14017
14018         * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
14019         handler because of an unhandled exception.
14020
14021         * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
14022         System.Tasking.Utilities instead of that in System.Tasking.Stages.
14023
14024         * s-finimp.adb (initialization code): Modify the soft link for the
14025         finalization of the global list instead of Adafinal.
14026
14027         * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
14028         non-tasking version of the soft link for task termination. We do
14029         nothing since if we are using the non-tasking version it
14030         means that the task termination functionality is not used.
14031         (Null_Finalize_Global_List): Add this null version for the procedure
14032         in charge of finalizing the global list for controlled objects.
14033         (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
14034         instead for handling run-time termination in a more flexible way.
14035         (Adafinal_NT): This new procedure will take care of finalizing the
14036         global list for controlled objects if needed, but no tasking
14037         finalization.
14038
14039         * s-tarest.adb (Task_Lock): Do not try to lock again the
14040         Global_Task_Lock if we already own it. Otherwise, we get blocked in
14041         some run-time operations.
14042         (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
14043         until all nested locks have been released.
14044         (Task_Wrapper): Call the fall-back task termination handler. It
14045         applies to all tasks but the environment task.
14046         (Finalize_Global_Tasks): Add the call for the task termination
14047         procedure for the environment task.
14048         (Task_Wrapper): suppress warnings around declaration of
14049         Secondary_Stack_Address.
14050
14051         * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
14052         moved to the Common_ATCB record.
14053         (Task_Lock): Global_Task_Lock_Nesting has been moved to the
14054         Common_ATCB record.
14055         (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
14056         Common_ATCB record.
14057
14058         * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
14059         Fall_Back_Handler, and Specific_Handler.
14060
14061         * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
14062         defined in Ada.Task_Termination, to avoid circular dependencies.
14063         (Termination_Handler): Redefine this type here, alredy defined in
14064         Ada.Task_Termination, for avoiding circular dependencies.
14065         (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
14066         for storing task termination handlers. In addition,
14067         Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
14068         Common_ATCB because it is used by both the regular and the restricted
14069         run times.
14070         (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
14071         Common_ATCB because it is used by both the regular and the restricted
14072         run times.
14073         (Common_ATCB): Added a dynamic task analyzer field.
14074
14075         * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
14076         potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
14077         (Task_Wrapper): Call the task termination handler. It applies to all
14078         tasks but the environment task.
14079         (Finalize_Global_Tasks): Call the task termination procedure for the
14080         environment task. The call to Finalize_Global_List is now performed
14081         using the soft links mechanism.
14082         (Task_Wrapper): added dynamic stack analysis.
14083
14084         * s-tasuti.adb (Abort_Tasks): The code in charge of checking
14085         potentially blocking operations has been moved from
14086         System.Tasking.Stages.Abort_Tasks to this procedure. There can be
14087         direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
14088         through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
14089         this run-time check.
14090
14091         * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
14092         of task termination procedure.
14093         (Init_Tasking_Soft_Links): Install the task-safe version of the soft
14094         link for the task termination procedure.
14095
14096         * bindusg.adb: (Bindusg): Added documentation for -u option.
14097
14098         * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
14099         (Get_Main_C): Add handling of dynamic stack analysis.
14100         (Gen_Output_File_C): Add external functions for dynamic stack analysis.
14101
14102         * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
14103         (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
14104         (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
14105
14106         * opt.ads: Added flags used by dynamic stack measurement.
14107         (Max_Line_Length): Remove (not used anymore)
14108
14109         * s-io.ads, s-io.adb (Standard_Error): new subprogram
14110         (Standart_Output): new subprogram
14111         (Set_Output): new subprogram
14112         (Put): now uses the value of Current_Out to know if the output has to be
14113         send to stderr or stdout.
14114         
14115         * s-stausa.ads: Complete implementation.
14116
14117         * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
14118         
14119         * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
14120         list of Ada 05 files.
14121         (GNAT Library Units): Add AltiVec files.
14122
14123         * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
14124         g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
14125         g-alvety.ads, g-alvevi.ads: New files providing altivec API.
14126
14127 2005-12-09  Nicolas Setton  <setton@adacore.com>
14128
14129         * adaint.c (__gnat_locate_regular_file): Return immediately if
14130         file_name is empty.
14131
14132 2005-12-09  Javier Miranda  <miranda@adacore.com>
14133             Hristian Kirtchev  <kirtchev@adacore.com>
14134
14135         * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
14136         to the specification because the frontend generates code that uses this
14137         subprogram.
14138         (Set_Interface_Table): Add missing assertion.
14139         Update documentation describing the run-time structure.
14140         (Displace): New subprogram that displaces the pointer to the object
14141         to reference one of its secondary dispatch tables.
14142         (IW_Membership): Modified to use the new table of interfaces.
14143         (Inherit_TSD): Modified to use the new table of interfaces.
14144         (Register_Interface_Tag): Use the additional formal to fill the
14145         contents of the new table of interfaces.
14146         (Set_Interface_Table): New subprogram that stores in the TSD the
14147         pointer to the table of interfaces.
14148         (Set_Offset_To_Top): Use the additional formal to save copy of
14149         the offset value in the table of interfaces.
14150         Update structure of GNAT Primary and Secondary dispatch table diagram.
14151         Add comment section on GNAT dispatch table prologue.
14152         (Offset_To_Signature): Update the constant value of the Signature field.
14153         (Dispatch_Table): Update comment on hidden fields in the prologue.
14154         (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
14155         Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
14156         the type of formal parameter T to Tag, introduce additional assertions.
14157         (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
14158         conversion.
14159         (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
14160
14161         * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
14162         in all the calls to Expand_Interface_Thunk. Instead of referencing the
14163         record component containing the tag of the secondary dispatch table we
14164         have to use the Offset_To_Top run-time function to get this information;
14165         otherwise if the pointer to the base of the object has been displace
14166         we get a wrong value if we use the 'position attribute.
14167
14168         * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
14169         all the calls to Expand_Interface_Thunk.
14170         (Make_Secondary_DT): Secondary dispatch tables do not have a table of
14171         interfaces; hence the call to Set_Interface_Table was clearly wrong.
14172         (Collect_All_Interfaces): Modify the internal subprogram Collect to
14173         ensure that the interfaces implemented by the ancestors are placed
14174         at the header of the generated list.
14175         (Expand_Interface_Conversion): Handle the case in which the displacement
14176         associated with the interface conversion is not statically known. In
14177         this case we generate a call to the new run-time subprogram Displace.
14178         (Make_DT): Generate and fill the new table of interfaces.
14179         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
14180         Get_Tagged_Kind and Set_Tagged_Kind.
14181         (Tagged_Kind): New function that determines the tagged kind of a type
14182         with respect to limitedness and concurrency and returns a reference to
14183         RE_Tagged_Kind.
14184         (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
14185         Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
14186         primary dispatch table for a type.
14187         (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
14188         secondary dispatch table respectively of a tagged type.
14189
14190         * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
14191         (Expand_Interface_Conversion): New subprogram to indicate if the
14192         displacement of the type conversion is statically known.
14193         (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
14194
14195         * rtsfind.ads (RE_Offset_To_Top): New entity
14196         (RTU_Id): Add Ada_Task_Termination to the list so that it is made
14197         accessible to users.
14198         (Re_Displace): New entity
14199         (RE_Interface_Data): New entity
14200         (RE_Set_Interface_Data): New_Entity
14201         (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
14202         Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
14203         RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
14204         RE_TK_Tagged, RE_TK_Task.
14205
14206         * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
14207         Init_Secondary_Tags_Internal to allow its use with interface types and
14208         also to generate the code for the new additional actual required
14209         by Set_Offset_To_Top.
14210         (Build_Init_Statements): In case of components associated with abstract
14211         interface types there is no need to generate a call to its IP.
14212         (Freeze_Record_Type): Generate Select Specific Data tables only for
14213         concurrent types.
14214         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
14215         the bodies and specifications of the predefined primitive operations
14216         dealing with dispatching selects and abort, 'Callable, 'Terminated only
14217         for concurrent types.
14218
14219         * exp_sel.ads, exp_sel.adb: New files.
14220
14221         * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
14222         Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
14223         properly protected objects and attach handler in the case of the
14224         restricted profile.
14225         Move embeded package Select_Expansion_Utilities into a separate external
14226         package.
14227         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
14228         Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
14229         (Build_K, Build_S_Assignment): New subprograms, part of the select
14230         expansion utilities.
14231         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
14232         Expand_N_Timed_Entry_Call): Optimize expansion of select statements
14233         where the trigger is a dispatching procedure of a limited tagged type.
14234
14235 2005-12-09  Olivier Hainque  <hainque@adacore.com>
14236
14237         * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
14238         pointer initialization values. Make a SAVE_EXPR instead. Add comments
14239         about the use and expansion of SAVE_EXPRs in the various possible
14240         renaming handling cases.
14241         (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
14242         abusing DECL_FCONTEXT.
14243
14244 2005-12-09  Matthew Heaney  <heaney@adacore.com>
14245
14246         * a-convec.adb (Merge): Added assertions to check whether vector params
14247         are sorted.
14248
14249         * a-coinve.adb (Merge): Added assertions to check whether vector params
14250         are sorted.
14251
14252         * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
14253         draft.
14254         (Cursor'Read): raises PE
14255
14256         * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
14257         to its default value.
14258
14259         * a-cihama.adb: Manually check whether cursor's key and elem are
14260         non-null
14261
14262         * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
14263         (Merge): Assert that target and source lists are in order
14264         (Swap): Declare non-const temporaries, to pass to Splice
14265
14266         * a-cdlili.ads: (Splice): Changed param name and param mode
14267
14268         * a-cdlili.adb: (Splice): Changed param name and param mode
14269         (Merge): Assert that target and source lists are in order
14270         (Swap): Declare non-const temporaries, to pass to Splice
14271
14272         * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
14273         (Write): declare Stream param as not null
14274
14275         * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
14276         an exception message.
14277
14278 2005-12-09  Thomas Quinot  <quinot@adacore.com>
14279             Robert Dewar  <dewar@adacore.com>
14280
14281         * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
14282         which is the absolute maximum length we can support.
14283
14284         * frontend.adb: For the processing of configuration pragma files,
14285         remove references to Opt.Max_Line_Length, which is not checked anymore.
14286
14287         * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
14288         length.
14289
14290         * scn.adb, scng.adb: 
14291         Always check line length against the absolute supported maximum,
14292         Hostparm.Max_Line_Length.
14293
14294         * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
14295         value for the maximum line length is Max_Line_Length (not
14296         Column_Number'Last).
14297         Minor error msg update
14298         (Set_Style_Check_Options): New interface returning error msg
14299         Minor code reorganization (processing for 'M' was out of alpha order)
14300
14301         * switch-c.adb: New interface for Set_Style_Check_Options
14302
14303         * stylesw.ads (Set_Style_Check_Options): New interface returning error
14304         msg.
14305
14306 2005-12-09  Javier Miranda  <miranda@adacore.com>
14307
14308         * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
14309         with IP subprogram were only supported if there were limited types.
14310
14311         * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
14312         records with IP subprogram were only supported if there were limited
14313         types.
14314
14315 2005-12-09  Olivier Hainque  <hainque@adacore.com>
14316             Eric Botcazou  <ebotcazou@adacore.com>
14317
14318         * trans.c (tree_transform, emit_check): Adjust calls to
14319         build_call_raise, passing the now expected GNAT_NODE argument.
14320
14321         * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
14322         source line information than what the current global locus indicates
14323         when appropriate.
14324
14325         * utils2.c (build_simple_component_ref): Return 0 if the offset of the
14326         field has overflowed.
14327         (build_call_raise): Add a GNAT_NODE argument to convey better source
14328         line information than what the current global locus indicates when
14329         appropriate.
14330         (build_component_ref): Adjust call to build_call_raise.
14331
14332 2005-12-09  Pascal Obry  <obry@adacore.com>
14333
14334         * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
14335         the iterator is quitting iteration on parent directory.
14336
14337 2005-12-09  Javier Miranda  <miranda@adacore.com>
14338
14339         * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
14340         and the assignment to a class-wide object, before the assignment we
14341         generate a run-time check to ensure that the tag of the Target is
14342         covered by the tag of the source.
14343
14344 2005-12-09  Robert Dewar  <dewar@adacore.com>
14345
14346         * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
14347         parameter in call to Image_Wide_Character.
14348
14349         * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
14350         parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
14351         (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
14352         annoying FFFE/FFFF inconsistency.
14353
14354 2005-12-09  Robert Dewar  <dewar@adacore.com>
14355             Javier Miranda  <miranda@adacore.com>
14356             Ed Schonberg  <schonberg@adacore.com>
14357
14358         * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
14359         of type conversion.
14360         (Find_Interface): New subprogram that given a tagged type and one of its
14361         component associated with the secondary table of an abstract interface
14362         type, return the entity associated with such abstract interface type.
14363         (Make_Subtype_From_Expr): If type has unknown discriminants, always use
14364         base type to create anonymous subtype, because entity may be a locally
14365         declared subtype or generic actual.
14366         (Find_Interface): New subprogram that given a tagged type and one of its
14367         component associated with the secondary table of an abstract interface
14368         type, return the entity associated with such abstract interface type.
14369
14370         * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
14371         conversion cannot be handled at compile time. In this case we pass this
14372         information to the expander to generate the appropriate code.
14373
14374 2005-12-09  Robert Dewar  <dewar@adacore.com>
14375             Ed Schonberg  <schonberg@adacore.com>
14376             Gary Dismukes  <dismukes@adacore.com>
14377             Javier Miranda  <miranda@adacore.com>
14378             Hristian Kirtchev  <kirtchev@adacore.com>
14379
14380         * einfo.adb (Itype_Printed): New flag
14381         (Is_Limited_Type): Derived types do not inherit limitedness from
14382         interface progenitors.
14383         (Is_Return_By_Reference_Type): Predicate does not apply to limited
14384         interfaces.
14385
14386         * einfo.ads (Itype_Printed): New flag
14387         Move Is_Wrapper_Package to proper section
14388         Add missing Inline for Is_Volatile
14389
14390         * output.ads, output.adb (Write_Erase_Char): New procedure
14391         (Save/Restore_Output_Buffer): New procedures
14392         (Save/Restore_Output_Buffer): New procedures
14393
14394         * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
14395         Add missing support for anonymous access type
14396         (Write_Id): Insert calls to Write_Itype
14397         (Write_Itype): New procedure to output itypes
14398
14399         * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
14400         use of "limited" in declaration.
14401
14402         * sinfo.ads, sinfo.adb: 
14403         Formal derived types can carry an explicit "limited" indication.
14404
14405         * sem_ch3.adb: Add with and use of Targparm.
14406         (Create_Component): If Frontend_Layout_On_Target is True and the
14407         copied component does not have a known static Esize, then reset
14408         the size and positional fields of the new component.
14409         (Analyze_Component_Declaration): A limited component is
14410         legal within a protected type that implements an interface.
14411         (Collect_Interfaces): Do not add to the list the interfaces that
14412         are implemented by the ancestors.
14413         (Derived_Type_Declaration): If the parent of the full-view is an
14414         interface perform a transformation of the tree to ensure that it has
14415         the same parent than the partial-view. This simplifies the job of the
14416         expander in order to generate the correct object layout, and it is
14417         needed because the list of interfaces of the full-view can be given in
14418         any order.
14419         (Process_Full_View): The parent of the full-view does not need to be
14420         a descendant of the parent of the partial view if both parents are
14421         interfaces.
14422         (Analyze_Private_Extension_Declaration): If declaration has an explicit
14423         "limited" the parent must be a limited type.
14424         (Build_Derived_Record_Type): A derived type that is explicitly limited
14425         must have limited ancestor and progenitors.
14426         (Build_Derived_Type): Ditto.
14427         (Process_Full_View): Verify that explicit uses of "limited" in partial
14428         and full declarations are consistent.
14429         (Find_Ancestor_Interface): Remove function.
14430         (Collect_Implemented_Interfaces): New procedure used to gather all
14431         implemented interfaces by a type.
14432         (Contain_Interface): New function used to check whether an interface is
14433         present in a list.
14434         (Find_Hidden_Interface): New function used to determine whether two
14435         lists of interfaces constitute a set equality. If not, the first
14436         differing interface is returned.
14437         (Process_Full_View): Improve the check for the "no hidden interface"
14438         rule as defined by AI-396.
14439
14440 2005-12-09  Robert Dewar  <dewar@adacore.com>
14441
14442         * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
14443         types, not on record subtypes.
14444         (Freeze_Entity): Code cleanup. Add barrier to the loop
14445         that generates the references for primitive operations. This allows to
14446         remove an unnecessary exception handler.
14447         Code reformatting and comment clean ups.
14448
14449 2005-12-09  Vincent Celier  <celier@adacore.com>
14450
14451         * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
14452         If GNAT CHECK is called with a project file, but with no
14453         source on the command line, call gnatcheck with all the compilable
14454         sources of the project.
14455         Take into account the new command Check, for gnatcheck. Treat as for
14456         other ASIS tools: take into account project, specific package Check and
14457         Compiler switches.
14458         For ASIS tools, add the switches in package Compiler for
14459         the invocation of the compiler.
14460
14461         * prj-attr.adb: Add package Check and its attributes
14462
14463         * vms_conv.ads (Command_Type): New command Check, for gnatcheck
14464
14465         * vms_conv.adb (Initialize): Change Params of command Check to
14466         unlimited files.
14467         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
14468         Add data for new command Check
14469
14470         * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
14471         ELIM.
14472         Add qualifiers for Check command options
14473         (Command_Type): New command Check
14474
14475 2005-12-09  Thomas Quinot  <quinot@adacore.com>
14476
14477         * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
14478         command line switch overruns the output buffer.
14479
14480 2005-12-09  Robert Dewar  <dewar@adacore.com>
14481
14482         * sem_prag.adb: Processing for new pragma Complete_Representation
14483         (Analyze_Pragma, case Debug): Implement two argument form.
14484
14485         * par-prag.adb: Entry for new pragma Complete_Representation
14486         (Prag, case Debug): Recognize two argument form of pragma Debug
14487         New interface for Set_Style_Check_Options.
14488
14489         * sem_ch13.adb: Implement new pragma Complete_Representation.
14490
14491         * snames.adb, snames.ads, snames.h: Entry for new pragma
14492         Complete_Representation.
14493
14494 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
14495
14496         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
14497         available user-specified stream attributes on limited parameters to
14498         also test the type directly rather than only its underlying type (for
14499         Ada 95) and, in the case of Ada 2005, to check that the user-specified
14500         attributes are visible at the point of the subprogram declaration.
14501         For Ada 2005, the error message is modified to indicate that the
14502         type's stream attributes must be visible (again, only for -gnat05).
14503
14504 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
14505
14506         * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
14507         anonymous access types.
14508
14509         * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
14510         matching of anonymous access types and anonymous access to subprogram
14511         types. 'R'M 4.9.1 (2/2).
14512
14513 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
14514
14515         * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
14516         rule prematurely when operands are universal, remaining ambiguities
14517         will be removed during resolution.
14518         Code cleanup.
14519
14520         * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
14521         that are Ada 2005 functions.
14522         (Has_Abstract_Interpretation): Subsidiary to
14523         Remove_Conversions, to remove ambiguities caused by abstract operations
14524         on numeric types when operands are universal.
14525
14526 2005-12-09  Robert Dewar  <dewar@adacore.com>
14527
14528         * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
14529         for case where spec is categorized.
14530
14531 2005-12-09  Javier Miranda  <miranda@adacore.com>
14532
14533         * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
14534         types use the corresponding record type. This was not needed before
14535         the implementation of Ada 2005 synchronized types because
14536         concurrent types were never tagged types in Ada 95.
14537
14538 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
14539
14540         * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
14541         first subtype of the type of the expression to verify that it is a
14542         legal Time type.
14543
14544 2005-12-09  Robert Dewar  <dewar@adacore.com>
14545
14546         * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
14547         decoded names.
14548
14549 2005-12-09  Quentin Ochem  <ochem@adacore.com>
14550             Robert Dewar  <dewar@adacore.com>
14551             Ed Falis  <falis@adacore.com>
14552             Florian Villoing  <villoing@adacore.com>
14553             Thomas Quinot  <quinot@adacore.com>
14554             Arnaud Charlet  <charlet@adacore.com>
14555
14556         * gnat_ugn.texi: Created section "Stack Related Tools"
14557         Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
14558         "Stack Related Tools"
14559         Added subsection "Static Stack Usage Analysis"
14560         Added subsection "Dynamic Stack Usage Analysis"
14561         Include documentation of itypes in sprint listing (-gnatG)
14562         Documented gnatbind -D switch (default sec stack size for fixed sec
14563         stacks).
14564         Added Interrupt_State and Persistent_BSS to list of configuration
14565         pragmas.
14566         Add missing doc for maximum value of nnn in -gnatyMnnn
14567
14568         * gnat_rm.texi: Document the AltiVec binding.
14569         Add documentation for pragma Complete_Representation
14570         Shortened an overly long line (> 79 chars)
14571         Clarify documentation of unchecked conversion in implementation
14572         defined cases.
14573         Document two argument form of pragma Debug
14574
14575         * types.ads (Column_Number): Update documentation.
14576
14577         * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
14578         library level Finalize_Storage_Only objects (these are not attached to
14579         any finalization list).
14580
14581         * system-mingw.ads: (Underlying_Priorities): Update comment.
14582
14583 2005-12-09  Robert Dewar  <dewar@adacore.com>
14584
14585         * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
14586         i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
14587         inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
14588         i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
14589         krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
14590         lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
14591         interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
14592         s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
14593         reformatting.
14594
14595 2005-12-09  Robert Dewar  <dewar@adacore.com>
14596
14597         * s-vaflop-vms-alpha.adb: (Ne_F): New function
14598         (Ne_G): New function
14599
14600         * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
14601         for tag assignment.
14602         (Rewrite_Comparison): Handle case where operation is not a comparison
14603         and ignore, and also handle type conversion case.
14604
14605 2005-12-09  Thomas Quinot  <quinot@adacore.com>
14606
14607         * exp_aggr.ads: Fix typo in comment.
14608         ???-mark Convert_Aggr_In_Assignment as needing documentation.
14609
14610 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
14611
14612         * layout.adb: Replace various uses of byte by storage unit throughout.
14613         (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
14614         static size, convert to storage units before returning, to conform to
14615         spec.
14616
14617 2005-12-09  Matthew Gingell  <gingell@adacore.com>
14618
14619         * g-exctra.ads: Fix typo in comment.
14620
14621 2005-12-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14622
14623         * utils.c: Minor reformatting.
14624
14625 2005-12-09  Robert Dewar  <dewar@adacore.com>
14626
14627         * g-soccon.ads: 
14628         Further comment fixes to make the status of the default file clear
14629
14630         * s-bitops.adb: Clarify comment for Bits_Array
14631
14632 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
14633
14634         * Make-lang.in (ada.install-normal): Remove.
14635
14636 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
14637
14638         * Make-lang.in: Remove all dependencies on s-gtype.
14639
14640 2005-12-05  Richard Guenther  <rguenther@suse.de>
14641
14642         * utils.c (convert): Use fold_convert where appropriate.
14643
14644 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
14645
14646         * Makefile.in (gnatlib): Fix regex, using \. instead of . when
14647         a period is meant.
14648
14649 2005-12-02  Richard Guenther  <rguenther@suse.de>
14650
14651         * trans.c (gnat_gimplify_expr): Use buildN instead of build.
14652
14653 2005-12-01  Roger Sayle  <roger@eyesopen.com>
14654
14655         * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
14656         nodes.
14657
14658 2005-11-23  Laurent GUERBY  <laurent@guerby.net>
14659
14660         * mlib-prj.adb (Build_Library): Initialize Delete.
14661
14662 2005-11-21  Joel Sherrill <joel.sherrill@oarcorp.com>
14663
14664         * socket.c: Add extern int h_errno for rtems since networking header
14665         files are not available at this point in a tool bootstrap. Newlib
14666         only has basic C library header files.
14667
14668 2005-11-19  Richard Guenther  <rguenther@suse.de>
14669         Roger Sayle  <roger@eyesopen.com>
14670
14671         PR ada/23717
14672         * misc.c (internal_error_function): Don't use vsprintf to format
14673         the error message text, instead use pp_format_text and the new
14674         pretty printer APIs.  This allows handling of %qs, %w, etc.
14675
14676 2005-11-18  Laurent GUERBY  <laurent@guerby.net>
14677
14678         PR ada/24857
14679         * Makefile.in: Use s-auxdec-empty for RTEMS.
14680
14681 2005-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14682
14683         PR ada/22333
14684         * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
14685         a temporary if taking the address of something that is neither
14686         reference, declaration, or constant, since the gimplifier
14687         can't handle that case.
14688
14689 2005-11-17  Laurent GUERBY  <laurent@guerby.net>
14690
14691         PR ada/24857
14692         * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
14693
14694 2005-11-16  Richard Guenther  <rguenther@suse.de>
14695
14696         * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
14697
14698 2005-11-16  Joel Sherrill <joel.sherrill@oarcorp.com>
14699
14700         PR ada/24855
14701         * raise-gcc.c: Add missing stdarg.h include.
14702  
14703 2005-11-16  Richard Guenther  <rguenther@suse.de>
14704
14705         * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
14706         (ada/misc.o): Likewise.
14707
14708 2005-11-14  Thomas Quinot  <quinot@adacore.com>
14709
14710         * g-soccon.ads: Minor reformatting. Update comments.
14711
14712         * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
14713         gain visibility on the declaration of struct timeval.
14714
14715         * g-soccon-freebsd.ads,
14716         g-soccon-darwin.ads,
14717         g-soccon-tru64.ads,
14718         g-soccon-aix.ads,
14719         g-soccon-irix.ads,
14720         g-soccon-hpux.ads,
14721         g-soccon-solaris.ads,
14722         g-soccon-vms.ads,
14723         g-soccon-mingw.ads,
14724         g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
14725
14726         * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
14727         g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
14728         g-soccon-linux-x86.ads: New files.
14729
14730         * g-socthi-mingw.adb: 
14731         (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
14732
14733         * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
14734         (time_t, suseconds_t): New types constructed to match the tv_sec
14735         and tv_usec fields of C struct timeval.
14736         (Timeval): Construct structure in terms of the new types.
14737         (Host_Errno): New function (imported from socket.c), returns last hosts
14738         database error.
14739
14740         * g-socthi-vxworks.adb:  Add error handling circuitry.
14741
14742         * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
14743         components of struct timeval.
14744         (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
14745         (Check_Selector): In error conditions, clear internal socket sets to
14746         avoid a memory leak.
14747         (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
14748         Send_Timeout, Receive_Timeout.
14749
14750         * g-socthi.ads (time_t, suseconds_t): New types constructed to match
14751         the tv_sec and tv_usec fields of C struct timeval.
14752         (Timeval): Construct structure in terms of the new types.
14753         (Host_Errno): New function (imported from socket.c), returns last hosts
14754         database error.
14755
14756         * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
14757         hosts database last error code.
14758
14759         * gen-soccon.c: Complete value expansion should not be performed on
14760         TARGET, as it has the form of a math expression, and some components
14761         may be platform-defined macros.
14762         For VxWorks, generate the OK and ERROR values.
14763         New constants giving the sizes of the components of C struct timeval.
14764
14765 2005-11-14  Robert Dewar  <dewar@adacore.com>
14766             Ed Schonberg  <schonberg@adacore.com>
14767
14768         PR ada/18434
14769         * types.ads: Include All_Checks in Suppress_Array
14770
14771         * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
14772         not(a=b), since we no longer do this rewriting, and hence it is not
14773         needed.
14774         (Elaboration_Checks_Suppressed): Add special casing to
14775         deal with different cases of static and dynamic elaboration checks (all
14776         checks does not count in the first case, but does in the second).
14777         (Expr_Known_Valid): Do not assume that the result of any arbitrary
14778         function call is valid, since this is not the case.
14779         (Ensure_Valid): Do not apply validity check to a real literal
14780         in a universal or fixed context
14781
14782         * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
14783         elementary types using the operator in standard. It is cleaner not to
14784         modify the programmers intent, especially in the case of floating-point.
14785         (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
14786         it did not matter because we always rewrote a/=b to not(a=b).
14787         (Expand_Allocator_Expression): For an allocator expression whose nominal
14788         subtype is an unconstrained packed type, convert the expression to its
14789         actual constrained subtype.
14790         Implement warning for <= or >= where < or > not possible
14791         Fix to Vax_Float tests (too early in many routines, causing premature
14792         Vax_Float expansions.
14793
14794         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
14795         to be used with packages and generic packages as well as with
14796         subprograms.
14797         (Suppress): Set All_Checks, but not Elaboration_Check, for case
14798         of pragma Suppress (All_Checks)
14799         (Analyze_Pragma, case Warnings): Implement first argument allowed to be
14800         a string literal for precise control over warnings.
14801         Avoid raise of pragma in case of unrecognized pragma and just return
14802         instead.
14803
14804         * sem_prag.ads: Minor reformatting
14805
14806         * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
14807         with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
14808         Switch. Do not handle any exception.
14809         Include -gnatwx as part of -gnatg (warn on redundant parens)
14810         Allow optional = after -gnatm
14811         (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
14812         longer sets Elaboration_Checks.
14813         Code to set warning mode moved to Sem_Warn
14814         so that it can be shared by pragma processing.
14815
14816         * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
14817         statement.
14818
14819         * s-taprop-solaris.adb: 
14820         Change some <= to =, to avoid new warning
14821
14822         * a-exexda.adb, prj-proc.adb: 
14823         Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
14824         Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
14825
14826 2005-11-14  Robert Dewar  <dewar@adacore.com>
14827
14828         * exp_vfpt.adb: Handle /= case
14829         (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
14830         so that we do not get duplicate scaling for fixed point conversions.
14831
14832         * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
14833
14834 2005-11-14  Matthew Gingell  <gingell@adacore.com>
14835
14836         * system-lynxos-ppc.ads, system-lynxos-x86.ads: 
14837         Increase default priority on Lynx from 15 to 17, and meet the Ada
14838         requirement that Default_Priority be ((Priority'First +
14839         Priority'Last) / 2) by increasing the range of Interrupt_Priority.
14840
14841 2005-11-14  Vincent Celier  <celier@adacore.com>
14842
14843         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
14844         mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
14845         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
14846         mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
14847         mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
14848         mlib-tgt-lynxos.adb (DLL_Prefix): New function
14849
14850 2005-11-14  Doug Rupp  <rupp@adacore.com>
14851
14852         * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
14853         private part.
14854
14855 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
14856
14857         * s-traces-default.adb, s-trafor-default.ads,
14858         s-tratas-default.adb: Fix compilation errors.
14859
14860 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
14861
14862         * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
14863         raising the exception so the memory used is freed.
14864
14865 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
14866
14867         * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
14868         (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
14869         (convert_address): Update comments and list of platforms using this.
14870
14871         * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
14872         no longer used.
14873
14874 2005-11-14  Pascal Obry  <obry@adacore.com>
14875             Vincent Celier  <celier@adacore.com>
14876
14877         * gnatdll.adb (Parse_Command_Line): Remove redundant use of
14878         GNAT.Command_Line.
14879
14880         * memroot.adb: Remove redundant with/use clause on
14881         System.Storage_Elements.
14882
14883 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
14884
14885         * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
14886         (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
14887         related code to a-exexpr.adb
14888         (Save_Occurrence_And_Private): Move GCC EH related code to
14889         a-exexpr-gcc.adb
14890         (Raise_Current_Excep): Add new variable Id with pragma
14891         volatile, to ensure that the variable lives on stack.
14892
14893         * a-exexpr-gcc.adb, raise-gcc.c: New file.
14894
14895         * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
14896         from a-except.adb.
14897         Move GCC EH related code to a-exexpr-gcc.adb
14898
14899         * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
14900         64-bit Solaris
14901         Split the Linux version of g-soccon into separate variants for 32 and 64
14902         bit platforms.
14903         (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
14904         vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
14905         install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
14906         of host variable $(RANLIB_FLAGS).
14907         (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
14908         Code clean up: remove unused/obsolete targets.
14909         (EH_MECHANISM): New variable introduced to differenciate between the
14910         two EH mechanisms statically.
14911         (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
14912         (LIBGNAT_OBJS): Add raise-gcc.o
14913         (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
14914         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
14915         supports VxWorks 6 RTPs.
14916         (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
14917         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
14918
14919         * raise.c: Move all GCC EH-related routines to raise-gcc.c
14920
14921 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
14922
14923         * s-tassta.adb (Create_Task): Move the code in charge of resetting the
14924         deferral level, when abort is not allowed, to a later stage (the
14925         Task_Wrapper).
14926         (Task_Wrapper): If Abort is not allowed, reset the deferral level since
14927         it will not get changed by the generated code. It was previously done
14928         in Create_Task.
14929
14930 2005-11-14  Thomas Quinot  <quinot@adacore.com>
14931             Olivier Hainque  <hainque@adacore.com>
14932             Eric Botcazou  <ebotcazou@adacore.com>
14933
14934         * decl.c:
14935         Factor common code to build a storage type for an unconstrained object
14936         from a fat or thin pointer type and a constrained object type.
14937         (annotate_value): Handle BIT_AND_EXPR.
14938         (annotate_rep): Don't restrict the back annotation of inherited
14939         components to the type_annotate_only case.
14940         (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
14941         we are not defining the type.
14942         <E_Record_Type>: Likewise.
14943         (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
14944         to get advantage of the new maybe_stabilize_reference interface, to
14945         ensure that what we reference is indeed stabilized instead of relying
14946         on assumptions on what the stabilizer does.
14947         (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
14948         type imported through a limited_with clause, use its non-limited view.
14949         (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
14950         differentiation.
14951         (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
14952         of #if sections + explicit comparisons of convention identifiers.
14953         (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
14954         before early-returning for certain types when code generation is
14955         disabled.
14956         (gnat_to_gnu_entity) <object>: Adjust comment attached to the
14957         nullification of gnu_expr we do for objects with address clause and
14958         that we are not defining.
14959         (elaborate_expression_1): Do not create constants when creating
14960         variables needed by the debug info: the dwarf2 writer considers that
14961         CONST_DECLs is used only to represent enumeration constants, and emits
14962         nothing for them.
14963         (gnat_to_gnu_entity) <object>: When turning a non-definition of an
14964         object with an address clause into an indirect reference, drop the
14965         initializing expression.
14966         Include "expr.h".
14967         (STACK_CHECK_BUILTIN): Delete.
14968         (STACK_CHECK_PROBE_INTERVAL): Likewise.
14969         (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
14970         (STACK_CHECK_MAX_VAR_SIZE): Likewise.
14971         (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
14972         corresponding to the renamed object as ignored for debugging purposes.
14973
14974         * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
14975         related): For a prefix that is a dereference of a fat or thin pointer,
14976         if there is an actual subtype provided by the front-end, use that
14977         subtype to build an actual type with bounds template.
14978         (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
14979         is provided by the front-end, use that subtype to compute the size of
14980         the deallocated object.
14981         (gnat_to_gnu): When adding a statement into an elaboration procedure,
14982         check for a potential violation of a No_Elaboration_Code restriction.
14983         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
14984         with extra arguments to control whether to recurse through non-values
14985         and to let the caller know if the stabilization has succeeded.
14986         (gnat_stabilize_reference): Now a simple wrapper around
14987         maybe_stabilize, for common uses without restriction on lvalues and
14988         without need to check for the success indication.
14989         (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
14990         pass false instead of 0 as the FORCE argument which is a bool.
14991         (Identifier_to_gnu): Remove checks ensuring that an renamed object
14992         attached to a renaming pointer has been properly stabilized, as no such
14993         object is attached otherwise.
14994         (call_to_gnu): Invoke create_var_decl to create the temporary when the
14995         function uses the "target pointer" return mechanism.
14996         Reinstate conversion of the actual to the type of the formal
14997         parameter before any other specific treatment based on the passing
14998         mechanism. This turns out to be necessary in order for PLACEHOLDER
14999         substitution to work properly when the latter type is unconstrained.
15000
15001         * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
15002         common pattern.
15003         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
15004         with extra arguments to control whether to recurse through non-values
15005         and to let the caller know if the stabilization has succeeded.
15006
15007         * utils2.c (gnat_build_constructor): Only sort the fields for possible
15008         static output of record constructor if all the components are constant.
15009         (gnat_build_constructor): For a record type, sort the list of field
15010         initializers in increasing bit position order.
15011         Factor common code to build a storage type for an unconstrained object
15012         from a fat or thin pointer type and a constrained object type.
15013         (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
15014         types variants, and process special cases of VIEW_CONVERT expressions
15015         as their NOP_EXPR counterpart to ensure we get to the
15016         CORRESPONDING_VARs associated with CONST_DECls.
15017         (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
15018         on the right-hand side.
15019
15020         * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
15021         a common pattern.
15022         (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
15023         are converting back to its original type.
15024         (convert) <JM input>: Fallthrough regular conversion code instead of
15025         extracting the object if converting to a type variant.
15026         (create_var_decl): When a variable has an initializer requiring code
15027         generation and we are at the top level, check for a potential violation
15028         of a No_Elaboration_Code restriction.
15029         (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
15030         SIZE and SIZE_UNIT which we need for later back-annotations.
15031         * utils.c: (convert) <STRING_CST>: Remove obsolete code.
15032         <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
15033         is an unchecked union.
15034         (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
15035         (convert) <VIEW_CONVERT_EXPR>: When the types have the same
15036         main variant, just replace the VIEW_CONVERT_EXPR.
15037         <UNION_TYPE>: Revert 2005-03-02 change.
15038
15039         * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
15040
15041         * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
15042
15043 2005-11-14  Matthew Heaney  <heaney@adacore.com>
15044
15045         * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads, 
15046         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb, 
15047         a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads, 
15048         a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb, 
15049         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
15050         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb: 
15051         Compiles against the spec for ordered maps described in sections
15052         A.18.6 of the most recent (August 2005) AI-302 draft.
15053
15054 2005-11-14  Olivier Hainque  <hainque@adacore.com>
15055
15056         * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
15057         to ensure bias adjustments take place when need be and to prevent
15058         occurrences of intermediate overflows.
15059
15060 2005-11-14  Matthew Gingell  <gingell@adacore.com>
15061             Olivier Hainque  <hainque@adacore.com>
15062
15063         * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
15064         ia64 HP-UX.
15065
15066         * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
15067         tracebacks on ia64 HP-UX and provide explanatory comment.
15068         Enable backtraces on ia64 GNU/Linux.
15069         (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
15070         base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
15071
15072 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
15073             Javier Miranda  <miranda@adacore.com>
15074
15075         * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
15076         exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
15077         exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
15078         einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
15079
15080         * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
15081         properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
15082         assertions).
15083
15084         * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
15085         subprogram that generates the external name associated with a
15086         secondary dispatch table.
15087         (Get_Secondary_DT_External_Name): New subprogram that generates the
15088         external name associated with a secondary dispatch table.
15089
15090 2005-11-14  Emmanuel Briot  <briot@adacore.com>
15091
15092         * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
15093         line in the ALI file to include both an instantiation reference, and a
15094         returned value.
15095
15096 2005-11-14  Vincent Celier  <celier@adacore.com>
15097
15098         * clean.adb (Check_Project): Look for Ada code in extending project,
15099         even if Ada is not specified as a language.
15100         Use new function DLL_Prefix for DLL_Name
15101         (Clean_Interface_Copy_Directory): New procedure
15102         (Clean_Library_Directory): New procedure
15103         (Clean_Directory): Remove procedure, no longer used
15104         (Clean_Project): Do not delete any file in an externally built project
15105
15106         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
15107         directory of an extending project, even when there are no Ada source
15108         present.
15109         (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
15110         (Set_Ada_Paths.Add.Recursive_Add): Ditto
15111
15112         * mlib-prj.adb (Check_Library): For all library projects, get the
15113         library file timestamp.
15114         (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
15115         (Build_Library): Use new function DLL_Prefix for the DLL_Name
15116         (Clean): Remove procedure, no longer used
15117         (Ultimate_Extension_Of): New function
15118         (Build_Library): When cleaning the library directory, only remove an
15119         existing library file and any ALI file of a source of the project.
15120         When cleaning the interface copy directory, remove any source that
15121         could be a source of the project.
15122
15123         * prj.ads, prj.adb (Project_Empty): Add values of new components
15124         Library_TS and All_Imported_Projects.
15125         (Project_Empty): Add values for new components of Project_Data:
15126         Library_ALI_Dir and Display_Library_ALI_Dir
15127
15128         * prj-attr.adb: New project level attribute name Library_ALI_Dir
15129
15130         * prj-nmsc.adb (Check_Library_Attributes): Take into account new
15131         attribute Library_ALI_Dir.
15132         (Check_Library_Attributes): The library directory cannot be the same as
15133         any source directory of the project tree.
15134         (Check_Stand_Alone_Library): The interface copy directory cannot be
15135         the same as any source directory of the project tree.
15136
15137         * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
15138         all temporary files.
15139
15140 2005-11-14  Robert Dewar  <dewar@adacore.com>
15141             Ed Schonberg  <schonberg@adacore.com>
15142
15143         * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
15144         (Check_Elab_Call): A call within a protected body is never an
15145         elaboration call, and does not require checking.
15146         (Same_Elaboration_Scope): Take into account protected types for both
15147         entities.
15148         (Activate_Elaborate_All_Desirable): New procedure
15149
15150         * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
15151         desirable
15152
15153         * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
15154         (Elab_Error_Msg): Use -da to include internal unit links, not -de.
15155
15156         * lib-writ.ads, lib-writ.adb: 
15157         Implement new AD/ED for Elaborate_All/Elaborate desirable
15158         Use new Elaborate_All_Desirable flag in N_With_Clause node
15159
15160         * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
15161         N_Free_Statement nodes.
15162         Define new class N_Subprogram_Instantiation
15163         Add Elaborate_Desirable flag to N_With_Clause node
15164         Add N_Delay_Statement (covering two kinds of delay)
15165
15166         * debug.adb: Introduce d.f flag for compiler
15167         Add -da switch for binder
15168
15169 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
15170             Cyrille Comar  <comar@adacore.com>
15171
15172         * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
15173         for task component, in the case of a limited aggregate. The enclosed
15174         object declaration will create it earlier. Otherwise, in the case of a
15175         nested aggregate, the object may appear in the wrong scope.
15176         (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
15177         (Gen_Assign): If the component being assigned is an array type and the
15178         expression is itself an aggregate, wrap the assignment in a block to
15179         force finalization actions on the temporary created for each row of the
15180         enclosing object.
15181         (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
15182         structures are initialized after all discriminants are set so that
15183         they can be accessed even when their offset is dynamic.
15184
15185 2005-11-14  Robert Dewar  <dewar@adacore.com>
15186             Hristian Kirtchev  <kirtchev@adacore.com>
15187
15188         * sem_attr.adb: Implement Machine_Rounding attribute
15189         (Analyze_Access_Attribute): The access attribute may appear within an
15190         aggregate that has been expanded into a loop.
15191         (Check_Task_Prefix): Add semantic check for attribute 'Callable and
15192         'Terminated whenever the prefix is of a task interface class-wide type.
15193         (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
15194         the prefix is of a task interface class-wide type.
15195
15196         * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
15197         to avoid warnings.
15198
15199         * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
15200         Remove pragma Inline for [Unaligned_]Valid.
15201         Add comments that Valid routines do not work for Vax_Float
15202
15203         * exp_attr.adb: Implement Machine_Rounding attribute
15204
15205         * snames.h: Add entry for Machine_Rounding attribute
15206
15207 2005-11-14  Javier Miranda  <miranda@adacore.com>
15208             Robert Dewar  <dewar@adacore.com>
15209             Hristian Kirtchev  <kirtchev@adacore.com>
15210
15211         * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
15212         and related): For a prefix that is an explicit dereference of an
15213         access to unconstrained packed array type, annotate the dereference
15214         with an actual subtype so GIGI can make a correct size computation.
15215         (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
15216         'Unrestricted_Access, if the designated type is an interface we
15217         add a type conversion to force the displacement of the pointer
15218         to the secondary dispatch table.
15219         Use Universal_Real instead of Long_Long_Float when we need a high
15220         precision float type for the generated code (prevents gratuitous
15221         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
15222         (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
15223         'Terminated for task interface class-wide objects. Generate a call to
15224         the predefined dispatching routine used to retrieve the _task_id from
15225         a task corresponding record.
15226         (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
15227
15228         * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
15229         (Check_Dispatching_Operation): Protect the frontend againts
15230         previously detected errors.
15231
15232         * Makefile.rtl: Add new instantiations of system.fat_gen
15233
15234         * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads: 
15235         Change name of instantiated package for better consistency
15236         with newly added system.fat_gen instantiations.
15237
15238         * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
15239         s-fvagfl.ads: New files.
15240
15241 2005-11-14  Cyrille Comar  <comar@adacore.com>
15242             Thomas Quinot  <quinot@adacore.com>
15243
15244         * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
15245         assignment of a value of a tagged type that has been rewritten to a
15246         block statement, it is known by construction that no checks are
15247         necessary for the statements within the block: analyze it with checks
15248         suppressed.
15249         (Expand_N_If_Statement): When killing a dead then-branch in an
15250         if-statement that has elsif_parts, recompute the Current_Value node
15251         for any entity whose value is known from the condition of the first
15252         elsif_part.
15253         (Expand_N_Return_Statement): When returning a mutable record, convert
15254         the return value into its actual subtype in order to help the backend
15255         to return the actual size instead of the maximum. This is another
15256         aftermath of not returning mutable records on the sec-stack anymore.
15257
15258         * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
15259         handling of error msg for suspicious reverse range iteration.
15260         (Check_Possible_Current_Value_Condition): Move declaration from body to
15261         spec, to allow this subprogram to be called from exp_ch5.
15262
15263 2005-11-14  Thomas Quinot  <quinot@adacore.com>
15264
15265         * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
15266         generate a set of nested array aggregates instead of a single flat
15267         aggregate for multi-dimensional arrays.
15268
15269 2005-11-14  Pascal Obry  <obry@adacore.com>
15270
15271         * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
15272         by spawnve is a process handle, no need to convert. Add a parameter
15273         close to control wether the process handle must be closed.
15274         (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
15275         a process handle, not need to convert.
15276         (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
15277
15278         * g-expect.adb: (Kill): Document the new close parameter.
15279         (Close): Do not release the process handle in the kill there as
15280         waitpid() is using it.
15281         (Send_Signal): Release the process handle.
15282
15283 2005-11-14  Robert Dewar  <dewar@adacore.com>
15284
15285         * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
15286         need a high precision float type for the generated code (prevents
15287         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
15288         used).
15289
15290         * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
15291         need a high precision float type for the generated code (prevents
15292         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
15293         used).
15294         (Expand_Width_Attribute): In configurable run-time, the attribute is not
15295         allowed on non-static enumeration subtypes. Force a load error to emit
15296         the correct diagnostic.
15297
15298 2005-11-14  Thomas Quinot  <quinot@adacore.com>
15299             Robert Dewar  <dewar@adacore.com>
15300             Ed Schonberg  <schonberg@adacore.com>
15301
15302         * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
15303         subtype to compute the size of the designated object at run-time,
15304         create such a subtype and store it in the Actual_Designated_Subtype
15305         attribute of the N_Free_Statement.
15306         Generate itype for classwide designated object in both cases of
15307         user-specified storage pool: specific and class-wide, not only in the
15308         specific case.
15309         Raise CE when trying to set a not null access type object to null.
15310         (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
15311         an explicit loop, because freeze nodes make its position variable.
15312
15313         * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
15314         null object.
15315
15316 2005-11-14  Javier Miranda  <miranda@adacore.com>
15317
15318         * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
15319         Build_Stream_Procedure): Add the null-excluding attribute to the first
15320         formal.
15321         This has no semantic meaning under Ada95 mode but it is a
15322         requirement under Ada05 mode.
15323
15324         * par-ch3.adb (P_Access_Definition): Addition of warning message if
15325         the null exclusion is used under Ada95 mode
15326         (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
15327         (P_Access_Definition): Remove assertion that forbids the use of
15328         the null-exclusion feature in Ada95.
15329
15330 2005-11-14  Robert Dewar  <dewar@adacore.com>
15331
15332         * impunit.adb: Exclude container helper units not intended for use by
15333         users.
15334
15335 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
15336
15337         * freeze.adb (Freeze_Entity): For an access formal that is an access
15338         to subprogram, freeze the anonymous subprogram type at the same time,
15339         to prevent later freezing in the wrong scope, such as the enclosing
15340         subprogram body.
15341         (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
15342         subprogram whenever available.
15343
15344 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
15345
15346         PR ada/23732
15347         * gnatvsn.ads (Library_Version): Bump to 4.1
15348
15349 2005-11-14  Robert Dewar  <dewar@adacore.com>
15350
15351         * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
15352         Storage_Offset to avoid wrap around causing invalid results.
15353
15354 2005-11-14  Pascal Obry  <obry@adacore.com>
15355
15356         * gnatbind.adb (Is_Cross_Compiler): New function returning True for
15357         cross-compiler.
15358         (Scan_Bind_Arg): Fail with an error message if -M option is used
15359         on a native compiler.
15360
15361 2005-11-14  Robert Dewar  <dewar@adacore.com>
15362             Vincent Celier  <celier@adacore.com>
15363
15364         * gprep.adb: Implement -C switch to scan comments
15365
15366         * scng.adb: Scan comment symbol separately if Replace_In_Comments set
15367
15368         * scans.ads: Comment updates (including new use of Tok_Comment in
15369         preprocessing)
15370
15371         * opt.ads: Add documentation for flags that are used by gprmake,
15372         currently and in the next version of gprmake.
15373         (Verbosity_Level): New variable
15374         Add Replace_In_Comments switch
15375
15376         * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
15377         and -vm.
15378         Add /REPLACE_IN_COMMENTS for gnatprep -C switch
15379
15380 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
15381
15382         * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
15383         message, friendlier.
15384
15385 2005-11-14  Robert Dewar  <dewar@adacore.com>
15386
15387         * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
15388
15389 2005-11-14  Doug Rupp  <rupp@adacore.com>
15390
15391         * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
15392
15393 2005-11-14  Robert Dewar  <dewar@adacore.com>
15394
15395         * interfac.ads: Change declarations of IEEE float types so that we no
15396         longer need a separate version of this package for VMS.
15397
15398 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
15399
15400         * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
15401         internal entity created for the declaration of a child subprogram body
15402         with no spec as coming from source, to generate proper cross-reference
15403         information.
15404
15405 2005-11-14  Vincent Celier  <celier@adacore.com>
15406
15407         * make.adb (Compile_Sources): Change verbose message to minimum
15408         verbosity level High for "is in an Ada library", "is a read-only
15409         library" and "is an internal library",
15410         (Create_Binder_Mapping_File): Path name of ALI file for library project
15411         must include the library directory, not the object directory.
15412         (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
15413         for new switches -vl, -vm and -vh.
15414         (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
15415         (Check): Use minimum verbosity Medium for some Verbose_Msg calls
15416         (Compile_Sources): Do not attempt to compile if an ALI file is missing
15417         in a project that is externally built.
15418         (Compute_All_Imported_Projects): New procedure
15419         (Gnatmake): Check if importing libraries should be regenerated because
15420         at least an imported library is more recent.
15421         (Initialize): For each project compute the list of the projects it
15422         imports directly or indirectly.
15423         (Add_Library_Search_Dir): New procedure, used in place of
15424         Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
15425         put in the search paths.
15426         (Add_Source_Search_Dir): New procedure, used in place of
15427         Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
15428         put in the search paths.
15429         (Mark_Directory): Resolve the absolute path the directory before marking
15430         it.
15431
15432         * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
15433         call to new procedure Bad_Switch. Call Scan_Pos with new parameter
15434         Switch. Do not handle any exception.
15435         (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
15436         so that the switch is recognized as valid.
15437         (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
15438
15439 2005-11-14  GNAT Script  <nobody@adacore.com>
15440
15441         * Make-lang.in: Makefile automatically updated
15442
15443 2005-11-14  Pascal Obry  <obry@adacore.com>
15444
15445         * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
15446         used.
15447         (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
15448         In both cases the last argument was dropped.
15449
15450 2005-11-14  Eric Botcazou  <ebotcazou@adacore.com>
15451
15452         * namet.h: (Column_Numbe): New type.
15453         (Get_Column_Number): Define to sinput__get_column_number.
15454         (Instantiation): Define to sinput__instantiation.
15455         (Get_Column_Number): Declare.
15456         (Instantiation): Likewise.
15457
15458 2005-11-14  Robert Dewar  <dewar@adacore.com>
15459
15460         * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
15461         syntax, which could cause compiler hangs.
15462
15463 2005-11-14  Vincent Celier  <celier@adacore.com>
15464
15465         * prj-ext.adb: Take into account new environment variable
15466         GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
15467         are defined.
15468         (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
15469         normalize its path name, making it absolute and resolving symbolic
15470         links, and replace the original if resolved path is different.
15471
15472 2005-11-14  Vincent Celier  <celier@adacore.com>
15473
15474         * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
15475         into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
15476
15477 2005-11-14  Emmanuel Briot  <briot@adacore.com>
15478
15479         * prj-pp.adb (Print): Do not output the with statement if the
15480         associated name is empty, which happens for virtual extending projects.
15481         (Print): Preserve the "extends all" attribute when printing the project.
15482
15483         * prj-tree.ads (String_Value_Of): Add comment about returned value for
15484         a virtual extending project.
15485
15486 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
15487
15488         * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
15489         rhs of an assignment even if the type is unconstrained, when the
15490         context is non-expanding.
15491         In an inlined body, if the context type is private,
15492         resolve with its full view, which must be a composite type.
15493
15494 2005-11-14  Robert Dewar  <dewar@adacore.com>
15495             Ed Schonberg  <schonberg@adacore.com>
15496
15497         * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
15498         Do not give obsolescent warning on with of subprogram (since we
15499         diagnose calls)
15500         (Analyze_With_Clause): Add test for obsolescent package
15501         (Install_Context_Clauses): If the unit is the body of a child unit, do
15502         not install twice the private declarations of the parents, to prevent
15503         circular lists of Use_Clauses in a parent.
15504         (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
15505         compiling body of child unit.
15506         Use new class N_Subprogram_Instantiation
15507         (Expand_With_Clause): If this is a private with_clause for a child unit,
15508         appearing in the context of a package declaration, then the implicit
15509         with_clauses generated for parent units are private as well.
15510         (License_Check): Do not generate message if with'ed unit is internal
15511
15512 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
15513             Ed Schonberg  <schonberg@adacore.com>
15514             Thomas Quinot  <quinot@adacore.com>
15515
15516         * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
15517         names are internal, because they will not have a corresponding partner
15518         in the actual package.
15519         (Analyze_Formal_Package): Move the setting of the formal package spec's
15520         Generic_Parent field so that it occurs prior to analyzing the package,
15521         to allow proper operation of Install_Parent_Private_Declarations.
15522         (Analyze_Package_Instantiation): Set the instantiated package entity's
15523         Package_Instantiation field.
15524         (Get_Package_Instantiation_Node): Move declaration to package spec.
15525         Retrieve the N_Package_Instantiation node when the Package_Instantiation
15526         field is present.
15527         (Check_Generic_Child_Unit): Within an inlined call, the only possible
15528         instantiation is Unchecked_Conversion, for which no parents are needed.
15529         (Inline_Instance_Body): Deinstall and record the use_clauses for all
15530         parent scopes of a scope being removed prior to inlining an instance
15531         body.
15532         (Analyze_Package_Instantiation): Do not perform front-end inlining when
15533         the current context is itself an instance within a non-instance child
15534         unit, to prevent scope stack errors.
15535         (Save_References): If the node is an aggregate that is an actual in a
15536         call, rewrite as a qualified expression to preserve some type
15537         information, to resolve possible ambiguities in the instance.
15538         (Instance_Parent_Unit): New global variable to record the ultimate
15539         parent unit associated with a generic child unit instance (associated
15540         with the existing Parent_Unit_Visible flag).
15541         (type Instance_Env): New component Instance_Parent_Unit for stacking
15542         parents recorded in the global Instance_Parent_Unit.
15543         (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
15544         stack.
15545         (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
15546         it's not a top-level unit, and only do this if Instance_Parent_Unit is
15547         not already set. Replace test of Is_Child_Unit with test of parent's
15548         scope against package Standard. Add comments and a ??? comment.
15549         (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
15550         on a child instance parent to test that the parent equals
15551         Instance_Parent rather than simply checking that the unit is not a
15552         child unit.
15553         (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
15554         (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
15555         a formal interface are ancestors of the corresponding actual.
15556         (Validate_Formal_Interface_Type): Additional legality checks.
15557         (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
15558         interface types with ancestors.
15559         (Analyze_Formal_Package): If formal is a renaming, use renamed entity
15560         to diagnose attempts to use generic within its own declaration.
15561
15562 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
15563             Javier Miranda  <miranda@adacore.com>
15564
15565         * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
15566         discriminant.
15567         (Build_Private_Derived_Type): The entity of the created full view of the
15568         derived type does not come from source. If after installing the private
15569         declarations of the parent scope the parent is still private, use its
15570         full view to construct the full declaration of the derived type.
15571         (Build_Derived_Record_Type): Relax the condition that controls the
15572         execution of the check that verifies that the partial view and
15573         the full view agree in the set of implemented interfaces. In
15574         addition, this test now only takes into account the progenitors.
15575         (Derive_Interface_Subprograms): No need to derive subprograms
15576         of ancestors that are interfaces.
15577         (Derive_Subprograms): Remove formal No_Predefined_Prims and the
15578         associated code.
15579         Change name Is_Package to Is_Package_Or_Generic_Package
15580         (Complete_Subprograms_Derivation): Handle the case in which the full
15581         view is a transitive derivation of the ancestor of the partial view.
15582         (Process_Full_View): Rename local subprogram Find_Interface_In_
15583         Descendant to Find_Ancestor_Interface to leave the code more clear.
15584         Remove wrong code that avoids the generation of an error message
15585         when the immediate ancestor of the partial view is an interface.
15586         In addition some minor reorganization of the code has been done to
15587         leave it more clear.
15588         (Analyze_Type_Declaration): If type has previous incomplete tagged
15589         partial view, inherit properly its primitive operations.
15590         (Collect_Interfaces): Make public, for analysis of formal
15591         interfaces.
15592         (Analyze_Interface_Declaration): New procedure for use for regular and
15593         formal interface declarations.
15594         (Build_Derived_Record_Type): Add support for private types to the code
15595         that checks if a tagged type implements abstract interfaces.
15596         (Check_Aliased_Component_Type): The test applies in the spec of an
15597         instance as well.
15598         (Access_Type_Declaration): Clean up declaration of malformed type
15599         declared as an access to its own classwide type, to prevent cascaded
15600         crash.
15601         (Collect_Interfaces): For private extensions and for derived task types
15602         and derived protected types, the parent may be an interface that must
15603         be included in the interface list.
15604         (Access_Definition): If the designated type is an interface that may
15605         contain tasks, create Master_Id for it before analyzing the expression
15606         of the declaration, which may be an allocator.
15607         (Record_Type_Declaration): Set properly the interface kind, for use
15608         in allocators, the creation of master id's for task interfaces, etc.
15609
15610 2005-11-14  Javier Miranda  <miranda@adacore.com>
15611             Ed Schonberg  <schonberg@adacore.com>
15612
15613         * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
15614         omitted in case of stream attribute subprograms.
15615         (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
15616         appear immediately after a subprogram body, when there is no previous
15617         subprogram declaration.
15618         Change name Is_Package to Is_Package_Or_Generic_Package
15619         (Process_Formals): A non null qualifier on a non null named access
15620         type is not an error, and is a warning only if Redundant_Constructs
15621         are flagged.
15622
15623 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
15624             Ed Schonberg  <schonberg@adacore.com>
15625
15626         * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
15627         nested within Analyze_Package_Specification to install the private
15628         declarations and use clauses within each of the parent units of a
15629         package instance of a generic child package.
15630         (Analyze_Package_Specification): When entering a private part of a
15631         package associated with a generic instance or formal package, the
15632         private declarations of the parent must be installed (by calling new
15633         procedure Install_Parent_Private_Declarations).
15634         Change name Is_Package to Is_Package_Or_Generic_Package
15635         (Preserve_Full_Attributes): For a synchronized type, the corresponding
15636         record is absent in a generic context, which does not indicate a
15637         compiler error.
15638
15639 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
15640
15641         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
15642         not try to rewrite a renamed stream attribute, because the operations
15643         on the type may not have been generated.
15644         Handle properly a renaming_as_body generated for a stream operation
15645         whose default is abstract because the object type itself is abstract.
15646         (Find_Type): If the type is incomplete and appears as the prefix of a
15647         'Class reference, it is tagged, and its list of primitive operations
15648         must be initialized properly.
15649         (Chain_Use_Clauses): When chaining the use clauses that appear in the
15650         private declaration of a parent unit, prior to compiling the private
15651         part of a child unit, find on the scope stack the proper parent entity
15652         on which to link the use clause.
15653         (Note_Redundant_Use): Emit a warning when a redundant use clause is
15654         detected.
15655         (Analyze_Object_Renaming): An attribute reference is not a legal object
15656         if it is not a function call.
15657
15658 2005-11-14  Robert Dewar  <dewar@adacore.com>
15659             Ed Schonberg  <schonberg@adacore.com>
15660
15661         * sem_eval.adb: Implement d.f flag
15662         (Subtype_Statically_Match): A generic actual type has unknown
15663         discriminants when the corresponding actual has a similar partial view.
15664         If the routine is called to validate the signature of an inherited
15665         operation in a child instance, the generic actual matches the full view,
15666
15667 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
15668             Ed Schonberg  <schonberg@adacore.com>
15669             Robert Dewar  <dewar@adacore.com>
15670             Thomas Quinot  <quinot@adacore.com>
15671
15672         * sem_res.adb (Resolve_Call): Provide a better error message whenever
15673         a procedure call is used as a select statement trigger and is not an
15674         entry renaming or a primitive of a limited interface.
15675         (Valid_Conversion): If the operand has a single interpretation do not
15676         remove address operations.
15677         (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
15678         statement to inhibit warning.
15679         (Resolve_Unary_Op): Do not produce a warning when
15680         processing an expression of the form -(A mod B)
15681         Use Universal_Real instead of Long_Long_Float when we need a high
15682         precision float type for the generated code (prevents gratuitous
15683         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
15684         (Resolve_Concatenation_Arg): Improve error message when argument is an
15685         ambiguous call to a function that returns an array.
15686         (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
15687         there is an implicit operator in the given scope if we are within an
15688         instance: legality check has been performed on the generic.
15689         (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
15690         after resolving operand, to avoid false warnings on overloaded calls.
15691
15692 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
15693             Javier Miranda  <miranda@adacore.com>
15694
15695         PR ada/15604
15696         * sem_type.adb (Covers): In an inlined body, a composite type matches
15697         a private type whose full view is a composite type.
15698         (Interface_Present_In_Ancestor): Protect the frontend against
15699         previously detected errors to ensure that its compilation
15700         with assertions enabled gives the same output that its
15701         compilation without assertions.
15702         (Interface_Present_In_Ancestor): Add support for private types.
15703         Change name In_Actual to In_Generic_Actual (clean up)
15704         (Disambiguate): New predicate In_Actual, to recognize expressions that
15705         appear in the renaming declaration generated for generic actuals, and
15706         which must be resolved in the outer context.
15707
15708 2005-11-14  Robert Dewar  <dewar@adacore.com>
15709             Thomas Quinot  <quinot@adacore.com>
15710             Hristian Kirtchev  <kirtchev@adacore.com>
15711             Ed Schonberg  <schonberg@adacore.com>
15712
15713         * sem_util.ads, sem_util.adb: Change name Is_Package to
15714         Is_Package_Or_Generic_Package.
15715         (Check_Obsolescent): New procedure.
15716         (Set_Is_Public): Remove obsolete junk test.
15717         (Set_Public_Status): Do not set Is_Public on an object whose declaration
15718         occurs within a handled_sequence_of_statemets.
15719         (Is_Controlling_Limited_Procedure): Factor some of the logic, account
15720         for a parameterless procedure.
15721         (Enter_Name): Recognize renaming declarations created for private
15722         component of a protected type within protected operations, so that
15723         the source name of the component can be used in the debugger.
15724
15725 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
15726             Robert Dewar  <dewar@adacore.com>
15727
15728         * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
15729         of a generic subprogram are not visible outside the body.
15730         (Set_Warning_Switch): New procedure (code to set warning mode moved
15731         here from Switch.C so that it can be shared by pragma processing.
15732         (Check_References): Special case warning for non-modified non-imported
15733         volatile objects.
15734         * par-prag.adb: Modify processing of pragma Warnings to accomodate new
15735         form with a string literal argument
15736
15737 2005-11-14  Javier Miranda  <miranda@adacore.com>
15738
15739         * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
15740         anonymous access.
15741         (Write): Addition of "not null" to the anonymous access.
15742         (Read): Addition of "not null" to the anonymous access.
15743         (Write): Addition of "not null" to the anonymous access.
15744
15745         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
15746         I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
15747         I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
15748         (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
15749         W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
15750         "not null" to the anonymous access.
15751
15752 2005-11-14  Robert Dewar  <dewar@adacore.com>
15753
15754         * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
15755         offset values
15756
15757 2005-11-14  Vincent Celier  <celier@adacore.com>
15758
15759         * switch.adb (Bad_Switch): New procedure
15760         (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
15761         message when in error.
15762
15763         * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
15764         Too_Many_Output_Files): Remove declarations, no longer used.
15765         (Scan_Nat): New parameter Switch
15766         (Scan_Pos): Ditto
15767         (Bad_Switch): New procedure
15768
15769         * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
15770         with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
15771         new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
15772         to Osint.Fail. Do not handle any exception.
15773
15774 2005-11-14  Vincent Celier  <celier@adacore.com>
15775
15776         * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
15777         designates a non existent directory.
15778
15779 2005-11-14  Robert Dewar  <dewar@adacore.com>
15780
15781         * xgnatugn.adb: Replace invalid membership test by 'Valid
15782
15783 2005-11-14  Vincent Celier  <celier@adacore.com>
15784
15785         * makegpr.adb (Gprmake): Do not attempt to build the global archive if
15786         there is no object directory.
15787
15788 2005-11-14  Robert Dewar  <dewar@adacore.com>
15789
15790         * usage.adb: Minor adjustment to output format, use nn instead of nnn
15791         (so that -gnateInnn does not run into next column)
15792
15793 2005-11-14  Ed Falis  <falis@adacore.com>
15794
15795         * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
15796         "constrained"
15797
15798 2005-11-14  Cyrille Comar  <comar@adacore.com>
15799
15800         * s-chepoo.ads: Add comments on Dereference.
15801         Remove unnecessary inherited abstract primitives.
15802         Cosmetic cleanup.
15803
15804 2005-11-14  Robert Dewar  <dewar@adacore.com>
15805
15806         * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
15807         node parameter, not needed, since it is available as Declaration_Node.
15808
15809 2005-11-14  Geert Bosch  <bosch@adacore.com>
15810
15811         * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
15812         grammatically correct.
15813
15814 2005-11-14  Vincent Celier  <celier@adacore.com>
15815
15816         * s-fileio.ads: Correct spelling error in comment
15817
15818 2005-11-14  Cyrille Comar  <comar@adacore.com>
15819             Robert Dewar  <dewar@adacore.com>
15820             Vincent Celier  <celier@adacore.com>
15821             Ben Brosgol  <brosgol@adacore.com>
15822             Jose Ruiz  <ruiz@adacore.com>
15823             Pascal Obry  <obry@adacore.com>
15824
15825         * gnat_ugn.texi: 
15826         Document that -fstack-check is needed for strict compliance with the
15827         Ada 95 Reference Manual.
15828         Correct reference to VAX systems to meet HP guidelines
15829         Add documentation for new gnatmake switches -vl, -vm and -vh
15830         Replace DEC Ada by HP Ada
15831         Replace DIGITAL by HP
15832         Remove empty section on tools in compatibility section
15833         Clarify the Windows convention semantics.
15834         Document the Win32 calling convention.
15835         The Stdcall, Win32 and DLL convention are synonyms.
15836         Add a note in -gnatR description about zero size record components
15837         Note on new >= and <= warnings for -gnatwc
15838         Document that equal sign after -gnatm is optional.
15839         Note that strip is working fine on DLL built with a Library
15840         Project. The restriction apply only to DLL built with gnatdll.
15841         Update section about the way to debug a DLL.
15842         Update information about the DLL convention.
15843         Document -C switch for gnatprep
15844         Document new attribute Library_ALI_Dir
15845         Update elaboration doc to include implicit Elaborate pragmas now
15846         generated for subprogram instantiations.
15847         Document limitation on executable names that include spaces for --GCC,
15848         --GNATBIND, and --GNATLINK switches.
15849         Document that -w causes -gnatws to be added at start of gcc switches
15850
15851         * gnat_rm.texi: Document that -mieee is needed for generating infinite
15852         and NaN values in case of overflow on machines that are not fully
15853         compliant with the IEEE floating-point standard.
15854         Create a section describing the set of compiler options needed for
15855         strict compliance with the Ada 95 Reference Manual.
15856         Add documentation for pragma Obsolescent applied to a package
15857         Clarify potential issues of mixed language programs related to the
15858         I/O buffering enabling in the elaboration of the GNAT runtime.
15859         Add extra documentation for pragma Restrictions (No_Elaboration_Code)
15860         This documentation only patch adds extra documentsion for pragma
15861         Restrictions (No_Elaboration_Code), explaining why it is not possible
15862         to document this restriction in terms of allowed source constructs.
15863         Document string literal form of pragma Warnings
15864         Document new attribute Library_ALI_Dir
15865         Add documentation on stable attributes in project files that was missing
15866
15867         * gnat-style.texi: Indicate that paragraphs within a single comment
15868         should be separated by empty comment lines
15869
15870         * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
15871         /05 respectively)
15872
15873         * bindusg.adb: Minor cleanup, put -m before -M for consistency
15874
15875 2005-11-14  Robert Dewar  <dewar@adacore.com>
15876
15877         * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
15878         a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
15879         a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
15880         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
15881         a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
15882         a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
15883         a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
15884         a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
15885         a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
15886         a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
15887         a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
15888         a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
15889         g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
15890         a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
15891         a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
15892         system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
15893         g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
15894         g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
15895         a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
15896         a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
15897         a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
15898         a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
15899         a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
15900         a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
15901         system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
15902         system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
15903         a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
15904         a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
15905         a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
15906         system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
15907         system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
15908         s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
15909         system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
15910         system-interix.ads, system-solaris-sparc.ads,
15911         system-solaris-sparcv9.ads, s-inmaop-vms.adb,
15912         s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
15913         system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
15914         s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
15915         a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
15916         a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
15917         a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
15918         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
15919         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
15920         a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
15921         a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
15922         a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
15923         a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
15924         a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
15925         a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
15926         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
15927         a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
15928         a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
15929         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
15930         a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
15931         a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
15932         a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
15933         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
15934         a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
15935         a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
15936         a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
15937         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
15938         a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
15939         a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
15940         a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
15941         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
15942         a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
15943         a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
15944         a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
15945         bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
15946         csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
15947         errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
15948         errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
15949         exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
15950         exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
15951         freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
15952         g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
15953         g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
15954         g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
15955         g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
15956         g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
15957         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
15958         g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
15959         g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
15960         gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
15961         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
15962         g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
15963         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
15964         g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
15965         g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
15966         g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
15967         layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
15968         mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
15969         mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
15970         nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
15971         osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
15972         par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
15973         par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
15974         par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
15975         prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
15976         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
15977         prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
15978         prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
15979         sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
15980         sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
15981         sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
15982         sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
15983         s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
15984         sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
15985         s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
15986         s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
15987         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
15988         s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
15989         s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
15990         s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
15991         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
15992         s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
15993         s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
15994         s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
15995         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
15996         s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
15997         s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
15998         s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
15999         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
16000         s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
16001         s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
16002         s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
16003         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
16004         s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
16005         s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
16006         s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
16007         s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
16008         s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
16009         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
16010         s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
16011         styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
16012         s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
16013         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
16014         s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
16015         s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
16016         s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
16017         s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
16018         s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
16019         s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
16020         s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
16021         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
16022         table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
16023         tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
16024         ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
16025         usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
16026         xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
16027         xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
16028         a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
16029         a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
16030         a-numaux-darwin.ads, a-numaux-darwin.adb,
16031         a-swuwha.ads, a-stunha.ads: Minor reformatting
16032
16033 2005-11-14  Robert Dewar  <dewar@adacore.com>
16034
16035         PR ada/18434
16036         * osint-m.adb: Add pragma Elaborate_All for Osint
16037
16038 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
16039
16040         PR ada/23995
16041         * trans.c (call_to_gnu): Restore statement lost in translation.
16042
16043 2005-11-08  Eric Botcazou  <ebotcazou@adacore.com>
16044
16045         * init.c: Use the Linux-specific section for the IA-64/Linux target.
16046         (__gnat_adjust_context_for_raise): Add conditional code so that the
16047         IA-64 is also supported.
16048
16049 2005-11-03  James E Wilson  <wilson@specifix.com>
16050
16051         PR ada/23427
16052         * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
16053         TREE_OVERFLOW check.
16054
16055 2005-09-21  Olivier Hainque  <hainque@adacore.com>
16056
16057         PR ada/22418
16058         * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
16059         as we create them to store a size in bits.
16060
16061 2005-10-21  Eric Botcazou  <ebotcazou@adacore.com>
16062
16063         PR ada/21937
16064         PR ada/22328
16065         PR ada/22381
16066         PR ada/22383
16067         PR ada/22419
16068         PR ada/22420
16069         * utils2.c (build_return_expr): New helper function.
16070         * gigi.h (build_return_expr): Declare it.
16071         * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
16072         of manually building the RETURN_EXPR tree.
16073         (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
16074         (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
16075         build_binary_op for the "target pointer" case.  Use build_return_expr
16076         instead of manually building the RETURN_EXPR tree.
16077
16078 2005-09-16  Laurent GUERBY  <laurent@guerby.net>
16079
16080         PR ada/23788
16081         * s-tpinop.ads: Make this unit Preelaborate.
16082
16083 2005-09-16  Andreas Jaeger  <aj@suse.de>
16084
16085         * socket.c: Add string.h for memcpy.
16086
16087 2005-09-05  Arnaud Charlet  <charlet@adacore.com>
16088
16089         * dec-io.ads, dec-io.adb: Removed, no longer used.
16090
16091 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
16092
16093         * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
16094
16095         * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
16096         s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
16097         s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
16098         s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
16099         dependent units are Preelaborate.
16100         (Initialize): Call Interrupt_Managemeent.Initialize and
16101         OS_Primitives.Initialize to ensure proper initialization of this unit.
16102         Remove use of System.Soft_Links
16103         Make this unit Preelaborate.
16104
16105         * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
16106         s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
16107         s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
16108         s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
16109         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
16110         s-tratas.ads, s-tasinf.ads: Minor reformatting.
16111         Add pragma Preelaborate, since these packages are suitable for this
16112         categorization.
16113         Update comments.
16114
16115         * s-traent-vms.ads, s-intman-dummy.adb,
16116         s-taprop-dummy.adb: Make this unit Preelaborate.
16117
16118         * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
16119         s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
16120         s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
16121         s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
16122         s-intman-solaris.adb, s-intman-irix-athread.adb,
16123         s-intman-irix.adb: Mark this unit Preelaborate.
16124         (Initialize): New procedure.
16125         Update comments.
16126
16127         * s-taspri-linux.ads: Removed.
16128
16129         * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
16130         as done by other implementations (e.g. posix).
16131
16132         * s-taprop.ads (Timed_Delay): Update spec since the caller now is
16133         responsible for deferring abort.
16134         Mark this unit Preelaborate.
16135
16136         * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
16137         proper initialization of the tasking run-time.
16138
16139         * s-tasdeb.ads: Mark this unit Preelaborate.
16140         (Known_Tasks): Add explicit default value to avoid elaboration code.
16141
16142         * s-inmaop-vms.adb (Elaboration code): Add call to
16143         Interrupt_Management.Initialize since the elaboration code depends on
16144         proper initialization of this package.
16145
16146         * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
16147         s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
16148         s-osprim-posix.adb: Make this unit Preelaborate.
16149
16150         * a-calend.adb: Add call to OS_Primitives.Initialize
16151
16152         * a-elchha.adb: Update use of Except.Id.Full_Name.
16153         Minor reformatting.
16154         Remove use of Ada.Exceptions.Traceback when possible, cleaner.
16155
16156         * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
16157         Move with clauses outside Warnings Off now that dependent units are
16158         Preelaborate.
16159         Use raise xxx with "..."; Ada 2005 form.
16160
16161         * a-taside.ads, a-taside.adb:
16162         Remove some dependencies, to make it easier to make this unit truly
16163         Preelaborate.
16164         Rewrite some code to be conformant with Preelaborate rules.
16165
16166         * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
16167         marked Preelaborate in the future.
16168
16169         * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
16170         these units Preelaborate.
16171
16172         * s-exctab.adb: Update use of Except.Id.Full_Name.
16173
16174         * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
16175         (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
16176         Set_Exc_Stack_Addr): Removed, no longer used.
16177         Remove reference to *Machine_State_Addr*, no longer needed.
16178
16179         * s-stalib.ads: Mark this unit as Preelaborate[_05].
16180         (Exception_Data): Full_Name is now a System.Address so that this unit
16181         can be made Preelaborate.
16182         Clean up/simplify code thanks to Full_Name being a System.Address.
16183         Remove obsolete pragma Suppress (All_Checks), no longer needed.
16184
16185         * s-taskin.ads, s-taskin.adb:
16186         Move with clauses outside Warnings Off now that dependent units are
16187         Preelaborate.
16188         Make this unit Preelaborate.
16189         (Initialize): New proceduure, replace elaboration code and makes the
16190         set up of the tasking run-time cleaner.
16191         (Detect_Blocking): Now a function instead of a deferred boolean, to
16192         obey Preelaborate rules.
16193
16194         * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
16195         soft links, no longer used.
16196
16197         * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
16198         packages are suitable for this categorization.
16199
16200         * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
16201         since we compile run-time sources in Ada 2005 mode.
16202         (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
16203         avoid having s-taprop*.adb depend on s-soflin and to avoid code
16204         duplication.
16205         Remove reference to *Machine_State_Addr*, no longer needed.
16206
16207 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
16208
16209         * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
16210         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
16211         Remove reference to System.Exceptions.
16212
16213         * s-mastop-x86.adb: Removed, no longer used.
16214
16215         * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
16216
16217         * a-excach.adb: Minor reformatting.
16218
16219         * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
16220         instead fix new warnings that were hidden by this change.
16221         (AAA, ZZZ): Removed, replaced by...
16222         (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
16223         are used instead of constants, to help make Ada.Exception truly
16224         preelaborate.
16225         (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
16226         Raise_Storage_Error): File is now a System.Address, to simplify code.
16227         (Elab code): Removed, no longer used.
16228         (Null_Occurrence): Remove Warnings Off and make this construct
16229         preelaborate.
16230         Remove code related to front-end zero cost exception handling, since
16231         it is no longer used.
16232         Remove -gnatL/-gnatZ switches.
16233
16234         * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
16235         Update use of Except.Msg.
16236
16237         * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
16238         freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
16239         to front-end zero cost exception handling, since it is no longer used.
16240         Remove -gnatL/-gnatZ switches.
16241
16242         * lib-writ.ads: Minor reformatting
16243         Remove doc of UX
16244
16245         * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
16246
16247         * Make-lang.in: Remove references to s-except.ads
16248
16249         * s-except.ads: Removed, no longer used.
16250
16251         * s-mastop.ads, s-mastop.adb:
16252         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
16253         Remove reference to System.Exceptions.
16254
16255         * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
16256         switch-b.adb: Remove code related to front-end zero cost exception
16257         handling, since it is no longer used.
16258         Remove -gnatL/-gnatZ switches.
16259
16260 2005-09-01  Robert Dewar  <dewar@adacore.com>
16261             Gary Dismukes  <dismukes@adacore.com>
16262             Javier Miranda  <miranda@adacore.com>
16263
16264         * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
16265         type by valid test and generate warning.
16266         (Tagged_Membership): Generate call to the run-time
16267         subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
16268         Change formal name Subtype_Mark to Result_Definition in several calls to
16269         Make_Function_Specification.
16270         (Expand_Allocator_Expression): Add tests for suppression of the AI-344
16271         check for proper accessibility of the operand of a class-wide allocator.
16272         The check can be left out if checks are suppressed or if the expression
16273         has a specific tagged type whose level is known to be safe.
16274
16275         * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
16276         generates the run-time check associated with null-excluding entities.
16277         (Expand_N_Return_Statement): Add tests to determine if the accessibility
16278         check on the level of the return expression of a class-wide function
16279         can be elided. The check usually isn't needed if the expression has a
16280         specific type (unless it's a conversion or a formal parameter). Also
16281         add a test for whether accessibility checks are suppressed. Augment
16282         the comments to describe the conditions for performing the check.
16283
16284 2005-09-01  Hristian Kirtchev  <kirtchev@adacore.com>
16285             Javier Miranda  <miranda@adacore.com>
16286             Gary Dismukes  <dismukes@adacore.com>
16287             Ed Schonberg  <schonberg@adacore.com>
16288
16289         * a-tags.adb (IW_Membership): Give support to
16290         "Iface_CW_Typ in T'Class". For this purpose the functionality of this
16291         subprogram has been extended to look for the tag in the ancestors tag
16292         table.
16293         Update the structure of the GNAT Dispatch Table to reflect the
16294         additional two tables used in dispatching selects.
16295         Introduce appropriate array types and record components in
16296         Type_Specific_Data to reflect the two tables.
16297         (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
16298         the TSD of a tag, indexed by position.
16299         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
16300         operation kind in the TSD of a tag, indexed by position.
16301
16302         * a-tags.ads: Introduce an enumeration type to capture different
16303         primitive operation kinds. Define a constant reflecting the number of
16304         predefined primitive operations.
16305         (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
16306         of an entry wrapper.
16307         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
16308         callable entity of a primitive operation.
16309
16310         * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
16311         primitive operations used in dispatching selects for limited
16312         interfaces, limited tagged, task and protected types what implement a
16313         limited interface.
16314         (Freeze_Type): Generate the bodies of the primitive operations used in
16315         dispatching selects for limited tagged, task and protected types that
16316         implement a limited interface. Generate statements to populate the two
16317         auxiliary tables used for dispatching in select statements.
16318         (Freeze_Record_Type): Add call to initialize the dispatch table entries
16319         associated with predefined interface primitive operations.
16320         (Build_Dcheck_Function): Change Set_Subtype_Mark to
16321         Set_Result_Definition.
16322         (Build_Variant_Record_Equality): Change Subtype_Mark to
16323         Result_Definition.
16324         (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
16325         (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
16326         (Build_Assignment): Simplify the code that adds the run-time-check.
16327         (Expand_N_Object_Declaration): Code cleanup.
16328
16329         * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
16330         entries when there is a protected type that implements a limited
16331         interface.
16332
16333         * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
16334         common routines used in expansion of dispatching selects.
16335         (Add_Private_Declarations): Select the appropriate protection type when
16336         there is a protected type that implements a limited interface.
16337         (Build_Parameter_Block): Generate a wrapped parameter block.
16338         (Build_Protected_Subprogram_Body): Select the appropriate type for
16339         locking entries when there is a protected type that implements a
16340         limited interface.
16341         (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
16342         classified as entry wrappers.
16343         (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
16344         asynchronous selects.
16345         (Expand_N_Conditional_Entry_Call): Add support for expansion of
16346         dispatching conditional selects.
16347         (Expand_N_Protected_Type_Declaration): Select the appropriate type for
16348         protection when there is a protected type that implements limited
16349         interfaces.
16350         (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
16351         timed selects.
16352         (Extract_Dispatching_Call): Extract the entity of the name of a
16353         dispatching call, the object parameter, actual parameters and
16354         corresponding formals.
16355         (Make_Initialize_Protection): Correct logic of protection initialization
16356         when there is a protected type that implements a limited interface.
16357         (Parameter_Block_Pack): Populate a wrapped parameter block with the
16358         values of actual parameters.
16359         (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
16360         block and assign them to the original actual parameters.
16361
16362         * exp_ch9.ads (Subprogram_Protection_Mode): New type.
16363         (Build_Protected_Sub_Specification): Change the type and name of the
16364         last formal to account for the increased variety of protection modes.
16365
16366         * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
16367         entities. Used to save the value of the Is_Hidden attribute when the
16368         limited-view is installed.
16369         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
16370         the attribute of procedures classified as entry wrappers.
16371         (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
16372         entity of a primitive wrapper.
16373         (Write_Entity_Flags): Output the name and value of the
16374         Is_Primitive_Wrapper attribute.
16375         (Write_Field27_Name): Output the name and entity of the field Wrapped_
16376         Entity.
16377         (Underlying_Type): If we have an incomplete entity that comes from
16378         the limited view then we return the Underlying_Type of its non-limited
16379         view if it is already available.
16380         (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
16381         including operators.
16382         (Write_Field26_Name): Add entry for Overridden_Operation
16383         (Overridden_Operation): New attribute of functions and procedures.
16384
16385         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
16386         predefined position in the dispatch table for the primitive operations
16387         used in dispatching selects.
16388         (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
16389         predefined primitive operations and replace it with
16390         Default_Prim_Op_Count.
16391         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
16392         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
16393         the names of the generated primitive operations used in dispatching
16394         selects.
16395         (Init_Predefined_Interface_Primitives): No need to inherit primitives in
16396         case of abstract interface types. They will be inherit by the objects
16397         implementing the interface.
16398         (Make_DT): There is no need to inherit the dispatch table of the
16399         ancestor interface for the elaboration of abstract interface types.
16400         The dispatch table will be inherited by the object implementing the
16401         interface.
16402         (Copy_Secondary_DTs): Add documentation.
16403         (Validate_Position): Improve this static check in case of
16404         aliased subprograms because aliased subprograms must have
16405         the same position.
16406         (Init_Predefined_Interface_Primitives): New subprogram that initializes
16407         the entries associated with predefined primitives of all the secondary
16408         dispatch tables.
16409         (Build_Anonymous_Access_Type): Removed.
16410         (Expand_Interface_Actuals): With the previous cleanup there is no need
16411         to build an anonymous access type. This allows further cleanup in the
16412         code generated by the expander.
16413         (Expand_Interface_Conversion): If the actual is an access type then
16414         build an internal function to handle the displacement. If the actual
16415         is null this function returns null because no displacement is
16416         required; otherwise performs a type conversion that will be
16417         expanded in the code that returns the value of the displaced actual.
16418         (Expand_Interface_Actuals): Avoid the generation of unnecessary type
16419         conversions that have no effect in the generated code because no
16420         displacement is required. Code cleanup; use local variables to
16421         avoid repeated calls to the subprogram directly_designated_type().
16422
16423         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
16424         Classify the primitive operations used in dispatching selects as
16425         predefined.
16426         (Implements_Limited_Interface): Determine whether some type either
16427         directly implements a limited interface or extends a type that
16428         implements a limited interface.
16429         (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
16430         (Expand_Subtype_From_Expr): Do not build actual subtype if the
16431         expression is limited.
16432         (Find_Interface_Tag): Add code to handle class-wide types and
16433         entities from the limited-view.
16434
16435         * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
16436         Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
16437         POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
16438         POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
16439         Set_Prim_Op_Kind.
16440
16441         * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
16442         of procedure name or prefix that appears as a trigger in a triggering
16443         alternative.
16444
16445         * uintp.ads: Introduce constants Uint_11 and Uint_13.
16446
16447 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
16448
16449         * s-tataat.adb, a-tasatt.adb:
16450         Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
16451
16452         * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
16453         these procedures to body, and renamed Abort_Defer, Abort_Undefer.
16454         (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
16455         longer used.
16456
16457 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
16458             Jose Ruiz  <ruiz@adacore.com>
16459
16460         * s-taprop-vxworks.adb:
16461         Move with clauses outside Warnings Off now that dependent units are
16462         Preelaborate.
16463         (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
16464         initialization of this unit.
16465         (Specific): Add new procedures Initialize and Delete so that this
16466         package can be used for VxWorks 5.x and 6.x
16467         (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
16468         differences between VxWorks 5.x and 6.x
16469         Minor reformatting.
16470         (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
16471         caller.
16472         Use only Preelaborate-compatible constructs.
16473
16474         * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
16475         Primitives.Operations.
16476         (Delete, Initialize): New procedures.
16477
16478         * s-osinte-vxworks.adb: Body used to handle differences between
16479         VxWorks 5.x and 6.x
16480         (kill, Set_Time_Slice, VX_FP_TASK): New functions.
16481
16482         * s-osinte-vxworks.ads: Minor reformatting.
16483         Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
16484         (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
16485         and 6.
16486         (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
16487         between Vxworks 5 and 6.
16488         (taskLock, taskUnlock): Removeed, no longer used.
16489
16490         * adaint.c: The wait.h header is not located in the sys directory on
16491         VxWorks when using RTPs.
16492         (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
16493         using RTPs.
16494         (__gnat_dup): dup is available on Vxworks when using RTPs.
16495         (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
16496
16497         * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
16498
16499         * expect.c: The wait.h header is not located in the sys directory on
16500         VxWorks when using RTPs.
16501
16502 2005-09-01  Thomas Quinot  <quinot@adacore.com>
16503
16504         * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
16505
16506         * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
16507
16508         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
16509         g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
16510         g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
16511         g-soccon-freebsd.ads: Add new constants:
16512          IP_MULTICAST_IF
16513          SO_RCVTIMEO/SO_SNDTIMEO
16514          IOV_MAX
16515
16516         * gen-soccon.c:
16517         Move all target-specific file inclusions and macro definitions to
16518         gsocket.h, in order to ensure that any C code in socket.c will see a
16519         set of constants that is consistent with the contents of g-soccon.ads.
16520
16521         * gsocket.h: Code imported from gen-soccon.c:
16522         Move all target-specific file inclusions and macro definitions to
16523         gsocket.h, in order to ensure that any C code in socket.c will see a set
16524         of constants that is consistent with the contents of g-soccon.ads.
16525         This change also makes gen-soccon self-contained (removing dependencies
16526         upon GCC internal headers).
16527
16528         * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
16529         iovecs at a time.
16530         (To_Inet_Addr): Now a procedure instead of a function, more efficient.
16531
16532         * socket.c: Minor reformatting.
16533
16534 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
16535             Thomas Quinot  <quinot@adacore.com>
16536
16537         * fname-sf.adb, mlib-tgt.ads,
16538         back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
16539         g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
16540         osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
16541         prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
16542         prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
16543         prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
16544         sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
16545         makegpr.adb: Remove redundant use_clauses.
16546
16547 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
16548
16549         * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
16550         s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
16551         s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
16552         s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
16553         s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
16554         s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
16555         s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
16556         table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
16557         s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
16558         s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
16559         a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
16560         a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
16561         a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
16562         a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
16563         system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
16564         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
16565         s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
16566         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
16567         s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
16568         s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
16569         s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
16570         s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
16571         system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
16572         s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
16573         system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
16574         s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
16575         a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
16576         a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
16577         a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
16578         a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
16579         a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
16580         a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
16581         a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
16582         a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
16583         a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
16584         a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
16585         csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
16586         g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
16587         a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
16588         a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
16589         a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
16590         a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
16591         g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
16592         i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
16593         interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
16594         i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
16595         s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
16596         s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
16597         s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
16598         s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
16599         s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
16600         s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
16601         s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
16602         s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
16603         s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
16604         s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
16605         s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
16606         s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
16607         s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
16608         s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
16609         s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
16610         s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
16611         s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
16612         s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
16613         s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
16614         s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
16615         s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
16616         s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
16617         and always use the no parameter form for consistency.
16618
16619         * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
16620
16621 2005-09-01  Robert Dewar  <dewar@adacore.com>
16622
16623         * binde.adb: Minor reformatting
16624         (Find_Elab_Order): Output warning if -p used with static elab order
16625
16626 2005-09-01  Robert Dewar  <dewar@adacore.com>
16627
16628         * checks.adb (Check_Needed): New procedure, deals with removing checks
16629         based on analysis of short-circuited forms. Also generates warnings for
16630         improper use of non-short-circuited forms.
16631         Code clean ups.
16632
16633 2005-09-01  Robert Dewar  <dewar@adacore.com>
16634
16635         * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
16636         with 'Valid tests.
16637
16638 2005-09-01  Robert Dewar  <dewar@adacore.com>
16639
16640         * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
16641         spec.
16642         Implement new insertion char < (conditional warning)
16643         * errutil.adb, erroutc.adb: Implement new insertion char <
16644         (conditional warning).
16645         * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
16646         (Error_Msg_Warn): New variable for < insertion char.
16647         * prj-nmsc.adb: Implement new errout insertion char < (conditional
16648         warning).
16649         (Check_For_Source): Change value of Source_Id only after the current
16650         source has been dealt with.
16651
16652 2005-09-01  Robert Dewar  <dewar@adacore.com>
16653             Doug Rupp  <rupp@adacore.com>
16654
16655         * exp_attr.adb: Handle vax fpt for 'Valid attribute
16656         * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
16657         * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
16658         (Valid_D, Valid_F, Valid_G): New functions
16659
16660 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
16661             Hristian Kirtchev  <kirtchev@adacore.com>
16662             Javier Miranda  <miranda@adacore.com>
16663
16664         * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
16665         from object notation, the original node is unanalyzed and carries no
16666         semantic information, so that accessiblity checks must be performed on
16667         the type of the actual itself.
16668         (Expand_N_Subprogram_Declaration): Change last actual parameter for
16669         compatibility with Build_Protected_Sub_Specification.
16670         (Check_Overriding_Inherited_Interfaces): Add suport to handle
16671         overloaded primitives.
16672         (Register_Interface_DT_Entry): Use the new name of the formal
16673         the the calls to Expand_Interface_Thunk
16674
16675         * exp_dbug.ads: Augment comments on encoding of protected types to
16676         include the generation of dispatching subprograms when the type
16677         implements at least one interface.
16678
16679         * lib.ads: Extend information in Load_Stack to include whether a given
16680         load comes from a Limited_With_Clause.
16681
16682         * lib-load.adb (From_Limited_With_Chain): New predicate to determine
16683         whether a potential circularity is harmless, because it includes units
16684         loaded through a limited_with clause. Extends previous treatment which
16685         did not handle properly arbitrary combinations of limited and
16686         non-limited clauses.
16687
16688 2005-09-01  Nicolas Setton  <setton@adacore.com>
16689
16690         * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
16691         to be encoded as typ___XBLU_lowerbound__upperbound instead of
16692         typ___XB_lowerbound__upperbound.
16693
16694 2005-09-01  Thomas Quinot  <quinot@adacore.com>
16695
16696         * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
16697         dummy access formal for RACW/RAS TypeCode TSS.
16698         (Build_TypeCode_Call): Do not generate dummy null access actual for
16699         calls to the TypeCode TSS.
16700
16701 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
16702
16703         * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
16704         fully qualified name, to distinguish instances with the same local name.
16705
16706         * g-souinf.ads (Enclosing_Entity): Document that entity name is now
16707         fully qualified.
16708
16709 2005-09-01  Robert Dewar  <dewar@adacore.com>
16710
16711         * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
16712         packed arrays.
16713
16714 2005-09-01  Jerome Lambourg  <lambourg@adacore.com>
16715
16716         * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
16717         (Free): New deallocation procedure for filter elements
16718         (Close): Deallocate any existing filter for the concerned connection
16719
16720 2005-09-01  Laurent Pautet  <pautet@adacore.com>
16721
16722         * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
16723         position set is provided, we compute one in order to reduce the maximum
16724         length of the keys.  This computation first selects a character
16725         position between 1 and the minimum length of the keys in order to
16726         avoid reducing one of the keys to an empty string.
16727         (Initialize, Compute): When the ratio V to K is too low, the algorithm
16728         does not converge. The initialization procedure now comes with a
16729         maximum number of iterations such that when exceeded, an exception is
16730         raised in Compute. The user can initialize this ratio to another value
16731         and try again
16732         Reformating and updated headers.
16733
16734 2005-09-01  Javier Miranda  <miranda@adacore.com>
16735
16736         * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
16737         that given an entity T creates and returns an Itype that duplicates the
16738         contents of T. The returned Itype has the null-exclusion
16739         attribute set to True, and its Etype attribute references T
16740         to keep the association between the two entities.
16741         Update copyright notice
16742
16743         * sem_aggr.adb (Check_Can_Never_Be_Null,
16744         Aggregate_Constraint_Checks, Resolve_Aggregate,
16745         Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
16746
16747         * sem_ch5.adb (Analyze_Assignment): Code cleanup.
16748
16749 2005-09-01  Gary Dismukes  <dismukes@adacore.com>
16750             Robert Dewar  <dewar@adacore.com>
16751             Hristian Kirtchev  <kirtchev@adacore.com>
16752
16753         * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
16754         Result_Definition.
16755
16756         * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
16757         function specs.
16758         Call Set_Result_Definition instead of Set_Subtype_Mark.
16759         (P_Subprogram_Specification): Add parsing of anonymous access result
16760         plus null exclusions. Call Set_Result_Definition instead of
16761         Set_Subtype_Mark.
16762
16763         * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
16764         (P_Access_Type_Definition): Add parsing for an anonymous access result
16765         subtype, plus parsing for null exclusions. Call Set_Result_Definition
16766         instead of Set_Subtype_Mark.
16767
16768         * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
16769         (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
16770         (Result_Definition): New function for N_Function_Specifications.
16771         (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
16772         N_Function_Specification.
16773         (Set_Null_Exclusion_Present): Allow this flag for
16774         N_Function_Specification.
16775         (Set_Result_Definition): New procedure for N_Function_Specifications.
16776         (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
16777         and N_Function_Specification.
16778
16779         * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
16780         Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
16781         Add support for LIMITED NEW for Ada 2005 AI-419
16782         Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
16783         syntax for anonymous access results.
16784         Replace Subtype_Mark field by Result_Definition in
16785         N_Function_Specification and N_Access_Definition specs.
16786         Add Null_Exclusion_Present to spec of N_Function_Specification.
16787         (Result_Definition): New function for N_Function_Specification and
16788         N_Access_Function_Definition.
16789         (Set_Result_Definition): New procedure for N_Function_Specification and
16790         N_Access_Function_Definition.
16791
16792         * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
16793         Result_Definition for cases of N_Access_Function_Definition and
16794         N_Function_Specification.
16795         Print "not null" if Null_Exclusion_Present on N_Function_Specification.
16796
16797 2005-09-01  Vincent Celier  <celier@adacore.com>
16798
16799         * lib-writ.adb: Update Copyright notice
16800         (Write_With_Lines): On platforms where file names are case-insensitive,
16801         record the file names in lower case.
16802         (Write_ALI): For D lines, on platforms where file names are
16803         case-insensitive, record the file names in lower case.
16804
16805 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
16806             Emmanuel Briot  <briot@adacore.com>
16807
16808         * lib-xref.adb (Output_Overridden_Op): Display information on
16809         overridden operation.
16810
16811         * lib-xref.ads: Add documentation on overridden operations.
16812
16813         * ali.ads (Xref_Entity_Record): Add support for storing the overriding
16814         information.
16815
16816         * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
16817         overriding entity information.
16818
16819 2005-09-01  Vincent Celier  <celier@adacore.com>
16820
16821         * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
16822         including those that are inherited.
16823
16824 2005-09-01  Robert Dewar  <dewar@adacore.com>
16825
16826         * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
16827
16828         * par-prag.adb: Implement new pragma Debug_Policy
16829
16830         * sem_prag.adb Implement new pragma Debug_Policy
16831         (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
16832         Component_Size attribute specification. Give warning for ignored pragma
16833         Pack.
16834
16835         * snames.h, snames.ads, snames.adb: Introduce entries in
16836         Preset_Names for Name_Disp_Asynchronous_Select,
16837         Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
16838         Name_Disp_Timed_Select.
16839         New pragma Debug_Policy
16840
16841         * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
16842         explicitly.
16843         Switch -gnata also sets Debug_Pragmas_Enabled
16844
16845         * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
16846         handle an explicit -gnata when compiling predefined files.
16847
16848 2005-09-01  Vincent Celier  <celier@adacore.com>
16849
16850         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
16851         directories of projects that have no Ada sources.
16852
16853 2005-09-01  Robert Dewar  <dewar@adacore.com>
16854
16855         * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
16856         (makes a difference for wide characters)
16857
16858         * widechar.adb, widechar.ads:
16859         Add Wide_Char_Byte_Count feature to count chars vs bytes
16860
16861 2005-09-01  Thomas Quinot  <quinot@adacore.com>
16862             Ed Schonberg  <schonberg@adacore.com>
16863             Robert Dewar  <dewar@adacore.com>
16864
16865         * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
16866         'Address attribute reference with an overloaded prefix, use the
16867         location of the prefix (not the location of the attribute reference) as
16868         the error location.
16869         (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
16870         a function renaming thereof, is a valid prefix for 'Size (where it is
16871         intepreted as a function call).
16872         (Statically_Denotes_Entity): New predicate to determine whether the
16873         prefix of an array attribute can be considered static.
16874
16875         PR ada/9087
16876         (Eval_Attr): Fix failure to evaluate Component_Size for
16877         unconstrained arrays (resulted in wrong value in packed case, since
16878         back end cannot handle this case)
16879
16880 2005-09-01  Robert Dewar  <dewar@adacore.com>
16881
16882         * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
16883         error msgs for most common cases.
16884         Use new errout insertion char < (conditional warning)
16885
16886 2005-09-01  Javier Miranda  <miranda@adacore.com>
16887             Ed Schonberg  <schonberg@adacore.com>
16888
16889         * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
16890         become local to the whole package.
16891         (Install_Limited_Withed_Unit): Instead of unchaining real entities if
16892         the package was already analyzed the new algorithm "replaces" the
16893         real entities by the shadow ones. This is required to ensure that
16894         the order of these entities in the homonym chains does not change;
16895         otherwise we can have undefined references at linking time because
16896         in case of conflicts the external name of the entities will have
16897         a suffix that depends on the order of the entities in the chain.
16898         (Remove_Limited_With_Clause): Complementary code that completes the
16899         new algorithm and replaces the shadow entities by the real ones.
16900         (Install_Limited_Withed_Unit): When unchaining entities before the
16901         installation of the shadow entities, only regular entities of the
16902         public part must be taken into account. This is required to
16903         keep this routine in synch with the work done by Remove_Limited_
16904         With_Clause
16905         (Install_Limited_With_Clause): Introduce implicit limited_with_clause
16906         even if unit is analyzed, because the analysis of the unit is
16907         idempotent in any case, and the limited view of the unit may have to
16908         be installed for proper visibility.
16909         (Expand_Limited_With_Clause): Even if the unit in the implicit
16910         with_clause has been analyzed already, a limited view of the package
16911         must be built for the current context, if it does not exist yet.
16912
16913 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
16914             Javier Miranda  <miranda@adacore.com>
16915             Gary Dismukes  <dismukes@adacore.com>
16916
16917         * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
16918         defining entity for the instance body, make a new defining identifier
16919         rather than copying the entity of the spec, to prevent accidental
16920         sharing of the entity list.
16921         (Check_Private_View): When exchanging views of private types, build the
16922         list of exchanged views as a stack, to ensure that on exit the exchanges
16923         are undone in the proper order.
16924         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
16925         Restore the compilation environment in case of instantiation_error.
16926         (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
16927         for an anonymous access result.
16928         (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
16929         (Formal_Entity): Handle properly the case of a formal package that
16930         denotes a generic package renaming.
16931
16932 2005-09-01  Thomas Quinot  <quinot@adacore.com>
16933
16934         * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
16935         clause if the array aggregate is surrounded by parentheses.
16936
16937 2005-09-01  Cyrille Comar  <comar@adacore.com>
16938             Gary Dismukes  <dismukes@adacore.com>
16939             Ed Schonberg  <schonberg@adacore.com>
16940             Javier Miranda  <miranda@adacore.com>
16941
16942         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
16943         underlying type
16944         to check if a type is Constrained in cases related to code generation
16945         (rather than semantic checking) since otherwise we do not generate
16946         similar code for mutable private types depending if their
16947         discriminants are visible or not.
16948         (Check_Abstract_Overriding): Do not complain about failure to override
16949         the primitive operations used in dispatching selects since they will
16950         always be overriden at the freeze point of the type.
16951         (Access_Definition): Separate out handling for resetting the scope
16952         of an anonymous access function result type. Retrieve the scope
16953         of the associated function rather than using Current_Scope, which
16954         does not have a consistent value (depends on whether we're in the
16955         middle of analyzing formal parameters). Add ??? comment about
16956         finding a cleaner way to handle the special cases of scope setting.
16957         (Process_Incomplete_Dependents): A protected operation is never a
16958         dispatching operation (only its wrapper may be).
16959         (Build_Derived_Record_Type): In case of tagged private types that
16960         implement interfaces add derivation of predefined primitive
16961         operations.
16962         (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
16963         by two parameters that are used in case of derivation from abstract
16964         interface types: No_Predefined_Prims is used to avoid the derivation
16965         of predefined primitives from the interface, and Predefined
16966         Prims_Only is used to complete the derivation predefined primitives
16967         in case of private tagged types implementing interfaces.
16968         Fix typo in comments
16969         (Find_Interface_In_Descendant): Protect the frontend against
16970         wrong code with large circularity chains.
16971         (Is_Private_Overriding): Add support for entities overriding interface
16972         subprograms. The test failed because Entities associated with overriden
16973         interface subprograms are always marked as hidden (and used to build
16974         the secondary dispatch table); in this case the overriden entity is
16975         available through the field abstract_interface_alias (cf. override_
16976         dispatching_operation)
16977         (Access_Definition): Set the scope of the type to Current_Scope for the
16978         case of a function with an anonymous access result type.
16979         (Access_Subprogram_Declaration): Handle creation of the type entity for
16980         an access-to-function type with an anonymous access result.
16981         (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
16982         in handling for N_Access_Function_Definition.
16983         (Analyze_Subtype_Declaration): Modify the text of error message.
16984         (Derived_Type_Declaration): Modify the text of error message.
16985         (Process_Subtype): Modify the text of error message plus cleanup
16986         of one redundant error message.
16987         (Analyze_Component_Declaration): Code cleanup.
16988         (Analyze_Object_Declaration): Code cleanup.
16989         (Analyze_Subtype_Declaration): Propagate the null-exclusion
16990         attribute in case of access types. Code cleanup.
16991         (Array_Type_Declaration): Code cleanup.
16992         (Process_Discriminants): Create the new null-excluding itype
16993         if required. Code cleanup.
16994         (Process_Subtype): Create the new null-excluding itype if
16995         required. Code cleanup.
16996         (Build_Derived_Record_Type): Code cleanup to avoid calling
16997         twice the subprogram derive_subprograms in case of private
16998         types that implement interfaces. In this particular case the
16999         subprogram Complete_Subprograms_Derivation already does the
17000         job associated with the second call.
17001
17002         * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
17003         conversion to the full view when generating an operation for a
17004         discriminant whose type may currently be private.
17005
17006 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
17007             Javier Miranda  <miranda@adacore.com>
17008
17009         * sem_ch4.adb (Transform_Object_Operation): In a context off the form
17010         V (Obj.F), the rewriting does not involve the indexed component, but
17011         only the selected component itself.
17012         Do not apply the transformation if the analyzed node is an actual of a
17013         call to another subprogram.
17014         (Complete_Object_Operation): Retain the entity of the
17015         dispatching operation in the selector of the rewritten node. The
17016         entity will be used in the expansion of dispatching selects.
17017         (Analyze_One_Call): Improve location of the error message associated
17018         with interface.
17019         (Analyze_Selected_Component): No need to resolve prefix when it is a
17020         function call, resolution is done when parent node is resolved, as
17021         usual.
17022         (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
17023         when attempting to resolve a call transformed from its object notation.
17024         (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
17025         of the argument list for each interpretation of the operation.
17026         (Try_Object_Operation): The designated type of an access parameter may
17027         be an incomplete type obtained through a limited_with clause, in which
17028         case the primitive operations of the type are retrieved from its full
17029         view.
17030         (Analyze_Call): If this is an indirect call, and the return type of the
17031         access_to_subprogram is incomplete, use its full view if available.
17032
17033 2005-09-01  Javier Miranda  <miranda@adacore.com>
17034             Gary Dismukes  <dismukes@adacore.com>
17035
17036         * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
17037         access types the null-exclusion and access-to-constant attributes must
17038         also match.
17039         (Analyze_Return_Statement): When the result type is an anonymous access
17040         type, apply a conversion of the return expression to the access type
17041         to ensure that appropriate accessibility checks are performed.
17042         (Analyze_Return_Type): For the case of an anonymous access result type,
17043         generate the Itype and set Is_Local_Anonymous_Access on the type.
17044         Add ??? placeholder for check to disallow returning a limited object
17045         in Ada 2005 unless it's an aggregate or a result of a function call.
17046         Change calls from Subtype_Mark to Result_Definition.
17047         (Analyze_Subprogram_Body): Change formal Subtype_Mark to
17048         Result_Definition in call to Make_Function_Specification.
17049         (Build_Body_To_Inline): Change Set_Subtype_Mark to
17050         Set_Result_Definition.
17051         (Make_Inequality_Operator): Change formal Subtype_Mark to
17052         Result_Definition in call to Make_Function_Specification.
17053         (Process_Formals): Create the new null-excluding itype if required.
17054         (New_Overloaded_Entity): For an entity overriding an interface primitive
17055         check if the entity also covers other abstract subprograms in the same
17056         scope. This is required to handle the general case, that is, overriding
17057         other interface primitives and overriding abstract subprograms inherited
17058         from some abstract ancestor type.
17059         (New_Overloaded_Entity): For an overriding entity that comes from
17060         source, note the operation that it overrides.
17061         (Check_Conformance, Type_Conformant): Addition of one new formal
17062         to skip controlling formals in the analysis. This is used to
17063         handle overloading of abstract interfaces.
17064         (Base_Types_Match): Add missing case for types imported from
17065         limited-with clauses
17066         (New_Overloaded_Entity): Add barrier to protect the use of
17067         the "alias" attribute.
17068
17069 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
17070
17071         * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
17072         verify that the procedure and the entry are mode conformant.
17073         (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
17074         as a different operator, which is often a cut-and-paste error.
17075
17076 2005-09-01  Javier Miranda  <miranda@adacore.com>
17077             Ed Schonberg  <schonberg@adacore.com>
17078
17079         * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
17080         used in controlling parameters exclude null because it is necessary to
17081         read the tag to dispatch, and null has no tag.
17082         (Override_Dispatching_Operation): If the previous operation is inherited
17083         from an interface, it becomes hidden  and does not participate in later
17084         name resolution.
17085
17086 2005-09-01  Javier Miranda  <miranda@adacore.com>
17087             Ed Schonberg  <schonberg@adacore.com>
17088             Gary Dismukes  <dismukes@adacore.com>
17089
17090         * sem_res.adb (Resolve_Membership_Op): In case of the membership test
17091         "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
17092         the expander will generate the corresponding run-time check to evaluate
17093         the expression.
17094         (Resolve_Call): Check for legal type of procedure name or prefix that
17095         appears as a trigger in a triggering alternative.
17096         (Valid_Conversion): If expression is ambiguous and the context involves
17097         an extension of System, remove System.Address interpretations.
17098         (Resolve_Qualified_Expression): Reject the case of a specific-type
17099         qualification applied to a class-wide argument. Enhance comment
17100         to explain checking of Original_Node.
17101         (Resolve_Type_Conversion): The location of the error message was not
17102         general enough to handle the general case and hence it has been removed.
17103         In addition, this patch improves the text of the message.
17104         (Resolve_Type_Conversion): Add missing support for access to interface
17105         types.
17106         (Resolve_Type_Conversion): If the target is a class-wide interface type,
17107         do not expand if the expression is the actual in a call, because proper
17108         expansion will take place when the call itself is expanded.
17109         (Resolve_Allocator): If the context is an unchecked conversion, the
17110         allocator inherits its storage pool, if any, from the target type of
17111         the conversion.
17112
17113 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
17114             Javier Miranda  <miranda@adacore.com>
17115
17116         * sem_type.adb (Add_One_Interp): If a candidate operation is an
17117         inherited interface operation that has an implementation, use the
17118         implementation to avoid spurious ambiguities.
17119         (Interface_Present_In_Ancestor): In case of concurrent types we can't
17120         use the Corresponding_Record_Typ attribute to look for the interface
17121         because it is set by the expander (and hence it is not always
17122         available). For this reason we traverse the list of interfaces
17123         (available in the parent of the concurrent type).
17124         (Interface_Present_In_Ancestor): Handle entities from the limited view
17125
17126 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
17127
17128         * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
17129         from the list of required components.
17130         (Is_Controlling_Limited_Procedure): Determine whether an entity is a
17131         primitive procedure of a limited interface with a controlling first
17132         parameter.
17133         (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
17134         of an entry.
17135         (Safe_To_Capture_Value): A value (such as non_null) is not safe to
17136         capture if it is generated in the second operand of a short-circuit
17137         operation.
17138         Do not capture values for variables with address clauses.
17139         (Is_Object_Reference): Treat a function call as an object reference only
17140         if its type is not Standard_Void_Type.
17141
17142 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
17143
17144         * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
17145         to a variable that is statically known to be constant.
17146
17147 2005-09-01  Geert Bosch  <bosch@adacore.com>
17148             Robert Dewar  <dewar@adacore.com>
17149
17150         * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
17151         (VAXGF_Safe_First): Idem.
17152
17153 2005-09-01  Robert Dewar  <dewar@adacore.com>
17154             Arnaud Charlet  <charlet@adacore.com>
17155
17156         * g-dirope.ads: Minor reformatting
17157         Document that bounds of result of Base_Name match the input index
17158         positions.
17159         Add documentation on environment variable syntax for Expand_Path
17160
17161         * gnat_ugn.texi: Update documentation to include mention of -m switches
17162         Document new treatment of wide characters in max line length
17163         style check.
17164         Remove -gnatL/-gnatZ switches, no longer used.
17165         Add note on pragmas Assertion_Policy and Debug_Policy in discussion
17166         of -gnata switch.
17167
17168         * gnat_rm.texi: Add doc for two argument form of pragma
17169         Float_Representation.
17170         Add documentation for pragma No_Strict_Aliasing
17171         Add note that explicit component clause overrides pragma Pack.
17172         Add documentation of pragma Debug_Policy
17173
17174 2005-09-01  Matthew Heaney  <heaney@adacore.com>
17175
17176         * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
17177         a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
17178         a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
17179         a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
17180         draft (Draft 13, August 2005) of Ada Amendment 1.
17181
17182 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
17183
17184         * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
17185         Note that the platform-specific version of g-soccon.ads for VMS is now
17186         named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
17187         really is a package spec).
17188         Replace s-taspri-linux.ads by s-taspri-posix.ads
17189         Remove references to s-mastop-x86.adb
17190
17191         * system-vxworks-xscale.ads: Removed, no longer used.
17192         * s-vxwork-xscale.ads: Removed, no longer used.
17193
17194 2005-09-01  Robert Dewar  <dewar@adacore.com>
17195
17196         * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
17197         g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
17198         g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
17199         exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
17200         g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
17201         g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
17202         g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
17203         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
17204         g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
17205         g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
17206         sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
17207         a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
17208         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
17209         a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
17210         a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
17211         a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
17212         g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
17213         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
17214         g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
17215         i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
17216         a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
17217
17218 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
17219
17220         PR ada/23187
17221         * adaint.c
17222         (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
17223
17224 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
17225             Doug Rupp  <rupp@adacore.com>
17226
17227         * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
17228         when needed.
17229         (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
17230         this code in the GNAT run-time.
17231
17232         * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
17233
17234         PR ada/21053
17235         * init.c (__gnat_error_handler [many]): Mark "msg" as const
17236         (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
17237
17238         (__gnat_inside_elab_final_code): Moved here from
17239         Standard_Library and only defined for the compiler.
17240         __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
17241         (__gnat_inum_to_ivec): Do not define this function on VxWorks when
17242         using RTPs because directly vectored Interrupt routines are not
17243         supported on this configuration.
17244         (getpid): Do not redefine this function on VxWorks when using RTPs
17245         because this primitive is well supported by the RTP libraries.
17246         (copy_msg): Correct the code that checks for buffer overflow.
17247         Discovered during code reading.
17248
17249 2005-08-29  Olivier Hainque  <hainque@adacore.com>
17250
17251         * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
17252         a library level mutable variable with an initializer, tell
17253         build_allocator to ignore the initializer's size. It may not be large
17254         enough for all the values that might be assigned to the variable later
17255         on.
17256
17257 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
17258             Eric Botcazou  <ebotcazou@adacore.com>
17259
17260         * trans.c: Protect < in error msg with quote
17261         Replace GCC_ZCX by Back_End_Exceptions.
17262         (addressable_p) <COMPONENT_REF>: Also return 1 if the field
17263         has been sufficiently aligned in the record.
17264
17265 2005-08-15  James E. Wilson  <wilson@specifix.com>
17266
17267         * system-linux-alpha.ads: Change ia64 to alpha.
17268
17269 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
17270
17271         * decl.c, utils.c: Fix comment typos.
17272
17273 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
17274
17275         * decl.c, init.c, initialize.c: Fix comment typos.
17276
17277 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
17278
17279         Make CONSTRUCTOR use VEC to store initializers.
17280         * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
17281         CONSTRUCTOR_ELTS.
17282         * trans.c (extract_values): Likewise.
17283         * utils.c (convert, remove_conversions): Likewise.
17284         * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
17285         gnat_build_constructor): Likewise.
17286
17287 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
17288
17289         * decl.c (components_to_record): Use DECL_FCONTEXT instead of
17290         DECL_SECTION_NAME.
17291         (compare_field_bitpos): Likewise.
17292
17293 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
17294
17295         * utils.c (create_var_decl): Only set DECL_COMMON on
17296         VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
17297         VAR_OR_FUNCTION_DECL_P.
17298
17299 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
17300
17301         * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
17302         removed.
17303
17304 2005-07-07  Pascal Obry  <obry@adacore.com>
17305
17306         * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
17307         returned type on Windows.
17308
17309         * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
17310         routine.
17311
17312         * g-socket.adb (Inet_Addr): Check for empty Image and raises an
17313         exception in this case.
17314         Simplify the code as "Image (Image'Range)" = "Image".
17315
17316 2005-07-07  Vincent Celier  <celier@adacore.com>
17317
17318         * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
17319         the destructor/constructor attributes for <lib>final/<lib>init.
17320
17321         * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
17322
17323 2005-07-07  Eric Botcazou  <ebotcazou@adacore.com>
17324
17325         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
17326         type if the parameter is not passed by copy but reference by default.
17327
17328 2005-07-07  Javier Miranda  <miranda@adacore.com>
17329
17330         * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
17331         Reimplementation of the support for abstract interface types in order
17332         to leave the code more clear and easy to maintain.
17333
17334         * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
17335         abstract interface types in order to leave the code clearer and easier
17336         to maintain.
17337
17338         * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
17339         is now implemented by the new subprogram Fill_Secondary_DT_Entry.
17340         (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
17341         appropriate entry of the secondary dispatch table.
17342         (Make_DT): Add code to inherit the secondary dispatch tables of
17343         the ancestors.
17344
17345         * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
17346         implementing both functionalities by means of a common routine, each
17347         routine has its own code.
17348
17349 2005-07-07  Javier Miranda  <miranda@adacore.com>
17350
17351         * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
17352
17353         * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
17354         types:
17355         --
17356           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
17357         --
17358
17359         * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
17360         use of tag incomplete types.
17361
17362         * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
17363         give support to tagged incomplete types.
17364
17365         * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
17366         expression is a discriminant reference and its type is private, as can
17367         happen within a stream operation for a mutable record, use the full
17368         view of the type to resolve the case alternatives.
17369         (Analyze_Assignment): Check wrong dereference of incomplete types.
17370
17371         * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
17372         types.
17373
17374         * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
17375         incomplete types.
17376
17377         * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
17378         N_Incomplete_Type_Declaration nodes.
17379
17380         * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
17381         Tag_Present to give support to tagged incomplete types:
17382         --
17383           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
17384         --
17385
17386 2005-07-07  Olivier Hainque  <hainque@adacore.com>
17387
17388         PR ada/22301
17389         * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
17390         definitions for the Unwind wrappers in the compiler case.
17391
17392 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
17393             Javier Miranda  <miranda@adacore.com>
17394
17395         * par-load.adb (Load): If a child unit is loaded through a limited_with
17396         clause, each parent must be loaded as a limited unit as well.
17397
17398         * sem_ch10.adb (Previous_Withed_Unit): Better name for
17399         Check_Withed_Unit. Return true if there is a previous with_clause for
17400         this unit, whether limited or not.
17401         (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
17402         the current unit.
17403         (Is_Visible_Through_Renamings): New local subprogram of install_limited
17404         _withed_unit that checks if some package installed through normal with
17405         clauses has a renaming declaration of package whose limited-view is
17406         ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
17407         of the current Draft document for Ada 2005.
17408         (Analyze_Context): Complete the list of compilation units that
17409         are allowed to contain limited-with clauses. It also contains
17410         checks that were previously done by Install_Limited_Context_Clauses.
17411         This makes the code more clear and easy to maintain.
17412         (Expand_Limited_With_Clause) It is now a local subprogram of
17413         Install_Limited_Context_Clauses, and contains the code that adds
17414         the implicit limited-with clauses for parents of child units.
17415         This functionality was prevously done by Analyze_Context.
17416
17417         * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
17418         incomplete type.
17419
17420         * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
17421         been erroneously named in a limited-with clause of its own context.
17422         In this case the error has been previously notified by Analyze_Context.
17423
17424 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
17425
17426         * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
17427         generic package that contains local declarations with the same name.
17428         (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
17429
17430 2005-07-07  Bernard Banner  <banner@adacore.com>
17431
17432         * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
17433         ia64 platform only on platforms that you the GCC unwind library
17434         rather than the system unwind library.
17435
17436 2005-07-07  Thomas Quinot  <quinot@adacore.com>
17437
17438         * expect.c: Minor reformatting
17439
17440 2005-07-07  Sergey Rybin  <rybin@adacore.com>
17441
17442         * vms_data.ads: Add VMS qualifiers for new gnatpp switch
17443         --no-separate-is
17444
17445         * gnat_ugn.texi: Add description for new gnatpp option
17446         (--no-separate-is)
17447
17448 2005-07-04  Thomas Quinot  <quinot@adacore.com>
17449
17450         * g-expect-vms.adb, g-expect.ads, g-expect.adb
17451         (Get_Command_Output): New subprogram to launch a process and get its
17452         standard output as a string.
17453
17454 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
17455             Olivier Hainque  <hainque@adacore.com>
17456
17457         * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
17458         fetch a code-range descriptor associated with the machine state. On
17459         failure set the machine state's PC to 0; on success, pass the
17460         descriptor to exc_virtual_unwind.
17461
17462         * init.c (Tru64 section): New function __gnat_set_code_loc.
17463
17464 2005-07-04  Vincent Celier  <celier@adacore.com>
17465
17466         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
17467         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
17468         mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
17469         Remove all auto-initialization code, as this is now done through the
17470         constructor mechanism.
17471
17472         * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
17473         __gnat_sals_init_using_constructors): New functions.
17474
17475         * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
17476         Linker_Constructor and Linker_Destructor when switch -a is used.
17477
17478         * bindusg.adb: Add line for new switch -a
17479
17480         * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
17481         (Gnatbind): When switch -a is used, check if it is allowed
17482
17483         * switch-b.adb (Scan_Binder_Switches): Process new switch -a
17484
17485 2005-07-04  Joel Brobecker  <brobecker@adacore.com>
17486
17487         * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
17488         This prevents us from hitting a limitation during the debug info
17489         generation when using stabs.
17490         (Prims_Ptr): Likewise.
17491
17492 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
17493             Ed Schonberg  <schonberg@adacore.com>
17494             Javier Miranda  <miranda@adacore.com>
17495
17496         * checks.adb (Null_Exclusion_Static_Checks): In the case of
17497         N_Object_Declaration, only perform the checks if the Object_Definition
17498         is not an Access_Definition.
17499
17500         * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
17501         where the parent of an the access definition is an N_Object_Declaration
17502         when determining the Associated_Node_For_Itype and scope of an
17503         anonymous access-to-subprogram type.
17504
17505         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
17506         Corresponding_Spec on the body created for a null procedure. Add ???
17507         comment. Remove New_Copy_Tree call on body argument to
17508         Set_Body_To_Inline.
17509
17510         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
17511         discriminants, use the type of the actual as well, because the
17512         discriminants may be read by the called subprogram.
17513
17514         * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
17515         access type we do not need to handle non-limited views.
17516         (Build_Derived_Record_Type): Additional check to check that in case of
17517         private types, interfaces are only allowed in private extensions.
17518
17519 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
17520
17521         * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
17522         <Pragma_Linker_Destructor>: Likewise.
17523
17524         * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
17525         Pragma_Linker_Destructor.
17526
17527         * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
17528         ATTR_LINK_DESTRUCTOR.
17529         (static_ctors, static_dtors): New variables.
17530
17531         * misc.c (gnat_expand_body): Output current function as constructor
17532         and destructor if requested.
17533
17534         * par-prag.adb: Add processing for pragma Linker_Constructor and
17535         Linker_Destructor.
17536
17537         * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
17538         extracted from Check_Interrupt_Or_Attach_Handler.
17539         (Check_Interrupt_Or_Attach_Handler): Invoke it.
17540         Implement pragma Linker_Constructor and Linker_Destructor with the
17541         help of Find_Unique_Parameterless_Procedure.
17542         Replace Name_Alias with Name_Target for pragma Linker_Alias.
17543
17544         * snames.h, snames.ads, snames.adb:
17545         Add Name_Linker_Constructor and Name_Linker_Destructor.
17546         Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
17547         * snames.adb: Remove Name_Alias.
17548
17549         * trans.c: Include cgraph.h.
17550         (build_global_cdtor): New function.
17551         (Compilation_Unit_to_gnu): Build global constructor and destructor if
17552         needed.
17553         (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
17554         of objects too.
17555         (addressable_p) <COMPONENT_REF>: Unconditionally test
17556         DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
17557
17558         * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
17559         variable if it is external.
17560
17561         (static_ctors, static_dtors): New global variables.
17562         (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
17563         <ATTR_LINK_DESTRUCTOR>: Likewise.
17564         (end_subprog_body): Chain function as constructor and destructor
17565         if requested.
17566
17567         * exp_util.adb (Force_Evaluation): Unconditionally invoke
17568         Remove_Side_Effects with Variable_Ref set to true.
17569         (Remove_Side_Effects): Handle scalar types first. Use a renaming
17570         for non-scalar types even if Variable_Ref is true and for class-wide
17571         expressions.
17572
17573 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
17574
17575         * exp_attr.adb (Mod): Evaluate condition expression with checks off,
17576         to prevent spurious warnings.
17577
17578 2005-07-04  Thomas Quinot  <quinot@adacore.com>
17579
17580         * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
17581         Itypes. Itypes are really unexpected there.
17582         (Build_TypeCode_Function): Generalise special processing for Itypes to
17583         handle the case of numeric implicit base types as well as enumerated
17584         ones.
17585
17586 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
17587
17588         * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
17589         controlled, indicate the expected type of the dereference that is
17590         created for the call to Deep_Finalize, to prevent spurious errors when
17591         the designated type is private and completed with a derivation from
17592         another private type.
17593
17594 2005-07-04  Vincent Celier  <celier@adacore.com>
17595
17596         * make.adb (Change_To_Object_Directory): When unable to change the
17597         current dir to the object directory, output the full path of the
17598         directory.
17599
17600 2005-07-04  Matthew Gingell  <gingell@adacore.com>
17601
17602         * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
17603
17604         * indepsw-linux.adb: Replace by...
17605
17606         * indepsw-gnu.adb: ...this new file
17607
17608 2005-07-04  Vincent Celier  <celier@adacore.com>
17609
17610         * mlib-prj.adb (Auto_Initialize): New constant String
17611         (SALs_Use_Constructors): New Boolean function
17612         (Build_Library): Call gnatbind with Auto_Initialize switch when
17613         SALs_Use_Constructors returns True.
17614
17615         * mlib-tgt.ads: Minor reformatting
17616
17617         * mlib-utl.ads: Minor reformatting
17618
17619         * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
17620
17621 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
17622
17623         * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
17624         single protected declarations can have an interface list.
17625         (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
17626         with seriously malformed entry declarations, and lead to compilation
17627         abandoned messages.
17628
17629 2005-07-04  Javier Miranda  <miranda@adacore.com>
17630
17631         * par-load.adb: Load the context items in two rounds.
17632
17633 2005-07-04  Robert Dewar  <dewar@adacore.com>
17634
17635         * scng.adb: Do not consider Mod used as an attribute to be a keyword
17636
17637 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
17638             Javier Miranda  <miranda@adacore.com>
17639
17640         * sem_ch10.adb (Build_Limited_Views): A type declared with a private
17641         type extension needs a limited view.
17642         Remove previous restriction on private types available through the
17643         limited-view (only tagged private types were previously allowed).
17644         (Install_Withed_Unit): In the code that implements the
17645         legality rule given in AI-377, exclude a child unit with the name
17646         Standard, because it is a homonym of the Standard environment package.
17647
17648 2005-07-04  Thomas Quinot  <quinot@adacore.com>
17649
17650         * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
17651         overloaded function call, carry interpretations from the original tree
17652         to the copy.
17653
17654 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
17655
17656         * sem_ch6.adb (Conforming_Types): If the types are anonymous access
17657         types check whether some designated type is a limited view, and use
17658         the non-limited view if available.
17659
17660 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
17661
17662         * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
17663         constraint of full view of a private view T1 if present, when T2 is a
17664         discriminated full view.
17665
17666 2005-07-04  Thomas Quinot  <quinot@adacore.com>
17667
17668         * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
17669         actual that is a view conversion of a bit packed array reference.
17670
17671 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
17672
17673         * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
17674         present before checking whether an interface type covers a synchronized
17675         type.
17676
17677 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
17678
17679         * sem_util.adb (Is_Object_Reference): An indexed or selected component
17680         whose prefix is an implicit dereference is an object reference. Removes
17681         spurious errors when compiling with -gnatc.
17682
17683 2005-07-04  Robert Dewar  <dewar@adacore.com>
17684
17685         PR ada/22039
17686         * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
17687
17688 2005-07-04  Matthew Gingell  <gingell@adacore.com>
17689
17690         * tracebak.c: Enable tracebacks on ia64 platforms
17691
17692 2005-07-04  Vincent Celier  <celier@adacore.com>
17693
17694         * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
17695         the GNAT BIND command, as gnatbind accepts multiples ALI files with
17696         the -L or -n switches.
17697
17698 2005-07-04  Vincent Celier  <celier@adacore.com>
17699
17700         * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
17701         correctly computed and the main project data is not modified while
17702         doing so.
17703         (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
17704         (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
17705         c++linker as this does not work on some platforms.
17706
17707 2005-07-04  Matthew Heaney  <heaney@adacore.com>
17708
17709         * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
17710         was changed.
17711         * a-coinve.adb: Perform constraint checks explicitly.
17712
17713 2005-07-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17714             Thomas Quinot  <quinot@adacore.com>
17715
17716         * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
17717         new target gen-soccon.
17718
17719 2005-07-04  Robert Dewar  <dewar@adacore.com>
17720
17721         * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
17722
17723 2005-07-04  Thomas Quinot  <quinot@adacore.com>
17724
17725         * g-socket.ads (Check_Selector): Minor rewording of comment.
17726
17727 2005-07-04  Vincent Celier  <celier@adacore.com>
17728
17729         * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
17730
17731 2005-07-04  Thomas Quinot  <quinot@adacore.com>
17732
17733         * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
17734
17735 2005-07-04  Sergey Rybin  <rybin@adacore.com>
17736
17737         * gnat_ugn.texi: Add description of --eol gnatpp option
17738
17739 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
17740             Thomas Quinot  <quinot@adacore.com>
17741
17742         * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
17743         if the user wants all calls of a subprogram to be flagged,
17744         independently of whether they are made from within the same unit or
17745         another unit.
17746         Mention restriction for pragma Linker_Alias on some platforms.
17747         Document pragma Linker_Constructor and Linker_Destructor.
17748         Rewrite documentation of Weak_External, Linker_Section and
17749         Linker_Alias pragmas.
17750
17751 2005-07-04  Arnaud Charlet  <charlet@adacore.com>
17752
17753         * s-stausa.ads, s-stausa.adb: New files.
17754
17755 2005-06-30  Kelley Cook
17756
17757         * all files:  Update FSF address in copyright headers.
17758         * gen-soccon.co (main): Output new FSF address in generated files.
17759
17760 2005-06-28  Paul Brook  <paul@codesourcery.com>
17761
17762         * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
17763
17764 2005-06-14  Olivier Hainque  <hainque@adacore.com>
17765             Eric Botcazou  <ebotcazou@adacore.com>
17766
17767         * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
17768         exc_unwind, now that we are generating proper .debug_frame output for
17769         that target.
17770
17771         * tracebak.c: Remove the mips-irix section, as we are now using the
17772         s-mastop based unwinder again.
17773         Under SPARC/Solaris, take into account the stack bias to compute the
17774         frame offset.  The stack bias is 0 for the V8 ABI and 2047 for the V9
17775         ABI.
17776
17777 2005-06-14  Doug Rupp  <rupp@adacore.com>
17778
17779         * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
17780
17781         * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
17782
17783 2005-06-14  Pascal Obry  <obry@adacore.com>
17784
17785         * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
17786         a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
17787         a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
17788         package name).
17789
17790         * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
17791         a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
17792         a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
17793         a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
17794         a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
17795         a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
17796         a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
17797         s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
17798         s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
17799         s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
17800         s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
17801         s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
17802         s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
17803         s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
17804         s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
17805         s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
17806         s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
17807         s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
17808         s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
17809         s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
17810         s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
17811         s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
17812         s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
17813         s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
17814         s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
17815         s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
17816         s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
17817         s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
17818         s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
17819         s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
17820         a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
17821         a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
17822         a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
17823         a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
17824         a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
17825         a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
17826         a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
17827         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
17828         a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
17829         a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
17830         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
17831         a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
17832         a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
17833         a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
17834         a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
17835         a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
17836         a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
17837         a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
17838         a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
17839         a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
17840         a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
17841         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
17842         a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
17843         a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
17844         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
17845         a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
17846         a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
17847         dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
17848         g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
17849         g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
17850         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
17851         g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
17852         g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
17853         gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
17854         g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
17855         i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
17856         s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
17857         s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
17858         s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
17859         s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
17860         s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
17861         s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
17862         s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
17863         s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
17864         s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
17865         s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
17866         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
17867         s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
17868         s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
17869         s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
17870         s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
17871         s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
17872         s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
17873         s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
17874         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
17875         s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
17876         s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
17877         s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
17878         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
17879         s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
17880         s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
17881         s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
17882         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
17883         s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
17884         s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
17885         s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
17886         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
17887         s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
17888         s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
17889         s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
17890         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
17891         s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
17892         s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
17893         s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
17894         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
17895         s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
17896         s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
17897         s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
17898         s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
17899         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
17900         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
17901         s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
17902         s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
17903         s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
17904         s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
17905         s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
17906         s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
17907         s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
17908         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
17909         s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
17910         s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
17911         s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
17912         s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
17913         a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
17914         a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
17915         a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
17916         a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
17917         a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
17918         a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
17919         a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
17920         a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
17921         a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
17922         "GNU Ada" to GNAT, use proper casing for RUN-TIME.
17923
17924 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
17925             Arnaud Charlet  <charlet@adacore.com>
17926
17927         * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
17928         longer protected objects. They have been replaced by lower-level
17929         suspension objects made up by a mutex and a condition variable (or
17930         their equivalent given a particular OS) plus some internal data to
17931         reflect the state of the suspension object.
17932         (Initialize, Finalize): Add this initialization procedure for
17933         Suspension_Object, which is a controlled type.
17934         (Finalize): Add the finalization procedure for Suspension_Object,
17935         which is a controlled type.
17936
17937         * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
17938         Ada.Synchronous_Task_Control because there is no longer a need for a
17939         VxWorks specific version of this package. Target dependencies
17940         has been moved to System.Task_Primitives.Operations.
17941
17942         * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
17943         longer needed.
17944         (InitializeCriticalSection, EnterCriticalSection,
17945         LeaveCriticalSection, DeleteCriticalSection): Replace the type
17946         pCriticalSection by an anonymous access type so that we avoid problems
17947         of accessibility to local objects.
17948
17949         * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
17950         s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
17951         s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
17952         s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
17953         s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
17954         set the environment task mask here.
17955         (Current_State): Add this function that returns the state of the
17956         suspension object.
17957         (Set_False): Add this procedure that sets the state of the suspension
17958         object to False.
17959         (Set_True): Add this procedure that sets the state of the suspension
17960         object to True, releasing the task that was suspended, if any.
17961         (Suspend_Until_True): Add this procedure that blocks the calling task
17962         until the state of the object is True. Program_Error is raised if
17963         another task is already waiting on that suspension object.
17964         (Initialize): Add this procedure for initializing the suspension
17965         object. It initializes the mutex and the condition variable which are
17966         used for synchronization and queuing, and it sets the internal state
17967         to False.
17968         (Finalize): Add this procedure for finalizing the suspension object,
17969         destroying the mutex and the condition variable.
17970
17971         * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
17972         s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
17973         s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
17974         s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
17975         which provides a low-level abstraction (using operating system
17976         primitives) for Ada.Synchronous_Task_Control.
17977         This object is made up by a mutex (for ensuring mutual exclusion), a
17978         condition variable (for queuing threads until the condition is
17979         signaled), a Boolean (State) indicating whether the object is open,
17980         and a Boolean (Waiting) reflecting whether there is a task already
17981         suspended on this object.
17982
17983         * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
17984         s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
17985         s-intman-vms.ads, s-intman-mingw.adb,
17986         (Initialize_Interrupts): Removed, no longer used.
17987
17988         * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
17989         (Setup_Interrupt_Mask): New procedure.
17990
17991         * s-intman-vxworks.ads, s-intman-vxworks.adb:  Update comments.
17992
17993         * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
17994
17995         * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
17996         this is no longer done in the body of s-taprop
17997         (Server_Task): Explicitely test for Pending_Action in case
17998         System.Parameters.No_Abort is True.
17999
18000         * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
18001         is no longer done in the body of s-taprop
18002
18003 2005-06-14  Robert Dewar  <dewar@adacore.com>
18004
18005         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
18006         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
18007         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
18008         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
18009         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
18010         system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
18011         system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
18012         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
18013         system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
18014         system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
18015         system-linux-hppa.ads, system-vms_64.ads,
18016         system-vxworks-alpha.ads: Minor comment update for
18017         AI-362 (unit is Pure).
18018
18019         * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
18020         Add pragma Pure_05 for AI-362
18021         Make remaining conversion functions obsolescent in Ada 95
18022
18023         * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
18024         Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
18025         Add entries for a-wichun and a-zchuni
18026         Add a-widcha a-zchara for AI-395
18027         Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
18028
18029         * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
18030         Add entries for a-wichun.o and a-zchuni.o
18031         Entries for a-widcha.o and a-zchara.o
18032         Add entry for a-chacon.o
18033
18034         * a-ztenau.adb: Add with of Ada.Characters.Conversions
18035
18036         * a-chacon.ads, a-chacon.adb: New files.
18037
18038         * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
18039         categorization violations.
18040
18041         * a-strmap.ads: Add pragma Pure_05 for AI-362
18042         * a-strmap.ads: Add note on implicit categorization for AI-362
18043
18044         * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
18045
18046         * par-prag.adb: Dummy entry for pragma Persistent_BSS
18047         Set Ada_Version_Explicit, for implementation of AI-362
18048         Add processing for pragma Pure_05 and Preelaborate_05
18049         Add entry for Assertion_Policy pragma
18050
18051         * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
18052         when needed for proper processing of categorization stuff
18053
18054         * sem_cat.adb:
18055         For several cases, make errors in preealborate units warnings,
18056         instead of errors, if GNAT_Mode is set. For AI-362.
18057
18058         * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
18059         preelaborate unit is now warning if in GNAT mode
18060
18061         * s-stoele.ads: Document AI-362 for pragma preelaborate
18062
18063 2005-06-14  Doug Rupp  <rupp@adacore.com>
18064
18065         * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
18066         s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
18067         Default_Exception_Msg_Max_Length: new parameter.
18068
18069         * a-except.ads: (Exception_Msg_Max_Length): Set to
18070         System.Parameters.Default_Exception_Msg_Max_Length
18071         Add pragma Preelaborate_05 for AI-362
18072         Add warnings off to allow categorization violations for AI-362
18073
18074 2005-06-14  Vincent Celier  <celier@adacore.com>
18075
18076         * gnatsym.adb: Adapt to modification of package Symbols: procedure
18077         Process is now in package Processing.
18078
18079         * symbols.ads, symbols.adb:
18080         (Processing): New package, containing procedure Process
18081
18082         * symbols-vms-alpha.adb:
18083         Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
18084
18085         * symbols-vms.adb, symbols-processing-vms-alpha.adb,
18086         symbols-processing-vms-ia64.adb: New files.
18087
18088 2005-06-14  Pascal Obry  <obry@adacore.com>
18089
18090         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
18091         implementation. This new version generates the proper DllMain routine
18092         to initialize the SAL. The DllMain is generated in Ada and compiled
18093         before being added as option to the library build command.
18094
18095 2005-06-14  Doug Rupp  <rupp@adacore.com>
18096             Pascal Obry  <obry@adacore.com>
18097
18098         * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
18099         call to decc$translate_vms.
18100         (__gnat_locate_regular_file): Check if the path_val contains quotes. We
18101         need to remove those quotes before catenating the filename.
18102         (__gnat_locate_exec_on_path): improvements to the Win32 section:
18103         * avoid allocating the memory twice for better efficiency;
18104         * allocate 32K buffer for environment expansion as suggested by MSDN;
18105         * prepend ".;" to the path so that current directory is searched too.
18106
18107 2005-06-14  Robert Dewar  <dewar@adacore.com>
18108
18109         * a-except.adb (Exception_Identity): return Null_Id for null occurrence
18110         instead of raising CE (AI-241)
18111         Add warnings off to allow categorization violations for AI-362
18112
18113 2005-06-14  Robert Dewar  <dewar@adacore.com>
18114
18115         * ali-util.adb, gnatbind.adb: Remove references to
18116         Force_RM_Elaboration_Order.
18117
18118         * switch-b.adb: Remove recognition of -f switch
18119
18120 2005-06-14  Pascal Obry  <obry@adacore.com>
18121
18122         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
18123         implementation which is slightly more efficient.
18124
18125 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
18126             Javier Miranda  <miranda@adacore.com>
18127             Ed Schonberg  <schonberg@adacore.com>
18128             Hristian Kirtchev  <kirtchev@adacore.com>
18129
18130         * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
18131         allocator's designated type is a class-wide type, and compiling for
18132         Ada 2005, emit a run-time check that the accessibility level of the
18133         type given in the allocator's expression is not deeper than the level
18134         of the allocator's access type.
18135
18136         (Tagged_Membership): Modified to gives support to abstract interface
18137         types.
18138
18139         * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
18140         Access_Level.
18141         (Descendant_Tag): New predefined function
18142         (Is_Descendant_At_Same_Level): New predefined function
18143         (Get_Access_Level): New private function
18144         (Set_Access_Level): New private procedure
18145         (IW_Membership): New function. Given the tag of an object and the tag
18146         associated with an interface, evaluate if the object implements the
18147         interface.
18148         (Register_Interface_Tag): New procedure used to initialize the table of
18149         interfaces used by the IW_Membership function.
18150         (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
18151         of the dispatch table.
18152         (Inherit_TSD): Modified to copy the table of ancestor tags plus the
18153         table of interfaces of the parent.
18154         (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
18155         (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
18156         (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
18157         and raise Tag_Error if the passed tag equalis No_Tag, to conform with
18158         Ada 2005 semantics for the new predefined function.
18159
18160         * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
18161         call to Descendant_Tag rather than Internal_Tag.
18162         (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
18163         the accessibility level of the attribute's Item parameter is not deeper
18164         than the level of the attribute's prefix type. Tag_Error is raised if
18165         the check fails. The check is only emitted for Ada_05.
18166         (Find_Stream_Subprogram): If a TSS exists on the type itself for the
18167         requested stream attribute, use it.
18168         (Expand_N_Attribute_Reference): If the designated type is an interface
18169         then rewrite the referenced object as a conversion to force the
18170         displacement of the pointer to the secondary dispatch table.
18171         (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
18172         is a dereference of an object with a constrained partial view.
18173
18174         * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
18175         type is a class-wide type, emit a run-time check that the accessibility
18176         level of the returned object is not deeper than the level of the
18177         function's master (only when compiling for Ada 2005).
18178
18179         * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
18180         Action_Nb_Arg): Add entries for new Get_Access_Level and
18181         Set_Access_Level routines in these tables.
18182         (Make_DT): Generate a call to set the accessibility level of the
18183         tagged type in its TSD.
18184         (Make_DT): Code cleanup. The functionality of generating all the
18185         secondary dispatch tables has been moved to freeze_record_type.
18186         (Make_Abstract_Interface_DT): Minor code cleanup.
18187         (Set_All_DT_Position): Code cleanup. As part of the code cleanup
18188         this subprogram implements a new algorithm that provides the
18189         same functionality and it is more clear in case of primitives
18190         associated with abstract interfaces.
18191         (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
18192         clean up, the functionality of this subprogram is now provided
18193         by Set_All_DT_Position.
18194         (Write_DT): New subprogram: a debugging procedure designed to be called
18195         within gdb to display the dispatch tables associated with a tagged
18196         type.
18197         (Collect_All_Interfaces): New subprogram that collects the whole list
18198         of interfaces that are directly or indirectly implemented by a tagged
18199         type.
18200         (Default_Prim_Op_Position): New subprogram that returns the fixed
18201         position in the dispatch table of the default primitive operations.
18202         (Expand_Interface_Actuals): New subprogram to generate code that
18203         displaces all the actuals corresponding to class-wide interfaces to
18204         reference the interface tag of the actual object.
18205         (Expand_Interface_Conversion): New subprogram. Reference the base of
18206         the object to give access to the interface tag associated with the
18207         secondary dispatch table.
18208         (Expand_Interface_Thunk): New subprogram that generates the code of the
18209         thunk. This is required for compatibility with the C+ ABI.
18210         (Make_Abstract_Interface_DT): New subprogram that generate the
18211         declarations for the secondary dispatch tables associated with an
18212         abstract interface.
18213         (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
18214         attribute for each primitive operation covering interface subprograms
18215         (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
18216         These subprograms were upgraded to give support to abstract interfaces
18217
18218         * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
18219         RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
18220         RE_Set_Access_Level.
18221         (RE_Unit_Table): Add entries for new Ada.Tags operations.
18222         Add support to call the followig new run-time subprograms:
18223         IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
18224
18225         * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
18226         match its full declaration when both have an access definition with
18227         statically matching designated subtypes.
18228         (Analyze_Component_Declaration): Delete commented out code that was
18229         incorrectly setting the scope of an anonymous access component's type.
18230         (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
18231         an access discriminant when the containing type is nonlimited.
18232         (Make_Incomplete_Type_Declaration): Create an incomplete type
18233         declaration for a record type that includes self-referential access
18234         components.
18235         (Check_Anonymous_Access_Types): Before full analysis of a record type
18236         declaration, create anonymous access types for each self-referential
18237         access component.
18238         (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
18239         an access component in this context is a Local_Anonymous_Access, for
18240         proper accessibility checks.
18241         (Access_Definition): Set properly the scope of the anonymous access type
18242         created for a stand-alone access object.
18243         (Find_Type_Of_Object): An object declaration may be given with an access
18244         definition.
18245         (Complete_Subprograms_Derivation): New subprogram used to complete
18246         type derivation of private tagged types implementing interfaces.
18247         In this case some interface primitives may have been overriden
18248         with the partial-view and, instead of re-calculating them, they
18249         are included in the list of primitive operations of the full-view.
18250         (Build_Derived_Record_Type): Modified to give support to private
18251         types implemening interfaces.
18252         (Access_Definition): Reject ALL on anonymous access types.
18253         (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
18254         type derivation to occur at a deeper accessibility level than the
18255         parent type.
18256         For the case of derivation within a generic body however, disallow the
18257         derivation if the derived type has an ancestor that is a formal type
18258         declared in the formal part of an enclosing generic.
18259         (Analyze_Object_Declaration): For protected objects, remove the check
18260         that they cannot contain interrupt handlers if not declared at library
18261         level.
18262         (Add_Interface_Tag_Components): New subprogram to add the tag components
18263         corresponding to all the abstract interface types implemented by a
18264         record type or a derived record type.
18265         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
18266         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
18267         Process_Full_View, Record_Type_Declaration): Modified to give
18268         support to abstract interface types
18269         (Collect_Interfaces): New subprogram that collects the list of
18270         interfaces that are not already implemented by the ancestors
18271         (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
18272         when partial view has no discriminants and full view has defaults.
18273         (Constrain_Access): Reject a constraint on a general access type
18274         if the discriminants of the designated type have defaults.
18275         (Access_Subprogram_Declaration): Associate the Itype node with the inner
18276         full-type declaration or subprogram spec. This is required to handle
18277         nested anonymous declarations.
18278         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
18279         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
18280         Process_Full_View, Record_Type_Declaration): Modified to give
18281         support to abstract interface types
18282         (Derive_Subprograms): Addition of a new formal to indicate if
18283         we are in the case of an abstact-interface derivation
18284         (Find_Type_Of_Subtype_Indic): Moved from the body of the package
18285         to the specification because it is requied to analyze all the
18286         identifiers found in a list of interfaces
18287
18288         * debug.adb: Complete documentation of flag "-gnatdZ"
18289
18290         * exp_ch3.adb: Implement config version of persistent_bss pragma
18291         (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
18292         testing for TSS presence to properly enforce visibility rules.
18293         (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
18294         Make_Abstract_Interfaces_DT to generate the secondary tables
18295         associated with abstract interfaces.
18296         (Build_Init_Procedure): Modified to initialize all the tags
18297         corresponding.
18298         (Component_Needs_Simple_Initialization): Similar to other tags,
18299         interface tags do not need initialization.
18300         (Freeze_Record_Type): Modified to give support to abstract interface
18301         types.
18302         (Expand_N_Object_Declaration): Do not generate an initialization for
18303         a scalar temporary marked as internal.
18304
18305         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
18306         in-out parameter that is a component in an initialization procedure,
18307         whose constraint might depend on discriminants, and that may be
18308         misaligned because of packing or representation clauses.
18309         (Is_Legal_Copy): New predicate to determine whether a possibly
18310         misaligned in-out actual can actually be passed by copy/return. This
18311         is an error in case the type is by_reference, and a warning if this is
18312         the consequence of a DEC import pragma on the subprogram.
18313         (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
18314         interface types
18315         (Expand_Inlined_Call): Mark temporary generated for the return value as
18316         internal, so that no useless scalar normalization is generated for it.
18317         (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
18318         null procedure can always be inlined.
18319         (Expand_N_Subprogram_Declaration): If this is the declaration of a null
18320         procedure, generate an explicit empty body for it.
18321
18322         * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
18323         Given a type implementing an interface, returns the corresponding
18324         access_disp_table value.
18325         (Find_Interface_Tag): New subprogram. Given a type implementing an
18326         interface, returns the record component containing the tag of the
18327         interface.
18328         (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
18329         previous ones that return the corresponding tag and access_disp_table
18330         entities.
18331         (Is_Predefined_Dispatching_Operation): Determines if a subprogram
18332         is a predefined primitive operation.
18333         (Expand_Subtype_From_Expr): If the expression is a selected component
18334         within an initialization procedure, compute its actual subtype, because
18335         the component may depend on the discriminants of the enclosing record.
18336
18337         * i-cpp.ads, i-cpp.adb:
18338         This package has been left available for compatibility with previous
18339         versions of the frontend. As part of the new layout this is now a
18340         dummy package that uses declarations available at a-tags.ads
18341
18342         * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
18343         "constant access" and "aliased [constant] access" when not compiling
18344         with -gnat05.
18345         Suppress Ada 2005 keyword warning if -gnatwY used
18346         (P_Identifier_Declarations): Add support for object declarations with
18347         access definitions.
18348         (Private_Extension_Declaration): Complete the documentation
18349         (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
18350         attribute in case of private extension declaration
18351         (P_Type_Declaration): Mark as "abstract" the type declarations
18352         corresponding with protected, synchronized and task interfaces
18353         (P_Declarative_Items): "not" and "overriding" are overriding indicators
18354         for a subprogram or instance declaration.
18355
18356         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
18357         instantiation that is a dispatching operation has controlling access
18358         parameters that are null excluding.
18359         Save and restore Ada_Version_Explicit, for implementation of AI-362
18360         (Validate_Derived_Type_Instance): Add check for abstract interface
18361         types.
18362         (Analyze_Formal_Package): Establish Instantiation source for the copy of
18363         the generic that is created to represent the formal package.
18364         (Analyze_Package_Instantiation): Instantiate body immediately if the
18365         package is a predefined unit that contains inlined subprograms, and
18366         we are compiling for a Configurable_Run_Time.
18367         (Instantiate_Formal_Subprogram): Indicate that null default subprogram
18368         If the program has a null default, generate an empty body for it.
18369
18370         * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
18371         error message condition, null procedures are correctly detected now.
18372         (New_Overloaded_Entity): Bypass trivial overriding indicator check
18373         for subprograms in the context of protected types. Instead, the
18374         indicator is examined in Sem_Ch9 while analysing the subprogram
18375         declaration.
18376         (Check_Overriding_Indicator): Check consistency of overriding indicator
18377         on subprogram stubs as well.
18378         (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
18379         the library level.
18380         (Analize_Subprogram_Specification): When analyzing a subprogram in which
18381         the type of the first formal is a concurrent type, replace this type
18382         by the corresponding record type.
18383         (Analyze_Subprogram_Body): Undo the previous work.
18384         (Analyze_Procedure_Call): If the call has the form Object.Op, the
18385         analysis of the prefix ends up analyzing the call itself, after which
18386         we are done.
18387         (Has_Interface_Formals): New subprogram subsidiary to analyze
18388         subprogram_specification that returns true if some non
18389         class-wide interface subprogram is found
18390         (New_Overloaded_Entity): Modified to give support to abstract
18391         interface types
18392         (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
18393         access to subprograms must be recursive.
18394         (Is_Unchecked_Conversion): Improve the test that recognizes
18395         instantiations of Unchecked_Conversion, and allows them in bodies that
18396         are to be inlined by the front-end. When the body comes from an
18397         instantiation, a reference to Unchecked_Conversion will be an
18398         Expanded_Name, even though the body has not been analyzed yet.
18399         Replace Is_Overriding and Not_Overriding in subprogram_indication with
18400         Must_Override and Must_Not_Override, to better express intent of AI.
18401         (Analyze_Subprogram_Body): If an overriding indicator is given, check
18402         that it is consistent with the overrinding status of the subprogram
18403         at this point.
18404         (Analyze_Subprogram_Declaration): Indicate that a null procedure is
18405         always inlined.
18406         If the subprogram is a null procedure, indicate that it does not need
18407         a completion.
18408
18409         * sem_disp.adb (Check_Controlling_Type): Give support to entities
18410         available through limited-with clauses.
18411         (Check_Dispatching_Operation): A stub acts like a body, and therefore is
18412         allowed as the last primitive of a tagged type if it has no previous
18413         spec.
18414         (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
18415         to give support to abstract interface types
18416
18417         * sem_res.adb (Valid_Conversion): Perform an accessibility level check
18418         in the case where the target type is an anonymous access type of an
18419         object or component (that is, when Is_Local_Anonymous_Access is true).
18420         Prevent the special checks for conversions of access discriminants in
18421         the case where the discriminant belongs to a nonlimited type, since
18422         such discriminants have their accessibility level defined in the same
18423         way as a normal component of an anonymous access type.
18424         (Resolve_Allocator): When an allocator's designated type is a class-wide
18425         type, check that the accessibility level of type given in the
18426         allocator's expression or subtype indication is not statically deeper
18427         than the level of the allocator's access type.
18428         (Check_Discriminant_Use): Diagnose discriminant given by an expanded
18429         name in a discriminant constraint of a record component.
18430         (Resolve_Explicit_Dereference): Do not check whether the type is
18431         incomplete when the dereference is a use of an access discriminant in
18432         an initialization procedure.
18433         (Resolve_Type_Conversion): Handle conversions to abstract interface
18434         types.
18435         (Valid_Tagged_Conversion): The conversion of a tagged type to an
18436         abstract interface type is always valid.
18437         (Valid_Conversion): Modified to give support to abstract interface types
18438         (Resolve_Actuals): Enable full error reporting on view conversions
18439         between unrelated by_reference array types.
18440         The rule for view conversions of arrays with aliased components is
18441         weakened in Ada 2005.
18442         Call to obsolescent subprogram is now considered to be a violation of
18443         pragma Restrictions (No_Obsolescent_Features).
18444         (Check_Direct_Boolean_Operator): If the boolean operation has been
18445         constant-folded, there is nothing to check.
18446         (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
18447         check on possible violation of restriction No_Direct_Boolean_Operators
18448         until after expansion of operands, to prevent spurious errors when
18449         operation is constant-folded.
18450
18451         * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
18452         Has_Compatible_Type): Modified to give support to abstract interface
18453         types.
18454         (Interface_Present_In_Ancestor): New function to theck if some ancestor
18455         of a given type implements a given interface
18456
18457         * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
18458         prefix is a parameterless function that returns an access_to_procedure.
18459         (Transform_Object_Operation): Handle properly function calls of the
18460         form Obj.Op (X), which prior to analysis appear as indexed components.
18461         (Analyze_One_Call): Complete the error notification to help new Ada
18462         2005 users.
18463         (Analyze_Allocator): For an allocator without an initial value, where
18464         the designated type has a constrained partial view, a discriminant
18465         constraint is illegal.
18466
18467 2005-06-14  Robert Dewar  <dewar@adacore.com>
18468
18469         * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
18470         do with treatment of Set_Col when positioned at end of line character.
18471
18472 2005-06-14  Robert Dewar  <dewar@adacore.com>
18473
18474         * atree.adb: (Elist*): Protect against uninitialized field
18475
18476 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
18477
18478         * checks.adb (Install_Null_Excluding_Check): Do not generate checks
18479         for an attribute reference that returns an access type.
18480         (Apply_Discriminant_Check): No need for check if (designated) type has
18481         constrained partial view.
18482
18483         (Apply_Float_Conversion_Check): Generate a short-circuit expression for
18484         both bound checks, rather than a conjunction.
18485         (Insert_Valid_Check): If the expression is an actual that is an indexed
18486         component of a bit-packed array, force expansion of the packed element
18487         reference, because it is specifically inhibited elsewhere.
18488
18489 2005-06-14  Vincent Celier  <celier@adacore.com>
18490
18491         * clean.adb (Clean_Project): Correctly delete executable specified as
18492         absolute path names.
18493
18494         * make.adb (Gnatmake): Allow relative executable path names with
18495         directory information even when project files are used.
18496         (Change_To_Object_Directory): Fail gracefully when unable to change
18497         current working directory to object directory of a project.
18498         (Gnatmake): Remove exception handler that could no longer be exercized
18499         (Compile_Sources.Compile): Use deep copies of arguments, as some of them
18500         may be deallocated by Normalize_Arguments.
18501         (Collect_Arguments): Eliminate empty arguments
18502
18503         * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
18504         and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
18505         (Check_Project): Return False when Project is No_Project. Return True
18506         when All_Projects is True.
18507         (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
18508         All_Projects to True.
18509         Minor reformatting
18510
18511 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
18512             Javier Miranda  <miranda@adacore.com>
18513             Thomas Quinot  <quinot@adacore.com>
18514             Robert Dewar  <dewar@adacore.com>
18515             Hristian Kirtchev  <kirtchev@adacore.com>
18516             Gary Dismukes  <dismukes@adacore.com>
18517
18518         * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
18519         anonymous access types, to indicate that the accessibility level of
18520         the type is determined by that of the enclosing declaration.
18521         (Has_Persistent_BSS): New flag
18522         (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
18523         of this attribute with functions.
18524         (Is_Primitive_Wrapper): Remove the barrier.
18525         (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
18526         Has_Specified_Stream_Read, Has_Specified_Stream_Write):
18527         New subprograms.
18528         (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
18529         Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
18530         New subprograms.
18531         (Is_Pure_Unit_Access_Type): New flag
18532         (Abstract_Interfaces): Complete the assertion to cover all usages.
18533         (Set_Is_Interface): Complete the assertion to cover all usages.
18534         (Is_Primitive_Wrapper): New attribute.
18535         (Is_Obsolescent): Now applies to all entities (though it is only set
18536         for subprograms currently)
18537         New flag:  Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
18538         which solves various problems concerning access subtypes.
18539         (Has_Persistent_BSS): New flag
18540         (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
18541         Remove these subprograms because this attribute is currently
18542         not used.
18543         New entity flags:
18544         Has_Specified_Stream_Input (Flag190)
18545         Has_Specified_Stream_Output (Flag191)
18546         Has_Specified_Stream_Read (Flag192)
18547         Has_Specified_Stream_Write (Flag193)
18548         Present in all type and subtype entities. Set for a given view if the
18549         corresponding stream-oriented attribute has been defined by an
18550         attribute definition clause. When such a clause occurs, a TSS is set
18551         on the underlying full view; the flags are used to track visibility of
18552         the attribute definition clause for partial or incomplete views.
18553         (Is_Pure_Unit_Access_Type): New flag
18554         Clarify use of Is_Internal.
18555         (Is_Primitive_Wrapper): New attribute present in primitive subprograms
18556         internally generated to wrap the invocation of tasks and protected
18557         types that implement interfaces.
18558         (Implementation_Base_Type): Documentation correction
18559         (Is_Obsolescent): Now applies to all entities (though it is only set
18560         for subprograms currently)
18561         New flag:  Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
18562         which solves various problems concerning access subtypes.
18563
18564         * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
18565         for examined parameters. Identify unequal parameter list lengths as
18566         non-conformant parameters.
18567         (Overriding_Possible): Do not check for "All" qualifier in declaration
18568         of controlling access parameter, following prescription of AI-404.
18569         (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
18570         that build the procedure body that wraps an entry invocation
18571         (Build_Corresponding_Record, Build_Protected_Sub_Specification,
18572         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
18573         Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
18574         give support to abstract interface types
18575
18576         * freeze.adb (Freeze_Entity): Issue error message if
18577         Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
18578         type has no storage pool (Ada 2005) AI-366.
18579         Also modified to give support to abstract interface types
18580         (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
18581         Inline_Always pragma.
18582
18583         * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
18584         now begin an entry declaration.
18585         (P_Entry_Or_Subprogram_With_Indicator): New procedure in
18586         P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
18587         a subprogram declaration preceded by an overriding indicator.
18588         (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
18589         declarations or subprogram declarations preceded by reserved words
18590         "not" or "overriding".
18591         (P_Entry_Declaration): Update comment. Parse and check overriding
18592         indicator, set semantic flags of entry declarations.
18593         (P_Task): New error message in case of private applied
18594         to a task type declaration.
18595         (P_Protected): New error message in case of private applied
18596         to a task type declaration.
18597
18598         * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
18599         in which the full view of a type implementing an interface is a
18600         concurrent type.
18601         (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
18602         Declare_Inherited_Private_Subprograms): If an explicit operation
18603         overrides an operation that is inherited in the private part, mark the
18604         explicit one as overriding, to enable overriding indicator checks.
18605         (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
18606         full view to partial view, to simplify handling in back-end.
18607
18608         * sprint.adb: Print interface lists where needed: derived types,
18609         protected types, task types.
18610         output "is null" for null procedures. Part of implementation of
18611
18612         * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
18613         relaxation of rules for access types in pure, shared passive partitions.
18614
18615         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
18616         first read discriminants into temporary objects, performing checks on
18617         the read values, then possibly performing discriminant checks on the
18618         actual (if it is constrained), and only finally reading the components
18619         into a constrained temporary object.
18620         (Build_Elementary_Input_Call): Adjust the specific circuitry for the
18621         case of reading discriminants of a mutable record type to recognize
18622         the new form of the code generated by
18623         Build_Mutable_Record_Read_Procedure.
18624
18625         * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
18626         of a simple call to Make_TSS_Name.
18627         (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
18628         buffer, in order for Is_TSS to work correctly on local TSS names.
18629
18630         * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
18631         Is_Local_Anonymous_Access to check legaliy of attributes in the
18632         context of  access components and stand-alone access objects.
18633         (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
18634         treated as available for a limited private type if there is an
18635         attribute_definition_clause that applies to its full view, but not in
18636         other cases where the attribute is available for the full view
18637         (specifically, the sole fact that the full view is non-limited does not
18638         make the attribute available for the partial view).
18639         (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
18640         non-overloaded intrinsic subprogram.
18641         (Check_Stream_Attribute): Reject an attribute reference for an
18642         unavailable stream attribute even if the prefix is not a limited type
18643         (case of a 'Input attribute reference for an abstract, non-classwide
18644         type)
18645         (Stream_Attribute_Available): New function to determine whether a stream
18646         attribute is available at a place.
18647         (Check_Attribute): Use Stream_Attribute_Available instead of just
18648         testing for TSS presence on the implementation base type.
18649         (Analyze_Attribute): Modified to give support to task interfaces.
18650         (Analyze_Access_Attribute): Add error check for use of an Access (or
18651         Unrestricted_Access) attribute with a subprogram marked as
18652         Inline_Always.
18653         (Analyze_Attribute, case Attribute_Address): Add error check for use of
18654         an Address attribute with a subprogram marked as Inline_Always.
18655         Update Eval_Attribute to handle new value of Width from AI-395
18656
18657         * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
18658         (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
18659         Factor common code across the stream-oriented attribute circcuits into
18660         a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
18661         processing is functionally identical to the previous duplicated one,
18662         except that an expression that denotes an abstract subprogram will now
18663         be rejected, as mandated by AI-195 item 5.
18664
18665         * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
18666         Is_Local_Anonymous_Access to apply accessibility checks to access
18667         components and stand-alone access objects.
18668         (Has_Discriminant_Dependent_Constraint): Moved to spec for use
18669         elsewhere.
18670         (Is_Potentially_Persistent_Type): New function
18671         (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
18672         a heap-object whose type has a constrained partial view, the object is
18673         unconstrained and the component may depend on a discriminant, making its
18674         renaming illegal.
18675
18676         * sinfo.ads, sinfo.adb
18677         (Must_Not_Override): Flag applicable to N_Entry_Declaration.
18678         (Must_Override): Flag applicable to N_Entry_Declaration.
18679         Indicate that interface_list can appear in single task and single
18680         protected declarations.
18681         Replace Is_Overriding and Not_Overriding with Must_Override and
18682         Must_Not_Override, to better express intent of AI.
18683         Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
18684         of an overriding indicator in a subprogram or instance.
18685         Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
18686         Add the overriding indicator [[not] overriding] construct to the
18687         following grammar productions:
18688          ENTRY_DECLARATION
18689          GENERIC_INSTANTIATION
18690          SUBPROGRAM_SPECIFICATION
18691
18692         * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
18693         can start with an overriding indicator.
18694
18695         * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
18696         flags accordingly on subrogram specifications or instances.
18697
18698         * sem_ch8.adb:
18699         (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
18700         overriding_indicator, if present, is consistent with status of spec.
18701         Improve error message for null-excluding checks on controlling access
18702         parameters.
18703         (Check_In_Previous_With_Clause): Protect the frontend against
18704         previously reported critical errors in the context clauses.
18705         Save and restore Ada_Version_Explicit, for implementation of AI-362
18706         (Analyze_Subprogram_Renaming): If the new entity is a dispatching
18707         operation verify that controlling formals of the renamed entity that
18708         are access parameters are explicitly non-null.
18709         (Find_Expanded_Name): Improve error message when prefix is an illegal
18710         reference to a private child unit.
18711
18712         * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
18713         s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
18714         Rewrite to correspond to new wide character names in AI-395
18715
18716         * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
18717         default procedures.
18718
18719 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
18720             Robert Dewar  <dewar@adacore.com>
18721
18722         * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
18723         code, not on the bodies of predefined operations, to cut down on
18724         spurious noise.
18725
18726 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
18727
18728         * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
18729         be expanded in place. The size computation does not require a
18730         subtraction, which would raise an exception on a compiler built with
18731         assertions when the upper bound is Integer'first.
18732         (Flatten): For an array of composite components, take into account the
18733         size of the components to determine whether it is safe to expand the
18734         array into a purely positional representation.
18735
18736 2005-06-14  Thomas Quinot  <quinot@adacore.com>
18737
18738         * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
18739         denoting a formal parameter into account.
18740
18741 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
18742
18743         * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
18744         the entry_call alternative of a conditional entry call, wrap the
18745         conditional entry call itself.
18746
18747 2005-06-14  Nicolas Setton  <setton@adacore.com>
18748             Ed Schonberg  <schonberg@adacore.com>
18749
18750         * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
18751         the "simple_choice" member in a variant record, in accordance with the
18752         description in the package spec: the information output for a constant
18753         should be "S number", not "SS number".
18754         (Get_Encoded_Name): Return at once if not generating code. Avoids name
18755         overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
18756
18757 2005-06-14  Thomas Quinot  <quinot@adacore.com>
18758
18759         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
18760         RACW without any primitives, do not generate the if statement for
18761         dispatching by name in the PolyORB/DSA case, as it would be malformed
18762         (it would have an Elsif_Parts list that is not No_List, but with a
18763         length of 0).
18764
18765 2005-06-14  Robert Dewar  <dewar@adacore.com>
18766
18767         * exp_intr.adb, par-ch5.adb: Minor fix to error message text
18768
18769 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
18770
18771         * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
18772         can determine whether pragma Suppress_Exception_Locations is in effect.
18773
18774         * utils2.c (build_call_raise): Do not pass the file name to the
18775         exception handler if pragma Suppress_Exception_Locations is in effect.
18776         (build_allocator): Add and process arg IGNORE_INIT_TYPE.
18777
18778 2005-06-14  Emmanuel Briot  <briot@adacore.com>
18779
18780         * g-debpoo.adb (Deallocate, Dereference): Improve output.
18781
18782 2005-06-14  Nicolas Roche  <roche@adacore.com>
18783
18784         * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
18785         to ""
18786         (Next_Level): Fix minor bug in handling of ../dir case
18787         (Read): Add dir separator to Directory name so that "" is understood as
18788          "/"
18789
18790 2005-06-14  Pascal Obry  <obry@adacore.com>
18791
18792         * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
18793         releasing the items.
18794
18795 2005-06-14  Vincent Celier  <celier@adacore.com>
18796             Cyrille Comar  <comar@adacore.com>
18797
18798         * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
18799         with output file descriptor and with output file name.
18800         (Dup, Dup2): Now global procedures as they are used by two subprograms
18801         (Copy): Allocate the 200K buffer on the heap rather than on the stack.
18802
18803 2005-06-14  Thomas Quinot  <quinot@adacore.com>
18804
18805         PR ada/6717
18806         * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
18807         broadcast address.
18808         (Create_Selector): Bind listening socket used to create the signalling
18809         socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
18810         Set listen backlog to 1 to ensure that we detect socket theft by a
18811         failure of our own connect(2) call.
18812         (Check_Selector): Improve documentation of the selector mechanism.
18813         (Broadcast_Inet_Addr): New constant.
18814
18815 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
18816
18817         * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
18818         type which turns out to be an incomplete and incorrect fix.
18819         (Layout_Array_Type): Use Underlying_Type when checking whether the scope
18820         of the type is declared in a record (for determination of insertion
18821         type).
18822         (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
18823         a private type and ensure that the primary entity is used for the type
18824         of the newly created function's V formal by taking the Etype of the
18825         view.
18826
18827 2005-06-14  Javier Miranda  <miranda@adacore.com>
18828             Jose Ruiz  <ruiz@adacore.com>
18829             Robert Dewar  <dewar@adacore.com>
18830             Ed Schonberg  <schonberg@adacore.com>
18831
18832         * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
18833         that indicates if we are parsing a compilation unit found in a
18834         limited-with clause.
18835         It is use to avoid the circularity check.
18836
18837         * par.ads, par.adb (Par): Addition of a new parameter to indicate if
18838         we are parsing a compilation unit found in a limited-with clause. This
18839         is use to avoid the circularity check.
18840
18841         * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
18842         unit as a consequence of parsing a limited-with clause. This is used
18843         to avoid the circularity check.
18844
18845         * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
18846         (Analyze_Context): Limited-with clauses are now allowed
18847         in more compilation units.
18848         (Analyze_Subunit_Context, Check_Parent): Protect the frontend
18849         againts previously reported critical errors in context clauses
18850         (Install_Limited_Withed_Unit): Code cleanup plus static detection
18851         of two further errors: renamed subprograms and renamed packages
18852         are not allowed in limited with clauses.
18853         (Install_Siblings): Do not install private_with_clauses on the package
18854         declaration for a non-private child unit.
18855         (Re_Install_Parents): When a parent of the subunit is reinstalled,
18856         reset visibility of child units properly.
18857         (Install_Withed_Unit): When a child unit appears in a with_clause of its
18858         parent, it is immediately visible.
18859
18860 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
18861             Emmanuel Briot  <briot@adacore.com>
18862
18863         * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
18864         declared within an inlined body as referenced, to prevent spurious
18865         warnings.
18866         (Output_One_Ref): If an entity renames an array component, indicate in
18867         the ALI file that this aliases (renames) the array. Capture as well
18868         function renamings that rename predefined operations.
18869         Add information about generic parent for package and subprogram
18870         instances.
18871         (Get_Type_Reference): For a subtype that is the renaming of an actual in
18872         an instantiation, use the first_subtype to ensure that we don't generate
18873         cross-reference information for internal types.
18874         For objects and parameters of a generic private type, retain the '*'
18875         indicator to distinguish such an entity from its type.
18876
18877         * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
18878         to store information about instantiated entities.
18879
18880         * ali.adb (Scan_ALI): Add support for parsing the reference to the
18881         generic parent
18882
18883         * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
18884         (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
18885         information.
18886
18887 2005-06-10  Doug Rupp  <rupp@adacore.com>
18888             Arnaud Charlet  <charlet@adacore.com>
18889             Olivier Hainque  <hainque@adacore.com>
18890             Jose Ruiz  <ruiz@adacore.com>
18891
18892         * Make-lang.in: Add initialize.o when needed.
18893         Remove obsolete references to RT_FLAGS.
18894         Add missing dependencies for sdefault.o
18895
18896         * initialize.c: New file.
18897
18898         * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
18899         [VMS] cond_signal_table: Fix problem in declaration.
18900         [VMS] __gnat_error_handler: rewrite.
18901         Move all __gnat_initialize() routines to initialize.c
18902         Specialize the former "hpux" section to "hppa hpux", as this is what the
18903         section really is here for and we now have other hpux ports that need
18904         different contents.
18905         (__gnat_adjust_context_for_raise) i386-linux: First version of this
18906         function for this target. Adjust PC by one in the machine context. This
18907         adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
18908         it is more reliable to do that in the signal handler itself.
18909         (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
18910         flags, so that the handler is passed the context structure to adjust
18911         prior to the raise.
18912         (__gnat_error_handler) i386-linux: Adjust the signature to match what a
18913         SA_SIGINFO sigaction should look like. Call
18914         __gnat_adjust_context_for_raise before actually raising. Cleanup unused
18915         Machine_State_Operations stuff.
18916         Add conditional code so that the x86_64 is also supported.
18917
18918 2005-06-14  Pascal Obry  <obry@adacore.com>
18919
18920         * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
18921         the library name.
18922
18923 2005-06-14  Robert Dewar  <dewar@adacore.com>
18924
18925         * opt.ads, opt.adb: New flags for persistent_bss mode
18926         Add Ada_Version_Explicit, for implementation of AI-362
18927         Add Assertions_Enabled_Config and associated handling
18928         Needed since setting can be changed with Assertion_Policy pragma
18929         Add new flag Warn_On_Ada_2005_Compatibility
18930
18931         * switch-c.adb: Recognize -gnatwy/Y
18932         Set Ada_Version_Explicit, for implementation of AI-362
18933         The -gnatg switch now includes -gnatyu
18934
18935         * usage.adb: Add -gnatwy/Y
18936         Remove wrong asterisk on -gnatwX line
18937         Add line for -gnatyu switch
18938
18939 2005-06-14  Vincent Celier  <celier@adacore.com>
18940
18941         * osint.adb (Add_Default_Search_Dirs): Put source and object
18942         directories of project files before directories coming from
18943         ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
18944
18945 2005-06-14  Robert Dewar  <dewar@adacore.com>
18946
18947         PR ada/15613
18948         * par-ch2.adb (Scan_Pragma_Argument): New procedure
18949         (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
18950
18951 2005-06-14  Vincent Celier  <celier@adacore.com>
18952
18953         * prep.adb (Preprocess): Ignore error when scanning the first token of
18954         a line.
18955
18956 2005-06-14  Vincent Celier  <celier@adacore.com>
18957
18958         * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
18959         (Check_Stand_Alone_Library): If the specified reference symbol file does
18960         not exist, only issue a warning when the symbol policy is not
18961         Controlled. And, when symbol policy is Compliant, set the symbol
18962         policy to Autonomous.
18963
18964 2005-06-14  Vincent Celier  <celier@adacore.com>
18965
18966         * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
18967         when the project file in a with clause is not the last one, that is the
18968         project file name is followed by a comma.
18969         * prj-pp.adb: (First_With_In_List): New Boolean global variable
18970         (Print): Issue list of project files separated by commas in with clauses
18971         according to the values returned by Is_Not_Last_In_List.
18972         * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
18973         (Set_Is_Not_Last_In_List): New procedure
18974
18975 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
18976
18977         * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
18978
18979 2005-06-14  Robert Dewar  <dewar@adacore.com>
18980
18981         * scng.adb: Add call to new Check_EOF routine
18982         (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
18983         Add some comments regarding wide character handling
18984
18985         * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
18986
18987         * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
18988
18989         * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
18990         characters are now considered graphic characters and hence yield false
18991         in this call.
18992
18993         * nmake.adt: Modify header so that xnmake does not generate output
18994         files with multiple blank lines.
18995
18996         * treeprs.adt: Remove a blank line so that output from xtreeprs does
18997         not have an extra blank line
18998
18999 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
19000
19001         * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
19002         expression when the component type is an anonymous access type to
19003         ensure that appropriate accessibility checks are done.
19004
19005         * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
19006         expression of an assignment when the target object is of an anonymous
19007         access type. This ensures that required accessibility checks are done.
19008         (One_Bound): Move the check for type Universal_Integer to
19009         Process_Bounds.
19010         (Process_Bounds): Check whether the type of the preanalyzed range is
19011         Universal_Integer, and in that case set Typ to Integer_Type prior
19012         to setting the type of the original range and the calls to One_Bound.
19013
19014 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
19015
19016         * sem_case.adb (Expand_Others_Choice): Improve warning.
19017
19018 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
19019
19020         * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
19021         constraint of full view if present, when other type is discriminated.
19022         (Eval_Relational_Op): Recognize tests of pointer values against Null,
19023         when the pointer is known to be non-null, and emit appropriate warning.
19024
19025 2005-06-14  Robert Dewar  <dewar@adacore.com>
19026             Ed Schonberg  <schonberg@adacore.com>
19027
19028         PR ada/10671
19029         * sem_prag.adb: Implement pragma Persistent_BSS
19030         Remove obsolete pragma Persistent_Data, Persistent_Object
19031         Set Ada_Version_Explicit, for implementation of AI-362
19032         Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
19033         Add processing for pragma Pure_05 and Preelaborate_05
19034         Add processing for Assertion_Policy pragma
19035         Add pragma identifiers for Assert
19036         (Analyze_Pragma, case Assert): Check number of arguments
19037         (Process_Inline): Additional guard against an illegal program, where the
19038         argument of the pragma is undefined, and warnings on redundant
19039         constructs are enabled.
19040         (Analyze_Pragma, case Obsolescent): Allow an optional second argument
19041         Ada_05 to this pragma, specifying that the pragma is only active in
19042         Ada_05 mode.
19043         (Check_Arg_Order): New procedure
19044         Add appropriate calls to this procedure throughout
19045         Also throughout, check entity name before doing any other checks
19046
19047         * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
19048         Remove obsolete pragma Persistent_Data, Persistent_Object
19049         Add entries for pragma Pure_05 and Preelaborate_05
19050         Add entries for Assertion_Policy pragma and associated names
19051         Add some names for pragma argument processing
19052
19053         * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
19054
19055 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
19056
19057         * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
19058         appears within a negation (either from source or as a rewriting of
19059         inequality) adjust text of warning accordingly.
19060
19061 2005-06-14  Thomas Quinot  <quinot@adacore.com>
19062
19063         * s-strxdr.adb: Follow AI95-00132
19064
19065 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
19066
19067         * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
19068
19069 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
19070             Jose Ruiz  <ruiz@adacore.com>
19071
19072         * s-tposen.adb, s-tpobop.adb
19073         (Exceptional_Complete_Rendezvous): Save the occurrence and not only
19074         the exception id.
19075         (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
19076         there is no violation of the Max_Entry_Queue_Length restriction (if it
19077         has been set); Program_Error is raised otherwise.
19078         (Requeue_Call): Before requeuing the task on the target entry queue we
19079         check that there is no violation of the Max_Entry_Queue_Length
19080         restriction (if it has been set); Program_Error is raised otherwise.
19081
19082 2005-06-14  Robert Dewar  <dewar@adacore.com>
19083
19084         * styleg.adb: Fix several remaining problems in -gnatyu switch
19085         Blank line count not reset at start
19086         Scanning outside source buffer in some cases
19087         Confusing message for blanks at end of file
19088         Non-empty blank lines not recognized
19089
19090         * nmake.adt: Modify header so that xnmake does not generate output
19091         files with multiple blank lines.
19092
19093         * treeprs.adt: Remove a blank line so that output from xtreeprs does
19094         not have an extra blank line
19095
19096 2005-06-14  Sergey Rybin  <rybin@adacore.com>
19097
19098         * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
19099
19100 2005-06-14  Doug Rupp  <rupp@adacore.com>
19101             Vincent Celier  <celier@adacore.com>
19102
19103         * vms_conv.ads, vms_conv.adb: Remove "Library" command.
19104         Update copyright.
19105
19106         * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
19107         Remove "Library" command.
19108         Change keyword for style check -gnatyd from NOCRLF to
19109         DOS_LINE_ENDINGS.
19110         Remove useless second style check keyword NONE
19111         Remove help documentation for inexistent style check keyword
19112         RM_COLUMN_LAYOUT.
19113         Add help documentation for style check keywords DOS_LINE_ENDINGS,
19114         UNNECESSARY_BLANK_LINES and XTRA_PARENS
19115         Add UNNECESSARY_BLANK_LINES for -gnatyu
19116         Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
19117
19118         * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
19119
19120 2005-06-14  Vincent Celier  <celier@adacore.com>
19121
19122         * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
19123         gprmake was invoked with -d.
19124         (Compile_Sources): If -d was used, output the "completed ..." message
19125         for each compilation.
19126         (Scan_Arg): Recognize new switch -d
19127         When -c and at least one main is specified, set
19128         Unique_Compile to True to guarantee that no other sources will be
19129         compiled.
19130
19131 2005-06-14  Matthew Heaney  <heaney@adacore.com>
19132
19133         * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
19134         * a-swuwha.ads, a-swuwha.adb: New files
19135
19136         * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
19137         * a-szuzha.ads, a-szuzha.adb: New files.
19138
19139         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
19140         a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads,
19141         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads,
19142         a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
19143         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
19144         a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
19145         a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads,
19146         a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
19147         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
19148         a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
19149         Ada 2005 RM.
19150
19151 2005-06-10  Eric Botcazou  <ebotcazou@adacore.com>
19152             Olivier Hainque  <hainque@adacore.com>
19153             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19154             Pascal Obry  <obry@adacore.com>
19155
19156         * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
19157
19158         * trans.c (call_to_gnu): Issue a warning for users of Starlet when
19159         making a temporary around a procedure call because of non-addressable
19160         actual parameter.
19161         (process_freeze_entity): If entity is a private type, capture size
19162         information that may have been computed for the full view.
19163         (tree_transform, case N_Allocator): If have initializing expression,
19164         check type for Has_Constrained_Partial_View and pass that to
19165         build_allocator.
19166         (tree_transform, case N_Return_Statement): Pass extra arg to
19167         build_allocator.
19168
19169         * decl.c (annotate_value): Remove early return if -gnatR is not
19170         specified.
19171         (gnat_to_gnu_field): Don't make a packable type for a component clause
19172         if the position is byte aligned, the field is aliased, and the clause
19173         size isn't a multiple of the packable alignment. It serves no useful
19174         purpose packing-wise and would be rejected later on.
19175         (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
19176
19177         PR ada/20515
19178         (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
19179         context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
19180         instead.
19181         (create_concat_name): Idem.
19182
19183 2005-06-10  Robert Dewar  <dewar@adacore.com>
19184             Eric Botcazou  <ebotcazou@adacore.com>
19185             Ben Brosgol  <brosgol@adacore.com>
19186             Cyrille Comar  <comar@adacore.com>
19187             Sergey Rybin  <rybin@adacore.com>
19188             Pascal Obry  <obry@adacore.com>
19189
19190         * gnat_rm.texi: Add documentation for pragma Persistent_BSS
19191         Document second argument (Ada_05) of pragma Obsolescent
19192         Add note that call to subprogram marked with pragma Obsolescent
19193         is now considered to be a violation of program Restrictions
19194         (No_Obsolescent_Features).
19195         (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
19196         that only machine-dependent attributes are supported.
19197
19198         * gnat_ugn.texi:
19199         Commented out menu lines and empty section for gnatclean examples
19200         Document -gnatwy/Y
19201         Fix some over long lines
19202         Clarify and enhance documentation of ADA_PROJECT_PATH.
19203         Rework section 2.11.2(3) about linking with a non-GNU compiler.
19204         Mention new switch -fcallgraph-info.
19205         Mention new switch -fstack-usage.
19206         For gnatpp, replace '-notab' with '-N' and add this option to Index
19207         Corrected VMS example.
19208         VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
19209         Minor reformatting
19210         Add documentation for -gnatyu switch (unnecessary blank lines)
19211         Document new switch -U for GNAT PRETTY and GNAT METRIC
19212         Add note about Stdcall being handled as C convention on non Windows OS.
19213         Remove some junk typo in description of gnatbind -S switch
19214         Remove reference to Extensions_Allowed pragma
19215         Document the new order of the directories to be searched (source and
19216         object directories of project files before directories in ADA_*_PATH
19217         environment variables.
19218
19219         * g-trasym.ads: Document that IRIX is supported
19220
19221 2005-06-10  Arnaud Charlet  <charlet@adacore.com>
19222
19223         * Makefile.in: Add initialize.o when needed.
19224         Adapt to new VMS package body Symbols and subunits
19225         No specialized version of a-sytaco is needed for VxWorks.
19226
19227         * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
19228         * a-zchara.ads, a-widcha.ads: New files.
19229
19230         * system-hpux-ia64.ads: New file.
19231
19232         * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
19233         is imported from the VxWorks kernel.
19234
19235 2005-06-14  Robert Dewar  <dewar@adacore.com>
19236
19237         * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
19238         fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
19239         a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
19240         s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
19241         a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
19242         g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
19243         i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
19244         namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
19245         sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
19246         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
19247         s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
19248         xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
19249
19250 2005-06-14  Thomas Quinot  <quinot@adacore.com>
19251
19252         * xeinfo.adb: Fix typo in comment
19253
19254 2005-06-14  Javier Miranda  <miranda@adacore.com>
19255
19256         * repinfo.ads: Fix typo in comment
19257
19258 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
19259
19260         * s-finimp.adb (Parent_Tag): Delete this imported function (function
19261         Parent_Tag is now in the visible part of Ada.Tags).
19262         (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
19263         using imported function.
19264
19265 2005-06-14  Bernard Banner  <banner@adacore.com>
19266
19267         * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
19268         also apply for handling support for VxSim 653.
19269
19270 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
19271
19272         * xsnames.adb: Add automatic generation of snames.h.
19273
19274 2005-06-14  Thomas Quinot  <quinot@adacore.com>
19275
19276         * gen-soccon.c: Add IP_MULTICAST_IF constant
19277         Minor reformatting and adjustments to prevent warnings.
19278
19279 2005-06-14  Pascal Obry  <obry@adacore.com>
19280
19281         * seh_init.c: Do not include <sys/stat.h>. This is not needed.
19282
19283 2005-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
19284
19285         * trans.c (gnat_gimplify_expr): Call
19286         recompute_tree_invarant_for_addr_expr when we change
19287         the operand of the ADDR_EXPR.
19288
19289 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19290
19291         * misc.c: Don't include errors.h.
19292
19293 2005-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19294
19295         * raise.c (db): Add ATTRIBUTE_PRINTF_2.
19296
19297 2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
19298
19299         * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
19300         comment typos.
19301         * gnat_rm.texi, gnat_ugn.texi: Fix typos.
19302
19303 2005-05-16  Nathanael Nerode <neroden@gcc.gnu.org>
19304
19305         PR ada/20270
19306         * Makefile.in: Make TGT_LIB behave correctly.
19307
19308 2005-04-23  DJ Delorie  <dj@redhat.com>
19309
19310         * misc.c: Adjust warning() callers.
19311
19312 2005-04-16  Laurent GUERBY  <laurent@guerby.net>
19313
19314         PR ada/18847
19315         * a-nudira.adb (Value): Check for valid string.
19316         * a-nuflra.adb (Value): Likewise.
19317
19318 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
19319
19320         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
19321
19322 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
19323
19324         * adaint.c, init.c, tracebak.c: Fix comment typos.
19325         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
19326
19327 2005-04-07  Laurent GUERBY  <laurent@guerby.net>
19328             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19329
19330         * Makefile.in: Add make ifeq define for hppa linux tasking support.
19331         * system-hpux.ads: Define Signed_Zeros to be True.
19332         * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
19333
19334 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
19335
19336         * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
19337         raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
19338         typos.
19339
19340 2005-03-30  Tom Tromey  <tromey@redhat.com>
19341
19342         * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
19343
19344 2005-03-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
19345
19346         * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
19347
19348 2005-03-29  Robert Dewar  <dewar@adacore.com>
19349
19350         * sem_res.adb (Resolve_Real_Literal): Generate warning if static
19351         fixed-point expression has value that is not a multiple of the Small
19352         value.
19353
19354         * opt.ads (Warn_On_Bad_Fixed_Value): New flag
19355
19356         * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
19357         nanoseconds.
19358
19359         * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
19360
19361 2005-03-29  Vincent Celier  <celier@adacore.com>
19362
19363         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
19364         (Build_Dynamic_Library.Version_String): Return the empty string when
19365         Lib_Version is empty or when the symbol policy is not Autonomous.
19366
19367         * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
19368         a symbol is not in the reference symbol file, increase the Major ID
19369         and set the Minor ID to 0.
19370         Use gsmatch=lequal instead of gsmatch=equal
19371
19372 2005-03-29  Doug Rupp  <rupp@adacore.com>
19373
19374         * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
19375         name and translate.
19376
19377 2005-03-29  Javier Miranda  <miranda@adacore.com>
19378
19379         * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
19380         (Inherit_DT): The first formal has been redefined as a Tag.
19381         This allows us the removal of the subprogram Get_TSD.
19382         (TSD): Replace the call to Get_TSD by the actual code.
19383
19384         * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
19385         (Make_DT): Upgrade the call to Inherit_TSD according to the
19386         new interface: the first formal is now a Tag.
19387
19388         * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
19389         redefined as a Tag.
19390         This change allows us to remove the subprogram Get_TSD.
19391         (CPP_Get_TSD): Subprogram removed.
19392         (TSD): Replace the call to CPP_Get_TSD by the actual code.
19393
19394         * rtsfind.ads: Remove support to call the run-time
19395         subprogram Get_TSD
19396
19397 2005-03-29  Robert Dewar  <dewar@adacore.com>
19398
19399         * errutil.adb, errout.adb:
19400         Minor comment updates on Line_Terminator references
19401
19402         * par-ch10.adb: Add ??? comment about line terminator
19403
19404         * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
19405         (check dos line terminator).
19406         (Check_Line_Max_Length): New procedure, split off from the existing
19407         Check_Line_Terminator routine. Separating this out allows -gnatyf to
19408         be properly recognized.
19409
19410         * styleg.adb: Add ??? comment for line terminator reference
19411
19412         * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
19413         (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
19414
19415         * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
19416         (check dos line terminator).
19417         (Check_Line_Max_Length): New procedure, split off from the existing
19418         Check_Line_Terminator routine. Separating this out allows -gnatyf to
19419         be properly recognized.
19420
19421         * stylesw.ads, stylesw.adb:
19422         Add handling for new -gnatyd switch (check dos line terminator)
19423
19424         * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
19425         Recognize -gnatwb/-gnatwB switches
19426         Include Warn_On_Bad_Fixed_Value for -gnatg
19427
19428         * usage.adb:
19429         Add line for new -gnatyd switch (check dos line terminator)
19430
19431         * usage.adb: Add lines for -gnatwb/-gnatwB
19432
19433         * vms_data.ads: Add entry for NOCRLF (-gnatyd)
19434
19435         * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
19436
19437         * gnat_ugn.texi: Fix overlong lines
19438         Document new -gnatyd switch
19439         Document new -gnatwb/-gnatwB switches
19440
19441 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
19442
19443         * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
19444         order to retrieve the component list of the type, before examining
19445         individual components.
19446
19447         * sem_type.adb (Covers): Types are compatible if one is the base type
19448         of the other, even though their base types might differ when private
19449         views are involved.
19450
19451 2005-03-29  Thomas Quinot  <quinot@adacore.com>
19452
19453         * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
19454         To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
19455         of using Set_Renaming_TSS. This ensures that the TSS bodies are not
19456         analyzed if expansion is disabled (which could otherwise cause spurious
19457         error messages if expansion has been disabled due to previous
19458         (unrelated) errors).
19459
19460         * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
19461         is disabled, the entity denoted by the argument is the access type
19462         itself, not an underlying record type, so there is no need to go back
19463         to the Corresponding_Remote_Type.
19464
19465 2005-03-29  Gary Dismukes  <dismukes@adacore.com>
19466             Robert Dewar  <dewar@adacore.com>
19467
19468         * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
19469         expand a call to an instance of
19470         Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
19471         Constructor actual of the instance. A class-wide membership
19472         check is also generated, to ensure that the tag passed to the instance
19473         denotes a type in the class.
19474         (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
19475         of Name_Generic_Dispatching_Constructor.
19476
19477         * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
19478         05 unit for AI-260-02).
19479
19480         * a-tgdico.ads: New file.
19481
19482         * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
19483         predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
19484
19485         * snames.ads, snames.adb (Preset_Names): Add entry for
19486         Generic_Dispatching_Constructor.
19487
19488         PR ada/20300
19489         * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
19490         character type cases.
19491         (Analyze_Subprogram_Renaming): Add special handling for
19492         the case of renaming of stream attributes when the renaming denotes a
19493         generic formal subprogram association for an abstract formal subprogram.
19494         Check that the attribute is a primitive stream attribute (and not
19495         a class-wide stream attribute) and then rewrite the attribute name
19496         as the name of the appropriate compiler-generated stream primitive.
19497
19498 2005-03-29  Robert Dewar  <dewar@adacore.com>
19499
19500         * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
19501         recursive calls.
19502         (Is_Possibly_Unaligned_Object): Correct typo that
19503         resulted in inaccurate result for unaligned scalars within records.
19504
19505 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
19506
19507         * freeze.adb (Freeze_Record_Type): If the type of the component is an
19508         itype whose parent is controlled and not yet frozen, do not create a
19509         freeze node for the itype if expansion is disabled.
19510
19511 2005-03-29  Vincent Celier  <celier@adacore.com>
19512
19513         * make.adb (Gnatmake): Don't fail if the main project file is declared
19514         as having no Ada sources. Do not display message "no sources to
19515         compile" in quiet output.
19516
19517 2005-03-29  Doug Rupp  <rupp@adacore.com>
19518
19519         * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
19520         extra tools.
19521
19522 2005-03-29  Robert Dewar  <dewar@adacore.com>
19523
19524         * par-ch12.adb (P_Generic): Give better msg for illegal private generic
19525         child.
19526
19527 2005-03-29  Robert Dewar  <dewar@adacore.com>
19528
19529         * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
19530         missing TYPE Improve the error message generated when compiling a
19531         limited interface in Ada83 or Ada95 mode.
19532
19533 2005-03-29  Robert Dewar  <dewar@adacore.com>
19534
19535         * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
19536         rather than proceed ahead using a junk attribute name.
19537
19538 2005-03-29  Vincent Celier  <celier@adacore.com>
19539
19540         * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
19541
19542         * prj-part.adb (Parse_Single_Project): Set the location of a project
19543         on its defining identifier, rather than on the reserved word "project".
19544
19545         * prj-proc.adb (Expression): Adapt to the fact that default of external
19546         references may be string expressions, not always literal strings.
19547         (Recursive_Process): Set Display_Name equal to Name
19548         when Location is No_Location, that is when there is no actual file.
19549         Get the Display_Name of the project from the source, when it is not a
19550         virtual project.
19551         (Process): Use the Display_Name in error messages
19552
19553         * prj-strt.adb (External_Reference): Allow default to be string
19554         expressions, not only literal strings.
19555
19556 2005-03-29  Vincent Celier  <celier@adacore.com>
19557
19558         * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
19559         file and the reference symbol file to be the same file.
19560
19561 2005-03-29  Thomas Quinot  <quinot@adacore.com>
19562
19563         * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
19564         forbid conversion of a local access-to-subprogram type to a remote one.
19565
19566         * sem_util.adb (Wrong_Type): For a record type that is the expanded
19567         equivalent type for a remote access-to-subprogram type, go back to the
19568         original RAS entity when displaying an error message, so the casing is
19569         the original source casing.
19570
19571 2005-03-29  Robert Dewar  <dewar@adacore.com>
19572
19573         * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
19574         on param update.
19575
19576 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
19577
19578         * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
19579         subtype if code is being pre-analyzed, to prevent un-expanded
19580         references to protected formals, among others.
19581         (Analyze_Explicit_Dereference): If the overloaded prefix includes some
19582         interpretation that can be a call, include the result of the call as a
19583         possible interpretation of the dereference.
19584
19585         * sem_ch5.adb (Process_Bounds): Determine type of range by
19586         pre-analyzing a copy of the original range, and then analyze the range
19587         with the expected type.
19588
19589         * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
19590         with an overloaded prefix where not all interpretations yield an
19591         access to subprogram, do not rewrite node as a call.
19592         (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
19593         the node as a call once the context identifies the interpretation of
19594         the prefix whose call yields the context type.
19595         (Valid_Conversion): For the case of a conversion between
19596         local access-to-subprogram types, check subtype conformance using
19597         Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
19598         detailed error message.
19599
19600 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
19601
19602         * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
19603         indicator, indicate that the formal can never be null.
19604         (Process_Formals): If a formal has a non_null indicator, insert the
19605         resulting subtype immediately before the enclosing subprogram decl,
19606         and not at the beginning of the corresponding declarative part, to
19607         prevent access before elaboration (Ada2005).
19608
19609 2005-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19610
19611         PR ada/19956
19612         * utils.c (finish_record_type): Use variable_size when setting sizes.
19613
19614 2005-03-29  Robert Dewar  <dewar@adacore.com>
19615
19616         * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
19617         guarantee Unix style line terminators for the output files, even when
19618         running on windows.
19619
19620 2005-03-29  Robert Dewar  <dewar@adacore.com>
19621
19622         * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
19623         buffer if an exception is raised.
19624
19625 2005-03-29  Ed Falis  <falis@adacore.com>
19626
19627         * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
19628         VxWorks 653 1.4
19629
19630 2005-03-29  Robert Dewar  <dewar@adacore.com>
19631
19632         * sem_util.ads: Minor reformatting
19633         * gnat_rm.texi: Minor editing.
19634
19635 2005-03-29  Eric Botcazou  <ebotcazou@adacore.com>
19636
19637         * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
19638         * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
19639
19640 2005-03-24  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
19641
19642         * adaint.c (__gnat_portable_spawn): Adjust cast.
19643
19644 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
19645
19646         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
19647
19648 2005-03-17  Pascal Obry  <obry@adacore.com>
19649
19650         * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
19651         used.
19652
19653         * expect.c (__gnat_waitpid): Moved here from adaint.c.
19654         Reimplement under Win32 using Win32 API.
19655
19656         (__gnat_kill) [Win32]: Properly close the process handle before leaving
19657         this routine.
19658
19659 2005-03-17  Eric Botcazou  <ebotcazou@adacore.com>
19660
19661         * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
19662         (DECL_RENAMED_OBJECT): New accessor macro.
19663         (SET_DECL_RENAMED_OBJECT): New setter macro.
19664
19665         * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
19666         object in all cases.  Attach the renamed object to the VAR_DECL.
19667         (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
19668         field is not prescribed.
19669
19670         * misc.c (gnat_handle_option): Handle -gnatO separately.
19671         (gnat_print_decl) <VAR_DECL>: New case.
19672         Print the DECL_RENAMED_OBJECT node.
19673
19674         * lang.opt:  Declare separate -gnatO option.
19675
19676         * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
19677         pointer, replace it with the renamed object.
19678         <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
19679         pointer type if the source is not a fat pointer type whose underlying
19680         array has the same non-zero alias set as that of the destination array.
19681
19682 2005-03-17  Javier Miranda  <miranda@adacore.com>
19683
19684         * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
19685         (Get_Inheritance_Depth): Removed.
19686         (Set_Inheritance_Depth): Removed.
19687
19688         * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
19689         subprogram Get_Expanded_Name because it is not referenced by the
19690         frontend.
19691
19692         * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
19693         (CPP_Get_Inheritance_Depth): Removed.
19694         (CPP_Set_Inheritance_Depth): Removed.
19695
19696         * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
19697
19698 2005-03-17  Robert Dewar  <dewar@adacore.com>
19699
19700         * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
19701         3, since we now expect GCC 3 to do all the work.
19702
19703 2005-03-17  Javier Miranda  <miranda@adacore.com>
19704
19705         * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
19706         of one barrier to avoid wrong usage of this attribute.
19707
19708         * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
19709         First_Private_Entity.
19710
19711         * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
19712         the subprogram against wrong usage.
19713         Adapt the code to traverse the entities in the
19714         scope of a record_type because in addition to its usage regarding
19715         packages, this subprogram is also called by Expand_N_Freeze_Entity
19716         to install the visible declarations of the enclosing scope of a
19717         record_type_with_private to establish the proper visibility before
19718         freezing the entity and related subprograms.
19719
19720 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
19721
19722         * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
19723         entry formals.
19724
19725 2005-03-17  Thomas Quinot  <quinot@adacore.com>
19726
19727         * exp_ch3.adb (Check_Attr): New subprogram.
19728         (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
19729         into a new Check_Attr subprogram, in order to provide a more
19730         explanatory error message (including the name of the missing attribute).
19731         (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
19732         subprogram determines whether a default implementation exists for a
19733         given stream attribute.
19734         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
19735         Determine whether to generate a default implementation for each stream
19736         attribute separately, as this depends on the specific attribute.
19737
19738         * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
19739         limited extension where a stream attribute is missing for a limited
19740         component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
19741         generate a bogus reference to the missing attribute to prevent
19742         cascaded errors. Instead, generate a null statement.
19743
19744         * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
19745         available for a limited type if it has been specified for an ancestor
19746         of the type.
19747
19748 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
19749
19750         * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
19751         entity is an operator.
19752
19753 2005-03-17  Thomas Quinot  <quinot@adacore.com>
19754
19755         * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
19756         spec, to make this predicate available to other units.
19757
19758         * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
19759         reimplementing it.
19760
19761         * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
19762         when no distribution runtime library is available.
19763
19764         * sem_res.adb, sem_dist.adb: Disable expansion of remote
19765         access-to-subprogram types when no distribution runtime library is
19766         available.
19767         (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
19768         predicate available to other units.
19769
19770         * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
19771         spec, to make this predicate available to other units.
19772
19773 2005-03-17  Vincent Celier  <celier@adacore.com>
19774
19775         * make.adb (Insert_Project_Sources): Make sure the Q is always
19776         initialized.
19777
19778         * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
19779         the default for the tree, not the global default naming.
19780
19781         * prj-proc.adb (Recursive_Process): No need to put the default naming
19782         in the project data, it's already there.
19783
19784 2005-03-17  Doug Rupp  <rupp@adacore.com>
19785
19786         * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
19787
19788         * 5xcrtl.ads: Renamed to...
19789         * s-crtl-vms64.ads: ...this new file
19790
19791 2005-03-17  Robert Dewar  <dewar@adacore.com>
19792
19793         PR ada/19519
19794         * namet.adb (Copy_One_Character): Set proper wide character encoding
19795         for upper half character if we have upper half encoding.
19796
19797 2005-03-17  Robert Dewar  <dewar@adacore.com>
19798
19799         * par.adb (Par): Improved msg for attempt to recompile predefined unit
19800
19801 2005-03-17  Thomas Quinot  <quinot@adacore.com>
19802
19803         * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
19804         tagged limited type, the TSS is a newly built renaming declaration:
19805         insert it using Set_TSS, not Copy_TSS.
19806
19807 2005-03-17  Javier Miranda  <miranda@adacore.com>
19808
19809         * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
19810         Try_Object_Operation): Analyze the object that is accessible
19811         through the prefix of the subprogram call before we apply
19812         the transformation of the object-operation notation.
19813
19814 2005-03-17  Jose Ruiz  <ruiz@adacore.com>
19815
19816         * s-taprob.adb (Initialize_Protection): Initialize the protected
19817         object's owner to Null_Task.
19818         (Lock): If pragma Detect_Blocking is in effect and the caller of this
19819         procedure is already the protected object's owner then Program_Error
19820         is raised. In addition the protected object's owner is updated.
19821         (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
19822         of this procedure is already the protected object's owner then
19823         Program_Error is raised.
19824         In addition the protected object's owner is updated.
19825         (Unlock): Remove the ownership of the protected object.
19826
19827         * s-taprob.ads (Protection): Add the field Owner, used to store the
19828         protected object's owner.
19829         This component is needed for detecting one type of potentially blocking
19830         operations (external calls on a protected subprogram with the same
19831         target object as that of the protected action). Document the rest of
19832         the components.
19833
19834         * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
19835         Initialize the protected object's owner to Null_Task.
19836         (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
19837         caller of this procedure is already the protected object's owner then
19838         Program_Error is raised.
19839         Do not raise Program_Error when this procedure is called from a
19840         protected action.
19841         (Unlock_Entries): Remove the ownership of the protected object.
19842         (Lock_Entries): If pragma Detect_Blocking is in effect and the caller
19843         of this procedure is already the protected object's owner then
19844         Program_Error is raised.
19845         Do not raise Program_Error when this procedure is called from
19846         a protected action.
19847
19848         * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
19849         used to store the protected object's owner.
19850
19851         * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
19852         effect and this procedure (a potentially blocking operation) is called
19853         from whithin a protected action, Program_Error is raised.
19854         (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
19855         and this procedure (a potentially blocking operation) is called from
19856         whithin a protected action, Program_Error is raised.
19857
19858 2005-03-17  Vincent Celier  <celier@adacore.com>
19859             Nicolas Setton  <setton@adacore.com>
19860
19861         * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
19862         switch, not supported by the linker on Darwin. Add '_' before
19863         <library>init, as this character is added unconditionally by the
19864         compiler.
19865         (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
19866         correct one ".dylib". This fixes detection of the archive files when
19867         building library projects.
19868
19869 2005-03-17  Vincent Celier  <celier@adacore.com>
19870
19871         * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
19872         -gnat83, -gnat95 and -gnat05.
19873
19874 2005-03-17  Vasiliy Fofanov  <fofanov@adacore.com>
19875
19876         * gnat_ugn.texi: Document gnatmem restriction
19877
19878 2005-03-17  Thomas Quinot  <quinot@adacore.com>
19879
19880         * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
19881         cleanup
19882
19883 2005-03-17  Robert Dewar  <dewar@adacore.com>
19884
19885         * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
19886         a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
19887         s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
19888
19889         * casing.adb: Comment improvements
19890
19891 2005-03-17  Pascal Obry  <obry@adacore.com>
19892
19893         * g-expect.adb: Minor reformatting.
19894
19895 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
19896
19897         * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
19898         (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
19899         to dependencies.
19900
19901 2005-03-15  Vincent Celier  <celier@adacore.com>
19902
19903         * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
19904         Add new parameter In_Tree to specify the project tree: needed
19905         by the project manager. Adapt to changes in project manager
19906         using new parameter In_Tree.
19907
19908 2005-03-15  Jakub Jelinek  <jakub@redhat.com>
19909
19910         * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
19911         ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
19912         ada/bldtools to avoid make -jN failures.
19913
19914 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
19915
19916         * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
19917         to NULL_TREE on entry.
19918
19919 2005-03-15  Robert Dewar  <dewar@adacore.com>
19920
19921         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
19922         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
19923         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
19924         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
19925         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
19926         system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
19927         system-interix.ads, system-solaris-sparc.ads,
19928         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
19929         system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
19930         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
19931         system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
19932         system-linux-s390.ads, system-linux-s390x.ads: Add line defining
19933         Compiler_System_Version to be False.
19934
19935         * opt.ads: Add new flag Opt.Address_Is_Private
19936
19937         * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
19938         Add new parameter Compiler_System_Version to avoid checking for
19939         completeness of parameters when compiler is compiling itself.
19940         Allows old versions of GNAT to be compiled with new compiler.
19941
19942 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
19943
19944         * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
19945         (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
19946         calling thread.
19947         (Stack_Base_Available): New flag.
19948         (Get_Page_Size): New overloaded functions imported from C.
19949         (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
19950         PROT_ON, PROT_OFF): New constants.
19951         (mprotect): New function imported from C.
19952         (pthread_teb_t): New record type.
19953
19954         * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
19955         (Create_Task): Account for the Yellow Zone and the guard page.
19956
19957 2005-03-15  Vincent Celier  <celier@adacore.com>
19958
19959         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
19960         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
19961         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
19962         mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
19963         Library_File_Name_For): Add new parameter In_Tree
19964         to specify the project tree: needed by the project manager.
19965         Adapt to changes in project manager using new parameter In_Tree.
19966         Remove local imports, use functions in System.CRTL.
19967
19968         * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
19969         to use the project manager.
19970
19971         * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
19972         In_Tree to designate the project tree. Adapt to changes in the project
19973         manager, using In_Tree.
19974
19975         * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
19976         Copy_Interface_Sources): Add new parameter In_Tree to specify the
19977         project tree: needed by the project manager.
19978         (Build_Library): Check that Arg'Length >= 6 before checking if it
19979         contains "--RTS=...".
19980
19981         * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
19982         Library_File_Name_For): Add new parameter In_Tree to specify the
19983         project tree: needed by the project manager.
19984
19985         * prj.ads, prj.adb: Major modifications to allow several project trees
19986         in memory at the same time.
19987         Change tables to dynamic tables and hash tables to dynamic hash
19988         tables. Move tables and hash tables from Prj.Com (in the visible part)
19989         and Prj.Env (in the private part). Move some constants from the visible
19990         part to the private part. Make other constants deferred.
19991         (Project_Empty): Make it a variable, not a function
19992         (Empty_Project): Add parameter Tree. Returns the data with the default
19993         naming data of the project tree Tree.
19994         (Initialize): After updating Std_Naming_Data, copy its value to the
19995         component Naming of Project Empty.
19996         (Register_Default_Naming_Scheme): Use and update the default naming
19997         component of the project tree, instead of the global variable
19998         Std_Naming_Data.
19999         (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
20000         Tree is not defaulted, return the default naming data of the Tree.
20001         (Initial_Buffer_Size): Constant moved from private part
20002         (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
20003         variables initialized in procedure Initialize.
20004         (Add_To_Buffer): Add two in out parameters to replace global variables
20005         Buffer and Buffer_Last.
20006         (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
20007         functions.
20008         Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
20009         hash tables.
20010         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
20011         for the project tree.
20012         (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
20013         constant at the beginning of the package spec, so that they cane be used
20014         in subprograms before their full declarations.
20015         (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
20016         (Empty_Project): Add parameter of type Project_Node_Ref
20017         (Private_Project_Tree_Data): Add component Default_Naming of type
20018         Naming_Data.
20019         (Buffer, Buffer_Last): remove global variables
20020         (Add_To_Buffer): Add two in out parameters to replace global variables
20021         Buffer and Buffer_Last.
20022         (Current_Packages_To_Check): Remove global variable
20023         (Empty_Name): Move to private part
20024         (No-Symbols): Make it a constant
20025         (Private_Project_Tree_Data): New type for the private part of the
20026         project tree data.
20027         (Project_Tree_Data): New type for the data of a project tree
20028         (Project_Tree_Ref): New type to designate a project tree
20029         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
20030         for the project tree.
20031
20032         * prj-attr.ads: Add with Table; needed, as package Prj no longer
20033         imports package Table.
20034
20035         * prj-com.adb: Remove empty, no longer needed body
20036
20037         * prj-com.ads: Move most of the content of this package to package Prj.
20038
20039         * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
20040         designate the project node tree and Packages_To_Check to replace
20041         global variable Current_Packages_To_Check.
20042         Add new parameters In_Tree and Packages_To_Check to local subprograms,
20043         when needed. Adapt to changes in project manager with project node tree
20044         In_Tree.
20045
20046         * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
20047         project tree to most subprograms. Move tables and hash tables to
20048         private part of package Prj.
20049         Adapt to changes in project manager using project tree In_Tree.
20050
20051         * prj-makr.adb (Tree): New constant to designate the project node tree
20052         Adapt to change in project manager using project node tree Tree
20053
20054         * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
20055         display the Library_Src_Dir and the Library_Dir.
20056         Add new parameter In_Tree to designate the project node tree to most
20057         subprograms. Adapt to changes in the project manager, using project tree
20058         In_Tree.
20059         (Check_Naming_Scheme): Do not alter the casing on platforms where
20060         the casing of file names is not significant.
20061         (Check): Add new parameter In_Tree to designate the
20062
20063         * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
20064         designate the project tree.
20065         Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
20066
20067         * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
20068         to replace those that were in the private part of package Prj.
20069         Add new parameter In__Tree to designate the project node tree to most
20070         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
20071         (Post_Parse_Context_Clause): When specifying the project node of a with
20072         clause, indicate that it is a limited with only if there is "limited"
20073         in the with clause, not necessarily when In_Limited is True.
20074         (Parse): Add new parameter In_Tree to designate the project node tree
20075
20076         * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
20077         designate the project node tree. Adapt to change in Prj.Tree with
20078         project node tree In_Tree.
20079
20080         * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
20081         tree In_Tree in the call to function Empty_Process to give its initial
20082         value to the project data Processed_Data.
20083         Add new parameters In_Tree to designate the project tree and
20084         From_Project_Node_Tree to designate the project node tree to several
20085         subprograms. Adapt to change in project manager with project tree
20086         In_Tree and project node tree From_Project_Node_Tree.
20087
20088         * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
20089         to replace those that were in the private part of package Prj.
20090         Add new parameter In_Tree to designate the project node tree to most
20091         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
20092
20093         * prj-tree.ads, prj-tree.adb: Add new parameter of type
20094         Project_Node_Tree_Ref to most subprograms.
20095         Use this new parameter to store project nodes in the designated project
20096         node tree.
20097         (Project_Node_Tree_Ref): New type to designate a project node tree
20098         (Tree_Private_Part): Change table to dynamic table and hash tables to
20099         dynamic hash tables.
20100
20101         * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
20102         the project tree to most subprograms. Adapt to changes in project
20103         manager using project tree In_Tree.
20104
20105         * makegpr.adb (Project_Tree): New constant needed to use project
20106         manager.
20107
20108 2005-03-15  Olivier Hainque  <hainque@adacore.com>
20109
20110         * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
20111         for sigactions with SA_SIGINFO set. Call
20112         __gnat_adjust_context_for_raise before raising, to perform the
20113         potentially required adjustments to the machine context for the GCC
20114         unwinder.
20115
20116         * raise.h (__gnat_adjust_context_for_raise): New prototype.
20117
20118         * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
20119         Adjust PC by one in the provided machine context.
20120         (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
20121         so that the handler is passed the context structure to adjust prior to
20122         the raise.
20123         (__gnat_error_handler) HPUX: Adjust the signature to match what an
20124         SA_SIGINFO sigaction should look like. Call
20125         __gnat_adjust_context_for_raise before actually raising.
20126         (__gnat_adjust_context_for_raise): Default noop to help PC
20127         adjustments before raise from signal handlers.
20128         (__gnat_error_handler): Indirectly call a predicate function to
20129         determine if a condition should be resignaled or not.
20130         (__gnat_set_resignal_predicate): User interface to modify the predicate.
20131         (__gnat_default_resignal_p): Default GNAT predicate.
20132
20133 2005-03-15  Doug Rupp  <rupp@adacore.com>
20134
20135         * adaint.c: Prefix #include of VMS system header files with vms/
20136         [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
20137         Do not define a dummy function "convert_addresses" under Darwin,
20138         not needed.
20139
20140         * tb-alvms.c, expect.c: Prefix #include of VMS system header files
20141         with vms/
20142
20143 2005-03-15  Nicolas Setton  <setton@adacore.com>
20144
20145         * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
20146         PPC/AIX.
20147
20148 2005-03-15  Robert Dewar  <dewar@adacore.com>
20149
20150         * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
20151         AI-386.
20152
20153         * a-retide.ads: Minor comment changes
20154
20155 2005-03-15  Robert Dewar  <dewar@adacore.com>
20156
20157         * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
20158         a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
20159         Realloc_For_Chunk to private part of package.
20160         New subprograms for AI-301
20161
20162         * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
20163         Get_Line procedure.
20164         Avoid unnecessary use of Get/Set_Wide_String
20165
20166 2005-03-15  Robert Dewar  <dewar@adacore.com>
20167
20168         PR ada/13470
20169         * a-stunau.ads, a-stunau.adb:
20170         Change interface to allow efficient (and correct) implementation
20171         The previous changes to allow extra space in unbounded strings had
20172         left this interface a bit broken.
20173
20174         * a-suteio.adb: Avoid unnecessary use of Get/Set_String
20175
20176         * g-spipat.ads, g-spipat.adb: New interface for Get_String
20177         Minor reformatting (function specs)
20178
20179         * g-spitbo.adb: New interface for Get_String
20180
20181         * g-spitbo.ads: Minor reformatting
20182
20183         * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
20184
20185         * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
20186
20187 2005-03-15  Javier Miranda  <miranda@adacore.com>
20188             Robert Dewar  <dewar@adacore.com>
20189             Thomas Quinot  <quinot@adacore.com>
20190             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20191
20192         * atree.ads, atree.adb: Add support for Elist24 field
20193
20194         * atree.h: Fix wrong definition of Field27
20195         Add support for Elist16 field
20196         Add support for Elist24 field
20197
20198         * einfo.ads, einfo.adb (Abstract_Interfaces,
20199         Set_Abstract_Interfaces): New subprograms.
20200         (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
20201         subprograms.
20202         (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
20203         entities rather than a single node.
20204         (Is_Interface, Set_Is_Interface): New subprogram
20205         (First_Tag_Component): New syntesized attribute
20206         (Next_Tag_Component): New synthesized attribute
20207         (Write_Entity_Flags): Upgraded to write Is_Interface
20208         (Write_Field24_Name): Upgraded to write Abstract_Interfaces
20209         (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
20210         (Task_Body_Procedure): New subprogram to read this attribute.
20211         (Set_Task_Body_Procedure): New subprogram to set this attribute.
20212         (Has_Controlled_Component): Now applies to all entities.
20213         This is only a documentation change, since it always worked to apply
20214         this to other than composite types (yielding false), but now this is
20215         official.
20216         Update documentation on Must_Be_Byte_Aligned for new spec
20217
20218         * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
20219         exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
20220         uses of the Access_Disp_Table attribute to reference the first dispatch
20221         table associated with a tagged type. As
20222         part of the implementation of abstract interface types,
20223         Access_Disp_Table has been redefined to contain a list of dispatch
20224         tables (rather than a single dispatch table).
20225         Similarly, upgrade all the references to Tag_Component by the
20226         new attribute First_Tag_Component.
20227         (Find_Inherited_TSS): Moved to exp_tss.
20228         Clean up test in Expand_N_Object_Declaration for cases
20229         where we need to do a separate assignment of the initial value.
20230         (Expand_N_Object_Declaration): If the expression in the
20231         declaration of a tagged type is an aggregate, no need to generate an
20232         additional tag assignment.
20233         (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
20234         is to be deleted.
20235         Bit packed array ops are only called if operands are known to be
20236         aligned.
20237         (Component_Equality): When returning an N_Raise_Program_Error statement,
20238         ensure that its Etype is set to Empty to avoid confusing GIGI (which
20239         expects that only expressions have a bona fide type).
20240         (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
20241         determine the amount of data to be copied.
20242
20243         * par.adb (P_Interface_Type_Definition): New subprogram that parses the
20244         new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
20245             INTERFACE_TYPE_DEFINITION ::=
20246               [limited | task | protected | synchronized] interface
20247                 [AND interface_list]
20248
20249         * par-ch3.adb (P_Type_Declaration): Modified to give support to
20250         interfaces.
20251         (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
20252         interfaces.
20253         (P_Interface_Type_Definition): New subprogram that parses the new
20254         syntax rule of Ada 2005 interfaces
20255         (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
20256         messages by the correct RENAMES (quotes removed).
20257
20258         * sem_prag.adb: Upgrade all the references to Tag_Component by the new
20259         attribute First_Tag_Component.
20260
20261         * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
20262         (Interface_List, Set_Interface_List): New subprograms.
20263         (Interface_Present, Set_Interface_Present): New subprograms.
20264         (Limited_Present, Set_Limited_Present): Available also in derived
20265         type definition nodes.
20266         (Protected_Present, Set_Protected_Present): Available also in
20267         record type definition and
20268         derived type definition nodes.
20269         (Synchronized_Present, Set_Synchronized_Present): New subprograms.
20270         (Task_Present, Set_Task_Present): New subprogram.
20271         (Task_Body_Procedure): Removed.
20272         (Set_Task_Body_Procedure): Removed.
20273         These subprogram have been removed because the attribute
20274         Task_Body_Procedure has been moved to the corresponding task type
20275         or task subtype entity to leave a field free to store the list
20276         of interfaces implemented by a task (for AI-345)
20277         Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
20278         (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
20279         expression flag Do_Range_Check
20280         (Exception_Junk): Change to Flag7 to accomodate above change
20281         (Box_Present, Default_Name, Specification, Set_Box_Present,
20282         Set_Default_Name, Set_Specification): Expand the expression
20283         "X in N_Formal_Subprogram_Declaration" into the corresponding
20284         two comparisons. Required to use the csinfo tool.
20285
20286         * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
20287         "with string" given.
20288
20289         * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
20290         expression given.
20291
20292         * par-ch11.adb (P_Raise_Statement): Recognize with string expression
20293         in 2005 mode
20294
20295         * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
20296         attribute Task_Body_Procedure rather than the old semantic field that
20297         was available in the task_type_declaration node.
20298
20299         * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
20300         interface type definitions.
20301         (P_Formal_Derived_Type_Definition): Modified to handle the list of
20302         interfaces.
20303
20304         * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
20305         task type declaration.
20306         (P_Protected): Modified to handle the list of interfaces in a
20307         protected type declaration.
20308
20309 2005-03-15  Doug Rupp  <rupp@adacore.com>
20310             Vincent Celier  <celier@adacore.com>
20311
20312         * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
20313         (Gen_Output_File_C): Likewise.
20314         (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
20315
20316 2005-03-15  Thomas Quinot  <quinot@adacore.com>
20317
20318         * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
20319         is an N_Raise_Constraint_Error node, create a new copy of it without
20320         going through a call to Duplicate_Subexpr.
20321
20322 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
20323             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20324             Nicolas Setton  <setton@adacore.com>
20325             Ed Schonberg  <schonberg@adacore.com>
20326
20327         PR ada/19900
20328         PR ada/19408
20329         PR ada/19140
20330         PR ada/20255
20331         * decl.c (gnat_to_gnu_field): Reject aliased components with a
20332         representation clause that prescribes a size not equal to the rounded
20333         size of their types.
20334         (gnat_to_gnu_entity, case E_Component): Always look at
20335         Original_Record_Component if Present and not the entity.
20336         (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
20337         of tagged extension types by not making field for components that are
20338         inside the parent.
20339         (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
20340         (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
20341         expression to the type of the object when the object is constant.
20342         Reverse defer_debug_incomplete_list before traversing it, so that trees
20343         are processed in the order at which they were added to the list. This
20344         order is important when using the stabs debug format.
20345         If we are deferring the output of debug information, also defer this
20346         output for a function return type.
20347         When adding fields to a record, prevent emitting debug information
20348         for incomplete records, emit the information only when the record is
20349         complete.
20350         (components_to_record): New parameter defer_debug.
20351         (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
20352         (gnat_to_gnu_field_decl): New function.
20353         (substitution_list, annotate_rep): Call it.
20354         (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
20355         (gnat_to_gnu_entity, case E_Record_Type): Likewise.
20356         No longer update discriminants to not be a COMPONENT_REF.
20357         (copy_alias_set): Strip padding from input type; also handle
20358         unconstrained arrays properly.
20359
20360         * gigi.h (write_record_type_debug_info): New function.
20361         Convert to use ANSI-style prototypes. Remove unused
20362         declarations for emit_stack_check, elab_all_gnat and
20363         set_second_error_entity.
20364         (gnat_to_gnu_field_decl): New decl.
20365
20366         * utils.c (write_record_type_debug_info): New function.
20367         (finish_record_type): Delegate generation of debug information to
20368         write_record_type_debug_info.
20369         (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
20370         (update_pointer_to): Fix pasto.
20371         (convert) <UNION_TYPE>: Accept slight type variations when
20372         converting to an unchecked union type.
20373
20374         * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
20375         replace the N_Freeze_Entity with a null statement.
20376
20377         * freeze.adb (Freeze_Expression): If the freeze nodes are generated
20378         within a constrained subcomponent of an enclosing record, place the
20379         freeze nodes in the scope stack entry for the enclosing record.
20380         (Undelay_Type): New Subprogram.
20381         (Set_Small_Size): Pass T, the type to modify; all callers changed.
20382         (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
20383         within records; allow them to have freeze nodes if their base types
20384         aren't frozen yet.
20385
20386         * exp_util.adb (Remove_Side_Effects): Properly test for
20387         Expansion_Delayed and handle case when it's inside an
20388         N_Qualified_Expression.
20389
20390         * sem_ch3.adb (Derived_Type_Declaration): New predicate
20391         Comes_From_Generic, to recognize accurately that the parent type in a
20392         derived type declaration can be traced back to a formal type, because
20393         it is one or is derived from one, or because its completion is derived
20394         from one.
20395         (Constrain_Component_Type): If component comes from source and has no
20396         explicit constraint, no need to constrain in in a subtype of the
20397         enclosing record.
20398         (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
20399         Minor change to propagate Is_Ada_2005 flag
20400
20401         * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
20402         Expansion_Delayed is False.
20403         (assoc_to_constructor): Ignore fields that have a
20404         Corresponding_Discriminant.
20405         (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
20406         function returns "by target", dereference the target pointer using the
20407         type of the actual return value.
20408         <all>: Be prepared for a null gnu_result.
20409         (processed_inline_subprograms): Check flag_really_no_inline
20410         instead of flag_no_inline.
20411         (set_second_error_entity): Remove unused function.
20412         (gnat_to_gnu, case N_Selected_Component): Call
20413         gnat_to_gnu_field_decl.
20414         (assoc_to_constructor): Likewise.
20415
20416 2005-03-15  Robert Dewar  <dewar@adacore.com>
20417             Ed Schonberg  <schonberg@adacore.com>
20418             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20419
20420         * exp_pakd.adb (Create_Packed_Array_Type): Do not set
20421         Must_Be_Byte_Aligned for cases where we do not need to use a
20422         System.Pack_nn unit.
20423
20424         * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
20425         as procedures.
20426         Needed now that we do some processing for IN parameters as well. This
20427         may well fix some unrelated errors.
20428         (Expand_Call): Handle case of unaligned objects (in particular those
20429         that come from packed arrays).
20430         (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
20431         renamed entity is an inherited operation, re-expand the call using the
20432         original operation, which is the one to call.
20433         Detect attempt to inline parameterless recursive subprogram.
20434         (Represented_As_Scalar): Fix to work properly with private types
20435         (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
20436         accurate estimate. Yields True in far fewer cases than before,
20437         improving the quality of code that depends on this test.
20438
20439         * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
20440         over both visible and private declarations to remove them from tree,
20441         and mark subprograms declared in package as eliminated, to prevent
20442         spurious use in subsequent compilation of generic units in the context.
20443
20444         * exp_util.ads: Minor cleanup in variable names
20445
20446         * sem_eval.ads, sem_eval.adb: Minor reformatting
20447         (Compile_Time_Known_Bounds): New function
20448
20449 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
20450
20451         * exp_ch7.adb (Convert_View): Use base types of underlying types when
20452         determining whether an unchecked conversion is needed for the argument
20453         of an initialization call.
20454
20455 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
20456
20457         * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
20458         that appears in the instantiation rather than the internal subtype
20459         generated in the wrapper package, to avoid anomalies in gigi when the
20460         target is derived from a private type whose full view is an access type.
20461
20462 2005-03-15  Robert Dewar  <dewar@adacore.com>
20463
20464         * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
20465         not needed.
20466         Add documentation to replace the use of this flag
20467         Fix kludge for Maximum_Alignment on x86 so that it does not apply to
20468         the x86_64.
20469
20470 2005-03-15  Thomas Quinot  <quinot@adacore.com>
20471
20472         * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
20473         here from exp_attr so it can be shared between exp_attr and exp_dist.
20474         (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
20475         all TSS names, not a subset thereof, and the previous name introduced
20476         an unnecessarily confusion that a distinction might exist between
20477         "OK" TSS names and some "not OK" TSS names.
20478
20479 2005-03-15  Doug Rupp  <rupp@adacore.com>
20480
20481         * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
20482         Command_Name.
20483
20484 2005-03-15  Pascal Obry  <obry@adacore.com>
20485             Eric Botcazou  <ebotcazou@adacore.com>
20486
20487         PR ada/20226
20488         PR ada/20344
20489         * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
20490         when IN_RTS. This is to work around a bootstrap path problem.
20491
20492         * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
20493         table and pass it to __gnat_install_SEH_handler().
20494         (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
20495
20496         * lang.opt: Fix specification of -fRTS=.
20497
20498 2005-03-15  Doug Rupp  <rupp@adacore.com>
20499             Bernard Banner  <banner@adacore.com>
20500             Vincent Celier  <celier@adacore.com>
20501             Arnaud Charlet  <charlet@adacore.com>
20502
20503         PR ada/6852
20504         This change works fine when gnatlib is built from the gcc directory,
20505         but does not work when using the libada Makefile, since GCC_FOR_TARGET
20506         is not passed to ada/Makefile.in, so more work is needed by a
20507         Makefile/configure expert.
20508
20509         * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
20510         set GMEM_LIB on ia64 linux to add optional support for gnatmem.
20511         Setup gnatlink switch -M for x86_64 linux, as it is already setup
20512         for Linux x86.
20513         (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
20514         Run ranlib on libgccprefix.a
20515         Define PREFIX_OBJS for Darwin, to build libgccprefix.
20516         (ADA_INCLUDE_SRCS): Split Ada packages.
20517
20518 2005-03-15  Robert Dewar  <dewar@adacore.com>
20519
20520         * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
20521
20522         * impunit.adb: Add GNAT.UTF_32
20523
20524         * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
20525
20526         * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
20527         now uses GNAT.UTF_32).
20528
20529         * g-utf_32.ads, g-utf_32.adb: This is a new unit with full
20530         capabilities for categorizing characters using Unicode categories
20531
20532 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
20533
20534         * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an
20535         instantiation that has been rewritten as a package body, retrieve spec
20536         to generate proper name for implicit_with_clause.
20537         (Install_Parents): Recognize a parent that is an instantiation but has
20538         been rewritten as a package declaration during analysis.
20539
20540 2005-03-15  Javier Miranda  <miranda@adacore.com>
20541             Ed Schonberg  <schonberg@adacore.com>
20542
20543         * sem_ch12.adb (Instantiate_Object): If the analysis of the actual
20544         parameter reported some error we immediately return. This improves the
20545         behaviour of the frontend in case of errors.
20546         (Install_Parent, Remove_Parent): Introduce new flag
20547         Parent_Unit_Visible, to preserve the proper visibility of the ultimate
20548         ancestor of a generic child unit, when the child is being instantiated.
20549         (Inline_Instance_Body): If we are compiling the private
20550         part or the body of a child unit, restore the proper visibility of the
20551         parents after compiling the instance body.
20552
20553 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
20554             Javier Miranda  <miranda@adacore.com>
20555
20556         PR ada/15608
20557         * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion
20558         of a private type, in which case it is underlying_type that denotes
20559         the proper task. Also modified to use the new entity attribute
20560         that is directly available in the task type and task subtype entities
20561         (Build_Actual_Subtype_Of_Component): Handle properly multidimensional
20562         arrays when other dimensions than the first are constrained by
20563         discriminants of an enclosing record.
20564         (Insert_Explicit_Dereference): If the prefix is an indexed component or
20565         a combination of indexed and selected components, find ultimate entity
20566         and generate the appropriate reference for it, to suppress spurious
20567         warnings.
20568         (Note_Possible_Modification): If an entity name has no entity, return.
20569         (Is_Variable): A function call never denotes a variable.
20570         (Requires_Transient_Scope): For record types, recurse only on
20571         components, not on internal subtypes that may have been generated for
20572         constrained components.
20573
20574 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
20575
20576         * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked
20577         Eliminated as candidates for resolution. Both efficient, and avoids
20578         anomalies with operators declared in deleted code.
20579         (Process_Implicit_Dereference_Prefix): Use this procedure whenever
20580         expansion is disabled (as when compiling a generic) to prevent spurious
20581         warnings on prefixes of selected components.
20582
20583 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
20584
20585         * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
20586         attached to a list before checking whether it appears in the private
20587         declarations of the current package.
20588         (Make_Inequality_Operator): Insert declaration in proper declarative
20589         list rather than just setting the Parent field, so that
20590         Is_Private_Declaration can handle it properly.
20591
20592 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
20593
20594         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
20595         a renaming a body, check that the renamed subprogram in not intrinsic.
20596         (Find_Direct_Name): If several use_visible entities hide
20597         each other, and the context is a predefined file compiled through
20598         rtsfind, keep only the entity that comes from a predefined file.
20599
20600 2005-03-15  Geert Bosch  <bosch@adacore.com>
20601
20602         * s-fatgen.adb (Valid): Extend special exceptions to account for long
20603         long float padding to also cover AMD64 and IA64.
20604
20605 2005-03-15  Gary Dismukes  <dismukes@adacore.com>
20606
20607         * s-imgwch.adb: Add with and use of Interfaces.
20608         (Img_Wide_Character): Change type of Val to Unsigned_16.
20609         (Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
20610
20611 2005-03-15  Matthew Gingell  <gingell@adacore.com>
20612
20613         * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
20614
20615 2005-03-15  Robert Dewar  <dewar@adacore.com>
20616
20617         * usage.adb: Add missing lines for -gnat95 and -gnat05 switches
20618
20619         * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
20620
20621         * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
20622
20623 2005-03-15  Robert Dewar  <dewar@adacore.com>
20624
20625         * s-bitops.adb, s-bitops.ads,
20626         s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads,
20627         s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb,
20628         tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads,
20629         s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads,
20630         s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads,
20631         s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads,
20632         s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads,
20633         s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor
20634         reformatting.
20635
20636 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
20637
20638         * utils2.c (build_binary_op): Fix typo.
20639
20640 2005-03-15  Doug Rupp  <rupp@adacore.com>
20641
20642         * s-crtl.ads (popen,pclose): New imports.
20643
20644 2005-03-15  Cyrille Comar  <comar@adacore.com>
20645
20646         * comperr.adb (Compiler_Abort): remove references to obsolete
20647         procedures in the bug boxes for various GNAT builds.
20648
20649 2005-03-15  Vincent Celier  <celier@adacore.com>
20650
20651         * snames.ads, snames.adb: Save as Unix text file, not as DOS text file
20652
20653 2005-03-15  Geert Bosch  <bosch@adacore.com>
20654             Arnaud Charlet  <charlet@adacore.com>
20655             Robert Dewar  <dewar@adacore.com>
20656             Cyrille Comar  <comar@adacore.com>
20657             Sergey Rybin  <rybin@adacore.com>
20658
20659         * gnat_ugn.texi: Remove extended inline assembly example, as it was far
20660         too specific and long-winded to be appropriate for the GNAT User's
20661         Guide.
20662         Warn about use of GCC switches not documented in the GNAT User's Guide,
20663         as these may cause generated code to not conform to Ada semantics.
20664         Remove mention of -gdwarf-2 for sparc64, since this is now the default.
20665         Add documentation for -gnat95 and -gnat05 switches
20666         Remove paragraph documenting obsolete way to refer to third party
20667         libraries.
20668         Add a few references to Ada_05 that were missing.
20669         Update documentation on -gnatZ/-gnatL.
20670         Document limitation when using -m64 under Solaris.
20671         Change the "Name Casing" subsection of the pretty-printer section
20672         according to the changes in the dictionary processing.
20673
20674         * gnat_rm.texi: Document the Ada_05 pragma.
20675         Section on record representation clauses describes the new more
20676         relaxed rules about placement of large packed bit array components.
20677         Add documentation of GNAT.UTF_32
20678
20679 2005-03-12  Daniel Berlin <dberlin@dberlin.org>
20680
20681         * misc.c (gnat_post_options): Turn off structural
20682         aliasing for now.
20683
20684 2005-03-08  Laurent Guerby <laurent@guerby.net>
20685
20686         * system-linux-sparc.ads: Fix typo in previous commit.
20687
20688 2005-03-07  James A. Morrison <phython@gcc.gnu.org>
20689             Laurent Guerby <laurent@guerby.net>
20690
20691         PR ada/20035
20692         * system-linux-sparc.ads: New.
20693         * Makefile.in: Add sparc linux entry.
20694
20695 2005-02-27  Danny Smith  <dannysmith@users.sourceforge.net>
20696
20697         * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
20698         parameters as unused.
20699
20700 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
20701         Partial merge from libada-gnattools-branch:
20702
20703         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
20704         * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags
20705         into code in gnattools/Makefile.in.  Remove direct dependencies on
20706         stamp-tools by tools clauses.
20707         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
20708         * config-lang.in: Add gnattools to $lang_dirs.
20709
20710 2005-02-13  Andrew Pinski  <pinskia@physics.uc.edu>
20711
20712         PR ada/19942
20713         * utils.c (gnat_type_for_mode): Return null instead of ICE because
20714         we asked for an unknown mode.
20715
20716 2005-02-12  Richard Henderson  <rth@redhat.com>
20717
20718         * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
20719         validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
20720
20721 2005-02-10  Andreas Jaeger  <aj@suse.de>
20722
20723         * init.c (__gnat_initialize): Mark parameter as unused.
20724
20725 2005-02-09  Doug Rupp  <rupp@adacore.com>
20726
20727         * g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
20728         * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
20729
20730 2005-02-09  Doug Rupp  <rupp@adacore.com>
20731
20732         * gnatchop.adb (dup, dup2),
20733         g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
20734
20735         * gnatlbr.adb (mkdir),
20736         mlib-tgt-vms-ia64.adb (popen, plose):  Import with decc$ prefix.
20737
20738         * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
20739
20740 2005-02-09  Doug Rupp  <rupp@adacore.com>
20741
20742         * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
20743
20744 2005-02-09  Robert Dewar  <dewar@adacore.com>
20745             Thomas Quinot  <quinot@adacore.com>
20746             Javier Miranda  <miranda@adacore.com>
20747             Pascal Obry  <obry@adacore.com>
20748             Ed Schonberg  <schonberg@adacore.com>
20749             Doug Rupp  <rupp@adacore.com>
20750             Gary Dismukes  <dismukes@adacore.com>
20751             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20752
20753         * g-zstspl.ads: New file.
20754
20755         * a-chahan.ads, a-chahan.adb: Add declarations from AI-285
20756
20757         * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
20758         Ada 95 mode
20759         Add definition of Wide_Wide_Space for AI-285
20760
20761         * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
20762         interface (to support Ada 95 and Ada 2005 units).
20763         Add Unbounded_IO files
20764         Add entries for Wide_Wide packages for AI-285
20765         Add list of containers packages to Ada 2005 unit list
20766
20767         * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
20768         support new Unbounded_IO package cleanly.
20769
20770         * g-utf_32.ads, g-utf_32.adb: New files.
20771
20772         * Makefile.rtl: Add entry for g-utf_32
20773         Add new files for Unbounded_IO
20774         Adjust make file for new AI-285 wide wide packages
20775         Add AI-302 containers to the run time.
20776
20777         * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
20778         a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
20779         subprograms for AI-301.
20780
20781         * a-stwiun.adb, a-stwiun.ads: Minor reformatting.
20782
20783         * a-stunau.ads: Minor comment correction
20784
20785         * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
20786         etc.
20787         Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
20788         (Check_RPC): Update to match changes in expanded code.
20789         Clean up unused entity.
20790
20791         * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
20792         was not taken into account.
20793         This includes proper initialization with Normalize_Scalars.
20794         (Get_Simple_Init_Val): Major rewrite for initialize scalars and
20795         normalize scalars cases (particularly the latter) to do a better job
20796         of finding invalid representations.
20797
20798         * s-scaval.ads, s-scaval.adb: Add values for zero invalid values
20799
20800         * s-strops.ads, s-strops.adb: Remove string normalize routines, never
20801         used
20802
20803         * exp_dist.adb: Add support for wide wide character type
20804         (Expand_Receiving_Stubs_Bodies): For a package declaration that has a
20805         private part, generate stub bodies at the end of the private part,
20806         not the visible part.
20807         (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
20808         PolyORB support.
20809         (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
20810         generic wrapper to execute final processing after completing the
20811         expansion of the RPC receiver for an RACW.
20812
20813         * snames.h, snames.ads, snames.adb: Add definitions for wide_wide
20814         packages and attributes.
20815         (Preset_Names): Addition of the new reserved words of Ada 2005,
20816         that is interface, overriding and synchronized.
20817         (Get_Pragma_Id): Give support to the use of the new reserved word
20818         "interface" as a pragma name.
20819         (Is_Pragma_Name): Give support to the use of the new reserved word
20820         "interface" as a pragma name.
20821         (Preset_Names): Add stream_size string for the Stream_Size Ada2005
20822         attribute implementation.
20823
20824         * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
20825         checks to entities that are output parameters of Asm operations.
20826         Handle the Stream_Size attribute.
20827         Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
20828
20829         * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
20830
20831         * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
20832         for second parameter being 0.0.
20833         Add support for wide wide character type.
20834         (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
20835
20836         * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
20837         s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
20838         s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
20839         s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
20840         for wide wide character cases.
20841
20842         * cstand.adb: Create entities for Wide_Wide_Character and
20843         Wide_Wide_String.
20844
20845         * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
20846         accordance with AI-258.
20847         Add new declarations for 16/32 bit C character types (Part of AI285)
20848
20849         * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
20850         (Obsolescent_Warning): New field
20851         (Rep_Clause): New local subprogram used to share code. Returns the rep
20852         clause for which the name is given in parameter.
20853         (Has_Stream_Size_Clause): New routine.
20854         (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
20855         (Address_Clause): Implementation is now using Rep_Clause.
20856         (Alignment_Clause): Idem.
20857         (Size_Clause): Idem.
20858
20859         * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
20860         entity in non-Ada 2005 mode and generate warning.
20861
20862         * par-prag.adb: Add handling of one argument form for pragma Ada_05.
20863         (Prag): Code cleanup. Remove old gnat pragma "overriding"
20864
20865         * sem_prag.adb: Add handling of one argument form for pragma Ada_05
20866         (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
20867         on the named unit if the pragma is not in the current compilation unit,
20868         so that elaboration calls in the current unit can set up an elaboration
20869         dependency on the named unit, as needed.
20870         (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
20871         subprogram as well as for subprograms declared within a package.
20872         (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
20873         pragma overriding.
20874
20875         * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
20876         to z) to avoid some instances of duplication for Wide_Wide packages.
20877
20878         * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
20879         characters.
20880
20881         * scn.adb: Char_Literal_Value field is now a Uint
20882
20883         * scng.adb: Significant rewrite to handle new Ada 2005 features
20884         allowing wide and wide wide characters in program text, e.g. for
20885         identifiers, as described in AI-285.
20886         (Set_Reserved): New procedure, makes setting up keywords cleaner.
20887         (Initialize_Scanner): Register the new reserved words of Ada 2005.
20888         (Scan): Give support to the new reserved words.
20889
20890         * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
20891         warning notifying that interface, overriding, and synchronized are
20892         new reserved words.
20893         (P_Pragma): Allow the use of the new reserved word "interface" as
20894         a pragma name.
20895
20896         * gnatls.adb, gnatbind.adb,
20897         ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
20898         identifiers named "interface" to "SAL_Interface".
20899
20900         * bindgen.adb (Gen_Main_Ada): Add support for the new SEH
20901         (Structured Exception handling).
20902         (Gen_Main_C): Idem.
20903
20904         * bindgen.adb:
20905         (Gen_Main_Ada): Set the default exit code if specified.
20906         (Gen_Main_C): Likewise.
20907         Part of *DC20-006.
20908         (Gen_Output_File_C): Remove redundant output of gnat_exit_status.
20909         Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
20910
20911         * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
20912         new -Xnnn switch.
20913
20914         * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
20915         has a collision with the new Ada 2005 "interface" reserved word.
20916
20917         * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
20918         generate a warning notifying that interface, overriding, and
20919         synchronized are new reserved words.
20920
20921         * scans.ads (Token_Type): Addition of the tokens corresponding to the
20922         new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
20923         and Tok_Synchronized.
20924
20925         * sem_res.adb (Resolve_Actuals): Change error messages to refer to
20926         "dispatching" rather than "primitive" operations, since dispatching
20927         calls are now allowed to abstract formal subprograms (which are not
20928         primitive).
20929         Char_Literal_Value field is now a Uint
20930         (Resolve_Slice): If the prefix is an access to an unconstrained array,
20931         compute the actual subtype of the designated object to impose the proper
20932         index constraints.
20933         (Resolve_Selected_Component): Do not insert an access check if the
20934         prefix is an access type: such a node is expanded into an explicit
20935         dereference, on which the access check is performed anyway. Removes
20936         expensive duplicate checks.
20937         (Resolve_Call): Use new flag Is_Obsolescent and field
20938         Obsolescent_Warning so that pragma Obsolescent works on library
20939         subprograms.
20940         Add support for wide wide character type
20941         (Resolve_Allocator): Replace the error message on wrong null-exclusion
20942         value by a warning message.
20943         (Resolve_Type_Conversion): If the mixed-mode expression is interpreted
20944         as fixed-point, and one of the operands is non-static and universal, it
20945         can only be an illegal exponentiation operation, in which case there is
20946         no real value to retrieve.
20947
20948         * exp_strm.adb: Add support for wide wide character type
20949         (Build_Elementary_Input_Call): Compute the size of the stream element by
20950         querying the rep chain to find the Stream_Attribute attribute value.
20951         (Build_Elementary_Write_Call): Ditto.
20952
20953         * sem_aggr.adb: Char_Literal_Value field is now a Uint
20954         Add support for wide wide character type
20955         Replace the error messages on wrong null-exclusion value by warnings
20956         as described in Ada 2005.
20957         (Resolve_Extension_Aggregate): Document the fact that the error
20958         message on class-wide expressions in extensions aggregates.
20959
20960         * sem_case.adb: Add support for wide wide character type
20961
20962         * sem_ch13.adb: Add support for wide wide character type
20963         (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
20964
20965         * sem_ch3.adb: Add support for wide wide character type
20966         (Process_Subtype): If constraint is illegal for the type, set Ekind of
20967         now-useless Itype, to prevent cascaded errors on a compiler built
20968         without -gnatp.
20969
20970         * sem_ch8.adb: Add with and use of Sem_Disp.
20971         (Analyze_Subprogram_Renaming): Replace unclean uses of
20972         Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
20973         of Corresponding_Spec to Empty).
20974         (Attribute_Renaming): Replace use of Corresponding_Spec with
20975         Corresponding_ Formal_Spec and simplify condition.
20976         (Use_One_Package): Check that scope of homonym of identifier is defined,
20977         before checking whether it is a wrapper package.
20978         Add support for wide wide character type
20979
20980         * sem_eval.adb: Add support for wide wide character type.
20981         (Eval_Arithmetic_Op): Check for compile time known signed integer
20982         overflow in the non-static case.
20983         (Subtypes_Statically_Match): A formal scalar type and its base type do
20984         not statically match.
20985
20986         * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
20987         "not in" for test of N_Formal_Subprogram_Declaration (which is now a
20988         subtype).
20989         (Unit_Declaration_Node): Ditto.
20990         (Is_Variable_Prefix):  For the case of an indexed component whose prefix
20991         has a packed array type, the prefix has been rewritten into a type
20992         conversion. Determine variable-ness from the converted expression.
20993         Handle wide wide character cases.
20994
20995         * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
20996
20997         * stringt.ads, stringt.adb: Handle full UTF-32 range.
20998         Remove ["0A"] from comment, since it can look like a line terminator.
20999         Currently we don't permit this, but this is under discussion by the
21000         ARG, and it is easy enough to use a different example.
21001
21002         * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
21003         handling UTF-32 encoding for wide wide character.
21004         Implement new brackets coding ["hhhhhhhh"]
21005         Add UTF-8 encodings for full UTF-32 range
21006
21007         * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
21008
21009         * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
21010         bit range Add full UTF-32 support.
21011         (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
21012         notify that constraint error will be raised at run-time
21013         because a null value is assigned to a null-excluding object.
21014         Remove some obsolete declarations and make Char_Code
21015         unsigned.
21016
21017         * a-except.adb (Rcheck_30): New subprogram. Addition of the message
21018         corresponding to CE_Null_Not_Allowed, and adjust the output of all the
21019         Rcheck subprograms.
21020
21021         * checks.adb (Check_Null_Not_Allowed): Replace the error message on
21022         wrong null-exclusion value by a warning message.
21023         (Enable_Range_Check): Do range check if the prefix is an
21024         explicit dereference whose designated object is an unconstrained array.
21025         Current algorithm for removing duplicate checks is over-eager in this
21026         case.
21027
21028         * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
21029         null-exclusion value by a warning message
21030
21031         * atree.h, atree.ads, atree.adb: Remove Char_Code field support
21032         completely. Add support for Uint2 field
21033
21034         sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
21035         exp_prag.adb: Char_Literal_Value field is now a Uint.
21036
21037         * exp_util.adb (Insert_Actions): Replace
21038         N_Formal_Subprogram_Declaration by
21039         N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
21040         Char_Literal_Value field is now a Uint.
21041
21042         * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
21043         defined for subprogram renaming declarations. When set, the field
21044         indicates the defining entity of a corresponding formal subprogram
21045         when the renaming corresponds to a formal subprogram association in an
21046         instantiation.
21047         (Set_Corresponding_Formal_Spec): New procedure to return
21048         Corresponding_Formal_Spec field.
21049         Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
21050         (which is now a subtype).
21051         Char_Literal_Value field is now a Uint
21052
21053         * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
21054         pointer to the base of the dispatch table.
21055         Minor changes to comments.
21056         (Controlling_Type): New function for determining the tagged type
21057         associated with a tagged primitive subprogram.
21058         (Expand_Dispatching_Call): Add support for a controlling actual that is
21059         directly a value of type Ada.Tag rather than a tagged object.
21060
21061         * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
21062         describing the new layout.
21063         (Dispatch_Table): The expander computes the actual array size, allocates
21064         the Dispatch_Table record accordingly, and generates code that displaces
21065         the base of the record after the Typeinfo_Ptr component. The access to
21066         these components is done by means of local functions.
21067         (Offset_To_Top): New function.
21068         (Typeinfo_Ptr): New function.
21069         (Get_TSD): Modified to access the new position of the TSD.
21070         (Set_TSD): Modified to save the TSD in its new position.
21071
21072         * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
21073         case of formal abstract subprograms. Add check and message for -gnat05.
21074         Update comments.
21075
21076         * sem_ch12.adb: Add with and use for Sem_Disp.
21077         (Analyze_Associations): Minor change from "=" to "in" for use of
21078         N_Formal_Subtype_Declaration (which is now a subtype).
21079         (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
21080         N_Formal_Subtype_Declaration (which is now a subtype).
21081         (Analyze_Formal_Subprogram): Add handling for
21082         N_Formal_Abstract_Subprogram, marking the formal as abstract and
21083         dispatching, setting the controlling status of the formal parameters
21084         and result, and issuing an error if there is no controlling type for
21085         the formal subprogram.
21086         (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
21087         which is an unclean use of that field, we set the new field
21088         Corresponding_Formal_Spec to make the formal subprogram available to
21089         processing in Analyze_Subprogram_Declaration.
21090         (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
21091         Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
21092         Constrained, so that it is is does not statically match its anonymous
21093         base type.
21094
21095         * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
21096         abstract formal subprograms in error check for functions returning
21097         abstract types. Set scope of new designator for
21098         a parameterless subprogram, so that it is available when checking the
21099         body for nested subprograms, before full analysis of said body.
21100         (Analyze_Subprogram_Body): Warn on inlining bodies with nested
21101         subprogram only if inner one comes from source.
21102         (Analyze_Function_Call): If the call is given in object notation, the
21103         analysis of the name rewrites the node and analyzes it with the proper
21104         argument list. After analyzing the name, if the call has been rewritten
21105         and the result type is set, no further analysis is needed.
21106         (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
21107         mark in function specification, in a context where the formals are
21108         visible and hide outer homographs.
21109
21110         * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
21111         as the tagged type for the cases of abstract formal subprograms and
21112         renamings of those.  Clean up spec comments.
21113         (Check_Dispatching_Context): Add error message to indicate "abstract
21114         procedure", covering the case of a call to a formal abstract procedure
21115         that has statically tagged operands.
21116         (Check_Dispatching_Call): Check for the case of an actual given by
21117         a tag-indeterminate function call whose type is an ancestor of the
21118         containing call's associated tagged type. This situation can occur
21119         for inherited primitives with function defaults. In this case we
21120         use the tagged type's tag directly as the controlling argument for
21121         the calls.
21122         (Expand_Call): Name change on call to Expand_Dispatch_Call.
21123
21124         * sprint.adb (Sprint_Node_Actual): Split
21125         N_Formal_Subprogram_Declaration into two alternatives for the new
21126         cases N_Formal_Abstract_Subprogram_Declaration and
21127         N_Formal_Concrete_Subprogram_Declaration.
21128         Char_Literal_Value field is now a Uint.
21129
21130         * trans.c: Get rid of junk Uint2 reference.
21131         Char_Literal_Value field is now a Uint.
21132         (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
21133         (gigi): Correct third arg to gimplify_body.
21134
21135         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
21136         (TYPE_LANG_FLAG_0): Check for record or union.
21137
21138         * treepr.adb: Char_Literal_Value field is now a Uint
21139
21140         * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
21141         UI_From_CC.
21142
21143         * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
21144         Add full UTF-32 support
21145         Char_Code is now 32 bits
21146
21147         * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
21148         wide character UTF_32 line terminators.
21149         Initialize Main_Source_File to avoid error when no main
21150         source is loaded.
21151
21152         * errout.adb (Finalize): Do not check Num_SRef_Pragmas
21153         (Main_Source_File) when no main source has been loaded, to avoid
21154         potential crash.
21155
21156 2005-02-09  Robert Dewar  <dewar@adacore.com>
21157
21158         * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
21159         Fix name of Set routine
21160
21161         * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
21162         fixed packages.
21163
21164         * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
21165         a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
21166         fixed packages
21167
21168         * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
21169         forms of Get_Line subprograms for AI-301.
21170
21171         * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
21172         a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
21173         a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
21174         a-stwima.ads: Minor reformatting.
21175
21176 2005-02-09  Doug Rupp  <rupp@adacore.com>
21177             Thomas Quinot  <quinot@adacore.com>
21178
21179         * adaint.c, adaint.h
21180         [VMS] (to_ptr32): New function.
21181         (MAYBE_TO_PTR32): New macro.
21182         (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
21183         for pointer size.
21184         [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
21185         [VMS] (#define fork()): Remove since unneccessary.
21186         (__gnat_set_close_on_exec): New routine to support
21187         GNAT.OS_Lib.Set_Close_On_Exec.
21188
21189         * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
21190         the parent side as close-on-exec so that they are not inherited by the
21191         child.
21192
21193         * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
21194         set or clear the FD_CLOEXEC flag on a file descriptor.
21195
21196 2005-02-09  Eric Botcazou  <ebotcazou@adacore.com>
21197             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21198
21199         PR ada/19386
21200         * decl.c:
21201         (gnat_to_gnu_field): Do not necessarily invoke make_packable_type
21202         on the field if Pragma Component_Alignment (Storage_Unit).
21203         (gnat_to_gnu_entity, case object): Do not treat a renaming that has
21204         side-effects as if it were a constant; also make SAVE_EXPR to protect
21205         side-effects.
21206         (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
21207         UNION_TYPE.
21208         (make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
21209         (components_to_record): Test it.
21210         Fix improper usage of REFERENCE_CLASS_P.
21211
21212         * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
21213         RECORD_TYPE.
21214
21215         * utils2.c: Minor reformatting.
21216
21217         * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
21218         handle other cases like RECORD_TYPE.
21219
21220         * utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
21221
21222 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
21223
21224         * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
21225         component of an array of arrays in an assignment context, and the
21226         aggregate has component associations that require sliding on
21227         assignment, force reanalysis of the aggregate to generate a temporary
21228         before the assignment.
21229         (Must_Slide): Make global to the package, for use in Gen_Assign.
21230
21231 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
21232
21233         * exp_ch4.adb (Expand_Composite_Equality): If a component is an
21234         unchecked union with no inferable discriminants, return a
21235         Raise_Program_Error node, rather than inserting it at the point the
21236         type is frozen.
21237         (Expand_Record_Equality, Component_Equality): Handle properly the case
21238         where some subcomponent is an unchecked union whose generated equality
21239         code raises program error.
21240
21241 2005-02-09  Doug Rupp  <rupp@adacore.com>
21242
21243         * gnatbl.c: [VMS] (_POSIX_EXIT): Define.
21244         [VMS] (#define exit hack): Remove.
21245
21246 2005-02-09  Pascal Obry  <obry@adacore.com>
21247             Arnaud Charlet <charlet@adacore.com>
21248
21249         * init.c (__gnat_initialize): Add a new parameter eh which contains the
21250         address of the exception registration. The Win32 version of this
21251         routine calls __gnat_install_SEH_handler() to initialize the SEH
21252         (Structured Exception Handling) handler.
21253         (__gnat_error_handler) [Win32]: Removed. Not needed as we use
21254         SEH (Structured Exception Handling) now.
21255         (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
21256         (__gnat_initialize for ppc-vxworks): Adjust comments and the
21257         preprocessor condition protecting the call to the extra eh setup
21258         subprogram, which is only available for the ppc target.
21259         (__gnat_clear_exception_count): replaced reference to
21260         variable taskIdCurrent by call to taskIdSelf(), cleaner.
21261
21262         * seh_init.c: New file.
21263
21264         * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
21265         (GNATBIND_OBJS): Idem.
21266
21267         * misc.c (gnat_parse_file): Update call to __gnat_initialize. This
21268         routine takes a new parameter (a pointer to the exception registration
21269         for the SEH (Structured Exception Handling) support.
21270
21271         * raise.h: (__gnat_install_SEH_handler): New prototype.
21272         Update copyright notice.
21273
21274         * s-tassta.adb (Task_Wrapper): Declare the exception registration
21275         record and initialize it by calling __gnat_install_SEH_handler.
21276
21277 2005-02-09  Vincent Celier  <celier@adacore.com>
21278
21279         * make.adb (Gnatmake): Do not fail when the main project has no object
21280         directory.
21281
21282 2005-02-09  Doug Rupp  <rupp@adacore.com>
21283
21284         * Makefile.in [VMS] (LN,LN_S): Define as cp -p
21285         Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
21286         [VMS]: Add translations for g-enblsp.adb.
21287
21288         * s-asthan-vms.adb: Removed.
21289         * s-asthan-vms-alpha.adb: Added.
21290
21291 2005-02-09  Pascal Obry  <obry@adacore.com>
21292
21293         * Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
21294         (LIBGNAT_OBJS): Add seh_init.o.
21295
21296 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
21297
21298         PR ada/16592
21299         * Makefile.in: Link all gnat tools with -static-libgcc, since
21300         -shared-libgcc is now used by default on some systems (e.g. linux with
21301         recent binutils).
21302         Remove references to Makefile.prolog/generic, no longer used.
21303
21304 2005-02-09  Vincent Celier  <celier@adacore.com>
21305
21306         * prj-makr.adb (Process_Directory): Put file name in canonical case
21307         before matching against the patterns.
21308         If gnatname has been invoked as <prefix>-gnatname
21309         then invoke the compiler as <prefix>-gcc, not just "gcc".
21310
21311 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
21312
21313         * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
21314         with expansion disabled. The actual subtype is needed among other
21315         places when the selected component appears in the context of a loop
21316         bound, and denotes a packed array.
21317         (Operator_Check): Always use the first subtype in the
21318         error message, to avoid the appearance of internal base types.
21319         (Transform_Object_Operation): Copy each actual in full
21320         to the parameter associations of the constructed call, rather than
21321         using the shallow copy mechanism of New_Copy_List. This ensures that
21322         the chaining of named associations is done properly.
21323         (Complete_Object_Operation): Rewrite node, rather than
21324         replacing it, so that we can trace back to the original selected
21325         component.
21326
21327         * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
21328         and calls that use object notation, if the called function is not
21329         declared  in a withed unit, place the elaboration constraint on the
21330         unit in the context that makes the function accessible.
21331         (Check_Elab_Subtype_Declaration): Check whether a subtype declaration
21332         imposes an elaboration constraint between two packages.
21333
21334 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
21335
21336         * sem_ch7.adb (Uninstall_Declarations): Exchange full and private
21337         views of a private type after handling its private dependents, to
21338         maintain proper stack discipline between entry and exit from the
21339         package.
21340
21341 2005-02-09  Cyrille Comar  <comar@adacore.com>
21342
21343         * s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
21344         Minor reformatting.
21345
21346 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
21347
21348         * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
21349         fields for foreign threads.
21350
21351 2005-02-09  Doug Rupp  <rupp@adacore.com>
21352
21353         * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
21354         recursion warnings when compiled with -gnatdm.
21355
21356 2005-02-09  Robert Dewar  <dewar@adacore.com>
21357
21358         * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
21359         Slight fix to documentation of -gnaty with no parameters
21360
21361         * xr_tabls.ads: Add ??? comment for missing overall comment
21362
21363         * xsinfo.adb: Make default file name be sinfo.h, since this is what
21364         we now use by default.
21365
21366         * xsnames.adb: Adjust end of file test to look for five space followed
21367         by '#' instead of six spaces. The format of xsnames.adb was modified
21368         in the last update.
21369
21370         * a-numeri.ads: Add reference to AI-388 for greek letter pi
21371         identifier.
21372
21373         * clean.adb: Minor reformatting.
21374
21375         * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
21376         gnatname.adb: Minor reformatting
21377         Add 2005 to copyright output when utility is run
21378
21379         * csets.adb: Eliminate obsolete comment
21380
21381         * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
21382         Update comments.
21383
21384         * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
21385
21386 2005-02-09  Sergey Rybin  <rybin@adacore.com>
21387
21388         * gnat_ugn.texi: Add to the gnatpp section the paragraph describing
21389         the difference between compact and incompact layout and add the record
21390         representation clause to the example illustrating different layouts.
21391         Add the description of '-A5' gnatpp option ("align 'AT' keywords in
21392         component clauses").
21393
21394 2005-02-09  Florian Villoing  <villoing@adacore.com>
21395
21396         * gnat_ugn.texi: Fix typos.
21397         Use @command to display 'gcc', 'gnatbind', etc. insted of @code or
21398         @file.
21399         Make proper use of @ref, @xref and @pxref to avoid duplication of "see"
21400         in the generated documentation.
21401
21402 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
21403
21404         * gnat_ugn.texi: Remove all mentions of FSU threads, which are no
21405         longer supported.
21406         Update linker wrapper when linking with non GNU C++.
21407
21408 2005-02-09  Pascal Obry  <obry@adacore.com>
21409
21410         * gnat_ugn.texi:
21411         Document the procedure to debug the DllMain routine on Windows.
21412         Add note about -funwind-tables and mixed Ada and C/C++ programming in
21413         ZCX mode.
21414         Document new BIND qualifer /RETURN_CODES=VMS.
21415
21416 2005-02-09  Ben Brosgol  <brosgol@adacore.com>
21417
21418         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
21419         Edited gnatmetric chapter
21420
21421 2005-02-09  Robert Dewar  <dewar@adacore.com>
21422
21423         * gnat_rm.texi:
21424         Changes to document new wide wide character support
21425         For AI-285
21426         Update documentation on Normalize_Scalars and Initialize_Scalars
21427
21428 2005-02-09  Pascal Obry  <obry@adacore.com>
21429
21430         * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
21431
21432 2005-02-09  Jose Ruiz  <ruiz@adacore.com>
21433
21434         * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported
21435         from the VxWorks kernel) that is needed for getting the active
21436         priority of the different tasks.
21437
21438         * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure.
21439         Use a pragma Elaborate_Body in the spec file instead.
21440         Noticed by code reading.
21441
21442 2005-02-09  Thomas Quinot  <quinot@adacore.com>
21443
21444         * exp_util.ads: Minor correction in comment.
21445
21446 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
21447
21448         * s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
21449         since this procedure is now too complex to be worth inlining.
21450
21451 2005-02-09  Richard Henderson  <rth@redhat.com>
21452
21453         * utils.c (gnat_define_builtin): Remove.
21454         (gnat_install_builtins): Use build_common_builtin_nodes.
21455
21456 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
21457
21458         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
21459         a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
21460         a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
21461         a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
21462         a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
21463         a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
21464         a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
21465         a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
21466         a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
21467         a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
21468         a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
21469         a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
21470         a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
21471         a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
21472         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
21473         a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads,
21474         a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
21475         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads,
21476         a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
21477         a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
21478         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
21479         a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
21480         a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
21481         a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads,
21482         a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb,
21483         a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb,
21484         a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
21485         a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
21486         a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
21487         a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
21488         a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
21489         a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
21490         a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
21491         a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
21492         library.
21493
21494 2005-01-27  Laurent GUERBY <laurent@guerby.net>
21495
21496         * Makefile.in: Fix a-intnam.ads from previous commit,
21497         add 2005 to copyright.
21498         * a-intman-rtems.ads: Renamed to...
21499         * a-intnam-rtems.ads:
21500
21501 2005-01-27  Laurent GUERBY <laurent@guerby.net>
21502
21503         * Makefile.in: Rename GNAT RTEMS specific files.
21504         * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb,
21505         5rosinte.ads, 5rparame.adb: Replaced by files below.
21506         * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb,
21507         s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above.
21508
21509 2005-01-27  Joel Sherrill <joel.sherrill@oarcorp.com>
21510             Laurent GUERBY <laurent@guerby.net>
21511
21512         PR ada/19488
21513         * 5rosinte.ads: Add No_Key constant.
21514         * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style.
21515         * gsocket.h: Do not include <sys/socket.h> with RTEMS either.
21516
21517 2005-01-26  Laurent GUERBY <laurent@guerby.net>
21518
21519         PR ada/19414
21520         * i-cobol.adb (Valid_Numeric): Handle zero length case.
21521
21522 2005-01-20  Richard Henderson  <rth@redhat.com>
21523
21524         * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use
21525         a-intnam-linux.ads and system-linux-alpha.ads.
21526         * a-intnam-linux-alpha.ads: Remove file.
21527         * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New.
21528         * system-linux-alpha.ads: New file.
21529
21530 2005-01-18  Jakub Jelinek  <jakub@redhat.com>
21531
21532         PR ada/13470
21533         * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
21534         set to the new string.
21535
21536 2005-01-18  Toon Moene  <toon@moene.indiv.nluug.nl>
21537
21538         * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
21539         to True.
21540
21541 2005-01-18  Richard Henderson  <rth@redhat.com>
21542
21543         * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB,
21544         THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize
21545         for alpha-linux.
21546         * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files.
21547
21548 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
21549
21550         * system-darwin-ppc.ads (ZCX_By_Default): Change to True.
21551         (GCC_ZCX_Support): Likewise.
21552
21553 2005-01-11  Bastian Blank  <waldi@debian.org>
21554
21555         * system-linux-s390.ads: Define Preallocated_Stacks.
21556         * system-linux-s390x.ads: Likewise.
21557
21558 2005-01-04  Arnaud Charlet  <charlet@adacore.com>
21559
21560         * gnat_ugn.texi: Fix texi errors with null variables.
21561
21562 2005-01-03  Thomas Quinot  <quinot@adacore.com>
21563
21564         * gen-soccon.c: New utility program to generate g-soccon.ads
21565         automatically.
21566
21567         * socket.c, gsocket.h: Split inclusion of system header files into a
21568         gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c.
21569
21570         * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads,
21571         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
21572         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads,
21573         g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files
21574         should not be edited by hand anymore, but should be regenerated using
21575         gen-soccon.
21576
21577 2005-01-03  Robert Dewar  <dewar@adacore.com>
21578             Ed Schonberg  <schonberg@adacore.com>
21579             Vincent Celier  <celier@adacore.com>
21580
21581         * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings
21582         on/off, since this is an obsolescent feature, for which we now generate
21583         a warning.
21584
21585         * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if
21586         warning mode is set and obsolescent usage of this attribute occurs.
21587         (Resolve_Access, case 'Access): Note that GNAT uses the context type to
21588         disambiguate overloaded prefixes, in accordance with AI-235. GNAT code
21589         predates, and partly motivates, the adoption of the AI.
21590         Implement new Ada 2005 attribute Mod
21591
21592         * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
21593         attribute Mod.
21594
21595         * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
21596
21597         * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
21598         pragma restrictions.
21599         New entry for Ada 2005 attribute Mod.
21600
21601         * par-prag.adb:
21602         Add recognition of new pragma Restrictions No_Dependence
21603         Recognize restriction No_Obsolescent_Features at parse time
21604
21605         * bcheck.adb: Add circuitry for checking for consistency of
21606         No_Dependence restrictions.
21607
21608         * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
21609         restrictions.
21610
21611         * restrict.ads, restrict.adb: Add subprograms to deal with
21612         No_Dependence restrictions.
21613
21614         * rtsfind.adb: Check that implicit with's do not violate No_Dependence
21615         restrictions.
21616
21617         * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb,
21618         sem_attr.adb: Add check for new restriction No_Obsolescent_Features
21619
21620         * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new
21621         dummy parameter to scng instantiation.
21622         Needed for new restriction No_Obsolescent_Features
21623
21624         * scn.adb: (Obsolescent_Check): New procedure
21625         Needed for new restriction No_Obsolescent_Features
21626
21627         * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as
21628         specified by AI-285, needed for implementation of AI-388 (adding greek
21629         pi to Ada.Numerics).
21630         Add new generic formal to scng, needed for new restriction
21631         No_Obsolescent_Features.
21632
21633         * s-rident.ads: Add new restriction No_Obsolescent_Features.
21634
21635         * ali.ads, ali.adb: Adjustments for reading new No_Dependence
21636         restrictions lines.
21637         (Scan_ALI): When finding an unexpected character on an R line, raise
21638         exception Bad_R_Line, instead of calling Fatal_Error, so that, when
21639         Ignore_Errors is True, default restrictions are set and scanning of the
21640         ALI file continues with the next line. Also, when Bad_R_Line is raised
21641         and Ignore_Errors is True, skip to the end of le line.
21642
21643         * sem_ch10.adb: Check that explicit with's do not violate
21644         No_Dependence restrictions.
21645         (Install_Withed_Unit): Add code to implement AI-377 and diagnose
21646         illegal context clauses containing child units of instance.
21647
21648         * sem_prag.adb: Processing and checking for new No_Dependence
21649         restrictions.
21650         (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to
21651         analyze and check the External argument.
21652
21653         * a-numeri.ads: Add greek letter pi as alternative spelling of Pi
21654
21655 2005-01-03  Robert Dewar  <dewar@adacore.com>
21656
21657         * atree.adb: Add a fifth component to entities
21658         This allows us to add 32 flags and four new fields
21659
21660         * atree.ads: Add a fifth component to entities
21661         This allows us to add 32 flags and four new fields
21662
21663         * einfo.ads, einfo.adb: Document new fields and new flags now available
21664         Add routines for printing new fields
21665
21666         * treepr.adb: Call routines to print out additional fields if present
21667
21668 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
21669
21670         * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
21671         gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
21672
21673         * Makefile.in: Add support to build shared Ada libraries on solaris x86
21674         Remove gpr2make, replaced by gprmake.
21675         Remove references to gnatmem and libaddr2line.
21676         Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux.
21677         (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS.
21678         Add support for specialized version of Ada.Numerics.Aux for Darwin: use
21679         a-numaux-darwin.ads and a-numaux-darwin.adb
21680         Enable mlib-tgt-lynxos.adb on lynxos.
21681
21682         * Make-lang.in: Remove rules for gpr2make.
21683         When generating sdefault.adb, do not call Relocate_Path
21684         on S3 for function Target_Name, as it is not a path.
21685         Remove references to gnatmem and libaddr2line.
21686
21687         * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
21688         files.
21689
21690 2005-01-03  Samuel Tardieu  <tardieu@adacore.com>
21691
21692         * checks.adb (Apply_Alignment_Check): Generate a warning if an object
21693         address is incompatible with its base type alignment constraints when
21694         this can be decided statically.
21695
21696 2005-01-03  Olivier Hainque  <hainque@adacore.com>
21697
21698         * decl.c (compatible_signatures_p): New function. The intended purpose
21699         is to check if two function signatures for a call-site and a callee are
21700         compatible enough for the call to be valid. The underlying purpose is
21701         to check if a call to a mapped builtin is using the right interface.
21702         The current code actually does not check antyhing - this a placeholder
21703         for future refinements.
21704         (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle
21705         builtin calls for convention Intrinsic.
21706
21707         * gigi.h (builtin_decl_for): Declare (new function).
21708
21709         * utils.c (gnat_install_builtins): Install the target specific builtins.
21710         (builtin_decl_for): New function, provide a dummy body for now.
21711
21712 2005-01-03  Geert Bosch  <bosch@adacore.com>
21713
21714         * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used.
21715         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
21716         (Pred): Implement in terms of Succ.
21717
21718         * trans.c (convert_with_check): Reimplement conversion of float to
21719         integer.
21720
21721 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
21722             Vincent Celier  <celier@adacore.com>
21723
21724         * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
21725         bounds can be negative, and must be declared Int, not Nat.
21726
21727         * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
21728         array is checked after using the index in the array.
21729
21730         * makegpr.adb (Add_Switches): Check if there is a package for the
21731         processor. If there is no package, do not look for switches.
21732
21733 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
21734
21735         * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the
21736         generation of predefined stream operations (specs and bodies) should
21737         proceed. Under various restrictions these subprograms must not be
21738         generated.
21739
21740 2005-01-03  Thomas Quinot  <quinot@adacore.com>
21741
21742         * exp_dist.adb:
21743         Declare subprogram index in Build_RPC_Receiver_Body, to reduce the
21744         amount of PCS-specific code in RACW stubs generation.
21745         (Copy_Specification): Set Etype on copied formal parameter entities, as
21746         this information is needed for PolyORB stubs generation.
21747         (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused
21748         variable Dynamic_Async.
21749         (Build_Subprogram_Receiving_Stubs): Make PCS-specific
21750         (Build_RPC_Receiver_Specification): Make generic again, as recent
21751         changes have allowed RPC receivers to have the same profile for both
21752         variants of the PCS.
21753         Reorganise RPC receiver generation to reduce differences between the
21754         structure of GARLIC and PolyORB RPC receivers.
21755         (Add_Receiving_Stubs_To_Declarations): Make this subprogram
21756         PCS-specific.
21757         Simplify elaboration code for RCI packages.
21758
21759         * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver
21760         generation to reduce differences between the structure of GARLIC and
21761         PolyORB RPC receivers.
21762
21763         * s-stratt.adb: Fix typo in comment.
21764
21765 2005-01-03  Thomas Quinot  <quinot@adacore.com>
21766
21767         * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
21768         copied from Make_Init_Call).
21769
21770         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
21771         reads and assignments on a temporary variable declared with appropriate
21772         discriminants.
21773
21774 2005-01-03  Robert Dewar  <dewar@adacore.com>
21775
21776         * i-c.adb (To_C): Raise CE if string is null and Append_Null
21777
21778 2005-01-03  Robert Dewar  <dewar@adacore.com>
21779
21780         * i-cstrin.adb (Update): Do not append a null in form called with a
21781         String. This avoids unintended behavior.
21782
21783 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
21784
21785         PR ada/17527
21786         * init.c: Fix warnings on Free BSD section.
21787
21788 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
21789
21790         PR ada/16949
21791         * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
21792         xsinfo.adb).
21793
21794 2005-01-03  Vincent Celier  <celier@adacore.com>
21795
21796         * make.adb (Collect_Arguments_And_Compile): Do not attempt to build
21797         libraries when Unique_Compile is True (-u switch).
21798         (Gnatmake): ditto.
21799
21800 2005-01-03  Robert Dewar  <dewar@adacore.com>
21801
21802         * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing
21803         upper case letter or underscore after W, as allowed by spec.
21804
21805 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
21806
21807         * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up
21808         darwin port by using proper type definitions from header files.
21809         Use SIGTERM instead of SIGABRT for SIGADAABORT.
21810
21811 2005-01-03  Robert Dewar  <dewar@adacore.com>
21812
21813         * par.adb: Enhance error message handling for configuration file
21814         pragmas.
21815
21816 2005-01-03  Robert Dewar  <dewar@adacore.com>
21817
21818         * s-arit64.adb (Double_Divide): Put back changes that got accidentally
21819         removed during the previous update (test properly for case of dividing
21820         largest negative number by -1, which generates overflow).
21821
21822 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
21823             Sergey Rybin  <rybin@adacore.com>
21824
21825         * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node
21826         to use as the defining identifier for a formal package.
21827         (Remove_Parent): If the instance takes place within (an instance of)
21828         a sibling, preserve private declarations of common parent.
21829
21830 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
21831
21832         * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair,
21833         to determine whether one of the operands is a fixed-point type for
21834         which a user-defined multiplication or division operation might be
21835         defined.
21836
21837         * sem_res.adb (Valid_Conversion): The legality rules for conversions
21838         of access types are symmetric in Ada 2005: either designated type can
21839         be unconstrained.
21840
21841 2005-01-03  Vincent Celier  <celier@adacore.com>
21842
21843         * s-fileio.adb (Temp_File_Record): Change length of string component
21844         Name from L_tmpnam + 1 to max_path_len + 1.
21845
21846 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
21847
21848         * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of
21849         Self_Id.Deferral_Level = 0.
21850         (Do_Pending_Action): Move this function to the spec.
21851
21852         * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call
21853         Do_Pending_Action explicitely when needed, in case we're using
21854         No_Abort restrictions.
21855
21856         * s-tassta.adb (Create_Task): If Abort is not allowed, reset the
21857         deferral level since it will not get changed by the generated code.
21858         Keeping a default value of 1 would prevent some operations (e.g.
21859         select or delay) to proceed successfully.
21860
21861 2005-01-03  Ben Brosgol  <brosgol@adacore.com>
21862             Robert Dewar  <dewar@adacore.com>
21863             Cyrille Comar  <comar@adacore.com>
21864
21865         * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to
21866         porting guide chapter (vms version).
21867         Revised doc title (removed "for native platforms") and subtitle.
21868         Add discussion on warning flag for obsolescent features. First we
21869         note that it applies to obsolete GNAT features, which was previously
21870         omitted. Second we contrast the behavior with that of the new
21871         Ada 2005 AI-368 restriction No_Obsolescent_Features.
21872         Preliminary rewriting of GNAT & libraries chapter in order to take
21873         into account default project locations & new project manager
21874         capabilities.
21875
21876 2005-01-03  Robert Dewar  <dewar@adacore.com>
21877
21878         * cstand.adb (Create_Operators): Clean up format and documentation of
21879         unary and binary operator result tables. No change in code, just
21880         reformatting and addition of comments.
21881
21882         * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
21883         sem_ch2.adb: Minor reformatting
21884
21885         * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads,
21886         sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to
21887         comments for Tree_Read and Tree_Write.
21888
21889 2005-01-03  Pascal Obry  <obry@adacore.com>
21890
21891         * exp_attr.ads: Minor reformatting.
21892
21893 2005-01-03  Romain Berrendonner  <berrendo@adacore.com>
21894
21895         * comperr.adb (Compiler_Abort): Add specialized message for GAP
21896         versions.
21897
21898 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
21899
21900         * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
21901         whether the ancestor type is private, as may be the case with nested
21902         instantiations.
21903
21904 2004-12-30  Sohail Somani <sohail@sohailsomani.com>
21905
21906         PR ada/19128
21907         * trans.c (gnat_to_gnu): Fix typo: Use correct return variable.
21908
21909 2004-12-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
21910
21911         * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
21912         * utils2.c (build_unary_op): Likewise.
21913
21914 2004-12-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21915
21916         * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.
21917
21918 2004-12-19  Richard Henderson  <rth@redhat.com>
21919
21920         * trans.c (gigi): Update gimplify_body call.
21921
21922 2004-12-09  Nathan Sidwell  <nathan@codesourcery.com>
21923
21924         * decl.c (gnat_substitute_in_type): Remove SET_TYPE case.
21925
21926 2004-12-07  Ed Falis  <falis@adacore.com>
21927
21928         * s-intman-vxworks.adb (Notify_Exception): removed useless check for
21929         current task being suspended.
21930
21931         * init.c (__gnat_clear_exception): added to reset VxWorks exception
21932         count.
21933         (__gnat_map_signal): removed test for current task being suspended.
21934
21935 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
21936
21937         * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values
21938         from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit
21939         targets (such as AAMP).
21940
21941 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
21942
21943         * atree.adb (Visit_Itype): Create a new name for the generated itype,
21944         because the back-end may otherwise treat it as a redefinition of the
21945         old symbol.
21946
21947 2004-12-07  Eric Botcazou  <ebotcazou@adacore.com>
21948
21949         * back_end.adb (Scan_Back_End_Switches): Accept --param.
21950
21951         * lang-specs.h: Accept --param.
21952
21953 2004-12-07  Vincent Celier  <celier@adacore.com>
21954
21955         * make.adb (Check_Mains, Switches_Of): Adapt to name changes in
21956         package Prj (Current_Spec_Suffix => Ada_Spec_Suffix,
21957         Current_Body_Suffix => Ada_Body_Suffix).
21958         Take into account Externally_Built attribute.
21959
21960         * clean.adb (In_Extension_Chain): Always return False when one of the
21961         parameter is No_Project.
21962         (Clean_Project): Adapt to changes in package Prj (Lang_Ada =>
21963         Ada_Language_Index).
21964         (Gnatclean): Adapt to change in package Prj.Pars (no parameter
21965         Process_Languages for procedure Parse).
21966
21967         * gnatcmd.adb (Carg_Switches): New table.
21968         (GNATCmd): Put all switches following -cargs in the Carg_Switches table.
21969         Adapt to name changes in package Prj (Current_Spec_Suffix =>
21970         Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix).
21971
21972         * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type
21973         Header_Num and function Hash are now declared in package Prj,
21974         not Prj.Com.
21975
21976         * prj.adb (Suffix_Of): New function.
21977         (Set (Suffix)): New procedure.
21978         (Hash): One function moved from Prj.Com
21979         (Is_Present, Language_Processing_Data_Of): New functions
21980         (Set): Two new procedures
21981         (Add_Language_Name, Display_Language_Name): New procedures
21982
21983         * prj.ads: (Suffix_Of): New function
21984         (Set (Suffix)): New procedure
21985         Add several types and tables for multi-language support.
21986         (Header_Num): Type moved from Prj.Com
21987         (Hash): Two functions moved from Prj.Com
21988         (Is_Present, Language_Processing_Data_Of): New functions
21989         (Set): Two new procedures
21990         (Add_Language_Name, Display_Language_Name): New procedures
21991         (Naming): Component name changes:
21992         Current_Spec_Suffix => Ada_Spec_Suffix,
21993         Current_Body_Suffix => Ada_Body_Suffix. Add new components:
21994         Impl_Suffixes, Supp_Suffixes.
21995         (Project_Data): New components: Externally_Built, Supp_Languages,
21996         First_Language_Processing, Supp_Language_Processing, Default_Linker,
21997         Default_Linker_Path.
21998
21999         * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and
22000         new package Language_Processing with its attributes (Compiler_Driver,
22001         Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option,
22002         Binder_Driver, Default_Linker).
22003
22004         * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj.
22005         (Header_Num): Type moved to package Prj
22006
22007         * prj-env.adb: Adapt to name changes in package Prj
22008         (Current_Spec_Suffix => Ada_Spec_Suffix,
22009         Current_Body_Suffix => Ada_Body_Suffix).
22010
22011         * prj-ext.adb: Add the default project dir (<prefix>/log/gnat) by
22012         default to the project path, except the "-" is one of the directories
22013         in env var ADA_PROJECT_PATH.
22014         (Current_Project_Path): Global variable, replacing Project_Path
22015         that was in the body of Prj.Part.
22016         (Project_Path): New function
22017         (Set_Project_Path): New procedure
22018         Initialize Current_Project_Path during elaboration of the package
22019         Remove dependency on Prj.Com, no longer needed
22020
22021         * prj-ext.ads (Project_Path): New function
22022         (Set_Project_Path): New procedure
22023
22024         * prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when no
22025         suffix is defined for language <lang>.
22026         (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of
22027         accessing directly the components of Naming.
22028         (Look_For_Sources): Use Set (Suffix) to set the suffix of a language.
22029         Reorganise of this package.
22030         Break procedure Check in several procedures.
22031
22032         * prj-nmsc.ads: Replace all procedures (Ada_Check,
22033         Other_Languages_Check and Language_Independent_Check) with a single
22034         procedure Check.
22035
22036         * prj-pars.ads, prj-pars.adb (Parse): Remove parameter
22037         Process_Languages, no longer needed.
22038
22039         * prj-part.adb (Project_Path): Move to the body of Prj.Ext as
22040         Current_Project_Path.
22041         Remove elaboration code, moved to the body of Prj.Ext
22042         Use new function Prj.Ext.Project_Path instead of old variable
22043         Project_Path.
22044         (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path.
22045         When comparing with project paths on the stack, first put the resolved
22046         path in canonical case.
22047         (Parse_Single_Project): Set the path name of the project file in the
22048         tree to the normalized path.
22049
22050         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove
22051         parameter Process_Languages, no longer needed.
22052         (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and
22053         Other_Languages_Check.
22054
22055         * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path
22056         to store the resolved canonical path of the project file.
22057         Remove dependency to Prj.Com, no longer needed
22058
22059         * prj-util.adb: Adapt to name changes in package Prj
22060         (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix =>
22061         Ada_Body_Suffix).
22062
22063         * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver,
22064         Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker,
22065         Externally_Built, Include_Option, Language_Processing.
22066
22067         * makegpr.adb: Numerous changes due to changes in packages
22068         Prj and Prj.Nmsc.
22069
22070         * gnatls.adb: Add the default project dir (<prefix>/log/gnat) by
22071         default to the project path, except whe "-" is one of the directories
22072         in env var ADA_PROJECT_PATH.
22073         (Gnatls): In verbose mode, add the new section "Project Search Path:"
22074
22075 2004-12-07  Robert Dewar  <dewar@adacore.com>
22076
22077         * debug.adb: Document that -gnatdA automatically sets -gnatR3m
22078
22079         * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically
22080         set -gnatR3m mode.
22081
22082         * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA
22083         flag. No longer needed now that we handle this in gnat1drv.adb.
22084
22085         * repinfo.ads: Minor reformatting
22086
22087 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22088             Olivier Hainque  <hainque@adacore.com>
22089             Eric Botcazou  <ebotcazou@adacore.com>
22090
22091         * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
22092         TYPE_SIZE_UNIT of result type if SIZE is not specified.
22093         (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation
22094         of a bitfield, which we know is useless and causes trouble because of
22095         alignment implications.
22096
22097         * utils.c (create_var_decl): Set DECL_COMMON again on targets without
22098         BSS sections.
22099         (process_attributes): Clear DECL_COMMON again when a section attribute
22100         is present.
22101         (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or
22102         SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.
22103         (create_field_decl): Special case ADDRESSABLE negative to mean
22104         "no bitfield creation", to be used by make_aligning_type. Don't
22105         restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode
22106         fields claimed addressable still have to be bitfields. Use
22107         value_factor_p instead of a raw binop construction to check for the
22108         position's alignment.
22109
22110 2004-12-07  Geert Bosch  <bosch@adacore.com>
22111
22112         * eval_fat.adb: Revert previous change.
22113
22114 2004-12-07  Thomas Quinot  <quinot@adacore.com>
22115             Ed Schonberg  <schonberg@adacore.com>
22116
22117         * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component
22118         with an implicit dereference as its prefix, use
22119         Insert_Explicit_Dereference instead of merely rewriting the prefix into
22120         an explicit dereference. This ensures that a reference to the original
22121         prefix is generated, if appropriate.
22122
22123         * sem_util.adb (Insert_Explicit_Dereference): When an implicit
22124         dereference is rewritten to an explicit one, generate a reference to
22125         the entity denoted by its prefix using the original prefix node, so
22126         the dereference can be properly recorded as a read of the denoted
22127         access value, if appropriate.
22128
22129         * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from
22130         emitting 'assigned but never read' warning on a variable on the basis
22131         that it has an access type.
22132         (Check_References): Emit unreferenced warning when the scope is a
22133         subprogram body.
22134
22135 2004-12-07  Robert Dewar  <dewar@adacore.com>
22136             Ed Schonberg  <schonberg@adacore.com>
22137
22138         * exp_ch6.adb (Expand_Call): Add comment on handling of back end
22139         intrinsic
22140
22141         * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic,
22142         leaving call unchanged.
22143         This deals with the case where the pragma Import specified
22144         an external name, to be handled by the back end.
22145
22146         * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of
22147         subprogram which is Imported with convention Intrinsic if an
22148         External_Name argument is specified.
22149         (Process_Import_Or_Interface): Properly diagnose link name argument.
22150         (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion
22151         with Sem_Ch6.Cannot_Inline.
22152         (Process_Inline): Provide separate warning for inapplicable inline
22153         pragma.
22154         (Cannot_Inline): Reject subprograms that have an at_end handler, so that
22155         treatment is uniform on different targets.
22156
22157 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
22158
22159         * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of
22160         construct is rewritten, preserve end label to permit source navigation.
22161
22162 2004-12-07  Thomas Quinot  <quinot@adacore.com>
22163
22164         * exp_dist.adb (Specific_Build_General_Calling_Stubs,
22165         Specific_Build_Stub_Target): New subprograms.
22166         (Build_Subprogram_Calling_Stubs): Make this procedure independent from
22167         the PCS implementation used, using the above PCS-customized subprograms.
22168         Minor reformatting.
22169         (PolyORB_Support.Helpers): New subunit containing supporting subprograms
22170         for generation of DSA code targeted to the PolyORB PCS.
22171         (Add_Stub_Type): Rewrite to isolate the parts that are specific to one
22172         implementation of the partition communication subsystem in ancillary
22173         subprograms.
22174         (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,
22175         PolyORB_Support.Build_Stub_Type): New subrograms containing the
22176         PCS-specific part of Add_Stub_Type.
22177         (Insert_Partition_Check): Use runtime library function to perform
22178         E.4(19) check.
22179
22180         * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref
22181         (RE_Same_Partition): New entity, from s-parint.
22182
22183         * s-parint.ads, s-parint.adb (Same_Partition): New subprogram.
22184
22185 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
22186
22187         * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb:
22188         Output the copyright message on a separate line from the version
22189         message.
22190
22191 2004-12-07  Joel Brobecker  <brobecker@adacore.com>
22192
22193         * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a
22194         compile-time warning.
22195
22196 2004-12-07  Robert Dewar  <dewar@adacore.com>
22197
22198         * g-regpat.adb: (Match): Change a misuse of or to or else
22199
22200 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
22201
22202         * lib-xref.adb:
22203         (Generate_Reference): Handle properly a reference to an entry formal,
22204          when an accept statement has a pragma Unreferenced for it.
22205
22206         * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag
22207         and the Has_Pragma_Unreferenced flag for each formal before analyzing
22208         the body, to ensure that warnings are properly emitted for each accept
22209         statement of a given task entry.
22210
22211 2004-12-07  Vasiliy Fofanov  <fofanov@adacore.com>
22212
22213         * Makefile.in: Add support for foreign threads on VMS.
22214
22215 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22216
22217         * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P):
22218         Remove.
22219         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New.
22220
22221         * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls.
22222
22223         * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed
22224         exception.
22225         (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it.
22226
22227 2004-12-07  Robert Dewar  <dewar@adacore.com>
22228
22229         * nlists.adb (Prepend_Debug): Remove parameters and nest within
22230         Prepend.
22231         (Remove_Next_Debug): Same fix
22232
22233         * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do
22234         maintain back pointers now, though we did not used to, and comments
22235         were out of date).
22236         (Prepend): Remove pragma Inline.
22237         (Remove_Next): Same cleanup
22238
22239 2004-12-07  Thomas Quinot  <quinot@adacore.com>
22240
22241         * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram
22242         used to record an implicit dereference as a read operation on its
22243         prefix when operating under -gnatc. Necessary to avoid spurious
22244         'variable assigned but never read' warnings in that mode.
22245         (Process_Indexed_Component, Analyze_Selected_Component): When the prefix
22246         is a non-overloaded implicit dereference, call the above subprogram to
22247         ensure proper recording of references.
22248
22249 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
22250
22251         * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs
22252         to be resolved later as part of Analyze_Iteration_Scheme's call to
22253         Make_Index.
22254
22255 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
22256
22257         * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the
22258         prefix is not a scalar type, place error message on prefix, not on
22259         type entity.
22260
22261 2004-12-07  Bernard Banner  <banner@adacore.com>
22262
22263         * vxaddr2line.adb: Add support for x86 vxworks
22264
22265 2004-12-07  Thomas Quinot  <quinot@adacore.com>
22266
22267         * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify
22268         documentation of the behaviour of these functions when passed an IP
22269         address that has no record in the system hosts database and no reverse
22270         record in the DNS.
22271
22272         * cstand.adb, a-tags.ads: Fix typos in comment.
22273
22274 2004-12-07  Robert Dewar  <dewar@adacore.com>
22275
22276         * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb,
22277         exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb,
22278         sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb,
22279         s-poosiz.ads: Minor reformatting
22280
22281         * make.adb: Minor reformatting
22282         Add some ??? comments asking for more comments
22283
22284         * s-poosiz.adb: Minor reformatting
22285         Add comments on alignment requirement
22286
22287         * sinfo.ads: Remove obsolete comment and fix typo.
22288
22289 2004-12-07  Vincent Celier  <celier@adacore.com>
22290             Sergey Rybin  <rybin@adacore.com>
22291
22292         * gnat_ugn.texi: Update the section "The GNAT Driver and Project
22293         Files" with the new tool and package names.
22294         Reformatting to suppress most of the warnings for line too long
22295         Document the new section "Project Search Path:" in the output of
22296         gnatls -v.
22297         Add gnatmetric section
22298
22299 2004-12-07  Vincent Celier  <celier@adacore.com>
22300
22301         * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and
22302         -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps
22303         and -eit to -ept. Added qualifier
22304         /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec.
22305
22306 2004-11-27  Andreas Schwab  <schwab@suse.de>
22307
22308         * Make-lang.in (ada/trans.o): Depend on $(EXPR_H).
22309
22310 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
22311
22312         * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from
22313         internal implementation unit GNAT.Sockets.Thin,
22314         as their usage for sockets is non-portable (using the read and write
22315         functions from the system runtime library is fine on UNIX but won't
22316         work under Windows).
22317
22318         * mingw32.h: Update copyright notice.
22319
22320 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
22321
22322         * ada-tree.h: Minor reformatting of previous change to avoid lines
22323         longer than 79 characters.
22324
22325 2004-11-25  Olivier Hainque  <hainque@adacore.com>
22326
22327         * tb-gcc.c: GCC infrastructure based implementation of
22328         __gnat_backtrace.
22329
22330 2004-11-24  Steven Bosscher  <stevenb@suse.de>
22331
22332         * misc.c (gnat_post_options): Don't clear
22333         flag_inline_functions.
22334
22335 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
22336
22337         PR ada/17986
22338         * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the
22339         tree.
22340
22341 2004-11-21  Andreas Jaeger  <aj@suse.de>
22342
22343         * stylesw.adb: Change Style_Check_Subprogram_Order to
22344         Style_Check_Order_Subprograms.
22345
22346 2004-11-18  Arnaud Charlet  <charlet@adacore.com>
22347
22348         * adaint.h, adaint.c
22349         (__gnat_portable_spawn): Fix cast of spawnvp third parameter
22350         to avoid warnings.
22351         Add also a cast to kill another warning.
22352         (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags
22353         parameter with the priority class of the parent process instead of
22354         always using the NORMAL_PRIORITY_CLASS.
22355         (__gnat_dup): New function.
22356         (__gnat_dup2): New function.
22357         (__gnat_is_symbolic_link): Enable the effective body of this
22358         function when __APPLE__ is defined.
22359
22360         * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures.
22361         Update comments.
22362
22363 2004-11-18  Olivier Hainque  <hainque@adacore.com>
22364
22365         * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the
22366         address of which may be used to represent "others" and "all others"
22367         choices in exception tables, instead of the current harcoded
22368         (void *)0 and (void *)1.
22369         (Setup_Exception): Do nothing in the GNAT SJLJ case.
22370
22371         * gigi.h (others_decl, all_others_decl): New decls representing the
22372         new Others_Value and All_Others_Value objects.
22373         (struct attrib): Rename "arg" component as "args", since GCC expects a
22374         list of arguments in there.
22375
22376         * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the
22377         corresponding objects exported by a-exexpr, instead of hardcoded dummy
22378         addresses.
22379
22380         * trans.c (Exception_Handler_to_gnu_zcx): Use the address of
22381         others_decl and all_others_decl instead of hardcoded dummy addresses
22382         to represent "others" and "all others" choices, which is cleaner and
22383         more flexible with respect to the possible eh pointer encoding policies.
22384
22385         * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl.
22386         (process_attributes): Account for the naming change of the "args"
22387         attribute list entry component.
22388
22389         * decl.c (build_attr_list): Rename into prepend_attributes to allow
22390         cumulating attributes for different entities into a single list.
22391         (gnat_to_gnu_entity): Use prepend_attributes to build the list of
22392         attributes for the current entity and propagate first subtype
22393         attributes to other subtypes.
22394         <E_Procedure>: Attribute arguments are attr->args and not
22395         attr->arg any more.
22396         (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an
22397         argument provided, as this is what GCC expects. Use NULL_TREE instead
22398         of 0 for trees.
22399
22400 2004-11-18  Robert Dewar  <dewar@adacore.com>
22401
22402         * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb:
22403         Minor reformatting througout (including new function specs)
22404         Add ??? comments asking for clarification.
22405
22406 2004-11-18  Thomas Quinot  <quinot@adacore.com>
22407
22408         * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove
22409         incomplete duplicate implementation of this subprogram from butil.
22410
22411 2004-11-18  Thomas Quinot  <quinot@adacore.com>
22412
22413         * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This
22414         procedures factors the common processing for building an RPC receiver
22415         for an RCI package or an RACW type.
22416         Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of
22417         Build_Remote_Subprogram_Proxy_Type into proper alphabetical order.
22418         (Get_PCS_Name): New subprogram. Returns the name of the PCS currently
22419         in use.
22420         (Specific_Add_RACW_Features): New subprogram. PCS-specific part of
22421         Add_RACW_Features.
22422         (Specific_Add_RAST_Features): New subprogram. PCS-specific part of
22423         Add_RAST_Features.
22424         (Assign_Subprogram_Identifier): New subprogram. Provision for assigning
22425         distribution subprogram identifiers that are either subprogram numbers
22426         or strings.
22427         (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and
22428         string distribution identifiers assigned to a given subprogram.
22429         (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids.
22430         (Add_RAS_Dereference_TSS): Add comments.
22431         (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter
22432         is not referenced yet because it will be used by the PolyORB DSA
22433         implementation.
22434         (Insert_Partition_Check): Remove fossile code.
22435         (First_RCI_Subprogram_Id): Document this constant.
22436         (Add_RAS_Access_TSS): Correct the setting of the Etype of the
22437         RAS_Access TSS.
22438         (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are
22439         replaced with calls to Get_Library_Unit_Name_String. Previously there
22440         were several instances of the same code in different locations in the
22441         compiler; this checkin completes the replacement of all of these
22442         instances with calls to a common subprogram.
22443         Minor reformatting.
22444
22445         * sem_dist.adb: Remove comment noting that RPC receiver generation
22446         should be disabled for RACWs that implement RASs.
22447         (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String.
22448
22449         * sem_util.ads, sem_util.adb (Has_Stream): New function
22450         (Get_Library_Unit_Name_String): New subprogram to retrieve the fully
22451         qualified name of a library unit into the name buffer.
22452         (Note_Possible_Modification): Generate a reference only
22453         if the context comes from source.
22454
22455         * snames.ads (PCS_Names): New subtype corresponding to names of
22456         supported implementations of the Partition Communication Subsystem
22457         (PCS) (i.e. the runtime library support modules for the distributed
22458         systems annex).
22459
22460 2004-11-18  Robert Dewar  <dewar@adacore.com>
22461             Ed Schonberg  <schonberg@adacore.com>
22462
22463         * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used
22464         (Has_Rep_Pragma): New function
22465         (Has_Attribute_Definition_Clause): New function
22466         (Record_Rep_Pragma): Moved here from sem_ch13.adb
22467         (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma
22468
22469         * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb
22470
22471         * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure
22472         (Expand_Pragma_Psect_Object): New procedure
22473         These procedures contain the revised and cleaned up processing for
22474         these two pragmas. This processing was formerly in Sem_Prag, but
22475         is more appropriately moved here. The cleanup involves making sure
22476         that the pragmas are properly attached to the tree, and that no
22477         nodes are improperly shared.
22478
22479         * sem_prag.adb: Move expansion of Common_Object and Psect_Object
22480         pragmas to Exp_Prag, which is more appropriate.
22481         Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to
22482         check for duplicates Remove use of Is_Psected flag, no longer needed.
22483         Use new Make_String_Literal function with string.
22484
22485         * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes
22486         that are functions return universal values, that have to be converted
22487         to the context type.
22488         Use new Make_String_Literal function with string.
22489         (Get_Stream_Convert_Pragma): New function, replaces the use of
22490         Get_Rep_Pragma, which had to be kludged to work in this case.
22491
22492         * freeze.adb: Use new Has_Rep_Pragma function
22493
22494         * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal
22495         function with string.
22496         Use new Has_Rep_Pragma function.
22497
22498         * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes
22499         string argument.
22500
22501 2004-11-18  Robert Dewar  <dewar@adacore.com>
22502
22503         * errout.ads, errout.adb: (First_Sloc): New function
22504
22505         * par-ch5.adb (P_Condition): Check for redundant parens is now a style
22506         check (-gnatyx) instead of being included as a redundant construct
22507         warning.
22508
22509         * sem_ch6.adb: Change name Style_Check_Subprogram_Order to
22510         Style_Check_Order_Subprograms.
22511
22512         * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads,
22513         stylesw.adb: Add Style_Check_Xtra_Parens
22514
22515         * usage.adb: Add line for -gnatyx (check extra parens)
22516
22517         * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx
22518
22519 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
22520             Robert Dewar  <dewar@adacore.com>
22521
22522         * exp_ch4.adb (Expand_N_Selected_Component): If the component is the
22523         discriminant of a constrained subtype, analyze the copy of the
22524         corresponding constraint, because in some cases it may be only
22525         partially analyzed.
22526         Removes long-lived ??? comments.
22527
22528         * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that
22529         handled controlled or secondary-stack expressions within the
22530         iteration_scheme of a loop.
22531
22532         * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate
22533         bounds that may contain functions calls, to prevent memory leaks when
22534         the bound contains a call to a function that uses the secondary stack.
22535         (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to
22536         generate temporaries for loop bounds that might contain function calls
22537         that require secondary stack and/or finalization actions.
22538
22539         * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a
22540         selected component and the selector is overloadable (not just a
22541         function) treat as function call, Analyze_Call will disambiguate if
22542         necessary.
22543         (Analyze_Selected_Component): Do not generate an actual subtype for the
22544         selected component if expansion is disabled. The actual subtype is only
22545         needed for constraint checks.
22546         (Analyze_Allocator): If restriction No_Streams is set, then do
22547         not permit objects to be declared of a stream type, or of a
22548         composite type containing a stream.
22549
22550         * restrict.ads: Remove the a-stream entry from Unit_Array, since
22551         No_Streams no longer prohibits with'ing this package.
22552
22553         * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has
22554         discriminants, but the parent base has unknown discriminants, there is
22555         no discriminant constraint to inherit. Such a discrepancy can arise
22556         when the actual for a formal type with unknown discriminants is a
22557         similar private type whose full view has discriminants.
22558         (Analyze_Object_Declaration): If restriction No_Streams is set, then
22559         do not permit objects to be declared of a stream type, or of a
22560         composite type containing a stream.
22561
22562 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
22563
22564         * exp_dbug.ads: Update documentation to reflect simpler encoding for
22565         protected operations.
22566
22567         * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in
22568         generated name, it complicates decoding in gdb and hinders debugging
22569         of protected operations.
22570         (Build_Barrier_Function_Specification): Set the Needs_Debug_Info
22571         flag for the protected entry barrier function.
22572         (Build_Protected_Entry_Specification): Set the Needs_Debug_Info
22573         flag for the protected entry function.
22574
22575 2004-11-18  Nicolas Setton  <setton@adacore.com>
22576
22577         * expect.c: Define __unix__ when __APPLE__ is defined.
22578
22579         * Makefile.in: Inform the value of the variable GMEM_LIB in the
22580         Darwin-specific section.
22581
22582         * lang-specs.h: Change the placement of the %1 marker.
22583         Works around the fact that gcc adds -fPIC by default under Darwin.
22584
22585 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
22586
22587         * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original
22588         type of the object with the packed array type, set the Analyzed flag
22589         on the object if it is an entity or simple indexed component, to avoid
22590         spurious type errors.
22591
22592 2004-11-18  Gary Dismukes  <dismukes@adacore.com>
22593
22594         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
22595         gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a
22596         separate line from the version message.
22597
22598 2004-11-18  Ed Falis  <falis@adacore.com>
22599
22600         * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653
22601         vthreads.
22602         (init_float): Eliminate initialization of floating point status for
22603         AE653. The instructions have no effect for vThreads.
22604
22605 2004-11-18  Vincent Celier  <celier@adacore.com>
22606
22607         * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when
22608         gnatbind is invoked with -shared.
22609
22610 2004-11-18  Jose Ruiz  <ruiz@adacore.com>
22611
22612         * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error
22613         for Detect_Blocking which is redundant with the check done within the
22614         procedure Protected_Single_Entry_Call.
22615         (Lock_Read_Only_Entry): Remove the code for raising Program_Error for
22616         Detect_Blocking which is redundant with the check done within the
22617         procedure Protected_Single_Entry_Call.
22618
22619 2004-11-18  Vincent Celier  <celier@adacore.com>
22620
22621         * makegpr.adb (Compile): Put the compiling switches (in package
22622         Compiler and on the command line) immediately after "-c", instead of
22623         at the end of the command line invocation of the compiler, when
22624         compiling a non-Ada file.
22625         (Build_Global_Archive): When there is no need to rebuild the archive,
22626         set Global_Archive_Exists, so that the archive is passed to the linker
22627         if one is needed.
22628
22629 2004-11-18  Robert Dewar  <dewar@adacore.com>
22630             Sergey Rybin  <rybin@adacore.com>
22631
22632         * gnat_ugn.texi:
22633         Remove extra paren check from list of checks for redundant constructs
22634         Add documentation of new -gnatyx style check (check extra parens)
22635         Remove paragraph about gnatelim debug options.
22636
22637         * gnat_rm.texi: Document that Ada.Streams now forbids creating stream
22638         objects rather than forbidding dependencies on the package Ada.Streams.
22639
22640         * sinfo.ads: Add ??? note that we should document pragmas passed to
22641         back end.
22642
22643         * g-expect.ads: Fix a few typos in the comments.
22644
22645 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
22646
22647         * misc.c (gnat_handle_option): Use %< and %> for quoting in
22648         warning message.
22649
22650 2004-11-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
22651
22652         * a-numaux-x86.adb (Tan): Fix fdivp syntax.
22653
22654 2004-11-07  Andreas Schwab  <schwab@suse.de>
22655
22656         * Makefile.in (install-gnatlib): Remove spurious hyphen.
22657
22658 2004-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
22659
22660         PR ada/18228
22661         * Makefile.in (darwin): Set soext to .dylib.
22662
22663 2004-10-26  Vincent Celier  <celier@gnat.com>
22664             Thomas Quinot   <quinot@act-europe.fr>
22665
22666         * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
22667         (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
22668         there is no use of GNAT.Sockets.Constants.
22669         Remove remaining pragma Import for C_Write
22670         Remove C_Read and C_Write from internal implementation unit
22671         GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
22672         the read and write functions from the system runtime library is fine
22673         on UNIX but won't work under Windows).
22674
22675         * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
22676         (Check_Selector): Use C_Recv instead of C_Read.
22677         Selectors are the GNAT.Sockets abstraction to perform a select()
22678         call on a set of descriptors. To allow abortion of an ongoing
22679         select operation, some data is written to a dedicated socket that
22680         is always monitored.
22681         Under Windows, the write and read library functions cannot operate
22682         on sockets, so we need to use send and recv instead, which is portable
22683         across all supported platforms.
22684
22685         * g-socthi.ads: Remove C_Read and C_Write from internal implementation
22686         unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
22687         (using the read and write functions from the system runtime library is
22688         fine on UNIX but won't work under Windows).
22689
22690 2004-10-26  Nicolas Setton  <setton@act-europe.fr>
22691
22692         * mlib-tgt-darwin.adb: New file.
22693
22694         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
22695         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
22696         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
22697         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New
22698         subprogram body.
22699
22700         * Makefile.in: Add support for building shared libraries under Darwin.
22701         (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
22702         the low level EH init subprogram to be called from __gnat_initialize.
22703
22704         * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
22705         indicates which options to pass to the archive indexer.
22706
22707         * mlib-utl.adb: Add support for calling ranlib with additional
22708         options. This is needed for instance under Mac OS X.
22709         (Ranlib_Options): New global variable, used to store the potential
22710         options to pass to ranlib.
22711         (Ar): Use Ranlib_Options when spawning ranlib.
22712         (Initialize): Set the value of ranlib option.
22713
22714 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
22715
22716         * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K
22717         instead of 8K, to reflect the real potential needs for stack-checking
22718         in the ZCX case.
22719
22720 2004-10-26  Pascal Obry  <obry@gnat.com>
22721
22722         * s-parame-mingw.adb (Default_Stack_Size): Add some comments.
22723
22724         * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
22725         Windows only the initial thread stack size can be set so it is good to
22726         start we a low stack size.
22727         The OS will adjust the size as needed.
22728
22729 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
22730             Nicolas Setton  <setton@act-europe.fr>
22731
22732         * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
22733         "__unix__" instead of "unix".
22734         The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
22735         sections were just mistakenly ignored. The former is
22736         implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
22737         Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
22738         of hpux. This prevents an unwanted definition of the symbol
22739         convert_addresses in adaint.o.
22740
22741 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
22742
22743         * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for
22744         compatibility with type Unwind_Word on 16-bit targets such as AAMP.
22745
22746 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
22747
22748         * a-filico.ads, a-filico.adb: fix incorrect header.
22749
22750 2004-10-26  Javier Miranda  <miranda@gnat.com>
22751
22752         * a-ststio.ads: Fix typo in identifier
22753
22754 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
22755
22756         * sem_ch4.adb: Minor reformatting.
22757
22758 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
22759
22760         * checks.adb (Expr_Known_Valid): If floating-point validity checks are
22761         enabled, check the result of unary and binary operations when the
22762         expression is the right-hand side of an assignment.
22763
22764 2004-10-26  Vincent Celier  <celier@gnat.com>
22765
22766         * clean.adb (Delete): Do not output warnings when in quiet output and
22767         not in verbose mode.
22768         (Force_Deletions): New Boolean flag, defaulted to False
22769         (Delete): Only delete a file if it is writable, and when
22770         Force_Deletions is True.
22771         (Parse_Cmd_Line): New switch -f: set Force_Deletions to True
22772         (Usage): Line for new switch -f
22773         (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
22774         own.
22775
22776 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
22777
22778         * decl.c (gnat_to_gnu_field): Use the type of the inner object for a
22779         JM type only if its size matches that of the wrapper.  When a size is
22780         prescribed and the field is not aliased, remove the wrapper of a JM
22781         type only if the size is not greater than that of the packed array.
22782         (gnat_to_gnu_entity): Change the extension of packed array wrappers
22783         from LJM to JM.
22784
22785 2004-10-26  Geert Bosch  <bosch@gnat.com>
22786
22787         * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
22788         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
22789         (Pred): Implement in terms of Succ.
22790
22791 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
22792
22793         * exp_aggr.adb (Safe_Component): An aggregate component that is an
22794         unchecked conversion is safe for in-place use if the expression of the
22795         conversion is safe.
22796         (Expand_Array_Aggregate): An aggregate that initializes an allocator may
22797         be expandable in place even if the aggregate does not come from source.
22798         (Convert_Array_Aggr_In_Allocator): New procedure to initialize the
22799         designated object of an allocator in place, rather than building it
22800         first on the stack. The previous scheme forces a full copy of the array,
22801         and may be altogether unsusable if the size of the array is too large
22802         for stack allocation.
22803
22804 2004-10-26  Robert Dewar  <dewar@gnat.com>
22805
22806         * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
22807         compares if the component is atomic.
22808
22809         * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
22810         array assignment if the component type is atomic.
22811
22812 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
22813             Eric Botcazou  <ebotcazou@act-europe.fr>
22814
22815         * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
22816         is aliased and is a by_reference type, do not pass by copy.
22817         (Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
22818         detect whether the call is in the right side of an assignment or
22819         the expression of an object declaration.  Recurse on component
22820         association within aggregates.
22821         Call it in the condition that determines whether the temporary is
22822         necessary for correct stack-checking.
22823
22824 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
22825
22826         * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
22827         RACW_Type, used in the PolyORB version.
22828         Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
22829         version and the GARLIC version.
22830
22831         * snames.ads, snames.adb, s-parint.ads, s-parint.adb:
22832         Rename RCI_Info to RCI_Locator for better consistency between the
22833         GARLIC and PolyORB versions of the distributed systems annex.
22834         (DSA_Implementation_Name): This enumeration lists the possible
22835         implementations of the Partition Communication Subsystem for the
22836         Distributed Systems Annex (DSA). The three available implementations
22837         are the dummy stub implementation (No_DSA), and two versions based on
22838         two different distribution runtime libraries: GARLIC and PolyORB. Both
22839         the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
22840         technology.
22841         Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
22842         that organization.
22843
22844         * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
22845         between the GARLIC and PolyORB versions of the distributed systems
22846         annex.
22847         Remove RE_Unbounded_Reclaim_Pool since it is unused.
22848
22849 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
22850
22851         * gnat1drv.adb: Suppress calling the back end when
22852         Frontend_Layout_On_Target is true.
22853
22854 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
22855
22856         * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
22857         Set_Read_Only): New subprograms.
22858         These new routines allow the user to set or unset the Owner execute
22859         and Owner write permission flags on a file.
22860
22861         * makegpr.adb, mlib.adb, mlib-prj.adb: Use
22862         GNAT.OS_Lib.Set_Executable instead of rolling our own.
22863
22864 2004-10-26  Matthew Gingell  <gingell@gnat.com>
22865
22866         * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
22867
22868 2004-10-26  Pascal Obry  <obry@gnat.com>
22869
22870         * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
22871         memory before the faulting page we properly test the process read
22872         access for this address using appropriate Win32 routine.
22873         (HPUX sections): guard with "__hpux__" instead of "hpux".
22874
22875 2004-10-26  Robert Dewar  <dewar@gnat.com>
22876
22877         * lib-xref.adb (Generate_Reference): Don't complain about reference to
22878         entry parameter if pragma Unreferenced set, since we do not properly
22879         handle the case of multiple parameters.
22880
22881 2004-10-26  Vincent Celier  <celier@gnat.com>
22882
22883         * prj-env.adb: (Contains_ALI_Files): New Boolean function
22884         (Ada_Objects_Path.Add): For a library project, add to the object path
22885         the library directory only if there is no object directory or if the
22886         library directory contains ALI files.
22887         (Set_Ada_Paths.Add.Recursive_Add): Ditto
22888
22889 2004-10-26  Vincent Celier  <celier@gnat.com>
22890
22891         * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
22892         extension of library projects.
22893
22894         * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
22895         path defaults to ".:<prefix>/lib/gnat".
22896         (Parse): For an extending all project, allow direct import of a project
22897         that is virtually extended.
22898
22899         * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
22900         the specified name is directly imported, return its ID. Otherwise, if
22901         an extension of this project is imported, return the ID of the
22902         extension.
22903
22904 2004-10-26  Robert Dewar  <dewar@gnat.com>
22905
22906         * s-arit64.adb: (Le3): New function, used by Scaled_Divide
22907         (Sub3): New procedure, used by Scaled_Divide
22908         (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
22909         correct more than one instance of failure to propagate carries
22910         correctly.
22911         (Double_Divide): Handle overflow case of largest negative number
22912         divided by minus one.
22913
22914         * s-arit64.ads (Double_Divide): Document that overflow can occur in
22915         the case of a quotient value out of range.
22916         Fix comments.
22917
22918 2004-10-26  Robert Dewar  <dewar@gnat.com>
22919
22920         * s-bitops.adb (Bit_Eq): Remove redundant check.
22921
22922         * s-bitops.ads: Minor comment updates
22923         Change some occurrences of Address to System.Address
22924
22925         * s-carsi8.ads: Fix minor cut-and-paste error in comments
22926
22927 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
22928
22929         * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
22930         accessibility check to prefix that is a protected operation.
22931
22932 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
22933
22934         * sem_ch10.adb (Optional_Subunit): If file of expected subunit is
22935         empty, post message on stub.
22936
22937 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
22938             Javier Miranda  <miranda@gnat.com>
22939
22940         * sem_ch12.adb (In_Main_Context): Predicate to determine whether the
22941         current instance appears within a unit that is directly in the context
22942         of the main unit.
22943         Used to determine whether the body of the instance should be analyzed
22944         immediately after its spec, to make its subprogram bodies available
22945         for front-end inlining.
22946         (Analyze_Formal_Array_Type): Cleanup condition that checks that range
22947         constraint is not allowed on the component type (AARM 12.5.3(3))
22948
22949 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
22950
22951         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
22952         'Storage_Pool): enhance, document & limit detection of non-sharable
22953         internal pools.
22954
22955         * impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
22956
22957         * s-pooglo.ads: Add more documentation now that this pool is properly
22958         documented.
22959
22960 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
22961
22962         * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
22963         or protected type with discriminants, do not constrain the
22964         corresponding record type if the subtype declaration has no
22965         discriminant constraints. This can be the case in source code, or in
22966         the subtype declaration created to rename an actual type within an
22967         instantiation.
22968
22969 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
22970
22971         * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
22972         different kind of stub (possibly wrong name for file), do not check
22973         for conformance.
22974         (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
22975         includes call to some function that returns an unconstrained type, do
22976         not inline.
22977
22978 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
22979
22980         * sem_elab.adb (Check_Elab_Call): Do not check a call that does not
22981         appear in the code for the main unit. Dependencies among units in the
22982         context of the main unit are established when those other units are
22983         compiled. Otherwise spurious elaboration constraints can generate
22984         incorrect elaboration circularities.
22985
22986 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
22987             Ed Schonberg   <schonberg@gnat.com>
22988
22989         * sem_util.adb (Is_Aliased_View): Defend against the case where this
22990         subprogram is called with a parameter that is not an object name. This
22991         situation arises for some cases of illegal code, which is diagnosed
22992         later, and in this case it is wrong to call Is_Aliased, as that might
22993         cause a compiler crash.
22994         (Explain_Limited_Type): Refine previous fix to include
22995         inherited components of derived types, to provide complete information.
22996
22997         * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
22998         is the prival for a protected object.
22999         It is necessary to mark this entity as a variable, in addition to
23000         flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
23001         modified to avoid checking the Aliased flag on entities that are not
23002         objects. (Checking that flag for non-objects is erroneous and could
23003         lead to a compiler crash).
23004
23005 2004-10-26  Robert Dewar  <dewar@gnat.com>
23006
23007         * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if
23008         X_Frac = 0.5, then we know that the number X must be positive.
23009         (Succ): Remove the same redundant test, and also fix the primary test
23010         to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.
23011         Minor reformatting
23012         (Decompose): Add fuller comments to spec
23013
23014 2004-10-26  Pascal Obry  <obry@gnat.com>
23015
23016         * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
23017         validity (process must have read access). Set to 0 in all other cases.
23018         (STOP_FRAME): Now check for ptr validity to avoid a segmentation
23019         violation on Win32.
23020         (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
23021         segmentation violation.
23022
23023 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
23024
23025         * trans.c (call_to_gnu): For an (in-)out parameter passed by reference
23026         whose type is a constructed subtype of an aliased object with an
23027         unconstrained nominal subtype, convert the actual to the constructed
23028         subtype before taking its address.
23029
23030 2004-10-26  Vincent Celier  <celier@gnat.com>
23031
23032         * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
23033         (Is_Path_Name_Case_Sensitive): New function
23034
23035         * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
23036         (Base_Name, Simple_Name, Current_Directory, Compose,
23037         Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
23038         the result.
23039
23040 2004-10-26  Cyrille Comar    <comar@act-europe.fr>
23041             Vasiliy Fofanov  <fofanov@act-europe.fr>
23042             Vincent Celier   <celier@gnat.com>
23043
23044         * gnat_ugn.texi: Generalize "finding memory problems" section into a
23045         "memory management issues" section and document some of the useful
23046         memory pools provided as part of the GNAT library.
23047         Remove "virtual" from declaration of A::method2 in
23048         the simple example of Ada/C++ mixed system.
23049         Library Projects may be virtually extended: their virtual extensions
23050         are not Library Projects.
23051         Added section on extending project hierarchies.
23052
23053 2004-10-19  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
23054
23055         * adaint.c (__gnat_get_libraries_from_registry): Cast value
23056         to LPBYTE.
23057         (__gnat_portable_spawn): Remove const.
23058
23059         * mingw32.h (MAXPATHLEN): Check for previous definition.
23060
23061 2004-10-17  Matthias Klose  <doko@debian.org>
23062
23063         * gnatvsn.ads: Set gnat library version to 4.0.
23064
23065 2004-10-05  Vincent Celier  <celier@gnat.com>
23066
23067         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2
23068
23069 2004-10-04  Laurent GUERBY <laurent@guerby.net>
23070
23071         PR ada/15156
23072         * Makefile.in: Define and use RANLIB_FLAGS.
23073
23074 2004-10-04  Pascal Obry  <obry@gnat.com>
23075
23076         * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all
23077         other x86 platforms).
23078
23079 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
23080
23081         * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense
23082         in general and triggers stack alignment adjustment for thread entry
23083         points on targets where this is necessary.
23084
23085 2004-10-04  Bernard Banner  <banner@gnat.com>
23086
23087         PR ada/13897
23088         * Makefile.in: Add section for powerpc linux
23089         Add variant i-vxwork-x86.ads
23090
23091         * i-vxwork-x86.ads, system-linux-ppc.ads: New files.
23092
23093 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
23094
23095         * init.c (__gnat_initialize): Call an Ada subprogram to perform the
23096         table registration calls when need be. Ensures no reference to the crt
23097         ctors symbol are issued in the SJLJ case, which avoids possible
23098         undefined symbol errors in the case of modules to be statically linked
23099         with the kernel.
23100
23101 2004-10-04  Javier Miranda  <miranda@gnat.com>
23102
23103         * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand
23104         in-line the code corresponding to subprogram Analyze_Actuals. In
23105         addition, analyze the actuals only in case of subprogram call.
23106
23107 2004-10-04  Ed Falis  <falis@gnat.com>
23108
23109         * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
23110
23111 2004-10-04  Sergey Rybin  <rybin@act-europe.fr>
23112
23113         * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
23114         in the documentation.
23115
23116 2004-10-04  Robert Dewar  <dewar@gnat.com>
23117
23118         * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as
23119         IF and CASE.
23120         (Analyze_Block_Statement): Add circuitry to detect following dead code
23121         (Check_Unreachable_Code): Handle case of block exit
23122
23123 2004-10-04  Robert Dewar  <dewar@gnat.com>
23124
23125         * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call
23126         (XMatchD): Avoid warning for Logic_Error call
23127
23128 2004-10-04  Robert Dewar  <dewar@gnat.com>
23129
23130         * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not
23131         consider expressions buried within a procedure actual to be an actual.
23132         This caused some blowups with uses of packed slices within a procedure
23133         actual.
23134
23135 2004-10-04  Robert Dewar  <dewar@gnat.com>
23136
23137         * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no
23138         longer need to be initialized to zero.
23139         (Get_Simple_Init_Val): Modular packed arrays no longer need to be
23140         initialized to zero.
23141
23142         * checks.adb (Expr_Known_Valid): Packed arrays are now always
23143         considered valid, even if the representation is modular. That's correct
23144         now that we no longer initialize packed modular arrays to zero.
23145
23146         * exp_dbug.ads: Clarify documentation on handling of PAD and JM
23147         suffixes. These are now documented as the only cases in which the
23148         debugger ignores outer records.
23149         Previously, the spec allowed arbitrary suffixes for this purpose.
23150         Change name of LJM to JM for packed array pad records
23151         Create separate section on packed array handling, and add a whole new
23152         set of comments to this section describing the situation with packed
23153         modular types and justification requirements depending on endianness.
23154
23155 2004-10-04  Robert Dewar  <dewar@gnat.com>
23156
23157         * a-except.adb: Add a comment for last change
23158
23159         * einfo.ads: Minor spelling correction in comment
23160
23161         * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting
23162
23163         * sem_ch11.adb: Fix a case of using | instead of \ for continuation
23164         messages.
23165
23166         * sem_util.ads: Minor comment update
23167
23168 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
23169
23170         * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as
23171         Inline_Always when in Configurable_Run_Time mode.
23172
23173         * sem_prag.adb (Process_Convention): If entity is an inherited
23174         subprogram, apply convention to parent subprogram if in same scope.
23175         (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always
23176         when in Configurable_Run_Time mode.
23177
23178 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
23179
23180         * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of
23181         class_wide type after component list has been inherited.
23182
23183 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
23184
23185         * sem_ch12.adb (Check_Generic_Actuals): New predicate
23186         Denotes_Previous_Actual, to handle properly the case of a private
23187         actual that is also the component type of a subsequent array actual.
23188         The visibility status of the first actual is not affected when the
23189         second is installed.
23190         (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to
23191         make fully recursive the treatment of formals of packages declared
23192         with a box.
23193         (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo
23194         the above on exit from an instantiation.
23195         (Denotes_Formal_Package): When called from Restore_Private_Views, ignore
23196         current instantiation which is now complete.
23197         (Analyze_Package_Instantiation): No instantiated body is needed if the
23198         main unit is generic. Efficient, and avoid anomalies when a instance
23199         appears in a package accessed through rtsfind.
23200
23201 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
23202
23203         * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,
23204         do not generate a declaration for a temporary if the call is part of a
23205         library-level instantiation.
23206
23207 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
23208
23209         * sem_util.adb (Explain_Limited_Type): Ignore internal components when
23210         searching for a limited component to flag.
23211
23212         * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to
23213         expansion of Input, to account for the fact that the implicit call
23214         generated by the attribute reference must freeze the user-defined
23215         stream subprogram. This is only relevant to 'Input, because it can
23216         appear in an object declaration, prior to the body of the subprogram.
23217
23218         * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that
23219         expansion can proceed and further errors uncovered.
23220         (Minor clean up): Fix cases of using | instead of \ for continuation
23221         messages.
23222
23223 2004-10-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23224
23225         * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.
23226
23227         * trans.c (assoc_to_constructor): Fix unused var warning if no checking.
23228         (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.
23229         Use gcc_assert and gcc_unreachable.
23230
23231         * decl.c (gnat_to_gnu_entity, case object): Check and process a
23232         specified alignment before validating size.
23233         (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create a
23234         stripped-down declaration for the type of the inner field when making
23235         a JM type.
23236
23237         * utils.c (finish_record_type): Do not compute the size in units
23238         incrementally. Instead compute it once for the rep clause case.
23239         Use gcc_assert and gcc_unreachable.
23240
23241 2004-10-04  Vincent Celier  <celier@gnat.com>
23242
23243         * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character
23244         in file name.
23245         (Is_Valid_Path_Name): Take '/' as a directory separator.
23246
23247 2004-10-04  Vincent Celier  <celier@gnat.com>
23248
23249         * prj-part.adb (Parse_Single_Project): Call Is_Extending_All
23250         (Extended_Project) only if Extended_Project is defined, to avoid
23251         assertion error.
23252         (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
23253         resolved path.
23254         (Parse_Single_Project): Ditto.
23255
23256         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
23257         Add_To_Project_Path for virtual projects.
23258
23259 2004-10-04  Vincent Celier  <celier@gnat.com>
23260
23261         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
23262         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
23263         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
23264         mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New
23265         parameter Options_2.
23266
23267         * mlib-prj.ads, mlib-prj.adb (Build_Library): Call
23268         Build_Dynamic_Library with an empty Options_2.
23269
23270         * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no
23271         default anymore.
23272
23273         * makegpr.adb (Get_Imported_Directories.add): Remove trailing
23274         directory separator, if any.
23275         (Gprmake): Do not allow mains on the command line for library projects.
23276         Do not attempt to link when the project is a library project.
23277         (Library_Opts): New table to store Library_Options.
23278         (Build_Library): If Library_Options is specified, pass these options
23279         when building a shared library.
23280
23281 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
23282
23283         * s-tposen.adb (Service_Entry): The object must be always unlocked at
23284         the end of this procedure now that the unlock operation was inserted
23285         by the expander.
23286
23287 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
23288
23289         * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
23290         corresponding to the Preallocated_Stacks flags in System.
23291         (Get_Target_Parameters): Including the processing for
23292         Preallocated_Stacks.
23293
23294         * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
23295         system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,
23296         system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
23297         system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,
23298         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,
23299         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
23300         system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
23301         system-vxworks-mips.ads, system-os2.ads, system-interix.ads,
23302         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
23303         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
23304         system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
23305         used to signal whether the compiler creates the required stacks and
23306         descriptors for the different tasks (when True) or it is done by the
23307         underlying operating system at run time (when False).
23308         It is initially set to False in all targets.
23309
23310         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
23311         if it is supported by the target.
23312         (Make_Task_Create_Call): Pass the stack address if it has been
23313         previously created. Otherwise pass a Null_Address.
23314
23315         * snames.adb: Add _stack.
23316
23317         * snames.ads: Add Name_uStack. Required to allow the expander to
23318         statically allocated task stacks.
23319
23320         * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
23321         Stack_Address argument.
23322         Check that its value is equal to Null_Address because this target does
23323         not support the static stack allocation.
23324
23325 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
23326
23327         * usage.adb: Change "pragma inline" to "pragma Inline" in information
23328         and error messages
23329
23330 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
23331
23332         * exp_dist.adb: Split declaration of asynchronous flag out of
23333         Add_RACW_Read_Attribute.
23334         Minor reformatting for better alignment with PolyORB version.
23335         Store the entity for the asynchronous flag of an RACW, rather than the
23336         expression, in the asynchronous flags table. This will allow this flag
23337         to be used in other subprograms beside Add_RACW_Read_Attribute.
23338
23339 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
23340
23341         * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,
23342         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
23343         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb,
23344         g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads,
23345         g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads:  Add new
23346         sockets constant MSG_NOSIGNAL (Linux-specific).
23347         Add new sockets constant MSG_Forced_Flags, list of flags to be set on
23348         all Send operations.
23349         For Linux, set MSG_NOSIGNAL on all send operations to prevent them
23350         from trigerring SIGPIPE.
23351         Rename components to avoid clash with Ada 2005 possible reserved
23352         word 'interface'.
23353         (Check_Selector): When the select system call returns with an error
23354         condition, propagate Socket_Error to the caller.
23355
23356 2004-10-01  Jan Hubicka  <jh@suse.cz>
23357
23358         * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.
23359
23360 2004-09-23  Robert Dewar  <dewar@gnat.com>
23361
23362         PR ada/17540
23363         * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
23364         instead do this at freeze time (we won't do it if there is an address
23365         clause).
23366         Change "pragma inline" to "pragma Inline" in information and error
23367         messages.
23368         Minor reformatting.
23369
23370         * freeze.adb (Check_Address_Clause): Remove previous change, not the
23371         right way of doing things after all.
23372         (Freeze_Entity): For object, set Is_Public for imported entities
23373         unless there is an address clause present.
23374
23375 2004-09-21  Olivier Hainque  <hainque@act-europe.fr>
23376
23377         * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
23378         dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
23379         ensures proper handling of types with rep clauses, which might have
23380         their TYPE_SIZE set already.
23381
23382 2004-09-21  Robert Dewar  <dewar@gnat.com>
23383
23384         * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
23385         packed array types in both little- and big-endian cases. This change
23386         ensures that we no longer count on the unused bits being initialized
23387         for such types (and in particular ensures that equality testing will
23388         only read the relevant bits).
23389         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
23390         These changes mean that we no longer need to initialize small packed
23391         arrays.
23392         (gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
23393         optimization to an LJM field as to its parent field.
23394
23395         * ada-tree.h, trans.c, utils.c, utils2.c:
23396         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
23397
23398 2004-09-20  Jan Hubicka  <jh@suse.cz>
23399
23400         * utils.c (gnat_finalize): Remove.
23401         (end_subprog_body): Directly call cgraph_finalize_function;
23402         do not lower the nested functions.
23403
23404 2004-09-20  Robert Dewar  <dewar@gnat.com>
23405
23406         PR ada/17540
23407         * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
23408         if an address clause is present, since that means that the Import
23409         should be ignored.
23410
23411 2004-09-20  Arnaud Charlet  <charlet@act-europe.fr>
23412
23413         * 5tsystem.ads: Removed, no longer used.
23414
23415 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
23416             Zack Weinberg  <zack@codesourcery.com>
23417
23418         * ada-tree.def: Use tree_code_class enumeration constants
23419         instead of code letters.
23420         * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
23421         Update for new tree-class enumeration constants.
23422
23423 2004-09-17  Vincent Celier  <celier@gnat.com>
23424
23425         * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
23426         capabilities of the general project manager.
23427
23428 2004-09-09  Vincent Celier  <celier@gnat.com>
23429
23430         * a-direct.ads: Add pragma Ada_05
23431         (Directory_Entry_Type): Give default value to component Kind to avoid
23432         not initialized warnings.
23433
23434         * a-direct.adb (Current_Directory): Remove directory separator at the
23435         end.
23436         (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
23437         an existing directory.
23438         (Fetch_Next_Entry): Give default value to variable Kind to avoid warning
23439         (Size (String)): Function C_Size returns Long_Integer, not File_Size.
23440         Convert the result to File_Size.
23441
23442         * prj.ads: (Project_Error): New exception
23443
23444         * prj-attr.adb: Except in procedure Initialize, Fail comes from
23445         Prj.Com, not from Osint.
23446         (Attrs, Package_Attributes): Tables moved to private part of spec
23447         (Add_Attribute, Add_Unknown_Package): Moved to new child package
23448         Prj.Attr.PM.
23449         (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
23450         Prj.Project_Error after call to Fail.
23451         (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
23452         Fail. Check that package name is not already in use.
23453
23454         * prj-attr.ads: Comment updates to indicate that all subprograms may be
23455         used by tools, not only by the project manager, and to indicate that
23456         exception Prj.Prj_Error may be raised in case of problem.
23457         (Add_Unknown_Package, Add_Attribute): Moved to new child package
23458         Prj.Attr.PM.
23459         (Attrs, Package_Attributes): Table instantiations moved from the body to
23460         the private part to be accessible from Prj.Attr.PM body.
23461
23462         * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
23463         from new package Prj.Attr.PM.
23464         (Parse_Attribute_Declaration): Call Add_Attribute from new package
23465         Prj.Attr.PM.
23466
23467         * Makefile.in: Add prj-attr-pm.o to gnatmake object list
23468
23469         * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
23470         instead of Elaboration_Checks).
23471
23472         * a-calend.adb: Minor reformatting
23473
23474 2004-09-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23475
23476         * gigi.h (maybe_pad_type): New declaration.
23477         (create_subprog_type): New arg RETURNS_BY_TARGET_PTR.
23478
23479         * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.
23480
23481         * cuintp.c: Convert to use buildN.
23482
23483         * decl.c (maybe_pad_type): No longer static.
23484         (gnat_to_gnu_entity, case E_Function): Handle case of returning by
23485         target pointer.
23486         Convert to use buildN.
23487
23488         * trans.c (call_to_gnu): Add arg GNU_TARGET; support
23489         TYPE_RETURNS_BY_TARGET_PTR_P.  All callers changed.
23490         (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
23491         RHS.
23492         (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
23493         (gnat_gimplify_expr, case ADDR_EXPR): New case.
23494         Convert to use buildN.
23495
23496         * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
23497         TREE_READONLY for const.
23498         Convert to use buildN.
23499
23500         * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
23501         (create_var_decl): Refine when TREE_STATIC is set.
23502         Convert to use buildN.
23503
23504 2004-09-09  Gary Dismukes  <dismukes@gnat.com>
23505
23506         * gnat_ugn.texi: Delete text relating to checking of ali and object
23507         consistency.
23508
23509         * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
23510         routines.
23511
23512 2004-09-09  Jose Ruiz  <ruiz@act-europe.fr>
23513
23514         * gnat_ugn.texi: Add Detect_Blocking to the list of configuration
23515         pragmas recognized by GNAT.
23516
23517         * gnat_rm.texi: Document pragma Detect_Blocking.
23518
23519         * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
23520         raise Program_Error if called from a protected operation.
23521
23522         * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
23523         the protected action nesting level.
23524         (Lock_Read_Only): When pragma Detect_Blocking is active increase the
23525         protected action nesting level.
23526         (Unlock): When pragma Detect_Blocking is active decrease the protected
23527         action nesting level.
23528
23529         * s-taskin.adb (Initialize_ATCB): Initialize to 0 the
23530         Protected_Action_Nesting.
23531
23532         * s-taskin.ads: Adding the field Protected_Action_Nesting to the
23533         Common_ATCB record. It contains the dynamic level of protected action
23534         nesting for each task. It is needed for checking whether potentially
23535         blocking operations are called from protected operations.
23536         (Detect_Blocking): Adding a Boolean constant reflecting whether pragma
23537         Detect_Blocking is active or not in the partition.
23538
23539         * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
23540         raise Program_Error if called from a protected operation.
23541         (Task_Entry_Call): When pragma Detect_Blocking is active, raise
23542         Program_Error if called from a protected operation.
23543         (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
23544         Program_Error if called from a protected operation.
23545
23546         * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
23547         raise Program_Error if called from a protected operation.
23548
23549         * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
23550         raise Program_Error if called from a protected operation, and increase
23551         the protected action nesting level.
23552         (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
23553         Program_Error if called from a protected operation, and increase the
23554         protected action nesting level.
23555         (Unlock_Entries): When pragma Detect_Blocking is active decrease the
23556         protected action nesting level.
23557
23558         * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
23559         raise Program_Error if called from a protected operation, and increase
23560         the protected action nesting level.
23561         (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
23562         Program_Error if called from a protected operation, and increase the
23563         protected action nesting level.
23564         (Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
23565         raise Program_Error if called from a protected operation.
23566         (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
23567         active, raise Program_Error if called from a protected operation.
23568         (Unlock_Entry): When pragma Detect_Blocking is active decrease the
23569         protected action nesting level.
23570
23571         * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
23572         insertion of the statement raising Program_Error. The run time
23573         contains the required machinery for handling that.
23574
23575         * sem_util.ads: Change comment associated to procedure
23576         Check_Potentially_Blocking_Operation.
23577         This procedure does not insert a call for raising the exception because
23578         that is currently done by the run time.
23579
23580         * raise.h (__gnat_set_globals): Pass the detect_blocking parameter.
23581
23582         * init.c: Add the global variable __gl_detect_blocking that indicates
23583         whether pragma Detect_Blocking is active (1) or not (0). Needed for
23584         making the pragma available at run time.
23585         (__gnat_set_globals): Pass and update the detect_blocking parameter.
23586
23587         * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
23588         pragma Detect_Blocking is active.
23589
23590         * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.
23591
23592         * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
23593         DB is found in the ali file. Any unit compiled with pragma
23594         Detect_Blocking active forces its effect in the whole partition.
23595
23596         * a-retide.adb (Delay_Until): Raise Program_Error if pragma
23597         Detect_Blocking is active and delay is called from a protected
23598         operation.
23599
23600         * bindgen.adb (Gen_Adainit_Ada): When generating the call to
23601         __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
23602         Detect_Blocking is active (0 otherwise).
23603         (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
23604         as Detect_Blocking parameter if pragma Detect_Blocking is active (0
23605         otherwise).
23606
23607 2004-09-09  Thomas Quinot  <quinot@act-europe.fr>
23608
23609         * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
23610         GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
23611         package.
23612
23613         * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
23614         (Register_Receiving_Stub): Add Subp_Info formal parameter.
23615         Update API in placeholder implemetation of s-parint to reflect changes
23616         in distribution runtime library.
23617
23618         * sem_ch3.adb (Expand_Derived_Record): Rename to
23619         Expand_Record_Extension.
23620
23621         * sem_disp.adb (Check_Controlling_Formals): Improve error message for
23622         primitive operations of potentially distributed object types that have
23623         non-controlling anonymous access formals.
23624
23625         * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
23626         subprogram.
23627         New implementation of expansion for remote access-to-subprogram types,
23628         based on the RACW infrastructure.
23629         This version of sem_dist is compatible with PolyORB/DSA as well as
23630         GLADE.
23631
23632         * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
23633         Asynchrronous that applies to a remote access-to-subprogram type, mark
23634         the underlying RACW type as asynchronous.
23635
23636         * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
23637          __gnat_using_gnu_linker to 1.
23638
23639         * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
23640         g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
23641         GNAT.Perfect_Hash_Generators, and remove the empty
23642         GNAT.Perfect_Hash package.
23643
23644         * atree.adb: Minor reformatting
23645
23646         * exp_ch3.adb (Expand_Derived_Record): Rename to
23647         Expand_Record_Extension.
23648         (Build_Record_Init_Proc.Build_Assignment): The default expression in
23649         a component declaration must remain attached at that point in the
23650         tree so New_Copy_Tree copies it if the enclosing record type is derived.
23651         It is therefore necessary to take a copy of the expression when building
23652         the corresponding assignment statement in the init proc.
23653         As a side effect, in the case of a derived record type, we now see the
23654         original expression, without any rewriting that could have occurred
23655         during expansion of the ancestor type's init proc, and we do not need
23656         to go back to Original_Node.
23657
23658         * exp_ch3.ads (Expand_Derived_Record): Rename to
23659         Expand_Record_Extension.
23660
23661         * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
23662         Returns the RACW type used to implement a remote access-to-subprogram
23663         type.
23664         (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
23665         New subprograms. Used to create a proxy tagged object for a remote
23666         subprogram. The proxy object is used as the designated object
23667         for RAS values on the same partition (unless All_Calls_Remote applies).
23668         (Build_Get_Unique_RP_Call): New subprogram. Build a call to
23669         System.Partition_Interface.Get_Unique_Remote_Pointer.
23670         (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
23671         Renamed from Add_RAS_*_Attribute.
23672         (Add_Receiving_Stubs_To_Declarations): Generate a table of local
23673         subprograms.
23674         New implementation of expansion for remote access-to-subprogram types,
23675         based on the RACW infrastructure.
23676
23677         * exp_dist.ads (Copy_Specification): Update comment to note that this
23678         function can copy the specification from either a subprogram
23679         specification or an access-to-subprogram type definition.
23680
23681 2004-09-09  Ed Schonberg  <schonberg@gnat.com>
23682
23683         * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
23684         in an instance, between an explicit subprogram an one inherited from a
23685         type derived from an actual.
23686
23687         * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
23688         add a polling call if the subprogram is to be inlined by the back-end,
23689         to avoid repeated calls with multiple inlinings.
23690
23691         * checks.adb (Apply_Alignment_Check): If the expression in the address
23692         clause is a call whose name is not a static entity (e.g. a dispatching
23693         call), treat as dynamic.
23694
23695 2004-09-09  Robert Dewar  <dewar@gnat.com>
23696
23697         * g-trasym.ads: Minor reformatting
23698
23699         * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
23700         packed arrays, since unused bits are expected to be zero for a
23701         comparison.
23702
23703 2004-09-09  Eric Botcazou  <ebotcazou@act-europe.fr>
23704
23705         * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
23706         comment.
23707
23708 2004-09-09  Pascal Obry  <obry@gnat.com>
23709
23710         * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
23711         enable map file generation. Add the right option to generate the map
23712         file if Map_File is set to True.
23713
23714         * gnatdll.adb (Gen_Map_File): New variable.
23715         (Syntax): Add info about new -m (Map_File) option.
23716         (Parse_Command_Line): Add support for -m option.
23717         (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
23718         Minor reformatting.
23719
23720 2004-09-09  Laurent Pautet  <pautet@act-europe.fr>
23721
23722         * gnatls.adb: Add a very verbose mode -V. Such mode is required by the
23723         new gnatdist implementation.
23724         Define a subpackage isolating the output routines specific to this
23725         verbose mode.
23726
23727 2004-09-09  Joel Brobecker  <brobecker@gnat.com>
23728
23729         * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.
23730
23731         * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.
23732
23733 2004-09-09  Cyrille Comar  <comar@act-europe.fr>
23734
23735         * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
23736         internal unit.
23737
23738         * opt.ads: Add Ada_Version_Runtime constant used to decide which
23739         version of the language is used to compile the run time.
23740
23741 2004-09-09  Arnaud Charlet  <charlet@act-europe.fr>
23742
23743         * sem_util.adb (Requires_Transient_Scope): Re-enable handling
23744         of variable length temporaries for function return now that the
23745         back-end and gigi support it.
23746
23747 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23748
23749         * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
23750
23751         * trans.c (struct stmt_group): Delete field GLOBAL.
23752         (gnat_init_stmt_group): Do not initialize it.
23753         (call_to_gnu): Use save_expr, not protect_multiple_eval.
23754         (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
23755         (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
23756         (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
23757         (start_stmt_group): Likewise.
23758         (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
23759
23760         * utils2.c (ggc.h): Include.
23761         (build_call_raise): Call build_int_cst, not build_int_2.
23762
23763         * utils.c (gnat_init_decl_processing): Fix arg to
23764         build_common_tree_nodes.
23765         (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
23766         (gnat_define_builtin): Set built_in_decls.
23767         (init_gigi_decls): Call build_int_cst, not build_int_2.
23768
23769         * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
23770         (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
23771         (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
23772         (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
23773         SET_TYPE_MODULE): Use them.
23774         (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
23775         (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
23776         (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
23777         SET_TYPE_ADA_SIZE): Likewise.
23778         (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
23779         (DECL_CONST_CORRESPONDING_VAR,
23780         SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
23781         (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
23782         (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
23783         (TYPE_RM_SIZE_NUM): New macro.
23784         (TYPE_RM_SIZE): Modified to use above.
23785
23786         * cuintp.c: (build_cst_from_int): New function.
23787         (UI_To_gnu): Use it.
23788
23789         * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
23790         (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
23791         (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
23792         MIN_EXPR for the size, copy it into new.
23793
23794 2004-09-01  Robert Dewar  <dewar@gnat.com>
23795
23796         * exp_ch6.adb (Expand_Call): Properly handle validity checks for
23797         packed indexed component where array is an IN OUT formal. This
23798         generated garbage code previously.
23799
23800         * gnat_ugn.texi: Document -fverbose-asm
23801
23802         * gnat-style.texi: Minor updates (note that boolean constants and
23803         variables are joined with AND/OR rather than short circuit forms).
23804
23805 2004-09-01  Ed Schonberg  <schonberg@gnat.com>
23806
23807         * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
23808         it is an upward conversion of an untagged type with no representation
23809         change.
23810
23811 2004-09-01  Thomas Quinot  <quinot@act-europe.fr>
23812
23813         * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
23814         System.Partition_Interface.
23815
23816         * checks.adb (Apply_Access_Checks): Do not generate checks when
23817         expander is not active (but check for unset reference to prefix of
23818         dereference).
23819
23820         * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
23821         pragma Debug as an if statement with a constant condition, for
23822         consistent treatment of entity references contained within the
23823         enclosed procedure call.
23824
23825 2004-09-01  Vincent Celier  <celier@gnat.com>
23826
23827         * bindgen.adb: (Set_EA_Last): New procedure
23828         (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
23829         Set_EA_Last.
23830         (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
23831         (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
23832         linked without errors.
23833         (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
23834         ST and EA.
23835         (Gen_Exception_Table_C): Correct same bugs
23836
23837         * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
23838
23839         * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
23840         on Windows, make sure that the drive letter is in upper case.
23841
23842         * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
23843         Windows, when the drive letter is added and Case_Sensitive is True, the
23844         drive letter is forced to upper case.
23845
23846         * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
23847         to Options_2 for the call to MLib.Utl.Gcc.
23848
23849         * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
23850         directory separator when defining BASE_DIR.
23851
23852 2004-09-01  Pascal Obry  <obry@gnat.com>
23853
23854         * gprcmd.adb (Extend): Do not output trailing directory separator. This
23855         is not needed and it confuses Windows GNU/make which does not report
23856         directory terminated by a slash as a directory.
23857         (gprcmd): Idem for "pwd" internal command.
23858
23859         * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
23860         target names rewrite to fix regressions with recent version of
23861         GNU/make. Starting with GNU/make 3.80 the pipe character was not
23862         handled properly anymore.
23863
23864 2004-09-01  Andreas Schwab  <schwab@suse.de>
23865
23866         * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
23867         * raise.c [!IN_RTS]: Undef abort.
23868
23869 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
23870
23871         * utils2.c (build_allocator): Use ssize_int.
23872
23873         * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
23874
23875 2004-08-27  Andreas Schwab  <schwab@suse.de>
23876
23877         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
23878
23879 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
23880             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23881
23882         * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
23883
23884 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
23885
23886         * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
23887         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
23888         * utils.c (init_gigi_decls): Likewise.
23889         * utils2.c (build_call_raise, build_allocator): Likewise.
23890
23891 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
23892
23893         * utils.c (gnat_init_decl_processing): Adjust
23894         build_common_tree_nodes call.
23895
23896 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
23897
23898         * utils2.c (build_allocator): Use build_int_cst for negative
23899         size types.
23900
23901 2004-08-18  Richard Henderson  <rth@redhat.com>
23902
23903         * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
23904
23905 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
23906
23907         * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
23908         call.s
23909         * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
23910         (gnat_to_gnu): Likewise.
23911
23912 2004-08-16  Pascal Obry  <obry@gnat.com>
23913
23914         * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
23915         backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
23916         option and not mdll anymore. Update comment.
23917
23918 2004-08-16  Pascal Obry  <obry@gnat.com>
23919
23920         * bld.adb (Put_Include_Project): Properly handle directory separators
23921         on Windows.
23922
23923 2004-08-16  Ed Schonberg  <schonberg@gnat.com>
23924
23925         * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
23926         decreasing the number of allocated junk nodes while searching for the
23927         appropriate subprogram.
23928
23929 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
23930
23931         * cuintp.c (UI_To_gnu): Use build_int_cst..
23932         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
23933         * utils.c (init_gigi_decls): Likewise.
23934         * utils2.c (build_call_raise): Likewise.
23935
23936 2004-08-13  Olivier Hainque  <hainque@act-europe.fr>
23937
23938         * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
23939         for a global aliased object with a variable size and an unconstrained
23940         nominal subtype, pretend there is no initializer if the one we have is
23941         incomplete, and avoid referencing an inexistant component in there. The
23942         part we have will be rebuilt anyway and the reference may confuse
23943         further operations.
23944
23945 2004-08-13  Thomas Quinot  <quinot@act-europe.fr>
23946
23947         * einfo.ads: Minor reformatting
23948
23949         * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
23950         restrictions in the ALI if we only want to warn about violations.
23951
23952 2004-08-13  Vincent Celier  <celier@gnat.com>
23953
23954         * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
23955         when creating a new Unit_Record in table Units.
23956
23957         * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
23958         that are violated, if any.
23959
23960         * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
23961         add directory separator if path already ends with a directory separator.
23962
23963 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
23964
23965         * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
23966         unit, this is an attempt to inline a construct that is not available in
23967         the current restricted mode, so abort rather than trying to continue.
23968
23969         * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
23970         discriminants that rename those of the parent, recover names of
23971         original discriminants for the constraint on the full view of the
23972         parent.
23973         (Complete_Private_Subtype): Do not create a subtype declaration if the
23974         subtype is an itype.
23975
23976         * gnat_rm.texi: Added section on implementation of discriminated
23977         records with default values for discriminants.
23978
23979 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
23980
23981         PR ada/15601
23982         * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
23983         the second operand is overloaded.
23984
23985 2004-08-10  Richard Henderson  <rth@redhat.com>
23986
23987         * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
23988         add __builtin_alloca.
23989
23990 2004-08-10  Richard Henderson  <rth@redhat.com>
23991
23992         * config-lang.in (boot_language): Yes.
23993
23994 2004-08-09  Thomas Quinot  <quinot@act-europe.fr>
23995
23996         * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
23997         from complaining on potential uninitialized reference.
23998         Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
23999         new specification and test explicitly for non-zero return value.
24000
24001         * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
24002         returning C.int, to avoid using a derived boolean type.
24003
24004         * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
24005         Duplicate_Subexpr_No_Checks in preference to direct use of
24006         Remove_Side_Effects and New_Copy_Tree.
24007         Clear Comes_From_Source on prefix of 'Size attribute reference.
24008
24009         * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
24010         g-socthi-vxworks.adb: Change calls to
24011         GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
24012         and test explicitly for non-zero return value.
24013
24014         * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
24015         (Is_Socket_In_Set): Declare imported function as returning C.int, to
24016         avoid using a derived boolean type.
24017
24018 2004-08-09  Albert Lee  <lee@gnat.com>
24019
24020         * system-irix-n32.ads: Refine tasking priority constants for IRIX.
24021
24022 2004-08-09  Pascal Obry  <obry@gnat.com>
24023
24024         * gnat_ugn.texi: Document new way to build DLLs on Windows using
24025         GCC's -shared option.
24026
24027         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
24028         Options_2 parameter (options put after object files).
24029
24030 2004-08-09  Olivier Hainque  <hainque@act-europe.fr>
24031
24032         * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
24033         ignore overflows on low and high bounds of an index to also account for
24034         differences in signedness between sizetype and gnu_index_subtype.
24035         These are as legitimate as the ones caused by a lower TYPE_PRECISION
24036         on sizetype.
24037
24038 2004-08-09  Robert Dewar  <dewar@gnat.com>
24039
24040         * s-solita.ads, s-solita.adb: Minor reformatting
24041
24042         * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
24043         Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
24044         obsolescent section
24045         Add note that No_Implicit_Conditionals does not suppress
24046         run time constraint checks.
24047
24048         * vms_conv.ads: Minor reformatting
24049
24050         * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
24051         and necessary for following change).
24052         (Mark): Return new format Mark_Id containing sec stack address
24053         (Release): Use sec stack address from Mark_Id avoiding Self call
24054
24055         * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
24056         pointer (cleanup and necessary for following change).
24057         Define Mark_Id as record containing address of secondary stack, that way
24058         Release does not need to find the stack again, decreasing the number of
24059         calls to Self and improving efficiency.
24060
24061         * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
24062
24063         * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
24064         case variable into the individual case branches when possible.
24065
24066         * sem_ch11.adb: Minor reformatting
24067
24068         * prj.ads: Correct spelling of suffixs
24069
24070         * prj-nmsc.adb: Minor reformatting
24071         Correct spelling suffixs throughout (also in identifiers)
24072
24073         * freeze.adb: Minor spelling correction
24074
24075         * exp_ch2.adb: Cleanups to handling of Current_Value
24076         (no functional effect).
24077
24078         * bld.adb: Correct spelling of suffixs
24079
24080         * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
24081
24082 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
24083
24084         PR ada/15408
24085         * sem_ch7.adb (Install_Private_Declarations): In the body of the
24086         package or of a child, private entities are both immediately_visible
24087         and not hidden.
24088
24089 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
24090
24091         * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
24092         there are no range checks on the value of the literal.
24093
24094         * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
24095         wrapped is the triggering alternative of an asynchronous select, action
24096         statements mustbe inserted before the select itself.
24097
24098         * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
24099         case where the prefix is a protected function call.
24100         (Resolve_Attribute, case 'Access): The attribute reference on a
24101         subprogram is legal in a generic body if the subprogram is declared
24102         elsewhere.
24103
24104 2004-08-09  Vincent Celier  <celier@gnat.com>
24105
24106         * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
24107         languages, otherwise building the library may fail with unresolved
24108         symbols.
24109         (Compile_Sources): Do not build libraries if -c switch is used
24110
24111         * gnatlink.adb (Process_Args): New switches -M and -Mmap
24112         (Write_Usage): If map file creation is supported, output new switches
24113         -M and -Mmap.
24114         (Gnatlink): When -M is specified, add the necessary switch(es) to the
24115         gcc call, when supported.
24116
24117         * Makefile.in: Added indepsw.o to the object list for gnatlink
24118         Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
24119
24120         * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
24121         indepsw.adb, indepsw.ads: New files.
24122
24123 2004-08-09  Bernard Banner  <banner@gnat.com>
24124
24125         * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
24126
24127         * Makefile.in: add section for vxworks x86
24128
24129 2004-08-09  Hristian Kirtchev  <kirtchev@gnat.com>
24130
24131         * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
24132         per-object constrained components where the discriminant is of an
24133         Access type.
24134         (Build_Record_Init_Proc): Add condition to prevent the inheritance of
24135         the parent initialization procedure for derived Unchecked_Unions.
24136         Instead, derived Unchecked_Unions build their own initialization
24137         procedure.
24138         (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
24139         Check the body of the subprogram for details.
24140         (Freeze_Record_Type): Prevent the inheritance of discriminant checking
24141         functions for derived Unchecked_Union types by introducing a condition.
24142         Allow the creation of TSS equality functions for Unchecked_Unions.
24143         (Make_Eq_Case): Rename formal parameter Node to E in function signature.
24144         Add formal parameter Discr to function signature. Discr is used to
24145         control the generated case statement for Unchecked_Union types.
24146         (Make_Eq_If): Rename formal parameter Node to E in function signature.
24147
24148         * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
24149         Unchecked_Unions.
24150         Check the body of the subprogram for details.
24151         (Expand_Composite_Equality): Augment composite type equality to include
24152         correct handling of Unchecked_Union components.
24153         (Expand_N_In): Add condition to detect illegal membership tests when the
24154         subtype mark is a constrained Unchecked_Union and the expression lacks
24155         inferable discriminants, and build a Raise_Program_Error node.
24156         (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
24157         to detect types that contain components of unconstrained Unchecked_Union
24158         subtype. Add condition to detect equality between types that have an
24159         unconstrained Unchecked_Union component, and build a Raise_Program_Error
24160         node. Add condition to detect equality between Unchecked_Union types
24161         that lack inferable discriminants, and build a Raise_Program_Error node.
24162         Otherwise build a TSS equality function call.
24163         (Expand_N_Type_Conversion): Add condition to detect illegal conversions
24164         from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
24165         with the operand lacking inferable discriminants, and build a Raise_
24166         Program_Error node.
24167         (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
24168         composite equality.
24169         (Has_Inferable_Discriminants): Implement new predicate for objects and
24170         expressions of Unchecked_Union type. Check the body of subprogram for
24171         details.
24172         (Has_Unconstrained_UU_Components): Add function
24173         Component_Is_Unconstrained_UU. It is used to detect whether a single
24174         component is of an unconstrained Unchecked_Union subtype. Add function
24175         Variant_Is_Unconstrained_UU. It is used to detect whether a single
24176         component inside a variant is of an unconstrained Unchecked_Union type.
24177
24178         * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
24179         inferred discriminant values. Add condition to generate a case
24180         statement with an inferred discriminant as the switch.
24181         (Make_Component_List_Assign): Introduce a Boolean flag that determines
24182         the behaviour of the subprogram in the presence of an Unchecked_Union.
24183         Add condition to trigger the usage of the inferred discriminant value
24184         as the generated case statement switch.
24185         (Make_Field_Assign): Introduce a Boolean flag that determines the
24186         behaviour of the subprogram in the presence of an Unchecked_Union. Add
24187         condition to trigger the usage of the inferred discriminant value as
24188         the right-hand side of the generated assignment.
24189
24190         * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
24191         parameter generation when dealing with Unchecked_Unions.
24192
24193         * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
24194         checks for Unchecked_Unions.
24195
24196         * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
24197
24198         * exp_attr.adb (Expand_N_Attribute_Reference): Produce
24199         Raise_Program_Error nodes for the execution of Read and Write
24200         attributes of Unchecked_Union types and the execution of Input and
24201         Output attributes of Unchecked_Union types that lack default
24202         discriminant values.
24203
24204         * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
24205         Unchecked_Union. Add procedure Check_Component. It is used to inspect
24206         per-object constrained components of Unchecked_Unions for being
24207         Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
24208         check individual components withing a variant.
24209
24210         * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
24211         comparison of Unchecked_Unions.
24212         (Resolve_Equality_OP): Remove guard that prevents equality between
24213         Unchecked_Unions.
24214
24215         * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
24216         of component subtypes for Unchecked_Union components.
24217         (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
24218         since it is the actual subtype.
24219
24220         * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
24221         pass of Unchecked_Union subtypes as generic actuals to formal types
24222         that lack known_discriminant_parts or that are derived Unchecked_Union
24223         types, and do nothing. In any other case, produce an error message.
24224
24225         * sem_ch3.adb (Analyze_Component_Declaration): Add function
24226         Contains_POC. It determines whether a constraint uses the discriminant
24227         of an enclosing record type.
24228         Add condition to detect per-object constrained component and set the
24229         appropriate flag.
24230         (Derived_Type_Declaration): Remove guard that prevents derivation from
24231         Unchecked_Union types.
24232         (Process_Subtype): Remove quard that prevents the creation of Unchecked_
24233         Union subtypes.
24234
24235         * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
24236         references to Unchecked_Union discriminants.
24237
24238         * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
24239         formal generation when dealing with Unchecked_Unions.
24240         (Set_Actual_Subtypes): Add condition to prevent generation of actual
24241         subtypes for Unchecked_Unions.
24242
24243         * sem_ch7.adb (Analyze_Package_Specification): Add procedure
24244         Inspect_Unchecked_Union_Completion. It is used to detect incorrect
24245         completions of discriminated partial views by Unchecked_Unions and
24246         produce an error message.
24247
24248 2004-08-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24249
24250         * trans.c (struct stmt_group): New field, GLOBAL.
24251         (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
24252         (struct elab_info): New struct.
24253         (elab_info_list, gnu_elab_proc_stack): New variables.
24254         (Compilation_Unit_to_gnu): New procedure.
24255         (gigi): Call it and also handle elaboration procs we've saved.
24256         (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
24257         global field from parent.
24258         (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
24259         (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
24260         (start_stmt_group): Initialize global field from parent.
24261         (add_decl_expr): Set to global for current statement group.
24262         (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
24263         post.
24264
24265         * utils.c (global_bindings_p): True when no current_function_decl; no
24266         longer check current_binding_level.
24267
24268 2004-08-09  Ben Brosgol  <brosgol@gnat.com>
24269
24270         * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
24271         choice.
24272
24273         * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
24274
24275 2004-08-06  Andreas Schwab  <schwab@suse.de>
24276
24277         * utils.c (gnat_define_builtin): Remove second parameter of
24278         make_decl_rtl.
24279         (begin_subprog_body): Likewise.
24280
24281 2004-07-26  Arnaud Charlet  <charlet@act-europe.fr>
24282
24283         * sem_util.adb (Requires_Transient_Scope): Temporarily disable
24284         optimization, not supported by the tree-ssa back-end.
24285
24286 2004-07-26  Olivier Hainque  <hainque@act-europe.fr>
24287
24288         * s-mastop-irix.adb: Update comments.
24289
24290         * a-except.adb (Exception_Information): Raise Constraint_Error if
24291         exception Id is Null_Id.
24292         This is required behavior, which is more reliably and clearly checked
24293         at the top level interface level.
24294
24295 2004-07-26  Javier Miranda  <miranda@gnat.com>
24296
24297         * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
24298         call if a component has no default_expression and the box is used.
24299
24300         * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
24301         default_expression and you use box, it behaves as if you had declared a
24302         stand-alone object.
24303         (Resolve_Record_Aggregate): If a component has no default_expression and
24304         you use box, it behaves as if you had declared a stand-alone object.
24305
24306         * sem_ch10.adb (Install_Siblings): Do not make visible the private
24307         entities of private-with siblings.
24308
24309 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
24310
24311         * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
24312         for a component of an itype, set the parent pointer for analysis,
24313         there is no list in which to insert it.
24314
24315         * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
24316         bona-fide renamings, not for inherited operations.
24317
24318         * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
24319         actual for a formal that is an access parameter, create local
24320         finalization list even if the expression is not an aggregate.
24321
24322 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
24323
24324         PR ada/16213
24325         * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
24326         Diagnose properly illegal subprogram renamings that are library units.
24327
24328 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
24329
24330         PR ada/15588
24331         * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
24332         conversion rewritten as an unchecked conversion, check that original
24333         expression is a variable.
24334
24335         * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
24336         unchecked_conversion, create new node rather than rewriting in place,
24337         to preserve original construct.
24338
24339 2004-07-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24340
24341         * gigi.h (gnat_expand_body): Deleted.
24342
24343         * Make-lang.in: (trans.o): Depends on function.h.
24344
24345         * misc.c: (gnat_expand_body): Moved to here.
24346
24347         * trans.c (gnat_expand_body_1): Deleted.
24348         (gnat_expand_body): Moved from here.
24349         (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
24350         (add_stmt): Check for marked visited with global_bindings_p.
24351         (gnat_gimplify_expr, case COMPONENT_REF): New case.
24352         (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
24353
24354         * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
24355         VIEW_CONVERT_EXPR if not operation type.
24356
24357         * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
24358         fat pointer.
24359
24360         * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
24361         changes: reformatting of negation operators, removing unneeded
24362         inequality comparison with zero, converting equality comparisons with
24363         zero to negations, changing int/0/1 to bool/false/true, replace calls
24364         to gigi_abort with abort, and various other similar changes.
24365
24366 2004-07-26  Vincent Celier  <celier@gnat.com>
24367
24368         * gnatcmd.adb (GNATCmd): Add processing for new built-in command
24369         "setup".
24370
24371         * make.adb (Gnatmake): Fail when a library is not present and there is
24372         no object directory.
24373
24374         * mlib-prj.adb (Check_Library): No need to check if the library needs
24375         to be rebuilt if there is no object directory, hence no object files
24376         to build the library.
24377
24378         * opt.ads (Setup_Projects): New Boolean flag.
24379
24380         * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
24381         Location.
24382         Create directory when Kind /= "" and in "gnat setup". Report error if
24383         directory cannot be created.
24384         (Ada_Check): Create library interface copy dir if it does not exist
24385         and we are in "gnat setup".
24386         (Find_Sources): No error if in "gnat setup" and no Ada sources were
24387         found.
24388         (Language_Independent_Check): Create object directory, exec directory
24389         and/or library directory if they do not exist and we are in
24390         "gnat setup".
24391
24392         * vms_conv.ads: (Command_Type): New command Setup.
24393
24394         * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
24395
24396         * vms_data.ads: Add qualifiers/switches for new built-in command
24397         "setup".
24398
24399 2004-07-25  Richard Henderson  <rth@redhat.com>
24400
24401         * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
24402         DECL_IGNORED_P on RESULT_DECL.
24403
24404 2004-07-20  Olivier Hainque  <hainque@act-europe.fr>
24405
24406         * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
24407         allocation and potentially overflowing update with
24408         Tailored_Exception_Information. Use the sec-stack free procedural
24409         interface to output Exception_Information instead.
24410
24411         * a-except.adb (To_Stderr): New subprogram for character, and string
24412         version moved from a-exextr to be visible from other separate units.
24413         (Tailored_Exception_Information): Remove the procedural version,
24414         previously used by the default Last_Chance_Handler and not any more.
24415         Adjust various comments.
24416
24417         * a-exexda.adb: Generalize the exception information procedural
24418         interface, to minimize the use of secondary stack and the need for
24419         local buffers when the info is to be output to stderr:
24420         (Address_Image): Removed.
24421         (Append_Info_Character): New subprogram, checking for overflows and
24422         outputing to stderr if buffer to fill is of length 0.
24423         (Append_Info_String): Output to stderr if buffer to fill is of length 0.
24424         (Append_Info_Address, Append_Info_Exception_Name,
24425         Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
24426         Append_Info_Basic_Exception_Traceback,
24427         Append_Info_Exception_Information): New subprograms.
24428         (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
24429         (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
24430         Exception_Info_Maxlength, Exception_Name_Length,
24431         Exception_Message_Length): New subprograms.
24432         (Exception_Information): Use Append_Info_Exception_Information.
24433         (Tailored_Exception_Information): Use
24434         Append_Info_Basic_Exception_Information.
24435         Export services for the default Last_Chance_Handler.
24436
24437         * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
24438         other separate units.
24439
24440 2004-07-20  Vincent Celier  <celier@gnat.com>
24441
24442         * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
24443
24444 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
24445
24446         * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
24447         emit itype references for the designated types of component types that
24448         are declared outside of the full record declaration, and that may
24449         denote a partial view of that record type.
24450
24451 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
24452
24453         PR ada/15607
24454         * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
24455         which is the designated type in an access component declaration, to the
24456         list of incomplete dependents of the parent type, to avoid elaboration
24457         issues with out-of-scope subtypes.
24458         (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
24459         full view of the parent.
24460
24461 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
24462
24463         PR ada/15610
24464         * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
24465         entities that are hidden, such as references to generic actuals
24466         outside an instance.
24467
24468 2004-07-20  Javier Miranda  <miranda@gnat.com>
24469
24470         * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
24471         support to the new notation.
24472         (Analyze_Selected_Component): Add call to Try_Object_Operation.
24473
24474 2004-07-20  Jose Ruiz  <ruiz@act-europe.fr>
24475
24476         * s-taprob.adb: Adding the elaboration code required for initializing
24477         the tasking soft links that are common to the full and the restricted
24478         run times.
24479
24480         * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
24481         restricted run time has been moved to the package
24482         System.Soft_Links.Tasking.
24483
24484         * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
24485         restricted run time has been moved to the package
24486         System.Soft_Links.Tasking.
24487
24488         * Makefile.rtl: Add entry for s-solita.o in run-time library list.
24489
24490         * s-solita.ads, s-solita.adb: New files.
24491
24492 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24493
24494         * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
24495         Case_Statement_to_gnu): Split off from gnat_to_gnu.
24496         (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
24497         Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
24498         Exception_Handler_to_gnu_zcx): Likewise.
24499
24500 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
24501
24502         * gigi.h (builtin_function): Declare.
24503
24504 2004-07-15  Robert Dewar  <dewar@gnat.com>
24505
24506         * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
24507         reformatting
24508
24509         * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
24510         access values as an example of a warning.
24511
24512         * gnat_rm.texi: Document new attribute Has_Access_Values
24513
24514         * gnat-style.texi: Document that box comments belong on nested
24515         subprograms
24516
24517         * sem_util.ads (Has_Access_Values): Improved documentation
24518
24519         * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
24520
24521         * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
24522         (Process_Interface_Name): Call to this new procedure
24523         (Set_Extended_Import_Export_External_Name): Call to this new procedure
24524
24525         * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
24526
24527         * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
24528
24529         * einfo.ads: Minor comment typo fixed
24530
24531 2004-07-15  Jose Ruiz  <ruiz@act-europe.fr>
24532
24533         * snames.adb: Add _atcb.
24534
24535         * snames.ads: Add Name_uATCB.
24536
24537         * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
24538         (in the expanded code) when using the restricted run time.
24539
24540         * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
24541         a in parameter in order to allow ATCBs to be preallocated (in the
24542         expanded code).
24543
24544         * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
24545         order to allow ATCBs to be preallocated. In case of error, the ATCB is
24546         deallocated in System.Tasking.Stages.
24547
24548         * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
24549         order to allow ATCBs to be preallocated.
24550
24551         * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
24552         here. It was previously done in Initialize_ATCB.
24553
24554         * rtsfind.ads: Make the Ada_Task_Control_Block visible.
24555
24556         * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
24557         Restricted run time.
24558
24559         * exp_ch3.adb: When using the Restricted run time, pass the
24560         preallocated Ada_Task_Control_Block when creating a task.
24561
24562 2004-07-15  Ed Schonberg  <schonberg@gnat.com>
24563
24564         * sem_util.adb (Normalize_Actuals): If there are no actuals on a
24565         function call that is itself an actual in an enclosing call, diagnose
24566         problem here rather than assuming that resolution will catch it.
24567
24568         * sem_ch7.adb (Analyze_Package_Specification): If the specification is
24569         the local copy of a generic unit for a formal package, and the generic
24570         is a child unit, install private part of ancestors before compiling
24571         private part of spec.
24572
24573         * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
24574         use scope entities rather than tree structures, to handle properly
24575         parent units that are instances rewritten as bodies for inlining
24576         purposes.
24577
24578         * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
24579         Remove_Parents): Handle properly a parent unit that is an
24580         instantiation, when the unit has been rewritten as a body for inlining
24581         purposes.
24582
24583         * par.adb (Goto_List): Global variable to collect goto statements in a
24584         given unit, for use in detecting natural loops.
24585
24586         * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
24587         use in detecting natural loops.
24588
24589         * par-labl.adb (Find_Natural_Loops): Recognize loops create by
24590         backwards goto's, and rewrite as a infinite loop, to improve locality
24591         of temporaries.
24592
24593         * exp_util.adb (Force_Evaluation): Recognize a left-hand side
24594         subcomponent that includes an indexed reference, to prevent the
24595         generation of copies that would miscompile the desired assignment
24596         statement.
24597         (Build_Task_Image_Decls): Add a numeric suffix to
24598         generated name for string variable, to avoid spurious conflicts with
24599         the name of the type of a single protected object.
24600
24601         * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
24602         loop with an explicit exit statement, to avoid generating an
24603         out-of-range value with 'Succ leading to spurious constraint_errors
24604         when compiling with -gnatVo.
24605
24606 2004-07-15  Thomas Quinot  <quinot@act-europe.fr>
24607
24608         * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
24609         might not be analyzed yet, even if its Etype is already set (case of an
24610         unchecked conversion built using Unchecked_Convert_To, for example).
24611         If the prefix has already been analyzed, this will be a nop anyway.
24612
24613         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
24614         controller type, or an assignment of a record type with controlled
24615         components, copy only user data, and leave the finalization chain
24616         pointers untouched.
24617
24618 2004-07-15  Vincent Celier  <celier@gnat.com>
24619
24620         * make.adb (Collect_Arguments): Improve error message when attempting
24621         to compile a source not part of any project, when -x is not used.
24622
24623         * prj.ads: (Defined_Variable_Kind): New subtype
24624
24625         * prj-attr.adb (Register_New_Package): Two new procedures to register
24626         a package with or without its attributes.
24627         (Register_New_Attribute): Mew procedure to register a new attribute in a
24628         package.
24629         New attribute oriented subprograms: Attribute_Node_Id_Of,
24630         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
24631         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
24632         Next_Attribute.
24633         New package oriented subprograms: Package_Node_Id_Of,
24634         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
24635
24636         * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
24637         type.
24638         (Package_Node_Id): Now a private, self initialized type
24639         (Register_New_Package): New procedure to register a package with its
24640         attributes.
24641         New attribute oriented subprograms: Attribute_Node_Id_Of,
24642         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
24643         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
24644         Next_Attribute.
24645         New package oriented subprograms: Package_Node_Id_Of,
24646         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
24647
24648         * prj-dect.adb (Parse_Attribute_Declaration,
24649         Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
24650
24651         * prj-makr.adb (Make): Parse existing project file before creating
24652         other files. Fail if there was an error during parsing.
24653
24654         * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
24655         new spec of Prj.Attr.
24656
24657         * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
24658         to new spec of Prj.Attr.
24659
24660 2004-07-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24661
24662         * utils2.c: Fix typo in comment.
24663
24664 2004-07-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24665
24666         * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
24667         * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
24668
24669 2004-07-14  Andreas Schwab  <schwab@suse.de>
24670
24671         * trans.c (gnat_init_stmt_group): Remove duplicate definition.
24672
24673 2004-07-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24674
24675         * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
24676         object type.
24677         (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
24678         TYPE_STUB_DECL.
24679
24680         * misc.c (gnat_types_compatible_p): New function.
24681         (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
24682         (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
24683
24684         * trans.c (gigi): Move processing of main N_Compilation_Unit here.
24685         (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
24686         (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
24687         (mark_visited): Don't mark dummy type.
24688         (tree_transform <N_Procedure_Call_Statement>): Unless this is an In
24689         parameter, we must remove any LJM building from GNU_NAME.
24690         (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
24691         (pos_to_constructor): Use int_const_binop.
24692         (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
24693         PARM_DECL.
24694
24695         * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
24696         (gnat_pushlevel): Set TREE_USE on BLOCK node.
24697         (gnat_install_builtins): Add __builtin_memset.
24698
24699 2004-07-13  Olivier Hainque  <hainque@act-europe.fr>
24700
24701         * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
24702         for a renaming, stabilize the initialization expression if we are at a
24703         local level.  At the local level, uses of the renaming may be performed
24704         by a direct dereference of the initializing expression, and we don't
24705         want possible variables there to be evaluated for every use.
24706
24707         * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
24708         Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
24709         them on the way.  Account for the fact that we may introduce side
24710         effects in the process.
24711
24712 2004-07-13  Richard Henderson  <rth@redhat.com>
24713
24714         * misc.c (default_pass_by_ref): Use pass_by_reference.
24715
24716 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
24717
24718         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
24719         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
24720
24721 2004-07-08  Richard Henderson  <rth@redhat.com>
24722
24723         * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
24724         commentary.
24725
24726 2004-07-06  Vincent Celier  <celier@gnat.com>
24727
24728         * vms_conv.ads: Minor reformatting.
24729         Alphabetical order for enumerated values of type Command_Type, to have
24730         the command in alphabetical order for the usage.
24731
24732         * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
24733         the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
24734
24735         * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
24736
24737         * makegpr.adb (Global_Archive_Exists): New global Boolean variable
24738         (Add_Archive_Path): Only add the global archive if there is one.
24739         (Build_Global_Archive): Set Global_Archive_Exists depending if there is
24740         or not any object file to put in the global archive, and don't build
24741         a global archive if there is none.
24742         (X_Switches): New table
24743         (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
24744         in the X_Switches table, if any.
24745         (Initialize): Make sure the X_Switches table is empty
24746         (Scan_Arg): Record -X switches in table X_Switches
24747
24748         * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
24749
24750         * make.adb: Minor comment fix
24751
24752         * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
24753         invoked with directory information, add the directory in front of the
24754         path.
24755
24756         * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
24757         invoked with directory information, add the directory in front of the
24758         path.
24759
24760         * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
24761         when Keep_Temporary_Files is False.
24762         (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
24763         directory information, add the directory in front of the path.
24764         When not on VMS, handle new switch -dn before the command to set
24765         Keep_Temporary_Files to True.
24766         (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
24767         everywhere.
24768
24769         * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
24770         invoked with directory information, add the directory in front of the
24771         path.
24772
24773 2004-07-06  Thomas Quinot  <quinot@act-europe.fr>
24774
24775         * snames.ads, snames.adb (Name_Stub): New name for the distributed
24776         systems annex.
24777
24778         * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
24779         New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
24780
24781         * g-socket.adb (To_Timeval): Fix incorrect conversion of
24782         Selector_Duration to Timeval for the case of 0.0.
24783
24784         * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
24785         documentation from Evolve_And_Then.
24786
24787 2004-07-06  Jose Ruiz  <ruiz@act-europe.fr>
24788
24789         * s-taprop-tru64.adb, s-taprop-os2.adb,
24790         s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
24791
24792 2004-07-06  Robert Dewar  <dewar@gnat.com>
24793
24794         * s-osinte-hpux.ads, s-osinte-freebsd.ads,
24795         s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
24796         s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
24797         s-interr-sigaction.adb, s-taprop-irix-athread.adb,
24798         s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
24799         s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
24800         s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
24801         s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
24802         a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
24803         a-tags.ads, bindgen.ads, checks.adb, checks.adb,
24804         csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
24805         exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
24806         g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
24807         i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
24808         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
24809         sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
24810         sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
24811         s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
24812         s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
24813         s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
24814         vms_data.ads: Minor reformatting,
24815         Fix bad box comment format.
24816
24817         * gnat_rm.texi: Fix minor grammatical error
24818
24819         * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
24820
24821         * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
24822         more cases of discriminated records to be recognized as not needing a
24823         secondary stack.
24824         (Has_Access_Values): New function.
24825
24826         * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
24827
24828         * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
24829         Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
24830         with LRM terminology).
24831         Change terminology in comments primitive type => elementary type.
24832
24833 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
24834
24835         PR ada/15602
24836         * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
24837         parameters do not impose any requirements on the presence of a body.
24838
24839 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
24840
24841         PR ada/15593
24842         * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
24843         compilation unit and is in an open scope at the point of instantiation,
24844         assume that a body may be present later.
24845
24846 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
24847
24848         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
24849         Improve error message when specified size is not supported.
24850
24851         * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
24852         is never a primitive operation.
24853
24854 2004-07-05  Andreas Schwab  <schwab@suse.de>
24855
24856         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
24857         RECORD_OR_UNION_CHECK.
24858         (TYPE_CONTAINS_TEMPLATE_P): Likewise.
24859
24860 2004-07-04  Kelley Cook  <kcook@gcc.gnu.org>
24861
24862         * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
24863         dependency on xgnatugn, instead build it via a submake.
24864         (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
24865
24866 2004-07-04  Richard Henderson  <rth@redhat.com>
24867
24868         * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
24869
24870 2004-07-01  Richard Henderson  <rth@redhat.com>
24871
24872         * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
24873         * utils.c (max_size): Likewise.
24874
24875 2004-06-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24876
24877         * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
24878         and rest_of_type_compilation; add arg to create_*_decl.
24879         (annotate_decl_with_node): Deleted.
24880         (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
24881         * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
24882         (get_current_block_context, gnat_pushdecl): New declarations.
24883         (gnat_init_stmt_group): Likewise.
24884         (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
24885         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
24886         (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
24887         (gnat_init): Call gnat_init_stmt_group.
24888         * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
24889         (gnu_pending_elaboration_list): Deleted.
24890         (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
24891         (gigi): Rearrange initialization calls and move some to last above.
24892         (gnat_to_gnu): If statement and not in procedure, go into elab proc.
24893         Delete calls to add_decl_expr; add arg to create_*_decl.
24894         (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
24895         (gnat_to_gnu, case N_Subprogram_Body): Move some code to
24896         begin_subprog_body and call it.
24897         Don't push and pop ggc context.
24898         (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
24899         (add_stmt): Remove handling of DECL_EXPR from here.
24900         If not in function, mark visited.
24901         (add_decl_expr): Put global at top level.
24902         Check for cases of DECL_INITIAL we have to handle here.
24903         (process_type): Add extra arg to create_type_decl.
24904         (build_unit_elab): Rework to just gimplify.
24905         * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
24906         (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
24907         (get_pending_elaborations, pending_elaborations_p): Likewise.
24908         (push_pending_elaborations, pop_pending_elaborations): Likewise.
24909         (get_elaboration_location, insert_elaboration_list): Likewise.
24910         (gnat_binding_level): Renamed from ada_binding_level.
24911         (init_gnat_to_gnu): Don't clear pending_elaborations.
24912         (global_bindings_p): Treat as global if no current_binding_level.
24913         (set_current_block_context): New function.
24914         (gnat_pushdecl): Renamed from pushdecl; major rework.
24915         All callers changed.
24916         (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
24917         (finish_record_type): Call call pushdecl for stub decl.
24918         (function_nesting_depth): Deleted.
24919         (begin_subprog_body): Delete obsolete code.
24920         * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
24921
24922 2004-06-28  Robert Dewar  <dewar@gnat.com>
24923
24924         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
24925         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
24926         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
24927         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
24928         a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
24929
24930         * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
24931         deal with problem of inefficient slices on machines with strict
24932         alignment, when the slice is a component of a composite.
24933
24934         * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
24935         machines, we need the check there as well.
24936
24937 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
24938
24939         * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
24940         determine safe copying direction for overlapping slice assignments
24941         when component is controlled.
24942
24943         * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
24944         formal derived type in the actual for a formal package are visible in
24945         the enclosing instance.
24946
24947 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
24948
24949         PR ada/15600
24950         * sem_util.adb (Trace_Components): Diagnose properly an illegal
24951         circularity involving a private type whose completion includes a
24952         self-referential component.
24953         (Enter_Name): Use Is_Inherited_Operation to distinguish a source
24954         renaming or an instantiation from an implicit derived operation.
24955
24956 2004-06-28  Pascal Obry  <obry@gnat.com>
24957
24958         * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
24959         DLL.
24960         (Library_File_Name_For): Idem.
24961
24962 2004-06-28  Matthew Gingell  <gingell@gnat.com>
24963
24964         * g-traceb.ads: Add explanatory note on the format of addresses
24965         expected by addr2line.
24966
24967 2004-06-28  Jerome Guitton  <guitton@act-europe.fr>
24968
24969         * Makefile.in: Force debugging information on s-tasdeb.adb,
24970         a-except.adb and s-assert.adb needed by the debugger.
24971
24972 2004-06-28  Vincent Celier  <celier@gnat.com>
24973
24974         * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
24975         Need_To_Build_Lib.
24976         (Gnatmake): Ditto.
24977
24978         * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
24979
24980         * prj.adb: Minor reformatting
24981         (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
24982
24983         * prj.ads: Comment updates
24984         Minor reformatting
24985         (Project_Data): Change Flag1 to Need_To_Build_Lib.
24986         Remove Flag2: not used.
24987
24988         * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
24989         declaration.
24990
24991         * gnat_ugn.texi: Put a "null;" declaration in one project file example
24992
24993         * gnat_rm.texi: Document Empty declarations "null;".
24994
24995         * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
24996         front of the linker options.
24997         (Link_Foreign): Put the global archives and the libraries in front of
24998         the linker options.
24999
25000 2004-06-28  Javier Miranda  <miranda@gnat.com>
25001
25002         * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
25003         (RTU_Loaded): Code cleanup
25004         (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
25005         withed predefined units.
25006
25007         * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
25008         explicitly withed predefined units.
25009         Fix typo in comment
25010
25011         * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
25012         explicitly withed predefined units.
25013
25014 2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25015
25016         * ada-tree.def (DECL_STMT): Deleted.
25017         * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
25018         (DECL_STMT_VAR): Deleted.
25019         * decl.c: add_decl_stmt now add_decl_expr.
25020         * gigi.h: Likewise.
25021         * trans.c: Likewise.
25022         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
25023         (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
25024         (add_stmt): Only handle padded type here.
25025         (add_stmt_with_node): Allow gnat_node to not be present.
25026         (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
25027         (gnat_gimplify_stmt, case DECL_STMT): Deleted.
25028         (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
25029         make a SAVE_EXPR for the entire fat pointer.
25030         * utils.c (pushdecl): Walk a DECL_EXPR in global case.
25031         (create_index_type): Make a DECL_EXPR.
25032         (end_subprog_body): Don't call allocate_struct_function here but
25033         do clear cfun.
25034
25035 2004-06-25  Pascal Obry  <obry@gnat.com>
25036
25037         * makegpr.adb (Build_Library): Remove parameter Lib_Address and
25038         Relocatable from Build_Dynamic_Library call.
25039
25040         * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
25041         Relocatable are now synonym.
25042
25043         * Makefile.in: Use s-parame-mingw.adb on MingW platform.
25044
25045         * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
25046         Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
25047         call.
25048
25049         * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
25050         Lib_Address and Relocatable.
25051         (Default_DLL_Address): Removed.
25052
25053         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
25054         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
25055         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
25056         (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
25057         (Default_DLL_Address): Removed.
25058
25059         * mlib-tgt-mingw.adb: Ditto.
25060         (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
25061
25062         * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
25063         the initial thread stack size.
25064
25065         * a-strmap.ads: Move package L to private part as it is not used in
25066         the spec. Found while reading code.
25067
25068 2004-06-25  Olivier Hainque  <hainque@act-europe.fr>
25069
25070         * tracebak.c: Introduce support for a GCC infrastructure based
25071         implementation of __gnat_backtrace.
25072
25073         * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
25074         any more. Use accessors instead. This eases maintenance and relaxes
25075         some alignment constraints.
25076         (_GNAT_Exception structure): Remove the Ada specific fields
25077         (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
25078         a-exexpr.adb.
25079         (is_handled_by, __gnat_eh_personality): Replace component references to
25080         exception structure by use of the new accessors.
25081
25082         * init.c (__gnat_initialize): Adjust comments to match the just
25083         reverted meaning of the -static link-time option.
25084
25085         * adaint.c (convert_addresses): Arrange not to define a stub for
25086         mips-irix any more, as we now want to rely on a real version from a
25087         recent libaddr2line.
25088
25089         * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
25090         the personality routine can use them and not have to rely on a C
25091         counterpart of the record anymore. This simplifies maintenance and
25092         relaxes the constraint of having Standard'Maximum_Alignment match
25093         BIGGEST_ALIGNMENT.
25094         Update comments, and add a section on the common header alignment issue.
25095
25096 2004-06-25  Geert Bosch  <bosch@gnat.com>
25097
25098         * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
25099         polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
25100
25101 2004-06-25  Robert Dewar  <dewar@gnat.com>
25102
25103         * gnat_rm.texi: Fix section on component clauses to indicate that the
25104         restriction on byte boundary placement still applies for bit packed
25105         arrays.
25106         Add comment on stack usage from Initialize_Scalars
25107
25108         * gnat_ugn.texi: Add documentation for -gnatyLnnn
25109
25110         * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
25111         limiting nesting level.
25112
25113         * usage.adb: Add line for -gnatyLnnn switch
25114
25115         * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
25116         sem_ch13.adb, exp_aggr.adb: Minor reformatting
25117
25118         * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
25119         type as well as on the subtype. This corrects a problem in freeze in
25120         setting alignments of atomic types.
25121
25122         * sem_eval.ads: Minor comment typo fixed
25123
25124         * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
25125         level.  Minor reformatting.
25126
25127         * fname.adb (Is_Predefined_File_Name): Require a letter after the
25128         minus sign. This means that file names like a--b.adb will not be
25129         considered predefined.
25130
25131         * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
25132         record Test new flag and give diagnostic for bad component clause.
25133         (Freeze_Entity): Set alignment of array from component alignment in
25134         cases where this is safe to do.
25135
25136         * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
25137         arrays.
25138
25139         * cstand.adb: (Create_Standard): Set alignment of String to 1
25140
25141         * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
25142
25143         * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
25144         code in the common constrained array cases.
25145
25146         * a-storio.adb: Change implementation to avoid possible alignment
25147         problems on machines requiring strict alignment (data should be moved
25148         as type Buffer, not type Elmt).
25149
25150         * checks.adb (Apply_Array_Size_Check): Improve these checks by
25151         killing the overflow checks which we really do not need (64-bits is
25152         enough).
25153
25154 2004-06-25  Vincent Celier  <celier@gnat.com>
25155
25156         * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
25157         (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
25158         inconditionally for the main project.
25159         (Recursive_Add_Archives.Add_Archive_Path): New procedure
25160         (Link_Executables.Check_Time_Stamps): New procedure
25161         (Link_Executables.Link_Foreign): New procedure
25162         Changes made to reduce nesting level of this package
25163         (Check): New procedure
25164         (Add_Switches): When not in quiet output, check that a switch is not
25165         the concatenation of several valid switches. If it is, issue a warning.
25166         (Build_Global_Archive): If the global archive is rebuilt, linking need
25167         to be done.
25168         (Compile_Sources): Rebuilding a library archive does not imply
25169         rebuilding the global archive.
25170         (Build_Global_Archive): New procedure
25171         (Build_Library): New name for Build_Archive, now only for library
25172         project
25173         (Check_Archive_Builder): New procedure
25174         (Create_Global_Archive_Dependency_File): New procedure
25175         (Gprmake): Call Build_Global_Archive before linking
25176         * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
25177         throughout.
25178         (Scan_Arg): Display the Copyright notice when -v is used
25179
25180         * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
25181         for gnatls.
25182
25183         * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
25184         COMPILE.
25185         Add new GNAT LIST qualifier /FILES=
25186         Added qualifier /DIRECTORY= to GNAT METRIC
25187         Added qualifier /FILES= to GNAT METRIC
25188         Added qualifier /FILES to GNAT PRETTY
25189
25190         * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
25191         to take into account both versions of the switch.
25192
25193         * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
25194         always be the last switch to the gcc driver. Disable switch storing so
25195         that switches automatically added by the gcc driver are not put in the
25196         ALI file.
25197
25198         * prj.adb (Project_Empty): Take into account changes in components of
25199         Project_Data.
25200
25201         * prj.ads (Languages_Processed): New enumaration value All_Languages.
25202
25203         * prj.ads (Project_Data): Remove component Lib_Elaboration: never
25204         used. Split Boolean component Ada_Sources_Present in two Boolean
25205         components Ada_Sources_Present and Other_Sources_Present.
25206         Minor reformatting
25207
25208         * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
25209         instead of Sources_Present.
25210         (Set_Ada_Paths.Add.Recursive_Add): Ditto
25211
25212         * prj-nmsc.adb: Minor reformatting
25213         (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
25214         (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
25215         Check_Ada_Naming_Scheme.
25216         Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
25217         throughout.
25218
25219         * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
25220         In_Limited.
25221         Make sure that all cycles where there is at least one "limited with"
25222         are detected.
25223         (Parse_Single_Project): New Boolean parameter In_Limited
25224
25225         * prj-proc.adb (Recursive_Check): When Process_Languages is
25226         All_Languages, call first Prj.Nmsc.Ada_Check, then
25227         Prj.Nmsc.Other_Languages_Check.
25228
25229         * prj-proc.adb (Process): Use Ada_Sources_Present or
25230         Other_Sources_Present (instead of Sources_Present) depending on
25231         Process_Languages.
25232
25233         * lang-specs.h: Keep -g and -m switches in the same order, and as the
25234         last switches.
25235
25236         * lib.adb (Switch_Storing_Enabled): New global Boolean flag
25237         (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
25238         False.
25239         (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
25240         False.
25241
25242         * lib.ads (Disable_Switch_Storing): New procedure.
25243
25244         * make.adb: Modifications to reduce nesting level of this package.
25245         (Check_Standard_Library): New procedure
25246         (Gnatmake.Check_Mains): New procedure
25247         (Gnatmake.Create_Binder_Mapping_File): New procedure
25248         (Compile_Sources.Compile): Add switch -gnatez as the last option
25249         (Display): Never display -gnatez
25250
25251         * Makefile.generic:
25252         When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
25253
25254         * gnatcmd.adb (Check_Project): New function
25255         (Process_Link): New procedure to reduce nesting depth
25256         (Check_Files): New procedure to reduce the nesting depth.
25257         For GNAT METRIC, include the inherited sources in extending projects.
25258         (GNATCmd): When GNAT LS is invoked with a project file and no files,
25259         add the list of files from the sources of the project file. If this list
25260         is too long, put it in a temp text files and use switch -files=
25261         (Delete_Temp_Config_Files): Delete the temp text file that contains
25262         a list of source for gnatpp or gnatmetric, if one has been created.
25263         (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
25264         in the project file is too large, create a temporary text file that
25265         list them and pass it to the tool with "-files=<temp text file>".
25266         (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
25267
25268         * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
25269         generated file is in not in Ada.
25270
25271         * gnatls.adb: Remove all parameters And_Save that are no longer used.
25272         (Scan_Ls_Arg): Add processing for -files=
25273         (Usage): Add line for -files=
25274
25275         * g-os_lib.adb (On_Windows): New global constant Boolean flag
25276         (Normalize_Pathname): When on Windows and the path starts with a
25277         directory separator, make sure that the resulting path will start with
25278         a drive letter.
25279
25280         * clean.adb (Clean_Archive): New procedure
25281         (Clean_Project): When there is non-Ada code, delete the global archive,
25282         the archive dependency files, the object files and their dependency
25283         files, if they exist.
25284         (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
25285
25286 2004-06-25  Thomas Quinot  <quinot@act-europe.fr>
25287
25288         * sinfo.ads: Fix typo in comment.
25289
25290         * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
25291         the TSS for remote access-to-subprogram types, since these TSS are
25292         always present once the type has been analyzed.
25293         (RAS_E_Dereference): Same.
25294
25295         * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
25296         reference raises Bad_Attribute, mark the reference as analyzed so the
25297         node (and any children resulting from rewrites that could have occurred
25298         during the analysis that ultimately failed) is not analyzed again.
25299
25300         * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
25301
25302         * exp_dist.adb: Minor comment fix.
25303
25304         * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
25305         type is an anonymous access type, no unchecked deallocation of the
25306         allocated object can occur. If the object is controlled, attach it with
25307         a count of 1. This allows attachment to the Global_Final_List, if
25308         no other relevant list is available.
25309         (Get_Allocator_Final_List): For an anonymous access type that is
25310         the type of a discriminant or record component, the corresponding
25311         finalisation list is the one of the scope of the type.
25312
25313 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
25314
25315         * sem_ch3.adb (Replace_Type): When computing the signature of an
25316         inherited subprogram, use the first subtype if the derived type
25317         declaration has no constraint.
25318
25319         * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
25320         before applying previous optimization. Minor code cleanup.
25321
25322         * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
25323         placed at the beginning of an unpacked record without explicit
25324         alignment, a slice of it will be aligned and does not need a copy when
25325         used as an actual.
25326
25327 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
25328
25329         PR ada/15591
25330         PR ada/15592
25331         * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
25332         reference is written with expressions mimicking parameters.
25333
25334 2004-06-25  Hristian Kirtchev  <kirtchev@gnat.com>
25335
25336         PR ada/15589
25337         * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
25338         STEP 2a. The constraints of a full type declaration of a derived record
25339         type are checked for conformance with those declared in the
25340         corresponding private extension declaration. The message
25341         "not conformant with previous declaration" is emitted if an error is
25342         detected.
25343
25344 2004-06-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
25345
25346         * g-traceb.ads: Document the need for -E binder switch in the spec.
25347
25348         * g-trasym.ads: Document the need for -E binder switch in the spec.
25349
25350 2004-06-25  Jose Ruiz  <ruiz@act-europe.fr>
25351
25352         * sem_prag.adb: Add handling of pragma Detect_Blocking.
25353
25354         * snames.h, snames.ads, snames.adb: Add entry for pragma
25355         Detect_Blocking.
25356
25357         * s-rident.ads: Change reference to pragma Detect_Blocking.
25358
25359         * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
25360         system.ads.
25361
25362         * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
25363         to indicate whether pragma Detect_Blocking is active.
25364
25365         * par-prag.adb: Add entry for pragma Detect_Blocking.
25366
25367         * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
25368         of not handling WITH.
25369         Note that this replaces the previous update which was incorrect.
25370
25371 2004-06-25  Javier Miranda  <miranda@gnat.com>
25372
25373         * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
25374         use-clauses to have a clean environment.
25375
25376         * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
25377         the installation of the use-clauses to stablish a clean environment in
25378         case of compilation of a separate unit; otherwise the call to
25379         use_one_package is protected by the barrier Applicable_Use.
25380
25381         * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
25382         the installation of the use-clauses to stablish a clean environment in
25383         case of compilation of a separate unit.
25384         (End_Use_Clauses): Minor comment cleanup.
25385
25386 2004-06-25  Sergey Rybin  <rybin@act-europe.fr>
25387
25388         * gnat_ugn.texi: Add description of the gnatpp 'files' switch
25389
25390 2004-06-23  Richard Henderson  <rth@redhat.com>
25391
25392         * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
25393
25394 2004-06-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25395
25396         * decl.c (elaborate_expression, elaborate_expression_1): Arguments
25397         now bool instead of int.
25398         (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
25399         * trans.c (gnu_switch_label_stack): New function.
25400         (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
25401         elaboration of renamed entity returns.
25402         (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
25403         (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
25404         (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
25405         (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
25406         DECL_SIZE_UNIT and simplify variable-sized case.
25407         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
25408         Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
25409         (gnat_stabilize_reference): Add arg to COMPONENT_REF.
25410         (build_unit_elab): Disable for now.
25411         * utils.c (mark_visited): New function.
25412         (pushdecl): Walk tree to call it for global decl.
25413         (update_pointer_to): Update all variants of pointer and ref types.
25414         Add arg to COMPONENT_REF.
25415         (convert): Likewise.
25416         Move check for converting between variants lower down.
25417         * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
25418         (build_allocator): Don't force type of MODIFY_EXPR.
25419         (gnat_mark_addressable, case VAR_DECL): Unconditionally call
25420         put_var_into_stack.
25421
25422 2004-06-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25423
25424         * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
25425         * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
25426         * decl.c (gnat_to_gnu_entity): Also set force_global for imported
25427         subprograms.
25428         * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
25429         all callers changed.
25430         (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
25431         the way that EXIT_STMT finds the loop label.
25432         (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
25433         (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
25434         (add_stmt): Use annotate_with_locus insted of setting directly.
25435         (pos_to_construct): Set TREE_PURPOSE of each entry to index.
25436         (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
25437         * utils.c (gnat_install_builtins): Install __builtin_memcmp.
25438         (build_vms_descriptor): Add extra args to ARRAY_REF.
25439         (convert): Use VIEW_CONVERT_EXPR between aggregate types.
25440         * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
25441         New cases.
25442         (build_binary_op): Don't make explicit CONVERT_EXPR.
25443         Add extra rgs to ARRAY_REF.
25444
25445 2004-06-14  Pascal Obry  <obry@gnat.com>
25446
25447         * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
25448         Windows.  Fix minor typo.
25449
25450         * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
25451         which is now supported on Windows. With this implementation using the
25452         Library Project feature is no different on Windows than on UNIX.
25453
25454 2004-06-14  Vincent Celier  <celier@gnat.com>
25455
25456         * makegpr.adb (Compile_Sources): Nothing to do when there are no
25457         non-Ada sources.
25458
25459         * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
25460
25461         * prj-part.adb (Parse_Single_Project): When a duplicate project name is
25462         found, show the project name and the path of the previously parsed
25463         project file.
25464
25465 2004-06-14  Ed Schonberg  <schonberg@gnat.com>
25466
25467         * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
25468         array, avoid copying the actual before the call.
25469
25470 2004-06-14  Thomas Quinot  <quinot@act-europe.fr>
25471
25472         * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
25473         Instead, allocate memory on worst-case alignment assumptions, and then
25474         return an aligned address within the allocated zone.
25475
25476 2004-06-14  Robert Dewar  <dewar@gnat.com>
25477
25478         * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
25479         elab entities in predefined units in No_Run_Time_Mode.
25480         (Gen_Adainit_C): Same fix
25481         (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
25482         units in No_Run_Time_Mode
25483         (Gen_Elab_Calls_C): Same fix
25484
25485         * symbols-vms-alpha.adb: Minor reformatting
25486
25487         * g-debpoo.ads: Minor reformatting
25488
25489         * lib.adb (In_Same_Extended_Unit): Version working on node id's
25490
25491         * lib.ads (In_Same_Extended_Unit): Version working on node id's
25492
25493         * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
25494         working on nodes.
25495
25496         * make.adb: Minor reformatting
25497
25498         * par-ch12.adb: Minor reformatting
25499
25500         * par-prag.adb: Add dummy entry for pragma Profile_Warnings
25501
25502         * prj-strt.adb: Minor reformatting
25503
25504         * restrict.ads, restrict.adb: Redo handling of profile restrictions to
25505         be more general.
25506
25507         * sem_attr.adb: Minor reformatting
25508
25509         * sem_ch7.adb: Minor reformatting
25510
25511         * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
25512         for type in the same unit as the object declaration.
25513
25514         * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
25515         static string expressions and not just string literals.
25516         Minor reformatting
25517         (Set_Warning): Reset restriction warning flag for restriction pragma
25518         Implement pragma Profile_Warnings
25519         Implement pragma Profile (Restricted)
25520         Give obolescent messages for old restrictions and pragmas
25521
25522         * snames.h, snames.ads, snames.adb: Add new entry for pragma
25523         Profile_Warnings.
25524
25525         * s-rident.ads: Add declarations for restrictions required by profile
25526         Restricted and profile Ravenscar.
25527
25528         * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
25529
25530         * gnat_ugn.texi: Correct some missing entries in the list of GNAT
25531         configuration pragmas.
25532
25533 2004-06-11  Vincent Celier  <celier@gnat.com>
25534
25535         * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
25536         gnatsym, when symbol policy is Restricted.
25537
25538         * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
25539         gnatsym, when symbol policy is Restricted.
25540
25541         * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
25542         read the symbol file.
25543         (Finalize): Fail in symbol policy Restricted if a symbol in the original
25544         symbol file is not in the object files. Do not create a new symbol file
25545         when symbol policy is Restricted.
25546
25547         * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
25548         in Scng.
25549
25550         * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
25551         Restricted.
25552         (Usage): Line for new switch -R
25553
25554         * make.adb (Initialize): When the platform is not VMS, add the
25555         directory where gnatmake is invoked in the front of the path, if
25556         gnatmake is invoked with directory information.  Change the Scan_Args
25557         while loop to a for loop.
25558         (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
25559         if Depth is equal or greater than the proposed depth, there is nothing
25560         to do.
25561         (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
25562         instead of 0.
25563
25564         * prj.ads: Add new symbol policy Restricted.
25565
25566         * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
25567         with the new parameters Check_All_Labels and Case_Location.
25568
25569         * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
25570         (Library_Symbol_File needs to be defined).
25571
25572         * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
25573         and Case_Location If Check_All_Labels is True, check that all values of
25574         the string type are used, and output warning(s) if they are not.
25575
25576         * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
25577         and Case_Location.
25578
25579         * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
25580
25581         * gnat_ugn.texi: Update documentation about the library directory in
25582         Library Projects.
25583
25584         * makegpr.adb (Display_Command): In verbose mode, also display the
25585         value of the CPATH env var, when the compiler is gcc.
25586         (Initialize): Change the Scan_Args while loop to a for loop
25587         (Compile_Individual_Sources): Change directory to object directory
25588         before compilations.
25589
25590         * symbols.ads: New symbol policy Restricted.
25591
25592 2004-06-11  Olivier Hainque  <hainque@act-europe.fr>
25593
25594         * a-except.adb (Raise_After_Setup family): Remove. The responsibility
25595         is now taken care of internally in the Exception_Propagation package
25596         and does not require clients assistance any more.
25597
25598         * a-exexpr.adb (Is_Setup_And_Not_Propagated,
25599         Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
25600         functions. Helpers to maintain a predicate required in the handling of
25601         occurrence transfer between tasks.
25602         This is now handled internally and does not require clients assistance
25603         for the setup/propagate separation anymore.
25604         (Setup_Exception, Propagate_Exception): Simplify the Private_Data
25605         allocation strategy, handle the Setup_And_Not_Propagated predicate and
25606         document.
25607
25608         * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
25609         raise_after_setup, now that everything is handled internally within the
25610         setup/propagation engine.
25611
25612 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
25613
25614         * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
25615         Add additional conditions for the case of an actual being a simple
25616         name or literal. Improve inlining by preventing the generation
25617         of temporaries with a short lifetime (one use).
25618
25619 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
25620
25621         PR ada/15587
25622         * einfo.ads: Minor comment updates for Has_Completion and
25623         E_Constant list of flags.
25624
25625         * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
25626         and constant redeclarations now set the Has_Completion flag of their
25627         defining identifiers.
25628
25629         * sem_ch7.adb (Analyze_Package_Spec): Add procedure
25630         Inspect_Deferred_Constant_Completion.
25631         Used to detect private deferred constants that have not been completed
25632         either by a constant redeclaration or pragma Import. Emits error message
25633         "constant declaration requires initialization expression".
25634
25635         * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
25636         completes a deferred constant.
25637
25638 2004-06-11  Geert Bosch  <bosch@gnat.com>
25639
25640         * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
25641
25642         * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
25643         calculating exponent for scaling denormal numbers.
25644         (Leading_Part): Properly raise Constraint_Error for zero or negative
25645         Adjustment.
25646         (Remainder): Properly raise Constraint_Error for zero divisor.
25647
25648 2004-06-11  Thomas Quinot  <quinot@act-europe.fr>
25649
25650         * sem_util.adb: Minor reformatting.
25651
25652         * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
25653         dereference when accessing the entry parameter record.
25654         (Check_Array_Type): Always check for possible implicit dereference.
25655         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
25656         Abort if a pointer is still present (denoting that an implicit
25657         dereference was left in the tree by the front-end).
25658
25659         * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
25660         dereference when accessing the entry parameter record.
25661         (Check_Array_Type): Always check for possible implicit dereference.
25662         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
25663         Abort if a pointer is still present (denoting that an implicit
25664         dereference was left in the tree by the front-end).
25665
25666 2004-06-11  Emmanuel Briot  <briot@act-europe.fr>
25667
25668         * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
25669         message, like the compiler itself does. Easier to parse the output.
25670
25671         * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
25672
25673         * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
25674         be base names, and not includes directories.
25675
25676 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
25677
25678         * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
25679         so that dependencies are properly taken into account by make.
25680
25681 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
25682
25683         PR ada/15622
25684         * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
25685         exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
25686
25687 2004-06-11  Jerome Guitton  <guitton@act-europe.fr>
25688
25689         * Makefile.in (install-gnatlib): install target-specific run-time files.
25690
25691         * Make-lang.in: Remove obsolete targets.
25692
25693 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
25694
25695         * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
25696         specification, to catch misuses of program unit names.
25697
25698         * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
25699         superfluous conversions in an instance.
25700
25701 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
25702
25703         PR ada/15403
25704         * sem_ch12.adb (Save_References): If operator node has been folded to
25705         enumeration literal, associated_node must be discarded.
25706
25707 2004-06-11  Jose Ruiz  <ruiz@act-europe.fr>
25708
25709         * s-stchop-vxworks.adb: Add required pragma Convention to
25710         Task_Descriptor because it is updated by a C function.
25711
25712 2004-06-08  Arnaud Charlet  <charlet@act-europe.fr>
25713
25714         PR ada/15568
25715         * Makefile.in: Remove target specific SO_OPT on IRIX
25716
25717 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25718
25719         * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
25720         (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
25721         (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
25722         (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
25723         (STMT_STMT, USE_STMT): New statement codes.
25724         (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
25725         * ada-tree.h: Reflect above changes.
25726         (struct tree_loop_id): Deleted.
25727         (union lang_tree_node, struct lang_decl, struct lang_type):
25728         Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
25729         and DECL_LANGUAGE_SPECIFIC to reflect these changes.
25730         (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
25731         (IS_ADA_STMT): New macro.
25732         * decl.c (annotate_decl_with_node): New function.
25733         (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
25734         (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
25735         Call add_stmt_with_node to do needed assignments.
25736         Add call to update setjmp buffer directly, not via EXPR_STMT.
25737         (maybe_variable): Argment GNAT_NODE deleted.
25738         * gigi.h (maybe_variable): Likewise.
25739         (make_transform, add_stmt_with_node, set_block_for_group): New.
25740         (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
25741         (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
25742         (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
25743         (set_lineno, set_lineno_from_sloc): Likewise.
25744         (record_code_position, insert_code_for): Likewise.
25745         (gnat_poplevel): Now returns void.
25746         (end_subprog_body): Now takes argument.
25747         * misc.c (cgraph.h, tree-inline.h): New includes.
25748         (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
25749         (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
25750         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
25751         (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
25752         (gnat_parse_file): Don't set immediate_size_expand.
25753         Call cgraph functions.
25754         (gnat_expand_expr): Remove most cases.
25755         (record_code_position, insert_code_for): Remove from here.
25756         * trans.c (toplev.h, tree-gimple.h): Now included.
25757         (discard_file_names): Deleted.
25758         (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
25759         (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
25760         (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
25761         (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
25762         (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
25763         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
25764         (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
25765         (set_block_for_group, add_stmt_list): Likewise.
25766         (start_stmt_group): Renamed from start_block_stmt.
25767         (end_stmt_group): Likewise, from end_block_stmt.
25768         (build_stmt_group): Likewise, from build_block_stmt, also add arg.
25769         (gigi): Don't set discard_file_names or call set_lineno.
25770         Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
25771         (tree_transform): Deleted, now renamed to be gnat_to_gnu.
25772         Numerous changes throughout to reflect new names and complete
25773         function-at-a-time implementation.
25774         (gnat_expand_stmt): Delete or comment out all cases.
25775         (process_inlined_subprograms): Use add_stmt.
25776         (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
25777         call set_lineno; also remove unneeded block handling.
25778         (process_type): Remove unneeded block handling.
25779         (build_unit_elab): Remove calls to deleted functions.
25780         * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
25781         (tree-dump.h): Likewise.
25782         (struct ada_binding_level): Add field jmpbuf_decl.
25783         (gnat_define_builtin, gnat_install_builtins): New.
25784         (gnat_gimplify_function, gnat_finalize): Likewise.
25785         (gnat_poplevel): No longer return BLOCK, set it instead.
25786         Remove code dealing with nested functions.
25787         (gnat_init_decl_processing): Also set size_type_node.
25788         Call gnat_install_builtins.
25789         (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
25790         (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
25791         Remove special-case for "main".
25792         (end_subprog_body): Add arg and rework for tree-ssa.
25793         (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
25794         Add case for BOOLEAN_TYPE.
25795         * utils2.c (rtl.h): Now include.
25796         (build_call_raise): Test Debug_Flag_NN directly.
25797         (build_call_alloc_dealloc): Don't use local stack allocation for now.
25798         (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
25799         (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
25800
25801 2004-06-07  Robert Dewar  <dewar@gnat.com>
25802
25803         * a-direct.ads, einfo.ads: Minor comment updates
25804
25805         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
25806         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
25807         s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
25808         s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
25809         s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
25810
25811         * s-interr-sigaction.adb: Remove unreferenced variable
25812         (Attached_Interrupts).  Minor reformatting.
25813         Avoid use of variable I (replace by J).
25814
25815         * par-ch10.adb: Fix text of one error message
25816
25817         * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
25818         exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
25819         exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
25820         opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
25821         par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
25822         par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
25823         sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
25824         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
25825         sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
25826         sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
25827         snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
25828         2005 support.
25829
25830 2004-06-07  Doug Rupp  <rupp@gnat.com>
25831
25832         * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
25833
25834         * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
25835
25836         * mlib-tgt-vms-ia64.adb: New file.
25837
25838         * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
25839         Add mlib-tgt-vms-ia64.adb
25840         Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
25841         Move to alpha specific ifeq section.
25842         Add VMS specific versions of symbols.adb
25843         Renaming of 5q vms files.
25844
25845         * 5qsystem.ads renamed to system-vms_64.ads.
25846
25847 2004-06-07  Vincent Celier  <celier@gnat.com>
25848
25849         * a-calend.ads: Add a GNAT Note comment after function Time_Of to
25850         explain that when a time of day corresponding to the non existing hour
25851         on the day switching to DST is specified, Split may return a different
25852         value for Seconds.
25853
25854         * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
25855         to GNAT PRETTY.
25856
25857         * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
25858         (Normalize_Pathname): Only resolve VMS logical names when on VMS.
25859
25860         * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
25861         to False.
25862         If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
25863         the linking options.
25864         (Build_Library.Check_Libs): On VMS, if there is a dependency on
25865         g-trasym.ads, set Gtrasymobj_Needed to True.
25866
25867         * prj-attr.adb: Add new package Metrics for gnatmetric
25868
25869         * prj-nmsc.adb (Record_Other_Sources): Put source file names in
25870         canonical case to take into account files with upper case characters on
25871         Windows.
25872         (Ada_Check): Load the reference symbol file name in the name buffer to
25873         check it, not the symbol file name.
25874
25875         * snames.ads, snames.adb: Add standard name Metrics (name of project
25876         file package for gnatmetric).
25877
25878         * vms_conv.ads: Add Metric to Comment_Type
25879
25880         * vms_conv.adb (Initialize): Add component dor Metric in Command_List
25881
25882         * vms_data.ads: Add qualifiers for GNAT METRIC
25883
25884         * makegpr.adb (Link_Executables): Take into account the switches
25885         specified in package Linker of the main project.
25886
25887 2004-06-07  Thomas Quinot  <quinot@act-europe.fr>
25888
25889         * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
25890         the index of the last element is Units.Last, not Units.Table'Last
25891         (which is usually not a valid index within the actually allocated
25892         storage for the table).
25893
25894         * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
25895         determines whether to generate a call to a checked storage pool
25896         Dereference action.
25897         Generate such a call only for a dereference that either comes from
25898         source, or is the result of rewriting a dereference that comes from
25899         source.
25900
25901 2004-06-07  Romain Berrendonner  <berrendo@act-europe.fr>
25902
25903         * bindgen.adb (Gen_Output_File): Add support for GAP builds.
25904
25905 2004-06-07  Eric Botcazou  <ebotcazou@act-europe.fr>
25906
25907         (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
25908         file level, elaborate the stride for inner dimensions in alignment
25909         units, not bytes.
25910
25911         * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
25912         in a comment.
25913
25914 2004-06-07  Javier Miranda  <miranda@gnat.com>
25915
25916         * exp_ch6.adb: Correct wrong modification in previous patch
25917
25918 2004-06-07  Vasiliy Fofanov  <fofanov@act-europe.fr>
25919
25920         * g-trasym.ads: Corrected comment to properly reflect level of support
25921         on VMS.
25922
25923 2004-06-07  Hristian Kirtchev  <kirtchev@gnat.com>
25924
25925         * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
25926         includes case of a variable referenced on the left hand side of an
25927         assignment, therefore remove redundant code. Variables and prefixes of
25928         indexed or selected components are now marked as referenced on left
25929         hand side. Warnings are now properly emitted when variables or prefixes
25930         are assigned but not read.
25931
25932         * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
25933         left hand side referenced variables. Private access types do not
25934         produce the warning "variable ... is assigned but never read".
25935         Add also additional checks to left hand side referenced variables.
25936         Aliased, renamed objects and access types do not produce the warning
25937         "variable ... is assigned but never read" since other entities may read
25938         the memory location.
25939
25940 2004-06-07  Jerome Guitton  <guitton@act-europe.fr>
25941
25942         * Makefile.in: In the powerpc/vxworks-specific section, restore
25943         EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
25944         by mistake).
25945
25946 2004-06-07  Ed Schonberg  <schonberg@gnat.com>
25947
25948         * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
25949         predefined operators.
25950         Removes spurious type errors from g-trasym-vms.adb.
25951
25952         * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
25953         distinct from the operator appearing in the source, call appropriate
25954         routine to insert conversions when needed, and complete resolution of
25955         node.
25956         (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
25957         interpretations for rewritten right operand.
25958         (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
25959         the other operand is overloaded and the context is a type conversion.
25960
25961 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25962
25963         * ada-tree.def (BLOCK_STMT): Now has two operands.
25964         (BREAK_STMT): New.
25965
25966         * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
25967
25968         * gigi.h: (gnat_poplevel): Now returns a tree.
25969
25970         * trans.c (end_block_stmt): Add arg; all callers changed.
25971         (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
25972         (start_block_stmt): Clear BLOCK_STMT_BLOCK.
25973         (add_stmt): Set TREE_TYPE.
25974         (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
25975         (gnat_expand_stmt, case BREAK_STMT): New case.
25976
25977         * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
25978
25979 2004-06-07  Jose Ruiz  <ruiz@act-europe.fr>
25980
25981         * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
25982         procedure Set_Stack_Size that is not needed.
25983
25984 2004-06-07  Sergey Rybin  <rybin@act-europe.fr>
25985
25986         * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
25987         used for gnatpp input file and for the files upon which it depends
25988
25989 2004-06-07  Ben Brosgol  <brosgol@gnat.com>
25990
25991         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
25992
25993 2004-06-07  Arnaud Charlet  <charlet@act-europe.fr>
25994
25995         * gnatvsn.ads: Bump version numbers appropriately.
25996         Add new build type.
25997
25998 2004-06-07  Pascal Obry  <obry@gnat.com>
25999
26000         * gnat_ugn.texi: Improve comments about imported names and link names
26001         on Windows. Add a note about the requirement to use -k gnatdll's option
26002         when working with a DLL which has stripped stdcall symbols (no @nn
26003         suffix).
26004
26005 2004-05-27  Vincent Celier  <celier@gnat.com>
26006
26007         * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
26008         COMMENTS_LAYOUT=UNTOUCHED
26009
26010         * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to
26011         symbols-vms-alpha.adb
26012
26013 2004-05-27  Thomas Quinot  <quinot@act-europe.fr>
26014
26015         * sem.ads: Clarify documentation on checks suppression.
26016
26017         * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.
26018
26019 2004-05-27  Ed Schonberg  <schonberg@gnat.com>
26020
26021         * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in
26022         the case of multiple derivations.
26023         (Is_Object_Reference): For a selected component, verify that the prefix
26024         is itself an object and not a value.
26025
26026         * sem_ch12.adb (Same_Instantiated_Constant): New name for
26027         Same_Instantiated_Entity.
26028         (Same_Instantiated_Variable): Subsidiary to
26029         Check_Formal_Package_Instance, to recognize actuals for in-out generic
26030         formals that are obtained from a previous formal package.
26031         (Instantiate_Subprogram_Body): Emit proper error when
26032         generating code and the proper body of a stub is missing.
26033
26034         * sem_ch4.adb (Remove_Address_Interpretations): If the operation still
26035         has a universal interpretation, do the disambiguation here.
26036
26037         * exp_ch4.adb (Expand_N_Type_Conversion,
26038         Expand_N_Unchecked_Type_Conversion): Special handling when target type
26039         is Address, to avoid typing anomalies when Address is a visible integer
26040         type.
26041
26042         * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address
26043         to determine whether a subprogram should not be marked Pure, even when
26044         declared in a pure package.
26045
26046 2004-05-27  Jose Ruiz  <ruiz@act-europe.fr>
26047
26048         * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.
26049
26050         * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length
26051         Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.
26052         Update the documentation about the Ravenscar profile, following the
26053         definition found in AI-249.
26054
26055         * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when
26056         setting the Profile (Ravenscar). This must be done in addition to
26057         setting the required restrictions.
26058
26059         * rtsfind.ads: Add the set of operations defined in package
26060         Ada.Interrupts.
26061
26062         * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment
26063         restriction.
26064
26065 2004-05-27  Eric Botcazou  <ebotcazou@act-europe.fr>
26066
26067         lang-specs.h: Always require -c or -S and always redirect to /dev/null
26068         if -gnatc or -gnats is passed.
26069
26070 2004-05-27  Hristian Kirtchev  <kirtchev@gnat.com>
26071
26072         * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as
26073         a significant reference. Warnings are now properly emitted when a
26074         discriminated type is not referenced.
26075
26076         * lib-xref.adb (Generate_Reference): A deferred constant completion,
26077         record representation clause or record type discriminant does not
26078         produce a reference to its corresponding entity. Warnings are now
26079         properly emitted when deferred constants and record types are not
26080         referenced.
26081
26082 2004-05-27  Geert Bosch  <bosch@gnat.com>
26083
26084         * Makefile.in: Use long version of libm routines on ia64 gnu/linux.
26085         Fixes ACATS Annex G tests.
26086
26087 2004-05-27  Robert Dewar  <dewar@gnat.com>
26088
26089         * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not
26090         handling WITH
26091
26092 2004-05-27  Arnaud Charlet  <charlet@act-europe.fr>
26093
26094         * s-interr.adb (Server_Task): Take into account case of early return
26095         from sigwait under e.g. linux.
26096
26097 2004-05-27  Sergey Rybin  <rybin@act-europe.fr>
26098
26099         * gnat_ugn.texi: Add description for the new gnatpp options:
26100          -rnb - replace the original source without creating its backup copy
26101          -c0 - do not format comments
26102
26103 2004-05-24  Geert Bosch  <bosch@gnat.com>
26104
26105         * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi
26106         with 192 bits of precision, sufficient to reduce a double-extended
26107         arguments X with a maximum relative error of T'Machine_Epsilon, for X
26108         in -2.0**32 .. 2.0**32.
26109         (Cos, Sin):  Always reduce arguments of 1/4 Pi or larger, to prevent
26110         reduction by the processor, which only uses a 68-bit approximation of
26111         Pi.
26112         (Tan): Always reduce arguments and compute function either using
26113         the processor's fptan instruction, or by dividing sin and cos as needed.
26114
26115 2004-05-24  Doug Rupp  <rupp@gnat.com>
26116
26117         * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid
26118         gcc error on 32/64 bit VMS.
26119
26120 2004-05-24  Olivier Hainque  <hainque@act-europe.fr>
26121
26122         * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,
26123         since this is what we get for stack overflows although not documented
26124         as such.
26125         Document the issues which may require adjustments to our signal
26126         handlers.
26127
26128 2004-05-24  Ed Schonberg  <schonberg@gnat.com>
26129
26130         * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the
26131         enclosing dynamic scope if the instantiation is within a generic unit.
26132
26133 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
26134
26135         * exp_dbug.ads: Fix typo.
26136
26137         * Makefile.in: s-osinte-linux-ia64.ads was misnamed.
26138         Rename it to its proper name: system-linux-ia64.ads
26139         (stamp-gnatlib1): Remove extra target specific run time files when
26140         setting up the rts directory.
26141
26142 2004-05-24  Javier Miranda  <miranda@gnat.com>
26143
26144         * einfo.ads, einfo.adb (Limited_Views): Removed.
26145         (Limited_View): New attribute that replaces the previous one. It is
26146         now a bona fide package with the limited-view list through the
26147         first_entity and first_private attributes.
26148
26149         * sem_ch10.adb (Install_Private_With_Clauses): Give support to
26150         limited-private-with clause.
26151         (Install_Limited_Withed_Unit): Install the private declarations of a
26152         limited-private-withed package. Update the installation of the shadow
26153         entities according to the new structure (see Build_Limited_Views)
26154         (Build_Limited_Views): Replace the previous implementation of the
26155         limited view by a package entity that references the first shadow
26156         entity plus the first shadow private entity (required for limited-
26157         private-with clause)
26158         (New_Internal_Shadow_Entity): Code cleanup.
26159         (Remove_Limited_With_Clause): Update the implementation to undo the
26160         new work carried out by Build_Limited_Views.
26161         (Build_Chain): Complete documentation.
26162         Replace Ada0Y by Ada 0Y in comments
26163         Minor reformating
26164
26165         * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access
26166         types the level of accessibility depends on the enclosing type
26167         declaration.
26168
26169         * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow
26170         entities. Complete documentation of previous change.
26171
26172 2004-05-24  Robert Dewar  <dewar@gnat.com>
26173
26174         * namet.adb: Minor reformatting
26175         Avoid use of name I (replace by J)
26176         Minor code restructuring
26177
26178         * sem_ch6.adb: Minor reformatting
26179
26180         * lib-writ.adb: Do not set restriction as active if this is a
26181         Restriction_Warning case.
26182
26183         * sem_prag.adb: Reset restriction warning flag if real pragma
26184         restriction encountered.
26185
26186         * s-htable.adb: Minor reformatting
26187         Change rotate count to 3 in Hash (improves hash for small strings)
26188
26189         * 5qsystem.ads: Add comments for type Address (no literals allowed).
26190
26191         * gnat_ugn.texi: Add new section of documentation "Code Generation
26192         Control", which describes the use of -m switches.
26193
26194 2004-05-24  Eric Botcazou  <ebotcazou@act-europe.fr>
26195
26196         trans.c (tree_transform) <N_Identifier>: Do the dereference directly
26197         through the DECL_INITIAL for renamed variables.
26198
26199 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
26200
26201         * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads
26202
26203 2004-05-19  Joel Brobecker  <brobecker@gnat.com>
26204
26205         * exp_dbug.ads: Correct comments concerning handling of overloading,
26206         since we no longer use $ anymore.
26207
26208 2004-05-19  Sergey Rybin  <rybin@act-europe.fr>
26209
26210         * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
26211         ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
26212         with illegal subunits.
26213
26214 2004-05-19  Ed Schonberg  <schonberg@gnat.com>
26215
26216         * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
26217         body with front-end inlining enabled, check whether an inline pragma
26218         appears immediately after the body and applies to it.
26219
26220         * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
26221         enabled and the pragma appears after the body of the subprogram.
26222
26223 2004-05-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26224
26225         Part of function-at-a-time conversion
26226
26227         * misc.c (adjust_decl_rtl): Deleted.
26228         (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
26229         Define.
26230
26231         * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
26232         (add_decl_stmt, add_stmt, block_has_vars): New functions.
26233         (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.
26234
26235         * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
26236         when making a decl.
26237         (gnat_to_gnu_entity): Likewise.
26238         Use add_stmt to update setjmp buffer.
26239         Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
26240         flush_addressof.
26241         No longer call adjust_decl_rtl.
26242         (DECL_INIT_BY_ASSIGN_P): New macro.
26243         (DECL_STMT_VAR): Likewise.
26244
26245         * trans.c (gigi): Call start_block_stmt to make the outermost
26246         BLOCK_STMT.
26247         (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
26248         Call start_block_stmt and end_block_stmt temporarily.
26249         Use gnat_expand_stmt instead of expand_expr_stmt.
26250         (add_decl_stmt): New function.
26251         (tree_transform): Call it.
26252         (add_stmt): Also emit initializing assignment for DECL_STMT if needed.
26253         (end_block_stmt): Set type and NULL_STMT.
26254         (gnat_expand_stmt): Make recursize call instead of calling
26255         expand_expr_stmt.
26256         (gnat_expand_stmt, case DECL_STMT): New case.
26257         (set_lineno_from_sloc): Do nothing if global.
26258         (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
26259         (start_block_stmt, add_stmt, end_block_stmt): New functions.
26260         (build_block_stmt): Call them.
26261         (gnat_to_code): Don't expand NULL_STMT.
26262         (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
26263         args.
26264         (tree_transform): Likewise.
26265         (tree_transform, case N_Null_Statement): Return NULL_STMT.
26266         (gnat_expand_stmt, case NULL_STMT): New case.
26267         (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
26268         IF_STMT_TRUE.
26269
26270         * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
26271         TREE_ADDRESSABLE.
26272
26273         * utils.c (create_var_decl): Do not call expand_decl or
26274         expand_decl_init.
26275         Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
26276         Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
26277         here.
26278         (struct e_stack): Add chain_next to GTY.
26279         (struct binding_level): Deleted.
26280         (struct ada_binding_level): New struct.
26281         (free_block_chain): New.
26282         (global_binding_level, clear_binding_level): Deleted.
26283         (global_bindings_p): Rework to see if no chain.
26284         (kept_level_p, set_block): Deleted.
26285         (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
26286         new data structure and work directly on BLOCK node.
26287         (gnat_poplevel): Similarly.
26288         (get_decls): Look at BLOCK_VARS.
26289         (insert_block): Work directly on BLOCK node.
26290         (block_has_var): New function.
26291         (pushdecl): Rework for new binding structures.
26292         (gnat_init_decl_processing): Rename and rework calls to pushlevel and
26293         poplevel.
26294         (build_subprog_body): Likewise.
26295         (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.
26296
26297         * ada-tree.def (DECL_STMT, NULL_STMT): New codes.
26298
26299         * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
26300         (DECL_STMT_VAR): Likewise.
26301
26302 2004-05-17  Robert Dewar  <dewar@gnat.com>
26303
26304         * restrict.ads, restrict.adb (Process_Restriction_Synonym): New
26305         procedure
26306
26307         * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
26308         of restriction synonyums by using
26309         Restrict.Process_Restriction_Synonyms.
26310
26311         * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym
26312
26313         * s-restri.ads (Tasking_Allowed): Correct missing comment
26314
26315         * s-rident.ads: Add entries for restriction synonyms
26316
26317         * ali.adb: Fix some problems with badly formatted ALI files that can
26318         result in infinite loops.
26319
26320         * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
26321         s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
26322         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
26323         s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
26324         s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
26325         s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
26326         s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
26327         s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
26328         s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
26329         a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
26330         exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
26331         s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
26332         s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
26333         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
26334         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
26335         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
26336         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
26337         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
26338         s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
26339         s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
26340         to Task_Id (minor cleanup).
26341
26342 2004-05-17  Vincent Celier  <celier@gnat.com>
26343
26344         * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
26345         directory separator.
26346
26347         * prj-proc.adb (Recursive_Process): Inherit attribute Languages from
26348         project being extended, if Languages is not declared in extending
26349         project.
26350
26351 2004-05-17  Javier Miranda  <miranda@gnat.com>
26352
26353         * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
26354         limited view of a visible sibling.
26355
26356 2004-05-14  Robert Dewar  <dewar@gnat.com>
26357
26358         * gnat_ugn.texi: Minor change to -gnatS documentation
26359
26360         * sprint.adb: Remove some instances of Assert (False) and for this
26361         purpose replace them by output of a ??? string.
26362
26363         * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
26364         Assert (False).
26365
26366         * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
26367         flag processing. This was suppressing required dependencies in
26368         No_Run_Time mode and is not needed since the binder does not generate
26369         references for things in libgnat anyway.
26370
26371         * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
26372         warning.
26373
26374 2004-05-14  Thomas Quinot  <quinot@act-europe.fr>
26375
26376         * gnat_ugn.texi: Document AIX-specific issue with initialization of
26377         resolver library.
26378
26379         * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
26380         action for the case of an actual parameter in an init proc call.
26381
26382 2004-05-14  Ed Schonberg  <schonberg@gnat.com>
26383
26384         * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
26385         subtype, check visible entities in base type.
26386
26387         * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
26388         actions if the object is a renaming.
26389
26390         * sem_ch12.adb (Same_Instantiated_Entity): Predicate for
26391         Check_Formal_Package_Instance, to determine more precisely when the
26392         formal and the actual denote the same entity.
26393
26394 2004-05-14  Javier Miranda  <miranda@gnat.com>
26395
26396         * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262
26397
26398         * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
26399         corresponding to a private_with must be removed from visibility; it
26400         will be made visible later, just before we analyze the private part of
26401         the package.
26402         (Check_Private_Child_Unit): Allow private_with clauses in public
26403         siblings.
26404         (Install_Siblings): Make visible the private entities of private-withed
26405         siblings.
26406         (Install_Withed_Unit): Do not install the private withed unit if we
26407         are compiling a package declaration and the Private_With_OK flag was
26408         not set by the caller. These declarations will be installed later,
26409         just before we analyze the private part of the package.
26410
26411         * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
26412         during the evaluation of the expression that initializes the object,
26413         decorate it with the expected type to avoid cascade errors.
26414         Code cleanup.
26415
26416         * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
26417         subprogram we have to install the private_with clauses after its
26418         specification has been analyzed (as documented in AI-262.TXT).
26419
26420         * sem_ch8.adb (Has_Private_With): New function. Determines if the
26421         current compilation unit has a private with on a given entity.
26422         (Find_Direct_Name): Detect the Beaujolais problem described in
26423         AI-262.TXT
26424
26425         * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
26426         provides the functionality of the function Is_Ancestor that was
26427         previously available in sem_ch10. It has been renamed to avoid
26428         overloading.
26429
26430         * sprint.adb (Sprint_Node_Actual): Print limited_with clauses
26431
26432 2004-05-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26433
26434         * utils.c (build_vms_descriptor): Use SImode pointers.
26435
26436 2004-05-14  Vasiliy Fofanov  <fofanov@act-europe.fr>
26437
26438         * gnat_ugn.texi: Revised chapter "GNAT and Libraries".
26439
26440 2004-05-14  GNAT Script  <nobody@gnat.com>
26441
26442         * Make-lang.in: Makefile automatically updated
26443
26444 2004-05-14  Arnaud Charlet  <charlet@act-europe.fr>
26445
26446         Renaming of target specific files for clarity
26447
26448         * Makefile.in: Rename GNAT target specific files.
26449
26450         * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
26451         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,
26452         3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,
26453         3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,
26454         3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,
26455         3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,
26456         42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,
26457         4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,
26458         4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,
26459         4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,
26460         4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,
26461         4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,
26462         51osinte.adb, 51osinte.ads, 51system.ads,
26463         52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,
26464         55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,
26465         56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,
26466         56tpopsp.adb, 57system.ads, 58system.ads,
26467         5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,
26468         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
26469         5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,
26470         5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,
26471         5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,
26472         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
26473         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,
26474         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
26475         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
26476         5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,
26477         5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,
26478         5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,
26479         5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,
26480         5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,
26481         5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,
26482         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
26483         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
26484         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
26485         5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,
26486         5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,
26487         5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,
26488         5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,
26489         5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,
26490         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
26491         5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,
26492         5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,
26493         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
26494         5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,
26495         5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
26496         5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,
26497         5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,
26498         5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,
26499         5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,
26500         5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,
26501         5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,
26502         5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,
26503         7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,
26504         7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,
26505         7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,
26506         7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.
26507
26508         * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,
26509         a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,
26510         a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,
26511         a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,
26512         a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,
26513         a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,
26514         a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,
26515         a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,
26516         a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
26517         a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,
26518         g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,
26519         g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,
26520         g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,
26521         g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,
26522         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,
26523         g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
26524         g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,
26525         g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,
26526         interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,
26527         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,
26528         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
26529         mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,
26530         s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,
26531         s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,
26532         s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,
26533         s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,
26534         s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,
26535         s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,
26536         s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,
26537         s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,
26538         s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,
26539         s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,
26540         s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,
26541         s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,
26542         s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,
26543         s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
26544         s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,
26545         s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,
26546         s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,
26547         s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,
26548         s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,
26549         s-osinte-vms.ads, s-osinte-vxworks.adb,
26550         s-osinte-vxworks.ads, s-osprim-mingw.adb,
26551         s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,
26552         s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,
26553         s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,
26554         s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,
26555         s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,
26556         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
26557         s-stchop-vxworks.adb, s-taprop-dummy.adb,
26558         s-taprop-hpux-dce.adb, s-taprop-irix.adb,
26559         s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
26560         s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,
26561         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
26562         s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,
26563         s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,
26564         s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,
26565         s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,
26566         s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,
26567         s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,
26568         s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,
26569         s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,
26570         s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,
26571         s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,
26572         s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,
26573         s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,
26574         s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
26575         s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,
26576         symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,
26577         system-hpux.ads, system-interix.ads, system-irix-n32.ads,
26578         system-irix-o32.ads, system-linux-x86_64.ads,
26579         system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
26580         system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,
26581         system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,
26582         system-unixware.ads, system-vms.ads, system-vms-zcx.ads,
26583         system-vxworks-alpha.ads, system-vxworks-m68k.ads,
26584         system-vxworks-mips.ads, system-vxworks-ppc.ads,
26585         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files
26586         above.
26587
26588 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
26589
26590         * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
26591
26592 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
26593
26594         Merge from tree-ssa-20020619-branch.
26595
26596         * config-lang.in (boot_language, build_by_default): Set
26597         to no.
26598         * utils.c (unchecked_convert): Use OEP_ONLY_CONST.
26599         (max_size): Add static chain op for call_expr.
26600
26601 2004-05-12  Richard Sandiford  <rsandifo@redhat.com>
26602
26603         PR target/15331
26604         * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.
26605
26606 2004-05-11  Roger Sayle  <roger@eyesopen.com>
26607
26608         * utils.c (max_size): Use MIN_EXPR to find the minimum value of a
26609         COND_EXPR.
26610
26611 2004-05-10  Doug Rupp  <rupp@gnat.com>
26612
26613         * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
26614         system.aux_dec.
26615
26616         * s-auxdec.ads: Add Short_Address subtype (moved here from System).
26617
26618         * Makefile.in: [VMS]: Add translation for 5qauxdec.ads.
26619
26620         * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
26621         Fixes undefined symbols in IA64 gnatlib.
26622
26623         * 5vinmaop.adb: Reference s-auxdec for Short_Address.
26624
26625         * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
26626         Short_Address). This will be moved to system.auxdec.
26627
26628 2004-05-10  Thomas Quinot  <quinot@act-europe.fr>
26629
26630         * sem_util.adb: Replace test for presence of a node that is always
26631         present with a call to Discard_Node.
26632
26633         * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
26634         Analyze on the library unit node after generation of distribution stub
26635         constructs.  The call was a no-op because Unit_Node has already been
26636         Analyzed, and the tree fragments for the distribution stubs are
26637         analyzed as they are inserted in Exp_Dist.
26638         Update comment regarding to distribution stubs to reflect that we
26639         do not generate stub in separate files anymore.
26640
26641         * einfo.ads: Clarify the fact that a tagged private type has the
26642         E_Record_Type_With_Private Ekind.
26643
26644         * erroutc.adb: Minor reformatting
26645
26646         * erroutc.ads (Max_Msg_Length): Increase to cover possible larger
26647         values if line length is increased using -gnatyM (noticed during code
26648         reading).
26649
26650         * eval_fat.adb: Minor reformatting
26651         Put spaces around exponentiation operator
26652
26653 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
26654
26655         PR ada/15005
26656         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
26657         has been rewritten as an explicit dereference, retrieve type of
26658         original node to check for possibly unconstrained record type.
26659
26660 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
26661
26662         * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
26663         overriding, use the operation of the parent unconditionally.
26664
26665         * sem_ch4.adb (Remove_Address_Interpretations): Remove address
26666         operation when either operand is a literal, to avoid further
26667         ambiguities.
26668
26669         * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
26670         overridden by a previous explicit declaration, mark the previous entity
26671         as overriding.
26672
26673         * sem_disp.adb (Check_Dispatching_Operation): New predicate
26674         Is_Visibly_Controlled, to determine whether a declaration of a
26675         primitive control operation for a derived type overrides an inherited
26676         one. Add warning if the explicit declaration does not override.
26677
26678 2004-05-10  Vincent Celier  <celier@gnat.com>
26679
26680         * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
26681         some cases when the sources are no longer present.
26682
26683         * make.adb (Collect_Arguments): Fail if an external source, not part
26684         of any project need to be compiled, when switch -x has not been
26685         specified.
26686
26687         * makeusg.adb: Document new switch -x
26688
26689         * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
26690         defaulted to False.
26691
26692         * switch-m.adb (Scan_Make_Switches): New switch -x
26693
26694         * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
26695         gnatmake switch -x.
26696
26697         * gnat_ugn.texi: Document new gnatmake switch -x
26698
26699 2004-05-10  Eric Botcazou  <ebotcazou@act-europe.fr>
26700
26701         * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.
26702
26703         * utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
26704         (process_attributes): Likewise.
26705
26706 2004-05-10  Joel Brobecker  <brobecker@gnat.com>
26707
26708         * s-inmaop.ads: Fix spelling mistake in one of the comments.
26709
26710 2004-05-10  Robert Dewar  <dewar@gnat.com>
26711
26712         * gnat_ugn.texi: Document that for config pragma files, the maximum
26713         line length is always 32767.
26714
26715         * gnat_rm.texi: For pragma Eliminate, note that concatenation of string
26716         literals is now allowed.
26717
26718         * gnat-style.texi: Remove statement about splitting long lines before
26719         an operator rather than after, since we do not follow this rule at all.
26720         Clarify rule (really lack of rule) for spaces around exponentiation
26721
26722         * sem_elim.adb: Allow concatenation of string literals as well as a
26723         single string literal for pragma arguments.
26724
26725         * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function
26726
26727         * a-textio.adb (Terminate_Line): Do not add line feed if nothing
26728         written for append case.
26729
26730         * frontend.adb: Changes to avoid checking max line length in config
26731         pragma files.
26732
26733         * g-os_lib.ads: Minor reformatting
26734
26735         * mlib-utl.adb: Do not define Max_Line_Length locally (definition was
26736         wrong in any case. Instead use standard value. Noticed during code
26737         reading.
26738
26739         * opt.ads (Max_Line_Length): New field, used to implement removal of
26740         limitation on length of lines when scanning config pragma files.
26741
26742         * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
26743         makeutl.ads, makeutl.adb: Minor reformatting
26744
26745         * scn.adb: Do not check line length while scanning config pragma files
26746         Do not check line length while scanning out license information
26747
26748         * scng.adb: Changes to avoid line length checks while parsing config
26749         pragma files.
26750
26751 2004-05-10  GNAT Script  <nobody@gnat.com>
26752
26753         * Make-lang.in: Makefile automatically updated
26754
26755 2004-05-05  Arnaud Charlet  <charlet@act-europe.fr>
26756
26757         * osint.adb (Find_Program_Name): Fix handling of VMS version
26758         number.
26759
26760 2004-05-05  Emmanuel Briot  <briot@act-europe.fr>
26761
26762         * g-os_lib.ads (Invalid_Time): New constant
26763
26764         * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now
26765         return OS_Time instead of time_t to match what is imported by Ada.
26766         Now return -1 if the file doesn't exist, instead of a random value
26767
26768 2004-05-05  Robert Dewar  <dewar@gnat.com>
26769
26770         * usage.adb: Add line for -gnatR?s switch
26771
26772         * sem_ch13.adb, exp_ch2.adb: Minor reformatting
26773
26774         * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size
26775         and for Match (Data_First, Data_last)
26776
26777         * lib-writ.adb (Write_With_Lines): Ensure that correct index number is
26778         written when we are dealing with multi-unit files.
26779
26780 2004-05-05  Jerome Guitton  <guitton@act-europe.fr>
26781
26782         * Makefile.in: Remove unused targets and variables.
26783
26784 2004-05-05  Vincent Celier  <celier@gnat.com>
26785
26786         * switch-m.adb: New gnatmake switch -eI
26787
26788         * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and
26789         of new gnatmake switch -eInnn.
26790
26791         * makegpr.adb: Take into account new parameters Index and Src_Index in
26792         Prj.Util.
26793
26794         * clean.adb: Implement support for multi-unit sources, including new
26795         switch -i.
26796
26797         * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter
26798         Src_Index.
26799
26800         * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0
26801         (Extract_From_Q): New out parameter Index
26802         (Mark, Is_Marked): Subprograms moved to Makeutl
26803         (Switches_Of): New parameter Source_Index
26804         (Add_Switch): New parameter Index
26805         (Check): New parameter Source_Index
26806         (Collect_Arguments): New parameter Source_Index
26807         (Collect_Arguments_And_Compile): New parameter Source_Index
26808         (Compile): New parameter Source_Index
26809         Put subprograms in alphabetical order
26810         Add support for multi-source sources, including in project files.
26811
26812         * makeutl.ads, makeutl.adb (Unit_Index_Of): New function
26813         (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from
26814         Make.
26815
26816         * makeusg.adb: New gnatmake switch -eInnn
26817
26818         * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to
26819         Prj.Util.Value_Of.
26820
26821         * opt.ads (Main_Index): New variable, defaulted to 0.
26822
26823         * osint.ads, osinte.adb (Add_File): New parameter Index
26824         (Current_Source_Index): New function
26825
26826         * prj.adb: Take into account new components Index and Src_Index
26827
26828         * prj.ads (String_Element): New component Index
26829         (Variable_Value): New component Index
26830         (Array_Element): New component Src_Index
26831
26832         * prj-attr.adb: Indicate that optional index may be specified for
26833         attributes Main, Executable, Spec, Body and some of Switches.
26834
26835         * prj-attr.ads (Attribute_Kind): New values for optional indexes
26836         (Attribute_Record): New component Optional_Index
26837
26838         * prj-com.ads (File_Name_Data): New component Index
26839
26840         * prj-dect.adb (Parse_Attribute_Declaration): Process optional index
26841
26842         * prj-env.adb (Put): Output optional index
26843
26844         * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and
26845         attributes Spec and Body.
26846
26847         * prj-nmsc.adb: Process optional indexes
26848
26849         * prj-pp.adb: Ouput "at" for optional indexes
26850
26851         * prj-proc.adb: Take into account optional indexes
26852
26853         * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter
26854         Optional_Index. For string literal,
26855         process optional index when Optional_Index is True.
26856         (Parse_Expresion): New Boolean parameter Optional_Index
26857
26858         * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function
26859         (Set_Source_Index_Of): New procedure
26860
26861         * prj-util.adb (Executable_Of, Value_Of): Take into account optional
26862         index.
26863
26864         * prj-util.ads (Executable_Of): New parameter Index
26865         (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):
26866         New parameter Src_Index, defaulted to 0.
26867
26868 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
26869
26870         PR ada/15257
26871         * sem_ch3.adb (Access_Definition): If this is an access parameter
26872         whose designated type is imported through a limited_with clause, do
26873         not add the enclosing subprogram to the list of private dependents of
26874         the type.
26875
26876 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
26877
26878         PR ada/15258
26879         * sem_ch6.adb (Base_Types_Match): True if one type is imported through
26880         a limited_with clause, and the other is its non-limited view.
26881
26882 2004-05-05  Thomas Quinot  <quinot@act-europe.fr>
26883
26884         * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
26885
26886         * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
26887         exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
26888         Stand.Boolean_Literals to produce references to entities
26889         Standard_False and Standard_True from compile-time computed boolean
26890         values.
26891
26892         * stand.ads (Boolean_Literals): New variable, provides the entity
26893         values for False and True, for use by the expander.
26894
26895 2004-05-05  Doug Rupp  <rupp@gnat.com>
26896
26897         * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype
26898         5vinmaop.adb: Unchecked convert Short_Address vice Address
26899
26900         * adaint.c, raise.c: Caste CRTL function return value
26901         to avoid gcc error on 32/64 bit IVMS.
26902
26903         * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and
26904         target = IA64/VMS.
26905
26906         * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.
26907
26908         * 5qsystem.ads (Address): Declare as Long_Integer
26909         (Short_Address): Declare as 32 bit subtype of Address
26910         Declare  abstract address operations to avoid gratuitous ambiguities.
26911
26912 2004-05-05  Jose Ruiz  <ruiz@act-europe.fr>
26913
26914         * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)
26915         instead of the old Boolean_Entry_Barriers.
26916         Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.
26917
26918 2004-05-05  GNAT Script  <nobody@gnat.com>
26919
26920         * Make-lang.in: Makefile automatically updated
26921
26922 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
26923
26924         * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.
26925
26926 2004-05-03  Olivier Hainque  <hainque@act-europe.fr>
26927
26928         PR ada/15152
26929         * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
26930         alone. Replacing object references by literals is inappropriate in a
26931         so low level context.
26932
26933 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
26934
26935         * a-exexpr.adb: Add comments
26936
26937 2004-05-03  Joel Brobecker  <brobecker@gnat.com>
26938
26939         * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to
26940         declare the Ancestor_Tags array in Type_Specific_Data with a small size
26941         without risking a bounds check error when accessing one of its
26942         components.
26943         (Type_Specific_Data): Define Ancestor_Tags as a small array.
26944         This prevents us from hitting a limitation during the debug info
26945         generation when using stabs.
26946
26947         * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a
26948         small array.
26949         This prevents us from hitting a limitation during the debug info
26950         generation when using stabs.
26951
26952 2004-05-03  Eric Botcazou  <ebotcazou@act-europe.fr>
26953
26954         lang-specs.h: Remove -gnatz* from specs.
26955
26956 2004-05-03  Vincent Celier  <celier@gnat.com>
26957
26958         * gprmake.adb, makegpr.ads, makegpr.adb: New files.
26959
26960         * Make-lang.in, Makefile.in: Add gprmake
26961
26962 2004-05-03  Thomas Quinot  <quinot@act-europe.fr>
26963
26964         * sem_aggr.adb: Fix typo in comment.
26965
26966 2004-05-03  Robert Dewar  <dewar@gnat.com>
26967
26968         * make.adb: Minor reformatting
26969
26970         * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function
26971
26972         * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address
26973         so that it works when address is not a private type.
26974
26975         * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal
26976         properly with rewritten unchecked conversions. This prevents
26977         order-of-elaboration issues that can otherwise arise.
26978         (Minimum_Size): Don't check size of access types under VMS
26979
26980         * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove
26981         interpretations of integer literals as type System.Address.
26982
26983         * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function
26984         (Is_Descendent_Of): New function
26985
26986 2004-05-03  Jose Ruiz  <ruiz@act-europe.fr>
26987
26988         * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
26989         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.
26990         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.
26991
26992         * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead
26993         of the old Max_Entry_Queue_Depth.
26994
26995         * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
26996         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length
26997         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment
26998
26999         * snames.ads: New entry for proper handling of Boolean_Entry_Barriers.
27000         New entry for proper handling of Max_Entry_Queue_Depth.
27001         New entry for proper handling of No_Dynamic_Interrupts.
27002
27003         * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that
27004         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
27005         Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes
27006         the GNAT specific restriction Max_Entry_Queue_Depth.
27007         Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes
27008         the GNAT specific restriction No_Dynamic_Interrupts.
27009
27010         * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers
27011         instead of the old Boolean_Entry_Barriers.
27012         Use the new restriction No_Dynamic_Attachment instead of the old
27013         No_Dynamic_Interrupts.
27014
27015         * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that
27016         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
27017
27018         * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead
27019         of the old Max_Entry_Queue_Depth.
27020
27021 2004-05-03  GNAT Script  <nobody@gnat.com>
27022
27023         * Make-lang.in: Makefile automatically updated
27024
27025 2004-04-29  Ed Schonberg  <schonberg@gnat.com>
27026
27027         * checks.adb (Enable_Range_Check): If the prefix of an index component
27028         is an access to an unconstrained array, perform check unconditionally.
27029
27030 2004-04-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27031
27032         * decl.c (gnat_to_gnu_field): Also call make_packable_type if
27033         Component_Clause.
27034
27035 2004-04-29  Olivier Hainque  <hainque@act-europe.fr>
27036
27037         * init.c (__gnat_install_handler, __gnat_error_handler): Remove
27038         alternate stack setting. There was no support for the tasking cases
27039         and the changes eventually caused a number of side-effect failures in
27040         the non-tasking case too.
27041
27042 2004-04-29  Eric Botcazou  <ebotcazou@act-europe.fr>
27043
27044         lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
27045         -gnats is passed.
27046
27047 2004-04-29  Vincent Celier  <celier@gnat.com>
27048
27049         * make.adb (Gnatmake): Increase max size of argument array for
27050         gnatbind for the potential addition of -F.
27051         If there are Stand-Alone Library projects, invoke gnatbind with -F to
27052         be sure that elaboration flags will be checked.
27053
27054         * switch-c.adb: Correct call to Scan_Pos for -gnateI
27055
27056 2004-04-29  Thomas Quinot  <quinot@act-europe.fr>
27057
27058         * sem_warn.adb (Check_References): Move '<access-variable> may be
27059         null' warning out of under Warn_On_No_Value_Assigned.
27060
27061 2004-04-29  Ed Falis  <falis@gnat.com>
27062
27063         * gnat_ugn.texi: Fixed texi error
27064
27065 2004-04-29  Robert Dewar  <dewar@gnat.com>
27066
27067         * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
27068         abstract operations if they come from predefined files.
27069
27070         * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
27071         Dynamic, not RM).
27072
27073         * s-addope.adb: Correct obvious error in mod function
27074
27075 2004-04-28  Andrew W. Reynolds  <awreynolds@mac.com>
27076
27077         * Makefile.in: Add target pairs for powerpc darwin*
27078         tasking support.
27079
27080         * a-intnam-darwin.ads, s-osinte-darwin.adb,
27081         s-osinte-darwin.ads, system-darwin-ppc.ads: New files.
27082
27083 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
27084
27085         * Makefile.in: Add target macro definitions for s390*-linux*.
27086         * system-linux-s390.ads: New file.
27087         * system-linux-s390x.ads: New file.
27088
27089 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
27090
27091         * gnat_ugn.texi: Correct argument to @setfilename.
27092
27093 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
27094
27095         * a-exexpr.adb (Unwind_Word): New data type.
27096         (Unwind_Exception): Use it as type of Private1 and Private2.
27097
27098         * raise.c (db_action_for): Fix debug printf.
27099
27100 2004-04-27  Ed Schonberg  <schonberg@gnat.com>
27101
27102         * a-wtmoio.ads: Formal type must be a modular type, not a signed
27103         integer type.
27104
27105 2004-04-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27106
27107         * decl.c (gnat_to_gnu_entity, case object): Call
27108         __builtin_update_setjmp_buf.
27109
27110         * gigi.h (update_setjmp_buf): Deleted.
27111         (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.
27112
27113         * misc.c: (update_setjmp_buf): Deleted.
27114
27115         * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue
27116         around block of RTL.
27117
27118         * utils.c (init_gigi_decls): Initialize update_setjmp_buf.
27119
27120 2004-04-26  Thomas Quinot  <quinot@act-europe.fr>
27121
27122         * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local
27123         subprogram for which no pragma All_Calls_Remote applies, store the
27124         address of the real subprogram in the underlying record type, so local
27125         dereferences do not go through the PCS.
27126
27127 2004-04-26  Robert Dewar  <dewar@gnat.com>
27128
27129         * i-c.ads: Add some type qualifications to avoid ambiguities when
27130         compiling with s-auxdec.ads and a non-private address type.
27131
27132 2004-04-26  Arnaud Charlet  <charlet@act-europe.fr>
27133
27134         * Makefile.rtl: Fix error in previous check-in:
27135         Add s-addope.o to non tasking object list (rather than tasking object
27136         list).
27137
27138 2004-04-26  Javier Miranda  <miranda@gnat.com>
27139
27140         * sem_aggr.adb: Fix typo in comments
27141         (Resolve_Aggr_Expr): Propagate the type to the nested aggregate.
27142         Required to check the null-exclusion attribute.
27143
27144         * sem_attr.adb (Resolve_Attribute): Check the accessibility level in
27145         case of anonymous access types in record and array components. For a
27146         component definition the level is the same of the enclosing composite
27147         type.
27148
27149         * sem_ch3.adb (Analyze_Component_Declaration): In case of components
27150         that are anonymous access types the level of accessibility depends on
27151         the enclosing type declaration. In order to have this information, set
27152         the scope of the anonymous access type to the enclosing record type
27153         declaration.
27154         (Array_Type_Declaration): In case of components that are anonymous
27155         access types the level of accessibility depends on the enclosing type
27156         declaration. In order to have this information, set the scope of the
27157         anonymous access type to the enclosing array type declaration.
27158
27159         * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous
27160         access type.
27161
27162         * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that
27163         renaming of anonymous access-to-constant types allowed if and only if
27164         the renamed object is access-to-constant.
27165
27166         * sem_util.adb (Type_Access_Level): In case of anonymous access types
27167         that are component_definition or discriminants of a nonlimited type,
27168         the level is the same as that of the enclosing component type.
27169
27170 2004-04-26  Sergey Rybin  <rybin@act-europe.fr>
27171
27172         * sem_elim.adb: Some minor code reorganization from code reading. Fix
27173         misprint in the function name (File_Name_Match).
27174
27175 2004-04-23  Laurent GUERBY <laurent@guerby.net>
27176
27177         * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
27178         install.
27179
27180 2004-04-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
27181
27182         * Make-lang.in (GNATBIND_OBJS): Add s-addope.o.
27183
27184 2004-04-23  Emmanuel Briot  <briot@act-europe.fr>
27185
27186         * adaint.c (__gnat_try_lock): No longer requires that the parent
27187         directory be writable, the directory itself is enough.
27188         (gnat_is_absolute_path): Change profile, so that the call from
27189         GNAT.OS_Lib can be made more efficient.
27190
27191         * adaint.h (gnat_is_absolute_path): Change profile, so that the call
27192         from GNAT.OS_Lib can be made more efficient.
27193
27194         * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid
27195         one copy of the file name. Found by code reading.
27196
27197 2004-04-23  Vincent Celier  <celier@gnat.com>
27198
27199         * gnat_ugn.texi: Add documentation for gnatmake switch -eL
27200         Correct documentation on gnatmake switches transmitted to the compiler
27201
27202         * ali.ads: Minor comment fix
27203
27204 2004-04-23  Javier Miranda  <miranda@gnat.com>
27205
27206         * sem_ch6.adb: (Confirming Types): Code cleanup
27207
27208         * decl.c (gnat_to_gnu_entity): Give support to anonymous access to
27209         subprogram types: E_Anonymous_Access_Subprogram_Type and
27210         E_Anonymous_Access_Protected_Subprogram_Type.
27211
27212 2004-04-23  Thomas Quinot  <quinot@act-europe.fr>
27213
27214         * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating
27215         whether a pragma All_Calls_Remote applies to the subprogram on which
27216         'Access is taken.
27217         No functional change is introduced by this revision; the new parameter
27218         will be used to allow calls to local RCI subprograms to be optimized
27219         to not use the PCS in the case where no pragma All_Calls_Remote applies,
27220         as is already done in the PolyORB implementation of the DSA.
27221
27222         * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating
27223         whether a pragma All_Calls_Remote applies to the subprogram on which
27224         'Access is taken.
27225         No functional change is introduced by this revision; the new parameter
27226         will be used to allow calls to local RCI subprograms to be optimized
27227         to not use the PCS in the case where no pragma All_Calls_Remote applies,
27228         as is already done in the PolyORB implementation of the DSA.
27229
27230 2004-04-23  Robert Dewar  <dewar@gnat.com>
27231
27232         * Makefile.rtl: Add entry for s-addope.o in run time library list
27233         * Make-lang.in: Add entry for s-addope.o to GNAT1 objects
27234         * s-addope.ads, s-addope.adb: New files.
27235
27236         * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
27237         s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
27238         s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
27239         System.Address to be non-private and signed.
27240
27241         * sem_elim.adb: Minor reformatting (fairly extensive)
27242         Some minor code reorganization from code reading
27243         Add a couple of ??? comments
27244
27245 2004-04-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27246
27247         * trans.c (tree_transform, build_unit_elab): Don't call getdecls.
27248         (tree_transform, case N_If_Statement): Remove non-determinism.
27249
27250         * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.
27251
27252 2004-04-23  Sergey Rybin  <rybin@act-europe.fr>
27253
27254         * gnat_rm.texi: Small fixes in the changes made in the 'pragma
27255         Eliminate' section.
27256
27257         * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is
27258         no longer used as a parameter name for Eliminate pragma).
27259
27260 2004-04-22  Laurent GUERBY <laurent@guerby.net>
27261
27262         PR optimization/14984
27263         PR optimization/14985
27264         * trans.c (gigi): Fix non determinism leading to bootstrap
27265         comparison failures.
27266
27267 2004-04-21  Pascal Obry  <obry@gnat.com>
27268
27269         * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])
27270         passed to spawnvp() to properly handle program pathname with spaces on
27271         Win32.
27272
27273 2004-04-21  Emmanuel Briot  <briot@act-europe.fr>
27274
27275         * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.
27276         (Allocate, Deallocate, Free_Physically): Make sure the tasks are
27277         unlocked in case of exceptions.
27278
27279 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
27280
27281         * gigi.h (get_target_no_dollar_in_label): Remove extern declaration.
27282         This function does not exist anymore.
27283
27284 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
27285
27286         * gnatbind.adb, gnatlink.adb: Update name of imported C symbol.
27287
27288         * link.c: Move variables to the __gnat name space.
27289
27290         * Makefile.in: list link.o explicitly when needed.
27291
27292         * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.
27293
27294 2004-04-21  Javier Miranda  <miranda@gnat.com>
27295
27296         * einfo.adb (Original_Access_Type): New subprogram
27297         (Set_Original_Access_Type): New subprogram
27298         (Write_Field21_Name): Write the name of the new field
27299
27300         * einfo.ads (Original_Access_Type): New field present in access to
27301         subprogram types.
27302         Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and
27303         E_Anonymous_Access_Protected_Subprogram_Type.
27304
27305         * lib-xref.adb (Output_One_Ref): Give support to anonymous access to
27306         subprogram types.
27307
27308         * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding
27309         to anonymous access to subprogram types.
27310
27311         * sem_attr.adb (Resolve_Attribute): Give support to anonymous access
27312         to subprogram types.
27313
27314         * sem_ch3.adb (Access_Definition): Complete decoration of entities
27315         corresponding to anonymous access to subprogram types.
27316         (Analyze_Component_Declaration): Add new actual to the call to
27317         subprogram replace_anonymous_access_to_protected_subprogram.
27318         (Array_Type_Declaration): Add new actual to the call to subprogram
27319         replace_anonymous_access_to_protected_subprogram.
27320         (Process_Discriminants): Add new actual to the call to subprogram
27321         replace_anonymous_access_to_protected_subprogram.
27322         (Replace_Anonymous_Access_To_Protected_Subprogram): New formal.
27323
27324         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
27325         formal.
27326
27327         * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous
27328         access to subprogram types.
27329
27330         * sem_util.adb (Has_Declarations): Addition of package_specification
27331         nodes.
27332
27333 2004-04-21  Ed Schonberg  <schonberg@gnat.com>
27334
27335         * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate
27336         inlined flags to renamed entity only if in current unit.
27337
27338 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
27339
27340         * s-parint.ads: Add DSA implementation marker.
27341
27342         * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the
27343         value of System.Partition_Interface.DSA_Implementation to determine
27344         what version of the distributed systems annex is available (no
27345         implementation, GLADE, or PolyORB).
27346
27347 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
27348
27349         * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.
27350
27351 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27352
27353         * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node
27354         with new type if alias sets differ.
27355         Fixes ACATS c41103b.
27356
27357 2004-04-21  Vincent Celier  <celier@gnat.com>
27358
27359         * prj.ads: Remove FORTRAN as an accepted language: not tested yet.
27360         Add array Lang_Args for the language specific compiling argument
27361         switches.
27362
27363         * gnat_ugn.texi: Explain in more details when a library is rebuilt.
27364
27365 2004-04-21  Sergey Rybin  <rybin@act-europe.fr>
27366
27367         * gnat_rm.texi: Update the descripton of the Eliminate pragma
27368         according to the recent changes in the format of the parameters of the
27369         pragma (replacing Homonym_Number with Source_Location).
27370
27371 2004-04-19  Arnaud Charlet  <charlet@act-europe.fr>
27372
27373         * 5isystem.ads: Removed, unused.
27374
27375         * gnat_rm.texi: Redo 1.13 change.
27376
27377 2004-04-19  Robert Dewar  <dewar@gnat.com>
27378
27379         * s-stoele.ads: Clean up definition of Storage_Offset (the new
27380         definition is cleaner, avoids the kludge of explicit Standard operator
27381         references, and also is consistent with a visible System.Address with
27382         no visible operations.
27383
27384         * s-geveop.adb: Add declarations to avoid assumption of visible
27385         operations on type System.Address (since these might not be available
27386         if Address is a non-private type for which the operations
27387         are made abstract).
27388
27389         * sem_eval.adb: Minor reformatting
27390
27391         * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
27392         s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
27393         reformatting (new function spec format).
27394
27395         * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
27396         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
27397         s-caun64.adb: Add declarations to avoid assumption of visible
27398         operations on type System.Address (since these might not be available
27399         if Address is a non-private type for which the operations are made
27400         abstract).
27401
27402         * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.
27403
27404         * exp_intr.adb: Minor comment update
27405
27406         * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.
27407
27408         * 5omastop.adb: Add declarations to avoid assumption of visible
27409         operations on type System.Address (since these might not be available
27410         if Address is a non-private type for which the operations
27411         are made abstract).
27412
27413 2004-04-19  Vincent Celier  <celier@gnat.com>
27414
27415         * switch-m.adb: (Scan_Make_Switches): Process new switch -eL
27416
27417         * prj-pars.ads (Parse): New Boolean parameter Process_Languages,
27418         defaulted to Ada.
27419
27420         * prj-proc.adb (Process): New Boolean parameter Process_Languages,
27421         defaulted to Ada.
27422         Call Check with Process_Languages.
27423         (Check): New Boolean parameter Process_Languages. Call Recursive_Check
27424         with Process_Languages.
27425         (Recursive_Check): New Boolean parameter Process_Languages. Call
27426         Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
27427         Process_Languages.
27428
27429         * prj-proc.ads (Process): New Boolean parameter Process_Languages,
27430
27431         * prj-util.ads, prj-util.adb (Executable_Of): New Boolean
27432         parameter Ada_Main, defaulted to True.
27433         Check for Ada specific characteristics only when Ada_Main is True.
27434
27435         * opt.ads: (Follow_Links): New Boolean flag for gnatmake
27436
27437         * prj.adb: (Project_Empty): Add new Project_Data components.
27438
27439         * prj.ads: New types and tables for non Ada languages.
27440         (Project_Data): New components Languages, Impl_Suffixes,
27441         First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
27442         Include_Path, Include_Data_Set.
27443
27444         * prj-env.ads, prj-env.adb: Minor reformatting
27445
27446         * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
27447         Put subprograms in alphabetical order
27448
27449         * prj-pars.adb (Parse): New Boolean parameter Process_Languages,
27450         defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
27451         Opt.Follow_Links.
27452
27453         * mlib-prj.adb: Back out modification in last version, as they are
27454         incorrect.
27455         (Build_Library.Check_Libs): Remove useless pragma Warnings (Off)
27456
27457         * make.adb: (Mains): Moved to package Makeutl
27458         (Linker_Opts): Moved to package Makeutl
27459         (Is_External_Assignment): Moved to package Makeutl
27460         (Test_If_Relative_Path): Moved to package Makeutl
27461         (Gnatmake): Move sorting of linker options to function
27462         Makeutl.Linker_Options_Switches.
27463
27464         * makeutl.ads, makeutl.adb: New files.
27465
27466         * Makefile.in: Add makeutl.o to the object files for gnatmake
27467
27468         * makeusg.adb: Add line for new switch -eL.
27469
27470         * gnatls.adb (Image): New function.
27471         (Output_Unit): If in verbose mode, output the list of restrictions
27472         specified by pragmas Restrictions.
27473
27474         * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
27475         Text_IO.
27476
27477         * a-calend.adb (Split): Shift the date by multiple of 56 years, if
27478         needed, to put it in the range 1970 (included) - 2026 (excluded).
27479         (Time_Of): Do not shift Unix_Min_Year (1970).
27480         Shift the date by multiple of 56 years, if needed, to put it in the
27481         range 1970 (included) - 2026 (excluded).
27482
27483         * adaint.h, adaint.c (__gnat_set_executable): New function.
27484
27485 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27486
27487         * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
27488         and pop GC context.
27489         (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
27490         (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
27491         (tree_transform, case N_Procedure_Call_Statement): Build a tree.
27492         (tree_transform, case N_Code_Statement): Likewise.
27493         (gnat_expand_stmt, case LABEL_STMT): Don't look at
27494         LABEL_STMT_FIRST_IN_EH.
27495         (gnat_expand_stmt, case ASM_STMT): New case.
27496
27497         * utils2.c (build_unary_op): Properly set TREE_READONLY of
27498         UNCONSTRAINED_ARRAY_REF.
27499
27500         * utils.c (poplevel): Temporarily push/pop GC context around inline
27501         function expansion.
27502
27503         * decl.c (maybe_variable): Properly set TREE_READONLY of
27504         UNCONSTRAINED_ARRAY_REF.
27505         (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.
27506
27507         * ada-tree.def: (ASM_STMT): New.
27508
27509         * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
27510         (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
27511         ASM_STMT_INPUT): New.
27512         (ASM_STMT_CLOBBER): Likewise.
27513
27514 2004-04-19  Thomas Quinot  <quinot@act-europe.fr>
27515
27516         * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
27517         general rcheck mechanism to raise Program_Error for E.4(18), instead
27518         of a custom raiser in System.Partition_Interface.
27519         Part of general cleanup work before PolyORB integration.
27520
27521         * snames.ads, snames.adb: Add new runtime library entities and names
27522         for PolyORB DSA.
27523
27524         * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
27525         exp_dist.
27526         (Build_Subprogram_Id): New subprogram provided by exp_dist
27527         Code reorganisation in preparation for PolyORB integration.
27528
27529         * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
27530         exp_dist.
27531         (Build_Subprogram_Id): New subprogram provided by exp_dist
27532
27533         * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
27534         actual parameter types for call to dereference of an
27535         access-to-subprogram type.
27536
27537         * rtsfind.ads: Add new runtime library entities and names for PolyORB
27538         DSA.
27539
27540         * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
27541         instead, which has the same behaviour here since we never pass it a
27542         NULL pointer.
27543
27544         * link.c (run_path_option, Solaris case): Use -Wl, as for other
27545         platforms.
27546
27547         * Makefile.in: adjust object file lists for gnatlink and gnatmake
27548         to account for new dependency upon Interfaces.C.Strings + link.o
27549         For x86 FreeBSD, use 86numaux.
27550
27551         * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
27552         from Mlib.Tgt to Mlib.
27553
27554         * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
27555         target-independent.
27556
27557         * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
27558         target-specific versions of this subprogram, now implemented as a
27559         target-independent function in Mlib.
27560
27561         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
27562         5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
27563         (Linker_Library_Path_Option): Remove target-specific versions of this
27564         subprogram, now implemented as a target-independent function in Mlib.
27565
27566         * atree.adb: (Allocate_Initialize_Node): New subprogram.
27567         Factors out node table slots allocation.
27568         (Fix_Parents): New subprogram.
27569         Encapsulate the pattern of fixing up parent pointers for syntactic
27570         children of a rewritten node.
27571         (New_Copy_Tree): Use New_Copy to copy non-entity nodes.
27572         (Rewrite): Use New_Copy when creating saved copy of original node.
27573         (Replace): Use Copy_Node to copy nodes.
27574
27575 2004-04-19  Javier Miranda  <miranda@gnat.com>
27576
27577         * sprint.adb (Sprint_Node_Actual): Give support to the new
27578         Access_To_Subprogram node available in Access_Definition nodes. In
27579         addition, give support to the AI-231 node fields: null-exclusion,
27580         all-present, constant-present.
27581
27582         * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram
27583
27584         * sinfo.ads, sinfo.adb:
27585         New field Access_To_Subprogram_Definition in Access_Definition nodes
27586
27587         * sem_ch6.adb (Process_Formals): Move here the code that creates and
27588         decorates internal subtype declaration corresponding to the
27589         null-excluding formal. This code was previously in Set_Actual_Subtypes.
27590         In addition, carry out some code cleanup on this code. In case of
27591         access to protected subprogram call
27592         Replace_Anonymous_Access_To_Protected_Subprogram.
27593         (Set_Actual_Subtypes): Code cleanup.
27594
27595         * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
27596         Find_Type in case of anonymous access renamings. Add warning in case of
27597         null-excluding attribute used in anonymous access renaming.
27598
27599         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
27600         subprogram
27601
27602         * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
27603         subprogram.
27604         (Access_Definition): In case of anonymous access to subprograms call
27605         the corresponding semantic routine to decorate the node.
27606         (Access_Subprogram_Declaration): Addition of some comments indicating
27607         some code that probably should be added here. Detected by comparison
27608         with the access_definition subprogram.
27609         (Analyze_Component_Declaration): In case of access to protected
27610         subprogram call Replace_Anonymous_Access_To_Protected.
27611         (Array_Type_Declaration): In case of access to protected subprogram call
27612         Replace_Anonymous_Access_To_Protected_Subprogram.
27613         (Process_Discriminants): In case of access to protected subprogram call
27614         Replace_Anonymous_Access_To_Protected_Subprogram.
27615
27616         * par.adb (P_Access_Definition): New formal that indicates if the
27617         null-exclusion part was present.
27618         (P_Access_Type_Definition): New formal that indicates if the caller has
27619         already parsed the null-excluding part.
27620
27621         * par-ch3.adb (P_Subtype_Declaration): Code cleanup.
27622         (P_Identifier_Declarations): Code cleanup and give support to renamings
27623         of anonymous access to subprogram types.
27624         (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
27625         (P_Array_Type_Definition): Give support to AI-254.
27626         (P_Component_Items): Give support to AI-254.
27627         (P_Access_Definition): New formal that indicates if the header was
27628         already parsed by the caller.
27629         (P_Access_Type_Definition): New formal that indicates if the caller has
27630         already parsed the null-excluding part.
27631
27632         * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
27633         call to P_Access_Definition.
27634
27635 2004-04-19  Geert Bosch  <bosch@gnat.com>
27636
27637         * checks.adb (Apply_Float_Conversion_Check): New procedure to implement
27638         the delicate semantics of floating-point to integer conversion.
27639         (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.
27640
27641         * eval_fat.adb (Machine_Mantissa): Moved to spec.
27642         (Machine_Radix): New function.
27643
27644         * eval_fat.ads (Machine_Mantissa): Moved from body for use in
27645         conversion checks.
27646         (Machine_Radix): New function also for use in conversion checks.
27647
27648 2004-04-19  Ed Schonberg  <schonberg@gnat.com>
27649
27650         * par-prag.adb (Source_File_Name_Project): Fix typo in error message.
27651
27652         * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
27653         to decorate the access-to-protected subprogram and the equivalent type.
27654
27655         * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
27656         to anonymous access to subprogram types.
27657
27658         * exp_ch4.adb (Expand_N_In): Preserve Static flag before
27659         constant-folding, for legality checks in contexts that require an RM
27660         static expression.
27661
27662         * exp_ch6.adb (Expand_N_Function_Call): If call may generate large
27663         temporary but stack checking is not enabled, increment serial number
27664         to so that symbol generation is consistent with and without stack
27665         checking.
27666
27667         * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
27668         independent on whether stack checking is enabled, caller must check
27669         the corresponding flag.
27670
27671         * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
27672         range checks.
27673         (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
27674         parent if it has discriminants.
27675         (Build_Derived_Private_Type): Constructed full view does
27676         not come from source.
27677         (Process_Discriminants): Default discriminants on a tagged type are
27678         legal if this is the internal completion of a private untagged
27679         derivation.
27680
27681         * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
27682         no constraint checks, because it corresponds to an existing object.
27683
27684         * sem_prag.adb (Process_Convention): Pragma applies
27685         only to subprograms in the same declarative part, i.e. the same unit,
27686         not the same scope.
27687
27688         * sem_res.adb (Valid_Conversion): In an instance or inlined body,
27689         ignore type mismatch on a numeric conversion if expression comes from
27690         expansion.
27691
27692 2004-04-19  Sergey Rybin  <rybin@act-europe.fr>
27693
27694         * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
27695         Homonym_Number parameter, add processing for Source_Location parameter
27696         corresponding.
27697         (Check_Eliminated): Remove the check for homonym numbers, add the check
27698         for source location traces.
27699
27700         * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
27701         with Arg_Source_Location corresponding to the changes in the format of
27702         the pragma.
27703
27704         * sem_prag.adb: (Analyze_Pragma): Changes in the processing of
27705         Eliminate pragma corresponding to the changes in the format of the
27706         pragma: Homonym_Number is replaced with Source_Location, two ways of
27707         distinguishing homonyms are mutially-exclusive.
27708
27709 2004-04-19  Joel Brobecker  <brobecker@gnat.com>
27710
27711         * get_targ.ads (Get_No_Dollar_In_Label): Remove.
27712
27713         * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
27714         No_Dollar_In_Label, no longer necessary, as it is always True.
27715         (Strip_Suffixes): Likewise.
27716
27717 2004-04-19  Gary Dismukes  <dismukes@gnat.com>
27718
27719         * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
27720         modulus for compatibility with size clause on targets with 16-bit
27721         Integer.
27722
27723         * layout.adb (Discrimify): In the case of private types, set Vtyp to
27724         full type to fix type mismatches on calls to size functions for
27725         discriminant-dependent array components.
27726
27727 2004-04-19  Jerome Guitton  <guitton@act-europe.fr>
27728
27729         * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
27730         lib.
27731
27732 2004-04-19  Pascal Obry  <obry@gnat.com>
27733
27734         * mdll-utl.adb (Locate): New version is idempotent.
27735
27736 2004-04-17  Laurent Guerby <laurent@guerby.net>
27737
27738         PR ada/14988 (partial)
27739         * impunit.adb: Fix typo.
27740
27741 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
27742
27743         * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,
27744         and install-rts-cert targets.  Remove all gnatlib and gnattools
27745         targets and all other rts-* targets (moved to libada).  Remove (now)
27746         unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND,
27747         TRACE, GNATLIBFLAGS, GNATLIBCFLAGS.
27748
27749 2004-04-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27750
27751         * trans.c (tree_transform): Shortcut returning error_mark_node for
27752         statements in annotate_only_mode.
27753         (tree_transform, case N_Label, case N_Return_Statement,
27754         N_Goto_Statement): Make statement tree instead of generating code.
27755         (tree_transform, case N_Assignment_Statement): No longer check
27756         type_annotate_only.
27757         (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
27758         RETURN_STMT): New.
27759         (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
27760         New fcns.
27761         (gnat_to_gnu): Collect any RTL generated and deal with it.
27762         (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
27763         (tree_transform case N_If_Statement): Rewrite to make IF_STMT.
27764         (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.
27765
27766         * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.
27767
27768         * ada-tree.def (EXPR_STMT): Fix typo in name.
27769         (BLOCK_STMT, IF_STMT): New nodes.
27770
27771         * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
27772         LABEL_STMT_FIRST_IN_EH): New macros.
27773         (RETURN_STMT_EXPR): Likewise.
27774
27775         * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
27776         IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.
27777
27778 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
27779
27780         * atree.ads: Correct documentation on extended nodes.
27781
27782         * link.c: Set run_path_option for FreeBSD.
27783
27784 2004-04-08  Vincent Celier  <celier@gnat.com>
27785
27786         * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
27787         one of the ALI file, do not link with DEC lib.
27788
27789         * par.adb Remove the last two characters ("%s" or "%b") when checking
27790         if a language defined unit may be recompiled.
27791
27792 2004-04-08  Ed Schonberg  <schonberg@gnat.com>
27793
27794         * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
27795         removal of abstract operation leaves no possible interpretation for
27796         expression.
27797
27798         * sem_eval.adb (Eval_Qualified_Expression): Use
27799         Set_Raises_Constraint_Error on node when needed, so that it does not
27800         get optimized away by subsequent optimizations.
27801
27802         * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
27803         operands even when they are not wrapped in a type conversion.
27804
27805 2004-04-08  Olivier Hainque  <hainque@act-europe.fr>
27806
27807         * sem_prag.adb (Set_Exported): Warn about making static as result of
27808         export only when the export is coming from source. This may be not
27809         be true e.g. on VMS where we expand export pragmas for exception codes
27810         together with imported or exported exceptions, and we don't want the
27811         user to be warned about something he didn't write.
27812
27813 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
27814
27815         * sem_util.adb (Note_Possible_Modification): Reorganize to remove code
27816         duplication between normal entities and those declared as renamings.
27817         No functional change.
27818
27819         * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
27820         inline functions returning an unconstrained result.
27821
27822 2004-04-08  Eric Botcazou  <ebotcazou@act-europe.fr>
27823
27824         * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
27825         conform to what other front-ends do.
27826
27827 2004-04-08  Doug Rupp  <rupp@gnat.com>
27828
27829         * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
27830         libraries.
27831
27832 2004-04-06  Pascal Obry  <obry@gnat.com>
27833
27834         * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32.
27835
27836         * osint.adb (Program_Name): Do not look past a directory separator.
27837
27838 2004-04-06  Thomas Quinot  <quinot@act-europe.fr>
27839
27840         * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists).
27841
27842         * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of
27843         requirement for preserving a copy of the original assignment node.
27844
27845         * sinfo.ads: Update comment (Original_Tree -> Original_Node).
27846
27847 2004-04-06  Olivier Hainque  <hainque@act-europe.fr>
27848
27849         (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits
27850         when supported.
27851
27852 2004-04-06  Ed Schonberg  <schonberg@gnat.com>
27853
27854         * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to
27855         operator calls in functional notation, and apply
27856         Universal_Interpretation to operands, not to their type.
27857
27858 2004-04-06  Robert Dewar  <dewar@gnat.com>
27859
27860         * 5wdirval.adb: Minor reformatting
27861
27862 2004-04-06  Ed Falis  <falis@gnat.com>
27863
27864         * gnat_rm.texi: Improve a reference to the GCC manual
27865
27866 2004-04-05  Vincent Celier  <celier@gnat.com>
27867
27868         * adaint.h, adaint.c: Add function __gnat_named_file_length
27869
27870         * impunit.adb: Add Ada.Directories to the list
27871
27872         * Makefile.in: Add VMS and Windows versions of
27873         Ada.Directories.Validity package body.
27874
27875         * Makefile.rtl: Add a-direct and a-dirval
27876
27877         * mlib-tgt.ads: Minor comment update.
27878
27879         * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
27880         a-direct.ads, a-direct.adb: New files.
27881
27882 2004-04-05  Vincent Celier  <celier@gnat.com>
27883
27884         PR ada/13620
27885         * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
27886         just to the compiler.
27887
27888 2004-04-05  Robert Dewar  <dewar@gnat.com>
27889
27890         * a-except.adb (Exception_Name_Simple): Make sure lower bound of
27891         returned string is 1.
27892
27893         * ali-util.adb: Use proper specific form for Warnings (Off, entity)
27894
27895         * eval_fat.ads: Minor reformatting
27896
27897         * g-curexc.ads: Document that lower bound of returned string values
27898         is always one.
27899
27900         * gnatlink.adb: Add ??? comment for previous change
27901         (need to document why this is VMS specific)
27902
27903         * s-stoele.ads: Minor reformatting
27904
27905         * tbuild.ads: Minor reformatting throughout (new function specs)
27906
27907         * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
27908         after WITH.
27909
27910         * scng.adb: Minor reformatting
27911
27912 2004-04-05  Geert Bosch  <bosch@gnat.com>
27913
27914         * eval_fat.adb (Machine): Remove unnecessary suppression of warning.
27915         (Leading_Part): Still perform truncation to machine number if the
27916         specified radix_digits is greater or equal to machine_mantissa.
27917
27918 2004-04-05  Javier Miranda  <miranda@gnat.com>
27919
27920         * par-ch3.adb: Complete documentation of previous change
27921         Correct wrong syntax documentation of the OBJECT_DECLARATION rule
27922         (aliased must appear before constant).
27923
27924         * par-ch4.adb: Complete documentation of previous change.
27925
27926         * par-ch6.adb: Complete documentation of previous change.
27927
27928         * sinfo.ads: Fix typo in commment.
27929
27930 2004-04-05  Ed Schonberg  <schonberg@gnat.com>
27931
27932         * sem_ch3.adb (Inherit_Components): If derived type is private and has
27933         stored discriminants, use its discriminants to constrain parent type,
27934         as is done for non-private derived record types.
27935
27936         * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
27937         Ada 2005 AI-310: an abstract non-dispatching operation is not a
27938         candidate interpretation in an overloaded call.
27939
27940         * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
27941         expression is Null and target type is not an access type (e.g. a
27942         non-private address type).
27943
27944 2004-04-05  Thomas Quinot  <quinot@act-europe.fr>
27945
27946         * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
27947         statement whose right-hand side is an inlined call, save a copy of the
27948         original assignment subtree to preserve enough consistency for
27949         Analyze_Assignment to proceed.
27950
27951         * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
27952         complete assignment subtree which is now unnecessary, as the expansion
27953         of inlined call has been improved to preserve a consistent assignment
27954         tree.  Note_Possible_Modification must be called only
27955         after checks have been applied, or else unnecessary checks will
27956         be generated.
27957
27958         * sem_util.adb (Note_Possible_Modification): Reorganise the handling
27959         of explicit dereferences that do not Come_From_Source:
27960          - be selective on cases where we must go back to the dereferenced
27961            pointer (an assignment to an implicit dereference must not be
27962            recorded as modifying the pointer);
27963          - do not rely on Original_Node being present (Analyze_Assignment
27964            calls Note_Possible_Modification on a copied tree).
27965
27966         * sem_warn.adb (Check_References): When an unset reference to a pointer
27967         that is never assigned is encountered, prefer '<pointer> may be null'
27968         warning over '<pointer> is never assigned a value'.
27969
27970 2004-04-05  Ramon Fernandez  <fernandez@gnat.com>
27971
27972         * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
27973         the ABI.
27974
27975 2004-04-05  Olivier Hainque  <hainque@act-europe.fr>
27976
27977         * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
27978         libexc. We currently don't reference anything in this library and
27979         linking it in triggers linker warnings we don't want to see.
27980
27981         * init.c: Update comments.
27982
27983 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27984
27985         * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
27986         * utils.c (create_field_decl): Likewise.
27987         * utils2.c (build_unary_op, gnat_build_constructor): Likewise.
27988
27989 2004-04-02  Arnaud Charlet  <charlet@act-europe.fr>
27990
27991         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.
27992         Replace ifinfo by ifnottex, to make makeinfo --html happy again.
27993         Add info directory entry and category.
27994
27995 2004-04-02  Jan Hubicka  <jh@suse.cz>
27996
27997         * utils.c: Include function.h
27998         (end_subprog_body): Clear DECL_STRUCT_FUNCTION.
27999
28000 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
28001
28002         PR ada/14150
28003         * Make-lang.in: Clean up generation of documentation
28004
28005         * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version
28006
28007         * xgnatug.adb: Removed, replaced by xgnatugn.adb
28008
28009         * xgnatugn.adb: Replaces xgnatug.adb
28010
28011         * gnat_ug.texi: Removed, replaced by gnat_ugn.texi
28012
28013         * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version
28014
28015         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
28016         gnat_ug_wnt.texi: Removed.
28017
28018 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
28019
28020         * utils2.c: Update copyright notice.
28021
28022 2004-04-01  Robert Dewar  <dewar@gnat.com>
28023
28024         * checks.adb: Minor reformatting throughout
28025         Note that prev checkin added RM reference to alignment warning
28026
28027 2004-04-01  Ed Schonberg  <schonberg@gnat.com>
28028
28029         * exp_aggr.adb (Get_Component_Val): Treat a string literal as
28030         non-static when building aggregate for bit-packed array.
28031
28032         * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a
28033         function call that is itself the actual in a procedure call, build
28034         temporary for it.
28035
28036         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is
28037         a string literal, create a temporary for it, constant folding only
28038         handles scalars here.
28039
28040 2004-04-01  Vincent Celier  <celier@gnat.com>
28041
28042         * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC,
28043         Error_Msg_SP): New empty procedures to instantiate the Scanner.
28044         (Style, Scanner): Instantiations of Styleg and Scng to be able to scan
28045         tokens.
28046         (Accumulate_Checksum, Initialize_Checksum): Remove procedures.
28047         (Get_File_Checksum): Use the instantiated scanner to scan all the tokens
28048         and get the checksum.
28049
28050         * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is
28051         already in the Q.
28052         Increase the Marking_Label at the end of the Multiple_Main_Loop,
28053         instead of at the beginning.
28054
28055         * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~'
28056         directly.
28057         (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if
28058         on VMS.
28059
28060         * osint.ads (Multi_Unit_Index_Character): New Character global variable
28061
28062         * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character,
28063         not '~' directly.
28064
28065         * par.adb: Remove test on file name to detect language defined units.
28066         Add test on unit name, after parsing, to detect language defined units
28067         that are not compiled with -gnatg (except System.RPC and its children)
28068
28069         * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the
28070         following units without style checking.
28071
28072         * switch-c.adb: Change -gnatC to -gnateI
28073
28074         * usage.adb: Document new switch -gnateInnn
28075
28076         * scng.adb (Accumulate_Token_Checksum): New procedure
28077         (Scan): Call Accumulate_Token_Checksum after each identifier, reserved
28078         word or literal number.
28079         (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral
28080         numbers.
28081
28082 2004-04-01  Thomas Quinot  <quinot@act-europe.fr>
28083
28084         * a-tasatt.adb,
28085         g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb,
28086         switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb,
28087         5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb,
28088         5vtpopde.adb: Add missing 'constant' keywords.
28089
28090 2004-04-01  Javier Miranda  <miranda@gnat.com>
28091
28092         * par-ch4.adb: (P_Allocator): Code cleanup
28093
28094         * sem_ch3.adb (Access_Definition): Properly set the null-excluding
28095         attribute.
28096
28097         * sinfo.ads: Complete documentation of previous change
28098
28099 2004-04-01  Pascal Obry  <obry@gnat.com>
28100
28101         * gnatlink.adb (Process_Binder_File): Remove duplicate linker options
28102         only on VMS.  This special handling was done because an old GNU/ld bug
28103         on Windows which has been fixed.
28104
28105 2004-04-01  GNAT Script  <nobody@gnat.com>
28106
28107         * Make-lang.in: Makefile automatically updated
28108
28109 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28110
28111         * decl.c (gnat_to_gnu_entity, make_type_from_size):
28112         Use TYPE_UNSIGNED, not TREE_UNSIGNED.
28113         * trans.c (tree_transform, convert_with_check): Likewise.
28114         * utils.c (gnat_signed_or_unsigned_type): Likewise.
28115         (build_vms_descriptor, unchecked_convert): Likewise.
28116         * utils2.c (nonbinary_modular_operation): Likewise.
28117
28118 2004-03-29  Javier Miranda  <miranda@gnat.com>
28119
28120         * checks.adb (Null_Exclusion_Static_Checks): New subprogram
28121         (Install_Null_Excluding_Check): Local subprogram that determines whether
28122         an access node requires a runtime access check and if so inserts the
28123         appropriate run-time check.
28124         (Apply_Access_Check): Call Install_Null_Excluding check if required
28125         (Apply_Constraint_Check): Call Install_Null_Excluding check if required
28126
28127         * checks.ads: (Null_Exclusion_Static_Checks): New subprogram
28128
28129         * einfo.ads: Fix typo in comment
28130
28131         * exp_ch3.adb (Build_Assignment): Generate conversion to the
28132         null-excluding type to force the corresponding run-time check.
28133         (Expand_N_Object_Declaration): Generate conversion to the null-excluding
28134         type to force the corresponding run-time check.
28135
28136         * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to
28137         the null-excluding type to force the corresponding run-time check.
28138
28139         * exp_ch6.adb (Expand_Call): Do not generate the run-time check in
28140         case of access types unless they have the null-excluding attribute.
28141
28142         * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing
28143         part.
28144
28145         * exp_util.ads: Fix typo in comment
28146
28147         * par.adb (P_Null_Exclusion): New subprogram
28148         (P_Subtype_Indication): New formal that indicates if the null-excluding
28149         part has been scanned-out and it was present
28150
28151         * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231
28152
28153         * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram
28154         (Aggregate_Constraint_Checks): Generate conversion to the null-excluding
28155         type to force the corresponding run-time check
28156         (Resolve_Aggregate): Propagate the null-excluding attribute to the array
28157         components
28158         (Resolve_Array_Aggregate): Carry out some static checks
28159         (Resolve_Record_Aggregate.Get_Value): Carry out some static check
28160
28161         * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null
28162         attribute must be set only if specified by means of the null-excluding
28163         part. In addition, we must also propagate the access-constant attribute
28164         if present.
28165         (Access_Subprogram_Declaration, Access_Type_Declaration,
28166         Analyze_Component_Declaration, Analyze_Object_Declaration,
28167         Array_Type_Declaration, Process_Discriminants,
28168         Analyze_Subtype_Declaration): Propagate the null-excluding attribute
28169         and carry out some static checks.
28170         (Build_Derived_Access_Type): Set the null-excluding attribute
28171         (Derived_Type_Declaration, Process_Subtype): Carry out some static
28172         checks.
28173
28174         * sem_ch4.adb (Analyze_Allocator): Carry out some static checks
28175
28176         * sem_ch5.adb (Analyze_Assignment): Carry out some static checks
28177
28178         * sem_ch6.adb (Process_Formals): Carry out some static checks.
28179         (Set_Actual_Subtypes): Generate null-excluding subtype if the
28180         null-excluding part was present; it is not required to be done here in
28181         case of anonymous access types.
28182         (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null
28183         value.
28184
28185         * sem_res.adb (Resolve_Actuals): Carry out some static check
28186         (Resolve_Null): Allow null in anonymous access
28187
28188         * sinfo.adb: New subprogram Null_Exclusion_Present
28189         All_Present and Constant_Present available on access_definition nodes
28190
28191         * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,
28192         object_declaration, derived_type_definition, component_definition,
28193         discriminant_specification, access_to_object_definition,
28194         access_function_definition, allocator, access_procedure_definition,
28195         access_definition, parameter_specification, All_Present and
28196         Constant_Present flags available on access_definition nodes.
28197
28198 2004-03-29  Robert Dewar  <dewar@gnat.com>
28199
28200         * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
28201         gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,
28202         opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,
28203         par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,
28204         sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,
28205         sem_prag.adb: Updates to handle multiple units/file
28206
28207         * par.adb: Change test for s-rpc to s-rp for detecting rpc and children
28208
28209         * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,
28210         sem_util.adb: Minor reformatting
28211
28212         * sem_ch12.adb: Add comment for previous change
28213
28214 2004-03-29  Laurent Pautet  <pautet@act-europe.fr>
28215
28216         * osint.adb (Executable_Prefix): Set Exec_Name to the current
28217         executable name when not initialized. Otherwise, use its current value.
28218
28219         * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to
28220         initialize it to another executable name than the current one. This
28221         allows to configure paths for an executable name (gnatmake) different
28222         from the current one (gnatdist).
28223
28224 2004-03-29  Ed Schonberg  <schonberg@gnat.com>
28225
28226         * exp_ch6.adb (Expand_Call): A call to a function declared in the
28227         current unit cannot be inlined if it appears in the body of a withed
28228         unit, to avoid order of elaboration problems in gigi.
28229
28230         * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging
28231         information for protected (wrapper) operation as well, to simplify gdb
28232         use.
28233
28234         * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a
28235         protected body, indicate that the entity for the generated spec comes
28236         from source, to ensure that references are properly generated for it.
28237         (Build_Body_To_Inline): Do not inline a function that returns a
28238         controlled type.
28239
28240         * sem_prag.adb (Process_Convention): If subprogram is overloaded, only
28241         apply convention to homonyms that are declared explicitly.
28242
28243         * sem_res.adb (Make_Call_Into_Operator): If the operation is a function
28244         that renames an equality operator and the operands are overloaded,
28245         resolve them with the declared formal types, before rewriting as an
28246         operator.
28247
28248 2004-03-29  GNAT Script  <nobody@gnat.com>
28249
28250         * Make-lang.in: Makefile automatically updated
28251
28252 2004-03-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
28253
28254         * memtrack.adb: Log realloc calls, which are treated as free followed
28255         by alloc.
28256
28257 2004-03-25  Vincent Celier  <celier@gnat.com>
28258
28259         * prj-makr.adb (Process_Directories): Detect when a file contains
28260         several units. Do not include such files in the config pragmas or
28261         in the naming scheme.
28262
28263         * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.
28264         Resolve links only when not in Trusted_Mode.
28265         (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):
28266         Do not resolve links for the display names.
28267
28268         * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not
28269         resolve links when computing the display names.
28270
28271 2004-03-25  Thomas Quinot  <quinot@act-europe.fr>
28272
28273         * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag
28274         attribute reference does not denote a subtype, it can be any
28275         expression that has a classwide type, potentially after an implicit
28276         dereference.  In particular, the prefix can be a view conversion for
28277         a classwide type (for which Is_Object_Reference holds), but it can
28278         also be a value conversion for an access-to-classwide type. In the
28279         latter case, there is an implicit dereference, and the original node
28280         for the prefix does not verify Is_Object_Reference.
28281
28282         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view
28283         conversion of a discriminant-dependent component of a mutable object
28284         is one itself.
28285
28286 2004-03-25  Ed Schonberg  <schonberg@gnat.com>
28287
28288         * freeze.adb (Freeze_Entity): When an inherited subprogram is
28289         inherited, has convention C, and has unconstrained array parameters,
28290         place the corresponding warning on the derived type declaration rather
28291         than the original subprogram.
28292
28293         * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default
28294         indication on renaming declaration, if formal has a box and actual
28295         is absent.
28296
28297         * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to
28298         determine whether to generate an implicit or explicit reference to
28299         the renamed entity.
28300
28301         * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a
28302         subprogram renaming comes from a defaulted formal subprogram in an
28303         instance.
28304
28305 2004-03-25  Gary Dismukes  <dismukes@gnat.com>
28306
28307         * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default
28308         value expressions to ensure that calls within a component definition
28309         will be checked (since those are evaluated during the record type's
28310         elaboration).
28311
28312 2004-03-25  Arnaud Charlet  <charlet@act-europe.fr>
28313
28314         * s-tpobop.adb: Code clean up:
28315         (Requeue_Call): Extract from PO_Service_Entries to remove duplicated
28316         code.
28317         (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.
28318
28319 2004-03-25  Jose Ruiz  <ruiz@act-europe.fr>
28320
28321         * Makefile.in: Clean up in the ravenscar run time.
28322
28323 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28324
28325         * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value
28326         of No_Strict_Aliasing to build_pointer_type_for_mode.
28327         * utils.c (update_pointer_to): Walk pointer and ref chains.
28328
28329 2004-03-22  Cyrille Comar  <comar@act-europe.fr>
28330
28331         * ali.ads: Fix Comment about Dynamic_Elab.
28332
28333         * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab,
28334         Has_RACW, Is_Generic, etc.)
28335         (Output_Object, Gnatls): Take into account ALI files not attached to
28336         an object.
28337
28338 2004-03-22  Vincent Celier  <celier@gnat.com>
28339
28340         * gprep.adb: Change all String_Access to Name_Id
28341         (Is_ASCII_Letter): new function
28342         (Double_File_Name_Buffer): New procedure
28343         (Preprocess_Infile_Name): New procedure
28344         (Process_Files): New procedure
28345         (Gnatprep): Check if output and input are existing directories.
28346         Call Process_Files to do the real job.
28347
28348 2004-03-22  Robert Dewar  <dewar@gnat.com>
28349
28350         * prj-env.adb, prj-nmsc.ads, prj-proc.ads,
28351         s-stache.ads, s-stache.adb: Comment updates. Minor reformatting.
28352
28353 2004-03-22  Sergey Rybin  <rybin@act-europe.fr>
28354
28355         * scn.adb (Contains): Add check for EOF, is needed for a degenerated
28356         case when the source contains only comments.
28357
28358 2004-03-22  Ed Schonberg  <schonberg@gnat.com>
28359
28360         * sem_ch10.adb (Analyze_Compilation_Unit): When generating a
28361         declaration for a child subprogram body that acts as a spec, indicate
28362         that the entity in the declaration needs debugging information.
28363
28364         * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying
28365         full view if the subtype is created for a constrained record component;
28366         gigi has enough information to construct the record, and there is no
28367         place in the tree for the declaration.
28368
28369         * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without
28370         serial number for the dummy body that is built for analysis, to avoid
28371         inconsistencies in the generation of internal names when compiling
28372         with -gnatN.
28373
28374 2004-03-22  Thomas Quinot  <quinot@act-europe.fr>
28375
28376         * sem_util.adb (Is_Object_Reference): A view conversion denotes an
28377         object.
28378
28379 2004-03-22  GNAT Script  <nobody@gnat.com>
28380
28381         * Make-lang.in: Makefile automatically updated
28382
28383 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28384
28385         * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
28386         * trans.c (tree_transform, emit_index_check): Likewise.
28387         * utils.c (build_template): Likewise.
28388         (max_size, convert): Remove handling of WITH_RECORD_EXPR.
28389         (maybe_unconstrained_array, unchecked_convert): Likewise.
28390         * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
28391         (build_unary_op): Likewise.
28392         (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
28393         (fill_vms_descriptor): Likewise.
28394         (build_call_alloc_dealloc): Likewise.
28395         ALIGN is unsigned.
28396         * gigi.h (build_call_alloc_dealloc): Alignment is unsigned.
28397
28398 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
28399
28400         PR other/14630
28401         * gnat_ug.texi: Add info directory category and entry.
28402         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
28403         gnat_ug_wnt.texi: Regenerate.
28404
28405 2004-03-19  Arnaud Charlet  <charlet@act-europe.fr>
28406
28407         * ada-tree.h: Update copyright notice.
28408         Minor reformatting.
28409
28410 2004-03-19  Olivier Hainque  <hainque@act-europe.fr>
28411
28412         * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions
28413         as regular exception objects and not as mere integers representing the
28414         condition code.  The latter approach required some dynamics to mask off
28415         severity bits, which did not fit well into the GCC table based model.
28416         (gnat_to_gnu_entity, objects): Don't supply an external name for VMS
28417         exception data objects. We don't it and it would conflict with the other
28418         external symbol we have to generate for such exceptions.
28419
28420         * trans.c (tree_transform, case N_Exception_Handler): Remove part of
28421         the special code for VMS exceptions, since these are now represented
28422         as regular exceptions objects.
28423
28424 2004-03-19 Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28425
28426         * decl.c (debug_no_type_hash): Remove.
28427         (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.
28428         * misc.c (LANG_HOOK_HASH_TYPE): Redefine.
28429
28430 2004-03-19  Laurent Guerby <laurent@guerby.net>
28431
28432         * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
28433         aggregate, allows bootstrap from 3.3 on powerpc-darwin.
28434
28435 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28436
28437         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
28438         (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
28439         (TYPE_RM_SIZE_INT): Directly use type.values.
28440         (TREE_LOOP_ID): Clean up check.
28441         * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
28442         TYPE_VALUES, not TYPE_FIELDS.
28443         * trans.c (convert_with_check): Delay access of bounds of basetype
28444         until sure is numeric.
28445
28446 2004-03-18  Arnaud Charlet  <charlet@act-europe.fr>
28447
28448         * 5atpopsp.adb: Remove RTEMS from list of platforms using this file.
28449
28450         Code clean up:
28451         * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,
28452         5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use
28453         Specific.Set instead of direct call to e.g pthread_setspecific.
28454
28455 2004-03-18  Thomas Quinot  <quinot@act-europe.fr>
28456
28457         * adaint.c: Update comments.
28458
28459         * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and
28460         GNATLIB_SHARED for FreeBSD.
28461
28462 2004-03-18  Jose Ruiz  <ruiz@act-europe.fr>
28463
28464         * init.c [VxWorks]: Do not fix the stack size for the environment task.
28465         When needed (stack checking) the stack size is retrieved
28466         from the VxWorks kernel.
28467
28468         * Makefile.in: Flag -nostdinc is required when building the run time
28469         for avoiding looking for files in the base compiler.
28470         Add the VxWorks specific version of the package body for
28471         System.Stack_checking.Operations (5zstchop.adb).
28472
28473         * Make-lang.in: Add the object file for
28474         System.Stack_Checking.Operations.
28475
28476         * Makefile.rtl: Add object file for the package
28477         System.Stack_Checking.Operations.
28478
28479         * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.
28480
28481         * s-stache.ads, s-stache.adb: Move the operations related to stack
28482         checking from this package to package System.Stack_Checking.Operations.
28483         This way, stack checking operations are only linked in the final
28484         executable when using the -fstack-check flag.
28485
28486 2004-03-18  Doug Rupp  <rupp@gnat.com>
28487
28488         * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).
28489         Reorganize ifeq's.
28490
28491         * 5qsystem.ads, 5xcrtl.ads: New files.
28492
28493 2004-03-18  Vincent Celier  <celier@gnat.com>
28494
28495         * prj.adb (Reset): Reset hash table Files_Htable
28496
28497         * prj-env.adb (Source_Paths, Object_Paths): New tables.
28498         (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace
28499         the procedures Add_To_Path_File.
28500         (Set_Ada_Paths): Accumulate source and object dirs in the tables,
28501         making sure that each directory is present only once and, for object
28502         dirs, when a directory already present is added, the duplicate is
28503         removed and the directory is always put as the last in the table.
28504         Write the path files at the end of these accumulations.
28505
28506         * prj-nmsc.adb (Record_Source): Add source file name in hash table
28507         Files_Htable for all sources.
28508
28509         * prj-proc.adb (Process): Remove restrictions between not directly
28510         related extending projects.
28511
28512 2004-03-18  Emmanuel Briot  <briot@act-europe.fr>
28513
28514         * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.
28515         (Find_Sources): Minor speed optimization.
28516
28517         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New
28518         parameter Trusted_Mode.
28519
28520 2004-03-18  Sergey Rybin  <rybin@act-europe.fr>
28521
28522         * scn.adb (Determine_License): Take into account a degenerated case
28523         when the source contains only comments.
28524
28525 2004-03-18  Ed Schonberg  <schonberg@gnat.com>
28526
28527         * sem_warn.adb (Check_References): For a warning on a selected
28528         component that does not come from source, locate an uninitialized
28529         component of the record type to produce a more precise error message.
28530
28531 2004-03-15  Jerome Guitton  <guitton@act-europe.fr>
28532
28533         * 3zsoccon.ads: Fix multicast options.
28534
28535         * s-thread.ads: Move unchecked conversion from ATSD_Access to Address
28536         in the spec.
28537
28538 2004-03-15  Robert Dewar  <dewar@gnat.com>
28539
28540         * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when
28541         pragma used for a private type.
28542
28543         * lib-xref.adb (Generate_Reference): Do not generate warning if
28544         reference is in a different unit from the pragma Unreferenced.
28545
28546         * 5vtpopde.adb: Minor reformatting
28547         Fix casing of To_Task_ID
28548
28549         * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing
28550         flag if we have an unchecked conversion to an access type in the same
28551         unit.
28552
28553 2004-03-15  Geert Bosch  <bosch@gnat.com>
28554
28555         * a-ngcoty.adb (Modulus): In alternate formula for large real or
28556         imaginary parts, use Double precision throughout.
28557
28558         * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only
28559         we want to be able to compile run-time with -gnata for testing, but
28560         this may also be instantiated in user code that is compiled with -gnata.
28561
28562 2004-03-15  Olivier Hainque  <hainque@act-europe.fr>
28563
28564         * s-stalib.ads (Exception_Code): New type, to represent Import/Export
28565         codes. Having a separate type for this is useful to enforce consistency
28566         throughout the various run-time units.
28567         (Exception_Data): Use Exception_Code for Import_Code.
28568
28569         * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of
28570         Natural and Integer in various places.
28571         (Register_VMS_Exception): Use Base_Code_In to compute the exception code
28572         with the severity bits masked off.
28573         (Register_VMS_Exception): Handle the additional exception data pointer
28574         argument.
28575
28576         * raise.c (_GNAT_Exception structure): Remove the handled_by_others
28577         component, now reflected by an exported accessor.
28578         (is_handled_by): New routine to compute whether the propagated
28579         occurrence matches some handler choice specification. Extracted out of
28580         get_action_description_for, and expanded to take care of the VMS
28581         specifities.
28582         (get_action_description_for): Use is_handled_by instead of an explicit
28583         complex condition to decide if the current choice at hand catches the
28584         propagated occurrence.
28585
28586         * raise.h (Exception_Code): New type for C.
28587
28588         * rtsfind.ads (RE_Id, RE_Unit_Table): Add
28589         System.Standard_Library.Exception_Code, to allow references from the
28590         pragma import/export expander.
28591
28592         * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For):
28593         New accessors to allow easy access to GNAT exception data
28594         characteristics.
28595         (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the
28596         redundant Handled_By_Others component, helper for the personality
28597         routine which will now be able to call the appropriate exception data
28598         accessor instead.
28599
28600         * cstand.adb (Create_Standard): Adjust the type of the Import_Code
28601         component of Standard_Exception_Type to be the closest possible to
28602         Exception_Code in System.Standard_Library, that we cannot get at this
28603         point. Expand a ??? comment to notify that this type node should
28604         probably be rewritten later on.
28605
28606         * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the
28607         registration call to include a pointer to the exception object in the
28608         arguments.
28609
28610         * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In
28611         instead of int and explicit bitmasks.
28612
28613 2004-03-15  Vincent Celier  <celier@gnat.com>
28614
28615         * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED
28616         equivalent to /STATIC and /NOSTATIC equivalent to /SHARED.
28617
28618         * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no
28619         longer needed now that it is in the spec of
28620         System.Tasking.Task_Attributes.
28621
28622         * adaint.h, adaint.c: (__gnat_create_output_file): New function
28623
28624         * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of =
28625
28626         * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function.
28627
28628         * make.adb (Gnatmake): Do not check the executable suffix; it is being
28629         taken care of in Scan_Make_Arg.
28630         (Scan_Make_Arg): Add the executable suffix only if the argument
28631         following -o, in canonical case, does not end with the executable
28632         suffix.  When in verbose mode and executable file name does not end
28633         with executable suffix, output the executable name, in canonical case.
28634
28635         * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing
28636         to avoid warnings when instantiating Ada.Task_Attributes.
28637         Minor reformating.
28638
28639         * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries
28640         in the correct order.
28641
28642         * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but
28643         redirect standard output and error to a file for the invocation of the
28644         compiler, then read the file.
28645
28646         * prj-nmsc.adb (Find_Sources): Use the Display_Value for each
28647         directory, instead of the Value.
28648         (Find_Source_Dirs): Remove useless code & comments.
28649
28650 2004-03-15  Ed Schonberg  <schonberg@gnat.com>
28651
28652         * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a
28653         tagged type is inherited, and the parent operation is not frozen yet,
28654         force generation of a freeze node for the inherited operation, so the
28655         corresponding dispatch entry is properly initialized.
28656         (Make_Predefined_Primitive_Specs): Check that return type is Boolean
28657         when looking for user-defined equality operation.
28658
28659         * exp_ch4.adb (Expand_Composite_Equality): Check that return type is
28660         boolean when locating primitive equality of tagged component.
28661
28662         * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a
28663         bit-aligned field and the right-hand side a string literal, introduce
28664         a temporary before expanding assignment into a loop.
28665
28666         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for
28667         priority in full, to ensure that any expanded subepxressions of it are
28668         elaborated in the scope of the init_proc.
28669
28670         * exp_prag.adb (Expand_Pragma_Import): Search for initialization call
28671         after object declaration, skipping over code that may have been
28672         generated for validity checks.
28673
28674         * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown
28675         discriminants, ignore the known discriminants of its full view, if
28676         any, to check legality.
28677
28678         * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained
28679         component if type has unknown discriminants.
28680         (Analyze_Private_Extension_Declaration): Discriminant constraint is
28681         null if type has unknown discriminants.
28682
28683         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference
28684         for end label when present.
28685
28686         * s-fileio.adb (Open): When called with a C_Stream, use given name for
28687         temporary file, rather than an empty string.
28688
28689 2004-03-15  Ed Falis  <falis@gnat.com>
28690
28691         * s-thread.adb: Removed, no longer used.
28692
28693 2004-03-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28694
28695         * decl.c (target.h): Now include.
28696         (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE
28697         in new build_pointer_from_mode calls for non-fat/non-thin pointer.
28698         (validate_size): For POINTER_TYPE, get smallest size permitted on
28699         machine.
28700
28701         * fe.h: Sort Einfo decls and add Set_Mechanism.
28702
28703         * Makefile.in: (LIBGNAT_SRCS): Remove types.h.
28704         (ada/decl.o): Depends on target.h.
28705
28706         * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use
28707         FUNCTION_BOUNDARY; always use TYPE_ALIGN.
28708
28709 2004-03-15  Thomas Quinot  <quinot@act-europe.fr>
28710
28711         * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID.
28712
28713         * exp_ch4.adb (Expand_N_Indexed_Component): Do not call
28714         Insert_Dereference_Action when rewriting an implicit dereference into
28715         an explicit one, this will be taken care of during expansion of the
28716         explicit dereference.
28717         (Expand_N_Slice): Same. Always do the rewriting, even for the case
28718         of non-packed slices, since the dereference action generated by
28719         expansion of the explicit dereference is needed in any case.
28720         (Expand_N_Selected_Component): When rewriting an implicit dereference,
28721         analyze and resolve the rewritten explicit dereference so it is seen
28722         by the expander.
28723         (Insert_Dereference_Action): This procedure is now called only for the
28724         expansion of an N_Explcit_Dereference_Node. Do insert a check even for
28725         dereferences that do not come from source (including explicit
28726         dereferences resulting from rewriting implicit ones), but do not
28727         recursively insert a check for the dereference nodes contained within
28728         the check.
28729         (Insert_Dereference_Action): Clarify and correct comment.
28730
28731 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
28732
28733         PR ada/14131
28734         Move language detection to the top level.
28735         * config-lang.in: Build by default.
28736
28737 2004-03-05  Robert Dewar  <dewar@gnat.com>
28738
28739         * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions
28740
28741         * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,
28742         i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,
28743         5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
28744         5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move
28745         unchecked conversion to spec to avoid warnings.
28746
28747         * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id
28748         to Task_ID
28749
28750         * 7stpopsp.adb: Correct casing in To_Task_ID call
28751
28752         * a-strsea.ads, a-strsea.adb: Minor reformatting
28753
28754         * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing
28755
28756         * errout.ads: Switch for VMS is now NO_STRICT_ALIASING.
28757         Adjust Max_Msg_Length to be clearly large enough.
28758
28759         * fe.h: Define In_Same_Source_Unit
28760
28761         * osint.adb: Add pragma Warnings Off to suppress warnings
28762         * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill
28763         aliasing warnings.
28764
28765         * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing
28766
28767         * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma
28768
28769         * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc.
28770
28771         * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set.
28772
28773         * sem_prag.adb: Implement pragma No_Strict_Aliasing.
28774
28775         * sinfo.ads: Remove obsolete comment on validate unchecked conversion
28776         node. We now do generate them for gcc back end.
28777
28778         * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing
28779         warning.
28780
28781         * sinput-c.adb: Fix bad name in header.
28782         Add pragma Warnings Off to suppress aliasing warning.
28783
28784         * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.
28785
28786         * snames.h, snames.ads, snames.adb: Add entry for pragma
28787         No_Strict_Aliasing.
28788
28789 2004-03-05  Vincent Celier  <celier@gnat.com>
28790
28791         * prj-com.ads: Add hash table Files_Htable to check when a file name
28792         is already a source of another project.
28793
28794         * prj-nmsc.adb (Record_Source): Before recording a new source, check
28795         if its file name is not already a source of another project. Report an
28796         error if it is.
28797
28798         * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no
28799         source file name, call gnatpp with all the sources of the main project.
28800
28801         * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number
28802         of file names.
28803
28804         * vms_data.ads: Correct documentation of new /OPTIMIZE keyword
28805         NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:
28806         /RUNTIME_SYSTEM=, converted to --RTS=
28807         /NOTABS, converted to -notabs
28808
28809 2004-03-05  Pascal Obry  <obry@gnat.com>
28810
28811         * make.adb: Minor reformatting.
28812
28813 2004-03-05  Ed Schonberg  <schonberg@gnat.com>
28814
28815         Part of implemention of AI-262.
28816         * par-ch10.adb (P_Context_Clause): Recognize private with_clauses.
28817
28818         * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New
28819         procedure.
28820
28821         * sem_ch3.adb (Analyze_Component_Declaration): Improve error message
28822         when component type is a partially constrained class-wide subtype.
28823         (Constrain_Discriminated_Type): If parent type has unknown
28824         discriminants, a constraint is illegal, even if full view has
28825         discriminants.
28826         (Build_Derived_Record_Type): Inherit discriminants when deriving a type
28827         with unknown discriminants whose full view is a discriminated record.
28828
28829         * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants
28830         flag, to handle properly derivations of tagged types with unknown
28831         discriminants.
28832         (Analyze_Package_Spec, Analyze_Package_Body): Install
28833         Private_With_Clauses before analyzing private part or body.
28834
28835         * einfo.ads: Indicate that both Has_Unknown_Discriminants and
28836         Has_Discriminants can be true for a given type (documentation).
28837
28838 2004-03-05  Arnaud Charlet  <charlet@act-europe.fr>
28839
28840         * s-restri.ads: Fix license (GPL->GMGPL).
28841
28842         * s-tassta.adb: Minor reformatting.
28843
28844         * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
28845         by calls to Exit_One_ATC_Level, since additional clean up is performed
28846         by this function.
28847
28848         * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
28849         by calls to Exit_One_ATC_Level, since additional clean up is performed
28850         by this function.
28851
28852 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28853
28854         * trans.c: Reflect GCC changes to fix bootstrap problem.
28855         Add warning for suspicious aliasing unchecked conversion.
28856
28857 2004-03-05  GNAT Script  <nobody@gnat.com>
28858
28859         * Make-lang.in: Makefile automatically updated
28860
28861 2004-03-02  Emmanuel Briot  <briot@act-europe.fr>
28862
28863         * ali.adb (Read_Instantiation_Instance): Do not modify the
28864         current_file_num when reading information about instantiations, since
28865         this corrupts files in later references.
28866
28867 2004-03-02  Vincent Celier  <celier@gnat.com>
28868
28869         * bcheck.adb (Check_Consistency): Get the full path of an ALI file
28870         before checking if it is read-only.
28871
28872         * bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
28873         of SRC_DIRS and eliminate duplicates.
28874
28875         * gprcmd.adb: Replace command "path" with command "path_sep" to return
28876         the path separator.
28877         (Usage): Document path_sep
28878
28879         * Makefile.generic: For Ada and GNU C++ cases, link directly with the
28880         C++ compiler. No need for a script.
28881         Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
28882         Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
28883         subst.
28884
28885         * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
28886         where there are Ada sources.
28887         (Set_Ada_Paths): Only add to the include path the source dirs of project
28888         with Ada sources.
28889         (Add_To_Path): Add the Display_Values of the directories, not their
28890         Values.
28891
28892         * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
28893         data.
28894
28895         * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
28896         is not No_Name.
28897         (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
28898         Value is canonicalized.
28899         (Language_Independent_Check): Do not copy Value to Display_Value when
28900         canonicalizing Value.
28901
28902         * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
28903         path to find limited with cycles.
28904         (Parse_Single_Project): Use canonical cased path to find the end of a
28905         with cycle.
28906
28907 2004-03-02  Ed Schonberg  <schonberg@gnat.com>
28908
28909         * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
28910         and not a child unit.
28911
28912         * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
28913         appear in a with_clause.
28914
28915         * decl.c (gnat_to_gnu_type): If entity is a generic type, which can
28916         only happen in type_annotate mode, do not try to elaborate it.
28917
28918         * exp_util.adb (Force_Evaluation): If expression is a selected
28919         component on the left of an assignment, use a renaming rather than a
28920         temporary to remove side effects.
28921
28922         * freeze.adb (Freeze_Entity): Do not freeze a global entity within an
28923         inlined instance body, which is analyzed before the end of the
28924         enclosing scope.
28925
28926 2004-03-02  Robert Dewar  <dewar@gnat.com>
28927
28928         * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
28929         sem_ch4.adb: Use new feature for substitution of keywords in VMS
28930
28931         * errout.ads, errout.adb: Implement new circuit for substitution of
28932         keywords in VMS.
28933
28934         * sem_case.adb (Analyze_Choices): Place message properly when case is
28935         a subtype reference rather than an explicit range.
28936
28937         * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
28938
28939 2004-03-02  Doug Rupp  <rupp@gnat.com>
28940
28941         * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.
28942
28943 2004-03-02  Thomas Quinot  <quinot@act-europe.fr>
28944
28945         * s-tporft.adb: Add missing locking around call to Initialize_ATCB.
28946
28947 2004-03-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28948
28949         * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
28950         BLKmode bitfield.
28951
28952 2004-02-25  Robert Dewar  <dewar@gnat.com>
28953
28954         * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads,
28955         55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads,
28956         5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads,
28957         5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads,
28958         5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads,
28959         5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to
28960         the defining instance of the type to avoid aliasing problems.
28961         Fix copyright header.  Fix bad comments in package header.
28962
28963         * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting
28964
28965 2004-02-25  Ed Schonberg  <schonberg@gnat.com>
28966
28967         * exp_ch2.adb (Param_Entity): Handle properly formals that have been
28968         rewritten as references when aliased through an address clause.
28969
28970         * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking
28971         whether call can be interpreted as an indirect call to the result of a
28972         parameterless function call returning an access subprogram.
28973
28974 2004-02-25  Arnaud Charlet  <charlet@act-europe.fr>
28975
28976         Code clean up:
28977         * exp_ch7.adb (Make_Clean): Remove generation of calls to
28978         Unlock[_Entries], since this is now done by Service_Entries directly.
28979
28980         * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto.
28981
28982         * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure
28983         Requeue_Call for better code readability. Change spec and update calls:
28984         PO_Service_Entries now unlock the PO on exit.
28985         (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to
28986         PO_Service_Entries.
28987
28988         * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit.
28989
28990         * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries.
28991
28992 2004-02-25  Sergey Rybin  <rybin@act-europe.fr>
28993
28994         * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the
28995         protected subprogram call and analyzing the result of such expanding
28996         in case when the called protected subprogram is eliminated.
28997
28998         * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope
28999         names.
29000
29001 2004-02-25  Jerome Guitton  <guitton@act-europe.fr>
29002
29003         * Makefile.in: Clean ups.
29004
29005 2004-02-23  Ed Schonberg  <schonberg@gnat.com>
29006
29007         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create
29008         protected operations if original subprogram is flagged as eliminated.
29009         (Expand_N_Subprogram_Body): For a protected operation, create
29010         discriminals for next operation before checking whether the operation
29011         is eliminated.
29012
29013         * exp_ch9.adb (Expand_N_Protected_Body,
29014         Expand_N_Protected_Type_Declaration): Do not generate specs and bodies
29015         for internal protected operations if the original subprogram is
29016         eliminated.
29017
29018         * sem_elim.adb (Check_Eliminated): Handle properly protected operations
29019         declared in a single protected object.
29020
29021 2004-02-23  Vincent Celier  <celier@gnat.com>
29022
29023         * prj-attr.adb: Make attribute Builder'Executable an associative array,
29024         case insensitive if file names are case insensitive, instead of a
29025         standard associative array.
29026
29027         * prj-attr.adb (Initialize): For 'b' associative arrays, do not set
29028         them as case insensitive on platforms where the file names are case
29029         sensitive.
29030
29031         * prj-part.adb (Parse_Single_Project): Make sure, when checking if
29032         project file has already been parsed that canonical path are compared.
29033
29034 2004-02-23  Robert Dewar  <dewar@gnat.com>
29035
29036         * sinput-c.ads: Correct bad unit title in header
29037
29038         * freeze.adb: Minor reformatting
29039
29040 2004-02-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29041
29042         * trans.c (tree_transform, case N_Procedure_Call_Statement): For
29043         nonaddressable COMPONENT_REF that is removing padding that we are
29044         taking the address of, take the address of the padded record instead
29045         if item is variable size.
29046
29047 2004-02-20  Robert Dewar  <dewar@gnat.com>
29048
29049         * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting
29050
29051 2004-02-20  Ed Schonberg  <schonberg@gnat.com>
29052
29053         * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates
29054         itype references for the constrained designated type of a component
29055         whose base type is already frozen.
29056
29057 2004-02-20  Arnaud Charlet  <charlet@act-europe.fr>
29058
29059         * init.c (__gnat_error_handler [tru64]): Rewrite previous change to
29060         avoid GCC warnings.
29061
29062 2004-02-20  Sergey Rybin  <rybin@act-europe.fr>
29063
29064         * sem_ch12.adb (Analyze_Formal_Package): Create a new defining
29065         identifier for a phantom package that rewrites the formal package
29066         declaration with a box. The Add semantic decorations for the defining
29067         identifier from the original node (that represents the formal package).
29068
29069 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
29070
29071         * Make-lang.in (ada/stamp-sdefault): Use the top level
29072         move-if-change.
29073
29074 2004-02-19  Richard Henderson  <rth@redhat.com>
29075
29076         * misc.c (record_code_position): Add third build arg for RTL_EXPR.
29077
29078 2004-02-18  Emmanuel Briot  <briot@act-europe.fr>
29079
29080         * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that
29081         Scan_ALI can be used for multiple ALI files without reinitializing
29082         between calls.
29083
29084 2004-02-18  Robert Dewar  <dewar@gnat.com>
29085
29086         * debug.adb: Minor reformatting.
29087
29088 2004-02-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29089
29090         * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET
29091         to zero if there is an address clause.
29092
29093 2004-02-18  Thomas Quinot  <quinot@act-europe.fr>
29094
29095         * exp_util.adb (Side_Effect_Free): Any literal is side effects free.
29096
29097 2004-02-18  Gary Dismukes  <dismukes@gnat.com>
29098
29099         * layout.adb (Layout_Component_List): Revise generation of call to
29100         discriminant-checking function to pass selections of all of the type's
29101         discriminants rather than just the variant-controlling discriminant.
29102
29103 2004-02-18  Olivier Hainque  <hainque@act-europe.fr>
29104
29105         * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to
29106         fail in the current setup and triggers spurious system error messages.
29107         Pretend it occurred and failed instead.
29108
29109 2004-02-18  Vincent Celier  <celier@gnat.com>
29110
29111         * bld.adb: Mark FLDFLAGS as saved
29112         (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when
29113         it is not the root project.  Put each directory to be
29114         extended between double quotes to prevent it to be expanded on Windows.
29115         (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing
29116         the project file. Set them back to their initial values if they have not
29117         been set in the project file.
29118
29119         * gprcmd.adb: (Gprdebug, Debug): New global variables
29120         (Display_Command): New procedure
29121         (Usage): Document new command "linkopts"
29122         Call Display_Command when env var GPRDEBUG has the value "TRUE"
29123         Implement new command "linkopts"
29124         Remove quotes that may be around arguments for "extend"
29125         Always call Normalize_Pathname with arguments formatted for the platform
29126
29127         * Makefile.generic: Link C/C++ mains with $(FLDFLAGS)
29128         Change @echo to @$(display) in target clean to be able to clean silently
29129
29130         * Makefile.prolog: Save FLDFLAGS and give it an initial empty value
29131
29132         * prj-part.adb (Project_Path_Name_Of): Do not put final result in
29133         canonical case.
29134
29135         * prj-part.adb (Parse_Single_Project): Always call with From_Extended
29136         = Extending_All when current project is an extending all project.
29137
29138         * vms_conv.adb (Output_File_Expected): New Boolean global variable,
29139         set to True only for LINK command, after Unix switch -o.
29140         (Process_Arguments): Set Output_File_Expected to True for LINK command
29141         after Unix switch -o. When Output_File_Expected is True, never add an
29142         extension to a file name.
29143
29144         * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the
29145         option file name, only to the --for-linker= switch.
29146         (Option_File_Name): If option file name do not end with ".opt", append
29147         "/OPTIONS".
29148
29149 2004-02-18  GNAT Script  <nobody@gnat.com>
29150
29151         * Make-lang.in: Makefile automatically updated
29152
29153 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
29154
29155         * Make-lang.in (stamp-sdefault): Do not depend on
29156         move-if-change.
29157
29158 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
29159
29160         * config-lang.in: Disable Ada by default until probe logic for
29161         a bootstrap Ada compiler can be moved to the top level configure
29162         script.
29163
29164 2004-02-12  Olivier Hainque  <hainque@act-europe.fr>
29165
29166         * decl.c (components_to_record): Don't claim that the internal fields
29167         we make to hold the variant parts are semantically addressable, because
29168         they are not.
29169
29170         * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and
29171         adjust the comment describing the modular type form when we can use it.
29172         (Install_PAT): Account for the Esiz renaming.
29173
29174         * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the
29175         sc_onstack context indication before raising the exception to which
29176         the signal is mapped. Allows better handling of later signals possibly
29177         triggered by the resumed user code if the exception is handled.
29178
29179 2004-02-12  Arnaud Charlet  <charlet@act-europe.fr>
29180
29181         * 5zinit.adb: Removed, no longer used.
29182
29183 2004-02-12  Robert Dewar  <dewar@gnat.com>
29184
29185         * ali.adb: Remove separating space between parameters on R line. Makes
29186         format consistent with format used by the binder for Set_Globals call.
29187
29188         * atree.ads, atree.adb: Minor reformatting (new function header format)
29189
29190         * bindgen.adb: Add Run-Time Globals documentation section containing
29191         detailed documentation of the globals passed from the binder file to
29192         the run time.
29193
29194         * gnatls.adb: Minor reformatting
29195
29196         * init.c (__gnat_set_globals): Add note pointing to documentation in
29197         bindgen.
29198
29199         * lib-writ.ads, lib-writ.adb: Remove separating space between
29200         parameters on R line.
29201         Makes format consistent with format used by the binder for Set_Globals
29202         call.
29203
29204         * osint.ads: Add 2004 to copyright notice
29205         Minor reformatting
29206
29207         * snames.ads: Correct capitalization of FIFO_Within_Priorities
29208         Noticed during code reading, documentation issue only
29209
29210         * usage.adb: Remove junk line for obsolete C switch
29211         Noticed during code reading
29212
29213 2004-02-12  Vincent Celier  <celier@gnat.com>
29214
29215         * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd
29216         extend for each directory, so that multiple /** directories are
29217         extended individually.
29218         (Recursive_Process): Set the default for LANGUAGES to ada
29219
29220         * gprcmd.adb: Define new command "ignore", to do nothing.
29221         Implement new comment "path".
29222
29223         * Makefile.generic: Suppress output when SILENT is set
29224         Make sure that when compiler for C/C++ is gcc, the correct -x switch is
29225         used, so that the correct compiler is invoked.
29226         When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/
29227         CXX_INCLUDE_PATH, to avoid failure with too long command lines.
29228
29229 2004-02-12  Jerome Guitton  <guitton@act-europe.fr>
29230
29231         * Makefile.in: Clean ups and remove obsolete targets.
29232
29233 2004-02-12  Ed Schonberg  <schonberg@gnat.com>
29234
29235         * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar
29236         predicate declared in exp_util.
29237
29238         * exp_util.adb: Add comments.
29239
29240         * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from
29241         visibility before compiling context of the subunit.
29242
29243         * sem_res.adb (Check_Parameterless_Call): If the context expects a
29244         value but the name is a procedure, do not attempt to analyze as a call,
29245         in order to obtain more telling diagnostics.
29246
29247         * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing
29248         'Access on parameterless function calls.
29249         (Normalize_Actuals): For a parameterless function call with missing
29250         actuals, defer diagnostic until resolution of enclosing call.
29251
29252         * sem_util.adb (Wrong_Type): If the context type is an access to
29253         subprogram and the expression is a procedure name, suggest a missing
29254         'attribute.
29255
29256 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>,
29257             Nathanael Nerode  <neroden@gcc.gnu.org>
29258
29259         PR ada/6637
29260         PR ada/5911
29261         Merge with libada-branch:
29262         * config-lang.in: Build libada only when ada is built.
29263
29264 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
29265
29266         * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
29267         for a tagged type, verify that both formals have the same type.
29268
29269         * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
29270         temporary when the formal is an in-parameter and the actual a possibly
29271         unaligned slice.
29272
29273         * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
29274         when expansion is disabled, to ensure proper name capture with
29275         overloaded literals.  Condition can be of any boolean type, resolve
29276         accordingly.
29277
29278         * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
29279         renaming is for a formal subprogram with a default operator name, and
29280         there is a usable operator that is visible at the point of
29281         instantiation.
29282
29283 2004-02-09  Robert Dewar  <dewar@gnat.com>
29284
29285         * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
29286         rewrite to ignore errors in ali files, intended to allow tools downward
29287         compatibility with new versions of ali files.
29288
29289         * ali.ads: Add new parameter Ignore_Errors
29290
29291         * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
29292         duplicating the error message giving the file with restrictions.
29293
29294         * debug.adb: Add debug flag I for gnatbind
29295
29296         * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
29297         operators for the case where the operator is a defining operator.
29298
29299         * exp_ch3.adb: Minor reformatting (new function spec format).
29300
29301         * exp_ch4.adb: Add comment for previous change, and make minor
29302         adjustment to loop to always check for improper loop termination.
29303         Minor reformatting throughout (new function spec format).
29304
29305         * gnatbind.adb: Implement -di debug flag for gnatbind
29306
29307         * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
29308
29309         * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
29310
29311         * lib-load.adb: Fix bad assertion.
29312         Found by testing and code reading.
29313         Minor reformatting.
29314
29315         * lib-load.ads: Minor reformatting.
29316
29317         * lib-writ.adb: There is only one R line now.
29318
29319         * lib-writ.ads: Add documentation on making downward compatible changes
29320         to ali files so old tools work with new ali files.
29321         There is only one R line now.
29322         Add documentation on format incompatibilities (with special GPS note)
29323
29324         * namet.ads, namet.adb: (Is_Operator_Name): New procedure
29325
29326         * par-load.adb: Minor reformatting
29327
29328         * sem_ch8.adb: Fix to error message from last update
29329         Minor reformatting and restructuring of code from last update
29330
29331         * par-prag.adb, snames.adb, snames.ads, snames.h,
29332         sem_prag.adb: Implement pragma Profile.
29333
29334         * stylesw.adb: Implement -gnatyN switch to turn off all style check
29335         options.
29336
29337         * usage.adb: Add line for -gnatyN switch
29338
29339         * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
29340
29341 2004-02-09  Albert Lee  <lee@gnat.com>
29342
29343         * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
29344
29345 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
29346
29347         * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
29348         slices.
29349
29350         * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
29351         is nested in an instance that is not frozen yet, to avoid
29352         order-of-elaboration problems in gigi.
29353
29354         * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
29355         body the attribute is legal.
29356
29357 2004-02-09  Robert Dewar  <dewar@gnat.com>
29358
29359         * s-rident.ads: Minor comment correction
29360
29361         * targparm.adb: Remove dependence on uintp completely. There was
29362         always a bug in Make in that it called Targparm before initializing
29363         the Uint package. The old code appeared to get away with this, but
29364         the new code did not! This caused an assertion error in gnatmake.
29365
29366         * targparm.ads: Fix bad comment, restriction pragmas with parameters
29367         are indeed fully supported.
29368
29369 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
29370
29371         * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call.
29372
29373 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
29374
29375         * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
29376         with targetm.calls.promote_prototypes.
29377
29378 2004-02-04  Robert Dewar  <dewar@gnat.com>
29379
29380         * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,
29381         ali.ads, gprcmd.adb: Minor reformatting
29382
29383         * bindgen.adb: Output restrictions string for new style restrictions
29384         handling
29385
29386         * impunit.adb: Add s-rident.ads (System.Rident) and
29387         s-restri (System.Restrictions)
29388
29389         * lib-writ.adb: Fix bug in writing restrictions string (last few
29390         entries wrong)
29391
29392         * s-restri.ads, s-restri.adb: Change name Restrictions to
29393         Run_Time_Restrictions to avoid conflict with package name.
29394         Add circuit to read and acquire run time restrictions.
29395
29396 2004-02-04  Jose Ruiz  <ruiz@act-europe.fr>
29397
29398         * restrict.ads, restrict.adb: Use the new restriction
29399         No_Task_Attributes_Package instead of the old No_Task_Attributes.
29400
29401         * sem_prag.adb: No_Task_Attributes is a synonym of
29402         No_Task_Attributes_Package.
29403
29404         * snames.ads, snames.adb: New entry for proper handling of
29405         No_Task_Attributes.
29406
29407         * s-rident.ads: Adding restriction No_Task_Attributes_Package
29408         (AI-00249) that supersedes the GNAT specific restriction
29409         No_Task_Attributes.
29410
29411 2004-02-04  Ed Schonberg  <schonberg@gnat.com>
29412
29413         * sem_prag.adb:
29414         (Analyze_Pragma, case Warnings): In an inlined body, as in an instance
29415          body, an identifier may be wrapped in an unchecked conversion.
29416
29417 2004-02-04  Vincent Celier  <celier@gnat.com>
29418
29419         * lib-writ.ads: Comment update for the W lines
29420
29421         * bld.adb: (Expression): An empty string list is static
29422
29423         * fname-uf.adb: Minor comment update
29424
29425         * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail
29426
29427         * gnatbind.adb: Initialize Cumulative_Restrictions with the
29428         restrictions on the target.
29429
29430 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
29431
29432         * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of
29433         gen_rtx.
29434
29435 2004-02-02  Arnaud Charlet  <charlet@gnat.com>
29436
29437         * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded.
29438
29439 2004-02-02  Vincent Celier  <celier@gnat.com>
29440
29441         * gprcmd.adb (Check_Args): If condition is false, print the invoked
29442         comment before the usage.
29443         Gprcmd: Fail when command is not recognized.
29444         (Usage): Document command "prefix"
29445
29446         * g-md5.adb (Digest): Process last block.
29447         (Update): Do not process last block. Store remaining characters and
29448         length in Context.
29449
29450         * g-md5.ads (Update): Document that several call to update are
29451         equivalent to one call with the concatenated string.
29452         (Context): Add fields to allow new Update behaviour.
29453
29454         * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,
29455         defaulted to False.
29456         When May_Fail is True and no existing file can be found, return No_File.
29457
29458         * 6vcstrea.adb: Inlined functions are now wrappers to implementation
29459         functions.
29460
29461         * lib-writ.adb (Write_With_Lines): When body file does not exist, use
29462         spec file name instead on the W line.
29463
29464 2004-02-02  Robert Dewar  <dewar@gnat.com>
29465
29466         * ali.adb: Read and acquire info from new format restrictions lines
29467
29468         * bcheck.adb: Add circuits for checking restrictions with parameters
29469
29470         * bindgen.adb: Output dummy restrictions data
29471         To be changed later
29472
29473         * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
29474         exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
29475         freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,
29476         sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,
29477         sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.
29478
29479         * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses
29480         the warning message on access to possibly uninitialized variable S)
29481         Minor changes for new restrictions handling.
29482
29483         * gnatbind.adb: Minor reformatting
29484         Minor changes for new restrictions handling
29485         Move circuit for -r processing here from bcheck (cleaner)
29486
29487         * gnatcmd.adb, gnatlink.adb: Minor reformatting
29488
29489         * lib-writ.adb: Output new format restrictions lines
29490
29491         * lib-writ.ads: Document new R format lines for new restrictions
29492         handling.
29493
29494         * s-restri.ads/adb: New files
29495
29496         * Makefile.rtl: Add entry for s-restri.ads/adb
29497
29498         * par-ch3.adb: Fix bad error messages starting with upper case letter
29499         Minor reformatting
29500
29501         * restrict.adb: Major rewrite throughout for new restrictions handling
29502         Major point is to handle restrictions with parameters
29503
29504         * restrict.ads: Major changes in interface to handle restrictions with
29505         parameters. Also generally simplifies setting of restrictions.
29506
29507         * snames.ads/adb: New entry for proper handling of No_Requeue
29508
29509         * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks
29510         restriction counting.
29511         Other minor changes for new restrictions handling
29512
29513         * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.
29514         Restriction_Warnings now allows full parameter notation
29515         Major rewrite of Restrictions for new restrictions handling
29516
29517 2004-02-02  Javier Miranda  <miranda@gnat.com>
29518
29519         * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y
29520         syntax rule for object renaming declarations.
29521         (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for
29522         component definitions.
29523
29524         * sem_ch3.adb (Analyze_Component_Declaration): Give support to access
29525         components.
29526         (Array_Type_Declaration): Give support to access components. In addition
29527         it was also modified to reflect the name of the object in anonymous
29528         array types. The old code did not take into account that it is possible
29529         to have an unconstrained anonymous array with an initial value.
29530         (Check_Or_Process_Discriminants): Allow access discriminant in
29531         non-limited types.
29532         (Process_Discriminants): Allow access discriminant in non-limited types
29533         Initialize the new Access_Definition field in N_Object_Renaming_Decl
29534         node.  Change Ada0Y to Ada 0Y in comments
29535
29536         * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in
29537         equality operators.
29538         Change Ada0Y to Ada 0Y in comments
29539
29540         * sem_ch8.adb (Analyze_Object_Renaming): Give support to access
29541         renamings Change Ada0Y to Ada 0Y in comments
29542
29543         * sem_type.adb (Find_Unique_Type): Give support to the equality
29544         operators for universal access types
29545         Change Ada0Y to Ada 0Y in comments
29546
29547         * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms
29548
29549         * sinfo.ads (N_Component_Definition): Addition of Access_Definition
29550         field.
29551         (N_Object_Renaming_Declaration): Addition of Access_Definition field
29552         Change Ada0Y to Ada 0Y in comments
29553
29554         * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for
29555         component definition and object renaming nodes
29556         Change Ada0Y to Ada 0Y in comments
29557
29558 2004-02-02  Jose Ruiz  <ruiz@act-europe.fr>
29559
29560         * restrict.adb: Use the new restriction identifier
29561         No_Requeue_Statements instead of the old No_Requeue for defining the
29562         restricted profile.
29563
29564         * sem_ch9.adb (Analyze_Requeue): Check the new restriction
29565         No_Requeue_Statements.
29566
29567         * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)
29568         that supersedes the GNAT specific restriction No_Requeue. The later is
29569         kept for backward compatibility.
29570
29571 2004-02-02  Ed Schonberg  <schonberg@gnat.com>
29572
29573         * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,
29574         5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant
29575         pragma and fix incorrect ones.
29576
29577         * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a
29578         warning if the pragma is redundant.
29579
29580 2004-02-02  Thomas Quinot  <quinot@act-europe.fr>
29581
29582         * 5staprop.adb: Add missing 'constant' keywords.
29583
29584         * Makefile.in: use consistent value for SYMLIB on
29585         platforms where libaddr2line is supported.
29586
29587 2004-02-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29588
29589         * utils.c (end_subprog_body): Do not call rest_of_compilation if just
29590         annotating types.
29591
29592 2004-02-02  Olivier Hainque  <hainque@act-europe.fr>
29593
29594         * init.c (__gnat_install_handler): Setup an alternate stack for signal
29595         handlers in the environment thread. This allows proper propagation of
29596         an exception on stack overflows in this thread even when the builtin
29597         ABI stack-checking scheme is used without support for a stack reserve
29598         region.
29599
29600         * utils.c (create_field_decl): Augment the head comment about bitfield
29601         creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P
29602         here, because the former is not accurate enough at this point.
29603         Let finish_record_type decide instead.
29604         Don't make a bitfield if the field is to be addressable.
29605         Always set a size for the field if the record is packed, to ensure the
29606         checks for bitfield creation are triggered.
29607         (finish_record_type): During last pass over the fields, clear
29608         DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is
29609         not covered by the calls to layout_decl.  Adjust DECL_NONADDRESSABLE_P
29610         from DECL_BIT_FIELD.
29611
29612 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
29613
29614         * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
29615         (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.
29616         (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.
29617
29618 2004-01-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
29619
29620         * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB.
29621
29622         * 5fsystem.ads (Functions_Return_By_DSP): Set to False.
29623         (ZCX_By_Default): Likewise.
29624         (Front_End_ZCX_Support): Likewise.
29625
29626         * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced.
29627         (Initialize_Lock): Mark Level unreferenced.
29628         (Sleep): Mark Reason unreferenced.
29629         (Timed_Sleep): Likewise.
29630         (Wakeup): Likewise.
29631         (Exit_Task): Use Result.
29632         (Check_No_Locks): Mark Self_ID unreferenced.
29633
29634         * 5gtasinf.adb (New_Sproc): Make Attr constant.
29635         (Bound_Thread_Attributes): Make Sproc constant.
29636         (New_Bound_Thread_Attributes): Likewise.
29637
29638 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
29639
29640         * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for
29641         one-dimensional array an slice assignments, when component type is
29642         controlled.
29643
29644         * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,
29645         component type is controlled, and control_actions are in effect, use
29646         TSS procedure rather than generating inline code.
29647
29648         * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional
29649         arrays with controlled components.
29650
29651 2004-01-26  Vincent Celier  <celier@gnat.com>
29652
29653         * gnatcmd.adb (GNATCmd): Add specification of argument file on the
29654         command line for the non VMS case.
29655
29656         * gnatlink.adb (Process_Binder_File): When building object file, if
29657         GNU linker is used, put all object paths between quotes, to prevent ld
29658         error when there are unusual characters (such as '!') in the paths.
29659
29660         * Makefile.generic: When there are sources in Ada and the main is in
29661         C/C++, invoke gnatmake with -B, instead of -z.
29662
29663         * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted
29664         from VMS_Conversion.
29665         (Process_Argument): New procedure, extracted from VMS_Conversion. Add
29666         specification of argument file on the command line.
29667
29668 2004-01-26  Bernard Banner  <banner@gnat.com>
29669
29670         * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64
29671
29672 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
29673
29674         * snames.adb: Update copyright notice.
29675         Add info on slice assignment for controlled arrays.
29676
29677 2004-01-23  Robert Dewar  <dewar@gnat.com>
29678
29679         * exp_aggr.adb: Minor reformatting
29680
29681         * exp_ch9.adb: Minor code clean up
29682         Minor reformatting
29683         Fix bad character in comment
29684
29685         PR ada/13471
29686         * targparm.adb (Get_Target_Parameters): Give clean abort error on
29687         unexpected end of file, along with more detailed message.
29688
29689 2004-01-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29690
29691         * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of
29692         PAT.
29693
29694         * decl.c (copy_alias_set): New function.
29695         (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it.
29696
29697 2004-01-23  Doug Rupp  <rupp@gnat.com>
29698
29699         * Makefile.in (install-gnatlib): Change occurrences of lib$$file to
29700         lib$${file} in case subsequent character is not a separator.
29701
29702 2004-01-23  Vincent Celier  <celier@gnat.com>
29703
29704         * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc
29705         when the GCC version is at least 3.
29706
29707         * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches
29708         Remove all "Opt.", to prepare for opt split
29709
29710         * prj-part.adb (Parse_Single_Project): New Boolean out parameter
29711         Extends_All. Set to True when the project parsed is an extending all
29712         project. Fails for importing an extending all project only when the
29713         imported project is an extending all project.
29714         (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause,
29715         depending on the value of Extends_All returned.
29716
29717         * prj-proc.adb (Process): Check that no project shares its object
29718         directory with a project that extends it, directly or indirectly,
29719         including a virtual project.
29720         Check that no project extended by another project shares its object
29721         directory with another also extended project.
29722
29723         * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for
29724         Kind = N_With_Clause
29725
29726         * prj-tree.ads: Minor reformatting
29727         Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All).
29728
29729 2004-01-23  Ed Schonberg  <schonberg@gnat.com>
29730
29731         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute
29732         applies to a type with an incomplete view, use full view in Name of
29733         clause, for consistency with uses of Get_Attribute_Definition_Clause.
29734
29735 2004-01-23  Arnaud Charlet  <charlet@act-europe.fr>
29736
29737         * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using
29738         SCHED_RR, since other values are not supported by this policy.
29739         (Initialize): Move initialization of mutex attribute to package
29740         elaboration, to prevent early access to this variable.
29741
29742         * Makefile.in: Remove mention of Makefile.adalib, unused.
29743
29744         * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
29745         1ssecsta.ads: Removed, unused.
29746
29747 2004-01-21  Javier Miranda  <miranda@gnat.com>
29748
29749         * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master
29750         entity if already built in the current scope.
29751
29752         * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity
29753         reminder in internal scopes. Required for nested limited aggregates.
29754
29755 2004-01-21  Doug Rupp  <rupp@gnat.com>
29756
29757         * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on
29758         VMS. Replace all occurences of libgnat- and libgnarl- with
29759         libgnat$(hyphen) and libgnarl$(hyphen).
29760         Fixed shared library build problem on VMS.
29761
29762 2004-01-21  Robert Dewar  <dewar@gnat.com>
29763
29764         * mlib-prj.adb: Minor reformatting
29765
29766 2004-01-21  Thomas Quinot  <quinot@act-europe.fr>
29767
29768         * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing
29769         'constant' keywords for declaration of pointers that are not modified.
29770
29771         * exp_pakd.adb: Fix English in comment.
29772
29773 2004-01-21  Ed Schonberg  <schonberg@gnat.com>
29774
29775         PR ada/10889
29776         * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype,
29777         copy all attributes of the parent, including the foreign language
29778         convention.
29779
29780 2004-01-21  Sergey Rybin  <rybin@act-europe.fr>
29781
29782         PR ada/10565
29783         * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check
29784         for 'delay until' statement.
29785
29786 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
29787
29788         * Make-lang.in: Replace $(docdir) with doc.
29789         (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info
29790         doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update
29791         to use consistent MAKEINFO rule.
29792         (ada.man, ada.srcman): Dummy entry.
29793         (ADA_INFOFILES): Define.
29794         (ada.info, ada.srcinfo): New rules.
29795
29796 2004-01-19  Arnaud Charlet  <charlet@act-europe.fr>
29797
29798         * utils.c: Update copyright notice, missed in previous change.
29799
29800 2004-01-19  Vincent Celier  <celier@gnat.com>
29801
29802         * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the
29803         args if Bind is True. Set First_ALI, if not already done.
29804         (Build_Library): For Stand Alone Libraries, extract from one ALI file
29805         an eventual --RTS switch, for gnatbind, and all backend switches +
29806         --RTS, for linking.
29807
29808 2004-01-19  Robert Dewar  <dewar@gnat.com>
29809
29810         * sem_attr.adb, memtrack.adb: Minor reformatting
29811
29812 2004-01-19  Ed Schonberg  <schonberg@gnat.com>
29813
29814         * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions
29815         that rename enumeration literals. This is properly done in sem_eval.
29816
29817         * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls
29818         to functions that rename enumeration literals.
29819
29820         * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to
29821         functions that rename enumeration literals.
29822
29823 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
29824
29825         * Make-lang.in (utils.o): Depend on target.h.
29826         * utils.c: Include target.h.
29827         (process_attributes): Use targetm.have_named_sections instead
29828         of ASM_OUTPUT_SECTION_NAME.
29829
29830 2004-01-16  Andreas Jaeger  <aj@suse.de>
29831
29832         * Makefile.in: Add $(DESTDIR).
29833
29834 2004-01-15  Olivier Hainque  <hainque@act-europe.fr>
29835
29836         * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size
29837         also when not defining if a Size clause applies. That information is
29838         not to be ignored.
29839
29840 2004-01-15  Arnaud Charlet  <charlet@act-europe.fr>
29841
29842         * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up
29843         symbolic links for the shared gnat run time when needed.
29844
29845 2004-01-15  Vasiliy Fofanov  <fofanov@act-europe.fr>
29846
29847         * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened
29848         for writing, and terminate with an error message if not.
29849
29850 2004-01-15  Ed Schonberg  <schonberg@gnat.com>
29851
29852         * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious
29853         warning on an access to subprogram in an instance, when the target
29854         type is declared in the same generic unit.
29855         (Eval_Attribute): If 'access is known to fail accessibility check,
29856         rewrite as a raise statement.
29857
29858 2004-01-15  GNAT Script  <nobody@gnat.com>
29859
29860         * Make-lang.in: Makefile automatically updated
29861
29862 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
29863
29864         * Make-lang.in (ada.srcextra): Dummy entry.
29865
29866 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
29867
29868         * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.
29869
29870 2004-01-13  Ed Schonberg  <schonberg@gnat.com>
29871
29872         * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled
29873         components that are initialized with aggregates.
29874
29875 2004-01-13  Vincent Celier  <celier@gnat.com>
29876
29877         * gnatlink.adb (Process_Binder_File): To find directory of shared
29878         libgcc, if "gcc-lib" is not a subdirectory, look for the last
29879         subdirectory "lib" in the path of the shared libgnat or libgnarl.
29880
29881         * make.adb (Gnatmake): If GCC version is at least 3, link with
29882         -shared-libgcc, when there is at least one shared library project.
29883
29884         * opt.ads (GCC_Version): New integer constant.
29885
29886         * adaint.c (get_gcc_version): New function.
29887
29888 2004-01-13  Robert Dewar  <dewar@gnat.com>
29889
29890         * sem_dist.adb, sem_res.adb, sem_util.adb,
29891         sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb,
29892         exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting
29893
29894 2004-01-13  Thomas Quinot  <quinot@act-europe.fr>
29895
29896         * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb,
29897         g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object
29898         declarations.
29899
29900 2004-01-12  Arnaud Charlet  <charlet@act-europe.fr>
29901
29902         * misc.c: Remove trailing spaces.
29903         Update copyright notice missed in previous change.
29904
29905         PR ada/13572
29906         * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of
29907         prefix/share/make
29908
29909         * Makefile.generic: Update copyright.
29910         Add license notice.
29911
29912         * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead
29913         of prefix/share/make.
29914
29915         * Makefile.prolog: Update copyright.
29916         Add license notice.
29917
29918 2004-01-12  Laurent Pautet  <pautet@act-europe.fr>
29919
29920         * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb,
29921         3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb,
29922         g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr
29923         instead of String.
29924
29925         * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message
29926         signature.
29927
29928 2004-01-12  Javier Miranda  <miranda@gnat.com>
29929
29930         * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb,
29931         exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb,
29932         sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb,
29933         sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of
29934         Component_Definition node.
29935
29936 2004-01-12  Ed Falis  <falis@gnat.com>
29937
29938         * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit
29939
29940 2004-01-12  Thomas Quinot  <quinot@act-europe.fr>
29941
29942         * link.c: Change default libgnat kind to STATIC for FreeBSD.
29943
29944 2004-01-12  Bernard Banner  <banner@gnat.com>
29945
29946         * Makefile.in: map 86numaux to a-numaux for x86_64
29947
29948 2004-01-12  Ed Schonberg  <schonberg@gnat.com>
29949
29950         * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity
29951         generated to rename a generic actual, go to the actual itself, the
29952         subtype is not a user-visible entity.
29953
29954         * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible
29955         part is a private subtype, reset the visibility of its full view, if
29956         any, to be consistent.
29957
29958         PR ada/13417
29959         * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt
29960         to use a generic package G as a formal package for another generic
29961         declared within G.
29962
29963 2004-01-12  Robert Dewar  <dewar@gnat.com>
29964
29965         * trans.c (Eliminate_Error_Msg): New procedure called to generate msg
29966
29967         * usage.adb: Remove mention of obsolete -gnatwb switch
29968         Noticed during code reading
29969
29970 2004-01-12  Jerome Guitton  <guitton@act-europe.fr>
29971
29972         * 1ssecsta.adb: Minor changes for -gnatwa warnings
29973
29974 2004-01-12  GNAT Script  <nobody@gnat.com>
29975
29976         * Make-lang.in: Makefile automatically updated
29977
29978 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
29979
29980         * misc.c (gnat_expand_expr): Add alt_rtl parameter.
29981
29982 2004-01-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
29983
29984         * link.c [sgi] (shared_libgnat_default): Change to STATIC.
29985
29986 2004-01-05  Kelley Cook  <kcook@gcc.gnu.org>
29987
29988         * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18.
29989         Update comment and copyright date.
29990         * stamp-xgnatug: Delete.
29991
29992 2004-01-05  Robert Dewar  <dewar@gnat.com>
29993
29994         * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may
29995         be modified by the binder generated main program if the -D switch is
29996         used.
29997
29998         * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all
29999         imported functions (since now we expect this to be done for imported
30000         functions)
30001
30002         * 5vtaprop.adb: Add several ??? for sections requiring more comments
30003         Minor reformatting throughout
30004
30005         * 5zinit.adb: Minor reformatting
30006         Add 2004 to copyright date
30007         Minor changes to avoid -gnatwa warnings
30008         Correct some instances of using OR instead of OR ELSE (noted while
30009         doing reformatting)
30010
30011         * sprint.adb: Minor updates to avoid -gnatwa warnings
30012
30013         * s-secsta.ads, s-secsta.adb:
30014         (SS_Get_Max): New function to obtain high water mark for ss stack
30015         Default_Secondary_Stack is not a constant since it may be modified by
30016         the binder generated main program if the -D switch is used.
30017
30018         * switch-b.adb: New -Dnnn switch for binder
30019
30020         * switch-c.adb:
30021         Make -gnatg imply all warnings currently in -gnatwa
30022
30023         * vms_conv.adb: Minor reformatting
30024         Add 2004 to copyright notice
30025         Add 2004 to printed copyright notice
30026
30027         * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb,
30028         3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb,
30029         5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb,
30030         5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb,
30031         5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb,
30032         5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb,
30033         5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb,
30034         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb,
30035         5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb,
30036         5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb,
30037         6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb,
30038         vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb,
30039         xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads,
30040         sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb,
30041         checks.adb, clean.adb, cstand.adb, einfo.ads,
30042         einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb,
30043         exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb,
30044         prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb,
30045         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb,
30046         g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb,
30047         lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb:
30048         Minor reformatting and code clean ups.
30049         Minor changes to prevent -gnatwa warnings
30050
30051         * ali.adb: Minor reformatting and cleanup of code
30052         Acquire new SS indication of secondary stack use from ali files
30053
30054         * a-numaux.ads: Add Pure_Function pragmas for all imported functions
30055         (since now we expect this to be done for imported functions)
30056
30057         * bindgen.adb: Generate call to modify default secondary stack size if
30058         -Dnnn switch given
30059
30060         * bindusg.adb: Add line for new -D switch
30061
30062         * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate
30063         replacement name for Type_May_Have_Non_Bit_Aligned_Components!
30064         Add circuitry for both records and arrays to avoid gigi
30065         processing if the type involved has non-bit-aligned components
30066
30067         * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that
30068         N_String_Literal node always references an E_String_Literal_Subtype
30069         entity. This may not be true in the future.
30070         (Possible_Bit_Aligned_Component): Move processing of
30071         Component_May_Be_Bit_Aligned from exp_ch5 to exp_util
30072
30073         * exp_ch6.adb (Expand_Thread_Body): Pick up
30074         Default_Secondary_Stack_Size as variable so that we get value modified
30075         by possible -Dnnn binder parameter.
30076
30077         * exp_util.adb (Component_May_Be_Bit_Aligned): New function.
30078         (Type_May_Have_Bit_Aligned_Components): New function.
30079
30080         * exp_util.ads (Component_May_Be_Bit_Aligned): New function.
30081         (Type_May_Have_Bit_Aligned_Components): New function.
30082
30083         * fe.h: (Set_Identifier_Casing): Fix prototype.
30084         Add declaration for Sem_Elim.Eliminate_Error_Msg.
30085         Minor reformatting.
30086
30087         * freeze.adb (Freeze_Entity): Add RM reference to error message about
30088         importing constant atomic/volatile objects.
30089         (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram
30090         unless explicit Pure_Function pragma given, to avoid insidious bug of
30091         call to non-pure imported function getting eliminated.
30092
30093         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb,
30094         gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb,
30095         gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting
30096         Add 2004 to printed copyright notice
30097
30098         * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary
30099         stack used.
30100
30101         * Makefile.rtl: Add entry for g-sestin.o
30102         g-sestin.ads: New file.
30103
30104         * mdll.adb: Minor changes to avoid -gnatwa warnings
30105
30106         * mlib-tgt.adb: Minor reformatting
30107
30108         * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND)
30109         New switch Sec_Stack_Used (GNAT, GNATBIND)
30110         Make Default_Secondary_Stack_Size a variable instead of a constant,
30111         so that it can be modified by the new -Dnnn bind switch.
30112
30113         * rtsfind.adb (Load_Fail): Give full error message in configurable
30114         run-time mode if all_errors mode is set. This was not done in the case
30115         of a file not found, which was an oversight.
30116         Note if secondary stack unit is used by compiler.
30117
30118         * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put
30119         ineffective elaborate all pragmas on non-visible packages (this
30120         happened when a renamed subprogram was called). Now the elaborate all
30121         always goes on the package containing the renaming rather than the one
30122         containing the renamed subprogram.
30123
30124         * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure
30125         (Process_Eliminate_Pragma): Add parameter to capture pragma location.
30126
30127         * sem_eval.adb (Eval_String_Literal): Do not assume that string literal
30128         has an Etype that references an E_String_Literal.
30129         (Eval_String_Literal): Avoid assumption that N_String_Literal node
30130         always references an E_String_Literal_Subtype entity. This may not
30131         be true in the future.
30132
30133         * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture
30134         pragma location.
30135
30136         * sem_res.adb (Resolve): Specialize msg for function name used in proc
30137         call.
30138
30139 2004-01-05  Ed Falis  <falis@gnat.com>
30140
30141         * g-debuti.adb: Replaced direct boolean operator with short-circuit
30142         form.
30143
30144 2004-01-05  Vincent Celier  <celier@gnat.com>
30145
30146         * bld.adb: Minor comment updates
30147         (Process_Declarative_Items): Correct incorrect name (Index_Name instead
30148         of Item_Name).
30149
30150         * make.adb (Gnatmake): Special process for files to compile/check when
30151         -B is specified. Fail when there are only foreign mains in attribute
30152         Main of the project file and -B is not specified. Do not skip bind/link
30153         steps when -B is specified.
30154
30155         * makeusg.adb: Document new switch -B
30156
30157         * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag
30158
30159         * switch-m.adb: (Scan_Make_Switches): Process -B switch
30160
30161         * vms_data.ads: Add new GNAT PRETTY qualifier
30162         /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff
30163
30164 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30165
30166         * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer
30167         case.
30168
30169         * misc.c (gnat_printable_name): If VERBOSITY is 2, call
30170         Set_Identifier_Casing.
30171
30172         * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type
30173         has size that overflows.
30174
30175 2004-01-05  Gary Dismukes  <dismukes@gnat.com>
30176
30177         * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid
30178         -gnatwa warning on static condition.
30179
30180 2004-01-05  Doug Rupp  <rupp@gnat.com>
30181
30182         * link.c: (shared_libgnat_default) [VMS]: Change to STATIC.
30183
30184 2004-01-05  Arnaud Charlet  <charlet@act-europe.fr>
30185
30186         * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve
30187         all attributes, including read-only attribute.
30188
30189 2004-01-05  Pascal Obry  <obry@gnat.com>
30190
30191         * bindgen.adb (Gen_Object_Files_Options): Generate the new shared
30192         library naming scheme.
30193
30194         * mlib-prj.adb (Build_Library): Generate different names for the static
30195         or dynamic version of the GNAT runtime. This is needed to support the
30196         new shared library naming scheme.
30197         (Process_Binder_File): Add detection of shared library in binder file
30198         based on the new naming scheme.
30199
30200         * gnatlink.adb (Process_Binder_File): Properly detect the new naming
30201         scheme for the shared runtime libraries.
30202
30203         * Makefile.in:
30204         (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming
30205         scheme.
30206         (install-gnatlib): Do not create symlinks for shared libraries.
30207         (gnatlib-shared-default): Idem.
30208         (gnatlib-shared-dual-win32): New target. Not used for now as the
30209         auto-import feature does not support arrays/records.
30210         (gnatlib-shared-win32): Do not create copy for the shared libraries.
30211         (gnatlib-shared-vms): Fix shared runtime libraries names.
30212
30213         * osint.ads, osint.adb (Shared_Lib): New routine, returns the target
30214         dependent runtime shared library name.
30215
30216 2004-01-05  Vasiliy Fofanov  <fofanov@act-europe.fr>
30217
30218         * osint.adb (Read_Library_Info): Remove bogus check if ALI is older
30219         than the object.
30220
30221 2004-01-05  Ed Schonberg  <schonberg@gnat.com>
30222
30223         * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic
30224         protected objects when allocator has a subtype indication, not a
30225         qualified expression. Note that qualified expressions may have to be
30226         checked when limited aggregates are implemented.
30227
30228         * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is
30229         pure, emit warning.
30230         (Analyze_Pragma, case Pure_Function): If enclosing package is pure and
30231         subprogram is imported, remove warning.
30232
30233 2004-01-05  Geert Bosch  <bosch@gnat.com>
30234
30235         * s-poosiz.adb: Update copyright notice.
30236         (Allocate): Use Task_Lock to protect against concurrent access.
30237         (Deallocate): Likewise.
30238
30239 2004-01-05  Joel Brobecker  <brobecker@gnat.com>
30240
30241         * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???
30242         comment.
30243
30244 2003-12-23  Kelley Cook  <kcook@gcc.gnu.org>
30245
30246         * gnat_ug.texi: Force a CVS commit by updating copyright.
30247         * gnat_ug_vxw.texi: Regenerate.
30248         * gnat_ug_wnt.texi: Regenerate.
30249         * gnat_ug_vms.texi: Regenerate.
30250         * gnat_ug_unx.texi: Regenerate.
30251
30252 2003-12-20  Kazu Hirata  <kazu@cs.umass.edu>
30253
30254         * trans.c: Remove uses of "register" specifier in
30255         declarations of local variables.
30256
30257 2003-12-18  Kelley Cook  <kcook@gcc.gnu.org>
30258
30259         * stamp-xgnatug: New stamp file.
30260         * Make-lang.in (stamp-xgnatug):  New stamp file and comment.
30261         (ada/doctools/xgnatug): Add $(build_exeext).
30262         (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
30263         ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.
30264
30265 2003-12-17  Ed Falis  <falis@gnat.com>
30266
30267         * a-elchha.adb (Tailored_Exception_Information): made Info constant to
30268         eliminate warning.
30269
30270         * a-exextr.adb: Add context clause for
30271         Ada.Exceptions.Last_Chance_Handler.
30272
30273 2003-12-17  Sergey Rybin  <rybin@act-europe.fr>
30274
30275         * cstand.adb (Create_Standard): Change the way how the declaration of
30276         the Duration type is created (making it the same way as it is for all
30277         the other standard types).
30278
30279 2003-12-17  Robert Dewar  <dewar@gnat.com>
30280
30281         * s-crtl.ads: Fix header format
30282         Change Pure to Preelaborate
30283
30284 2003-12-17  Ed Schonberg  <schonberg@gnat.com>
30285
30286         * checks.adb (Selected_Length_Checks): Generate an Itype reference for
30287         the expression type only if it is declared in the current unit.
30288
30289         * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds
30290         are universal and already analyzed, as can occur in constrained
30291         subcomponents that depend on discriminants, when one constraint is a
30292         subtype mark.
30293
30294         * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of
30295         type Any_Fixed is legal as the argument of a conversion, if only one
30296         fixed-point type is in context.
30297
30298 2003-12-17  GNAT Script  <nobody@gnat.com>
30299
30300         * Make-lang.in: Makefile automatically updated
30301
30302 2003-12-15  Robert Dewar  <dewar@gnat.com>
30303
30304         * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default
30305         sec stack size.
30306
30307 2003-12-15  Vincent Celier  <celier@gnat.com>
30308
30309         * gnatchop.adb: (Error_Msg): Do not exit on error for a warning
30310         (Gnatchop): Do not set failure status when reporting the number of
30311         warnings.
30312
30313 2003-12-15  Doug Rupp  <rupp@gnat.com>
30314
30315         * s-ctrl.ads: New file.
30316
30317         * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext).
30318
30319         * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o.
30320         (GNATBIND_OBJS): Add ada/s-crtl.o.
30321
30322         * Makefile.in [VMS]: Clean up ifeq rules.
30323
30324         * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb,
30325         a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb,
30326         g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb,
30327         s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb,
30328         s-tasdeb.adb: Update copyright.
30329         Import System.CRTL.
30330         Make minor modifications to use System.CRTL declared functions instead
30331         of importing locally.
30332
30333 2003-12-15  GNAT Script  <nobody@gnat.com>
30334
30335         * Make-lang.in: Makefile automatically updated
30336
30337 2003-12-11  Ed Falis  <falis@gnat.com>
30338
30339         * 5zinit.adb: Clean up.
30340
30341         * 5zintman.adb (Notify_Exception): replaced case statement with a call
30342         to __gnat_map_signal, imported from init.c to support
30343         signal -> exception mappings that depend on the vxWorks version.
30344
30345         * init.c:
30346         Created and exported __gnat_map_signal to support signal -> exception
30347         mapping that is dependent on the VxWorks version.
30348         Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks
30349
30350 2003-12-11  Vasiliy Fofanv  <fofanov@act-europe.fr>
30351
30352         * 5wosinte.ads: Link with -mthreads switch.
30353
30354 2003-12-11  Arnaud Charlet  <charlet@act-europe.fr>
30355
30356         * init.c (__gnat_install_handler [NetBSD]): Set
30357         __gnat_handler_installed, as done on all other platforms.
30358         Remove duplicated code.
30359
30360 2003-12-11  Jerome Guitton  <guitton@act-europe.fr>
30361
30362         * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a.
30363
30364 2003-12-11  Thomas Quinot  <quinot@act-europe.fr>
30365
30366         * sinfo.ads: Fix inconsistent example code in comment.
30367
30368 2003-12-11  Robert Dewar  <dewar@gnat.com>
30369
30370         * a-tiinau.adb: Add a couple of comments
30371
30372         * sem_ch3.adb: Minor reformatting
30373
30374         * sem_prag.adb:
30375         Fix bad prototype of Same_Base_Type in body (code reading cleanup)
30376         Minor reformatting throughout
30377
30378 2003-12-11  Ed Schonberg  <schonberg@gnat.com>
30379
30380         * exp_ch7.adb (Establish_Transient_Scope): If the call is within the
30381         bounds of a loop, create a separate block in order to generate proper
30382         cleanup actions to prevent memory leaks.
30383
30384         * sem_res.adb (Resolve_Call): After a call to
30385         Establish_Transient_Scope, the call may be rewritten and relocated, in
30386         which case no further processing is needed.
30387
30388         * sem_util.adb: (Wrong_Type): Refine previous fix.
30389          Fixes ACATS regressions.
30390
30391         PR ada/13353
30392         * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
30393         be inlined.
30394
30395 2003-12-08  Jerome Guitton  <guitton@act-europe.fr>
30396
30397         * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb,
30398         i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of
30399         obsolete files.
30400
30401         * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a.
30402         (rts-zfp): Ditto.
30403
30404 2003-12-08  Robert Dewar  <dewar@gnat.com>
30405
30406         * 7sintman.adb: Minor reformatting
30407
30408         * bindgen.adb: Configurable_Run_Time mode no longer suppresses the
30409         standard linker options to get standard libraries linked. We now plan
30410         to provide dummy versions of these libraries to match the appropriate
30411         configurable run-time (e.g. if a library is not needed at all, provide
30412         a dummy empty library).
30413
30414         * targparm.ads: Configurable_Run_Time mode no longer affects linker
30415         options (-L parameters and standard libraries). What we plan to do is
30416         to provide dummy libraries where the libraries are not required.
30417
30418         * gnatbind.adb: Minor comment improvement
30419
30420 2003-12-08  Javier Miranda  <miranda@gnat.com>
30421
30422         * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded
30423         aggregate in the parent. Otherwise constants with limited aggregates
30424         are not supported. Add new formal to pass the component type (Ctype).
30425         It is required to call the corresponding IP subprogram in case of
30426         default initialized components.
30427         (Gen_Assign): In case of default-initialized component, generate a
30428         call to the IP subprogram associated with the component.
30429         (Build_Record_Aggr_Code): Remove the aggregate from the parent in case
30430         of aggregate with default initialized components.
30431         (Has_Default_Init_Comps): Improve implementation to recursively check
30432         all the present expressions.
30433
30434         * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal
30435         to indicate that the initialization call corresponds to a
30436         default-initialized component of an aggregate.
30437         In case of default initialized aggregate with tasks this parameter is
30438         used to generate a null string (this is just a workaround that must be
30439         improved later). In case of discriminants, this parameter is used to
30440         generate a selected component node that gives access to the discriminant
30441         value.
30442
30443         * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New
30444         subprogram, based on Build_Task_Allocate_Block, but adapted to expand
30445         allocated aggregates with default-initialized components.
30446
30447         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if
30448         the box notation is used in positional aggregates.
30449
30450 2003-12-08  Samuel Tardieu  <tardieu@act-europe.fr>
30451
30452         * lib.ads: Fix typo in comment
30453
30454 2003-12-08  Vincent Celier  <celier@gnat.com>
30455
30456         * prj.adb (Project_Empty): New component Unkept_Comments
30457         (Scan): Remove procedure; moved to Prj.Err.
30458
30459         * prj.ads (Project_Data): New Boolean component Unkept_Comments
30460         (Scan): Remove procedure; moved to Prj.Err.
30461
30462         * prj-dect.adb: Manage comments for the different declarations.
30463
30464         * prj-part.adb (With_Record): New component Node
30465         (Parse): New Boolean parameter Store_Comments, defaulted to False.
30466         Set the scanner to return ends of line and comments as tokens, if
30467         Store_Comments is True.
30468         (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that
30469         comments are associated with these nodes. Store the node IDs in the
30470         With_Records.
30471         (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the
30472         With_Records.
30473         (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating
30474         the N_Project node. Call Tree.Save and Tree.Reset before scanning the
30475         current project. Call Tree.Restore afterwards. Set the various nodes
30476         for comment storage (Next_End, End_Of_Line, Previous_Line,
30477         Previous_End).
30478
30479         * prj-part.ads (Parse): New Boolean parameter Store_Comments,
30480         defaulted to False.
30481
30482         * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted
30483         to False. When Truncated is True, truncate the string, never go to the
30484         next line.
30485         (Write_End_Of_Line_Comment): New procedure
30486         (Print): Process comments for nodes N_With_Clause,
30487         N_Package_Declaration, N_String_Type_Declaration,
30488         N_Attribute_Declaration, N_Typed_Variable_Declaration,
30489         N_Variable_Declaration, N_Case_Construction, N_Case_Item.
30490         Process nodes N_Comment.
30491
30492         * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node
30493         without comments and there are some comments, set the flag
30494         Unkept_Comments to True.
30495         (Scan): If there are comments, set the flag Unkept_Comments to True and
30496         clear the comments.
30497         (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment
30498         (Next_End_Nodes: New table
30499         (Comment_Zones_Of): New function
30500         (Scan): New procedure; moved from Prj. Accumulate comments in the
30501         Comments table and set end of line comments, comments after, after end
30502         and before end.
30503         (Add_Comments): New procedure
30504         (Save, Restore, Seset_State): New procedures
30505         (There_Are_Unkept_Comments): New function
30506         (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures
30507         (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New
30508         procedures.
30509         (First_Comment_After, First_Comment_After_End): New functions
30510         (First_Comment_Before, First_Comment_Before_End): New functions
30511         (Next_Comment): New function
30512         (End_Of_Line_Comment, Follows_Empty_Line,
30513         Is_Followed_By_Empty_Line): New functions
30514         (Set_First_Comment_After, Set_First_Comment_After_End): New procedures
30515         (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures
30516         (Set_Next_Comment): New procedure
30517         (Default_Project_Node): Associate comment before if the node can store
30518         comments.
30519
30520         * scans.ads (Token_Type): New enumeration value Tok_Comment
30521         (Comment_Id): New global variable
30522
30523         * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable,
30524         defaulted to False.
30525         (Scan): Store position of start of comment. If comments are tokens, set
30526         Comment_Id and set Token to Tok_Comment when scanning a comment.
30527         (Set_Comment_As_Token): New procedure
30528
30529         * sinput-p.adb: Update Copyright notice
30530         (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan
30531         that no longer exists.
30532
30533 2003-12-08  Javier Miranda  <miranda@gnat.com>
30534
30535         * sem_aggr.adb: Add dependence on Exp_Tss package
30536         Correct typo in comment
30537         (Resolve_Aggregate): In case of array aggregates set the estimated
30538         type of the aggregate before calling resolve. This is needed to know
30539         the name of the corresponding IP in case of limited array aggregates.
30540         (Resolve_Array_Aggregate): Delay the resolution to the expansion phase
30541         in case of default initialized array components.
30542
30543         * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited
30544         types. Required to give support to limited aggregates in generic
30545         formals.
30546
30547 2003-12-08  Ed Schonberg  <schonberg@gnat.com>
30548
30549         * sem_ch3.adb (Check_Initialization): For legality purposes, an
30550         inlined body functions like an instantiation.
30551         (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype
30552         until bounds are analyzed, to diagnose premature use of type.
30553
30554         * sem_util.adb (Wrong_Type): Improve error message when the type of
30555         the expression is used prematurely.
30556
30557 2003-12-08  GNAT Script  <nobody@gnat.com>
30558
30559         * Make-lang.in: Makefile automatically updated
30560
30561 2003-12-08  Arnaud Charlet  <charlet@act-europe.fr>
30562
30563         * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since
30564         they are automatically generated by Make-lang.in and cause nothing but
30565         maintenance troubles.
30566
30567 2003-12-05  Thomas Quinot  <quinot@act-europe.fr>
30568
30569         * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare,
30570         version of this unit).
30571
30572 2003-12-05  Olivier Hainque  <hainque@act-europe.fr>
30573
30574         * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads,
30575         5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads,
30576         5tosinte.ads: Define the SA_SIGINFO constant, to allow references from
30577         the body of System.Interrupt_Management common to several targets.
30578         Update copyright notice when appropriate.
30579
30580         * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO
30581         constant.
30582
30583         * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags,
30584         to ensure that the kernel fills in the interrupted context structure
30585         before calling a signal handler, which is necessary to be able to
30586         unwind past it. Update the copyright notice.
30587
30588 2003-12-05  Jerome Guitton  <guitton@act-europe.fr>
30589
30590         * a-elchha.ads: New file.
30591
30592         * a-elchha.adb: New default last chance handler. Contents taken from
30593         Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate.
30594
30595         * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine
30596         is moved to a-elchha.adb to provide a target-independent default last
30597         chance handler.
30598
30599         * Makefile.rtl: Add a-elchha.o
30600
30601         * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o.
30602
30603 2003-12-05  Ed Schonberg  <schonberg@gnat.com>
30604
30605         * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is
30606         declared in an instance, do not inline the call if the instance is not
30607         frozen yet, to prevent order of elaboration problems.
30608
30609         * sem_prag.adb: Add comments for previous fix.
30610
30611 2003-12-05  Samuel Tardieu  <tardieu@act-europe.fr>
30612
30613         * g-table.adb: Use the right variable in Set_Item.
30614         Update copyright notice.
30615
30616 2003-12-05  Arnaud Charlet  <charlet@act-europe.fr>
30617
30618         * Makefile.in: Remove unused rules.
30619
30620 2003-12-05  Vincent Celier  <celier@gnat.com>
30621
30622         * switch-c.adb (Scan_Front_End_Switches): Remove processing of
30623         -nostdlib. Not needed here after all.
30624
30625 2003-12-03  Thomas Quinot  <quinot@act-europe.fr>
30626
30627         PR ada/11724
30628         * adaint.h, adaint.c, g-os_lib.ads:
30629         Do not assume that the offset argument to lseek(2) is a 32 bit integer,
30630         on some platforms (including FreeBSD), it is a 64 bit value.
30631         Introduce a __gnat_lseek wrapper in adaint.c to allow for portability.
30632
30633 2003-12-03  Arnaud Charlet  <charlet@act-europe.fr>
30634
30635         * gnatvsn.ads (Library_Version): Now contain only the relevant
30636         version info.
30637         (Verbose_Library_Version): New constant.
30638
30639         * g-spipat.adb, g-awk.adb, g-debpoo.adb,
30640         g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb,
30641         s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa.
30642
30643         * gnatlbr.adb: Clean up: replace Library_Version by
30644         Verbose_Library_Version.
30645
30646         * make.adb, lib-writ.adb, exp_attr.adb:
30647         Clean up: replace Library_Version by Verbose_Library_Version.
30648
30649         * 5lintman.adb: Removed.
30650
30651         * Makefile.in:
30652         Update and simplify computation of LIBRARY_VERSION.
30653         Fix computation of GSMATCH_VERSION.
30654         5lintman.adb is no longer used: replaced by 7sintman.adb.
30655
30656 2003-12-03  Robert Dewar  <dewar@gnat.com>
30657
30658         * exp_ch5.adb:
30659         (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new
30660         name. Modified to consider small non-bit-packed arrays as troublesome
30661         and in need of component-by-component assigment expansion.
30662
30663 2003-12-03  Vincent Celier  <celier@gnat.com>
30664
30665         * lang-specs.h: Process nostdlib as nostdinc
30666
30667         * back_end.adb: Update Copyright notice
30668         (Scan_Compiler_Arguments): Process -nostdlib directly.
30669
30670 2003-12-03  Jose Ruiz  <ruiz@act-europe.fr>
30671
30672         * Makefile.in:
30673         When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the
30674         redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always
30675         included in HIE_NONE_TARGET_PAIRS.
30676
30677 2003-12-03  Ed Schonberg  <schonberg@gnat.com>
30678
30679         * sem_attr.adb:
30680         (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it
30681         is legal in an instance, because legality is cheched in the template.
30682
30683         * sem_prag.adb:
30684         (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be
30685         appplied to an unchecked conversion of a formal parameter.
30686
30687         * sem_warn.adb:
30688         (Output_Unreferenced_Messages): Suppress "not read" warnings on imported
30689         variables.
30690
30691 2003-12-03  Olivier Hainque  <hainque@act-europe.fr>
30692
30693         * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New
30694         routines. The second one is new functionality to deal with backtracing
30695         through signal handlers.
30696         (unwind): Split into the two separate subroutines above.
30697         Update the documentation, and deal properly with sizeof (REG) different
30698         from sizeof (void*).
30699
30700 2003-12-01  Nicolas Setton  <setton@act-europe.fr>
30701
30702         * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point,
30703         so that the debugger can reliably access the value of the parameter,
30704         and therefore is able to display the exception name when an exception
30705         breakpoint is reached.
30706
30707 2003-12-01  Thomas Quinot  <quinot@act-europe.fr>
30708
30709         * fmap.adb: Fix typo in warning message.
30710
30711         * g-socket.ads, g-socket.adb: Make Free a visible instance of
30712         Ada.Unchecked_Deallocation (no need to wrap it in a subprogram).
30713
30714 2003-12-01  Vincent Celier  <celier@gnat.com>
30715
30716         * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if
30717         ther is no Afile.
30718         (Build_Library): Get the switches only if Default_Switches is declared
30719         in package Binder.
30720
30721 2003-12-01  Ed Schonberg  <schonberg@gnat.com>
30722
30723         * exp_ch6.adb (Expand_Actuals): When applying validity checks to
30724         actuals that are indexed components, reanalyze actual to ensure that
30725         packed array references are properly expanded.
30726
30727         * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for
30728         attempted assignment to a discriminant.
30729
30730 2003-12-01  Robert Dewar  <dewar@gnat.com>
30731
30732         * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor
30733         reformatting.
30734
30735         * switch-c.adb: Minor reformatting of comments
30736
30737 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
30738
30739         * Makefile.in: Clean ups.
30740
30741 2003-12-01  GNAT Script  <nobody@gnat.com>
30742
30743         * Make-lang.in: Makefile automatically updated
30744
30745 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
30746
30747         * 5wsystem.ads: Disable zero cost exception, not ready yet.
30748
30749 2003-11-29  Ulrich Weigand  <uweigand@de.ibm.com>
30750
30751         * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb
30752         to force serialization.
30753
30754 2003-11-26  Thomas Quinot  <quinot@act-europe.fr>
30755
30756         * g-socket.ads, g-socket.adb:
30757         Clarify documentation of function Stream. Introduce a Free procedure
30758         to release the returned Stream once it becomes unused.
30759
30760         * 5asystem.ads: For Alpha Tru64, enable ZCX by default.
30761
30762 2003-11-26  Arnaud Charlet  <charlet@act-europe.fr>
30763
30764         (Cond_Timed_Wait): Introduce new constant Time_Out_Max,
30765         since NT 4 cannot handle timeout values that are too large,
30766         e.g. DWORD'Last - 1.
30767
30768 2003-11-26  Ed Schonberg  <schonberg@gnat.com>
30769
30770         * exp_ch4.adb:
30771         (Expand_N_Slice): Recognize all cases of slices that appear as actuals
30772         in procedure calls and whose expansion must be deferred.
30773
30774         * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix
30775         is in exp_ch4.
30776
30777         * sem_ch3.adb:
30778         (Build_Derived_Array_Type): Create operator for unconstrained type
30779         if ancestor is unconstrained.
30780
30781 2003-11-26  Vincent Celier  <celier@gnat.com>
30782
30783         * make.adb (Project_Object_Directory): New global variable
30784         (Change_To_Object_Directory): New procedure
30785         (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead
30786         of Change_Dir directly. Do not change working directory to object
30787         directory of main project after each compilation.
30788         (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir
30789         directly.
30790         Change to object directory of main project before binding step.
30791         (Initialize): Initialize Project_Object_Directory to No_Project
30792
30793         * mlib-prj.adb:
30794         (Build_Library): Take into account Builder'Default_Switches ("Ada") when
30795         binding a Stand-Alone Library.
30796
30797         * output.adb: Update Copyright notice
30798         (Write_Char): Output buffer when full
30799
30800 2003-11-26  Robert Dewar  <dewar@gnat.com>
30801
30802         * sem_ch13.adb: (Check_Size): Reset size if size is too small
30803
30804         * sem_ch13.ads:
30805         (Check_Size): Fix documentation to include bit-packed array case
30806
30807         * sem_res.adb: Implement restriction No_Direct_Boolean_Operators
30808
30809         * s-rident.ads: Put No_Direct_Boolean_Operators in proper order
30810
30811         * s-rident.ads: Add new restriction No_Direct_Boolean_Operators
30812
30813 2003-11-24  Arnaud Charlet <charlet@act-europe.fr>
30814
30815         PR ada/13142
30816         * utils.c (init_gigi_decls): Change name of built-in setjmp to
30817         __builtin_setjmp, since this is apparently needed by recent
30818         non Ada changes.
30819
30820 2003-11-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
30821
30822         * adadecode.c: Only include ctype.h if not IN_GCC.
30823         (__gnat_decode): Use ISDIGIT from safe-ctype.h.
30824
30825 2003-11-24  Jose Ruiz  <ruiz@act-europe.fr>
30826
30827         * Makefile.in:
30828         Use 5zintman.ads for VxWorks targets. This file avoid confusion between
30829         signals and interrupts.
30830
30831         * 5zintman.ads: New File.
30832
30833         * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and
30834         add exception signals to the set of unmasked signals.
30835
30836         * 5ztaprop.adb:
30837         Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion
30838         between signals and interrupts.
30839         Add to Unblocked_Signal_Mask the set of signals that are in
30840         Keep_Unmasked.
30841
30842         * 7sinmaop.adb:
30843         Adding a check to see whether the Interrupt_ID we want to unmask is in
30844         the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The
30845         reason is that the index type of the Keep_Unmasked array is not always
30846         Interrupt_ID; it may be a subtype of Interrupt_ID.
30847
30848 2003-11-24  Gary Dismukes  <dismukes@gnat.com>
30849
30850         * exp_util.adb:
30851         (Remove_Side_Effects): Condition constantness of object created for a
30852          an unchecked type conversion on the constantness of the expression
30853          to ensure the correct value for 'Constrained when passing components
30854          of view-converted class-wide objects.
30855
30856 2003-11-24  Robert Dewar  <dewar@gnat.com>
30857
30858         * par-load.adb (Load): Improve handling of misspelled and missing units
30859         Removes several cases of compilation abandoned messages
30860
30861         * lib.adb: (Remove_Unit): New procedure
30862
30863         * lib.ads: (Remove_Unit): New procedure
30864
30865         * lib-load.adb: Minor reformatting
30866
30867 2003-11-24  Vincent Celier  <celier@gnat.com>
30868
30869         * make.adb:
30870         (Gnatmake, Initialize): Call Usage instead of Makeusg directly
30871         (Marking_Label): Label to mark processed source files. Incremented for
30872         each executable.
30873         (Gnatmake): Increase Marking_Labet for each executable
30874         (Is_Marked): Compare against marking label
30875         (Mark): Mark with marking label
30876
30877 2003-11-24  Jerome Guitton  <guitton@act-europe.fr>
30878
30879         * s-thread.ads:
30880         Move the declaration of the TSD for System.Threads to System.Soft_Links.
30881         Add some comments.
30882
30883         * Makefile.in: Added target pair for s-thread.adb for cert runtime.
30884         (rts-cert): build a single relocatable object for the run-time lib.
30885         Fix perms.
30886
30887 2003-11-24  Vasiliy Fofanov  <fofanov@act-europe.fr>
30888
30889         * Make-lang.in:
30890         Use gnatls rather than gcc to obtain the location of GNAT RTL for
30891         crosstools build.
30892
30893 2003-11-24  Sergey Rybin  <rybin@act-europe.fr>
30894
30895         * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we
30896         can not use it as before (that is, as a variable) when dumping it into
30897         the tree file. Add a local variable to store the result of this
30898         function and to be used as the string to be written into the tree.
30899
30900         * scn.adb (Initialize_Scanner): Add comments explaining the recent
30901         changes.
30902
30903         * sinput.adb (Source_First, Source_Last): In case of
30904         Internal_Source_File, replace returning attributes of
30905         Internal_Source_Ptr (which is wrong) with returning attributes of
30906         Internal_Source.
30907
30908 2003-11-24  Ed Schonberg  <schonberg@gnat.com>
30909
30910         * sem_ch3.adb:
30911         (New_Concatenation_Op): Proper name for New_Binary_Operator, only
30912         used for implicit concatenation operators.
30913         Code cleanup.
30914
30915         * sem_elab.adb:
30916         (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in
30917         task bodies that are in the scope of a Suppress pragma.
30918         (Check_A Call): Use the flag to prevent spurious elaboration checks.
30919
30920         * sinfo.ads, sinfo.adb:
30921         New flag No_Elaboration_Check on function/procedure calls, to properly
30922         suppress checks on calls in task bodies that are within a local suppress
30923         pragma.
30924
30925         * exp_ch4.adb:
30926         (Expand_Concatenate_Other): Use the proper integer type for the
30927         expression for the upper bound, to avoid universal_integer computations
30928         when possible.
30929
30930 2003-11-21  Kelley Cook  <kcook@gcc.gnu.org>
30931
30932         * .cvsignore: Delete.
30933
30934 2003-11-21  Andreas Schwab  <schwab@suse.de>
30935
30936         * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True.
30937
30938 2003-11-21  Vasiliy Fofanov  <fofanov@act-europe.fr>
30939
30940         * 5wsystem.ads: Enable zero cost exception.
30941
30942 2003-11-21  Jerome Guitton  <guitton@act-europe.fr>
30943
30944         * 5ztiitho.adb: Remove an unreferenced variable.
30945
30946 2003-11-21  Thomas Quinot  <quinot@act-europe.fr>
30947
30948         * adaint.c: For FreeBSD, use mkstemp.
30949
30950 2003-11-21  Arnaud Charlet  <charlet@act-europe.fr>
30951
30952         * gnatlbr.adb: Now reference Gnat_Static_Version_String.
30953
30954 2003-11-21  Robert Dewar  <dewar@gnat.com>
30955
30956         * bld.adb: Remove useless USE of gnatvsn
30957
30958         * gnatchop.adb: Minor reformatting
30959         Clean up version handling to be more consistent
30960
30961         * gnatxref.adb: Minor reformatting
30962
30963         * gprcmd.adb: Minor reformatting
30964         Fix output of copyright to be more consistent with other tools
30965
30966 2003-11-21  Vincent Celier  <celier@gnat.com>
30967
30968         * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink
30969
30970 2003-11-21  Sergey Rybin  <rybin@act-europe.fr>
30971
30972         * atree.adb (Initialize): Add initializations for global variables
30973         used in New_Copy_Tree.
30974
30975         * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with
30976         Internal_Source_File as the actual).
30977         Put the set of statements creating Any_Character before the set of
30978         statements creating Any_Array to have Any_Character fully initialized
30979         when it is used in creating Any_Array.
30980
30981         * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do
30982         not call Scan in case if the actual is Internal_Source_File
30983         Add 2003 to copyright note.
30984
30985         * sinput.adb (Source_First, Source_Last, Source_Text): Add code for
30986         processing Internal_Source_File.
30987
30988         * types.ads: Add the constant Internal_Source_File representing the
30989         source buffer for artificial source-code-like strings created within
30990         the compiler (the definition of Source_File_Index is changed).
30991
30992 2003-11-20  Arnaud Charlet  <charlet@act-europe.fr>
30993
30994         * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads,
30995         56system.ads: New file, FreeBSD version.
30996
30997 2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
30998
30999         * Make-lang.in (ada.extraclean): Delete.
31000
31001 2003-11-19  Arnaud Charlet  <charlet@act-europe.fr>
31002
31003         * gnatmem.adb: Clean up verbose output.
31004
31005         * gprcmd.adb: Change copyright to FSF.
31006
31007 2003-11-19  Vincent Celier  <celier@gnat.com>
31008
31009         * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy
31010         and Version (ignored).
31011
31012         * symbols.ads: (Policy): New type
31013         (Initialize): New parameter Reference, Symbol_Policy and
31014         Library_Version.
31015         Remove parameter Force.
31016         Minor reformatting.
31017
31018         * snames.ads, snames.adbadb: New standard names
31019         Library_Reference_Symbol_File and Library_Symbol_Policy
31020
31021         * mlib-prj.adb:
31022         (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the
31023         project.
31024
31025         * mlib-tgt.adb:
31026         (Build_Dynamic_Library): New parameter Symbol_Data (ignored)
31027
31028         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data
31029
31030         * prj.adb: (Project_Empty): New component Symbol_Data
31031
31032         * prj.ads: (Policy, Symbol_Record): New types
31033         (Project_Data): New component Symbol_Data
31034
31035         * prj-attr.adb:
31036         New attributes Library_Symbol_File, Library_Symbol_Policy and
31037         Library_Reference_Symbol_File.
31038
31039         * prj-nmsc.adb:
31040         (Ada_Check): When project is a Stand-Alone library project, process
31041         attribute Library_Symbol_File, Library_Symbol_Policy and
31042         Library_Reference_Symbol_File.
31043
31044         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb,
31045         5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb,
31046         5sml-tgt.adb (Build_Dynamic_Library): New parameter
31047         Symbol_Data (ignored).
31048
31049         * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0
31050         (Build_Dynamic_Library): New parameter Symbol_Data. New internal
31051         functions Option_File_Name and Version_String. Set new options of
31052         gnatsym related to symbol file, symbol policy and reference symbol
31053         file.
31054
31055         * 5vsymbol.adb:
31056         Extensive modifications to take into account the reference symbol file,
31057         the symbol policy, the library version and to put in the symbol file the
31058         minor and major IDs.
31059
31060         * bld.adb (Process_Declarative_Items): Put second argument of
31061         gprcmd to_absolute between single quotes, to avoid problems with
31062         Windows.
31063
31064         * bld-io.adb: Update Copyright notice.
31065         (Flush): Remove last character of a line, if it is a back slash, to
31066         avoid make problems.
31067
31068         * gnatsym.adb:
31069         Implement new scheme with reference symbol file and symbol policy.
31070
31071         * g-os_lib.ads: (Is_Directory): Clarify comment
31072
31073 2003-11-19  Robert Dewar  <dewar@gnat.com>
31074
31075         * atree.adb: Move New_Copy_Tree global variables to head of package
31076
31077         * errout.adb: Minor reformatting
31078
31079 2003-11-19  Javier Miranda  <miranda@gnat.com>
31080
31081         * sem_ch4.adb: (Diagnose_Call): Improve error message.
31082         Add reference to Ada0Y (AI-50217)
31083
31084         * sem_ch6.adb, sem_ch8.adb, sem_type.adb,
31085         sem_util.adb: Add reference to AI-50217
31086
31087         * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217
31088
31089         * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287)
31090
31091         * sem_aggr.adb: Complete documentation of AI-287 changes
31092
31093         * par-ch4.adb: Document previous changes.
31094
31095         * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb,
31096         sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to
31097         Ada0Y (AI-50217)
31098
31099         * exp_aggr.adb: Add references to AI-287 in previous changes
31100
31101 2003-11-19  Ed Schonberg  <schonberg@gnat.com>
31102
31103         * exp_ch6.adb:
31104         (Add_Call_By_Copy_Node): Do not original node of rewritten expression
31105         in the rewriting is the result of an inlined call.
31106
31107         * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out
31108         parameter is a type conversion, use original node to construct the
31109         post-call assignment, because expression may have been rewritten, e.g.
31110         if it is a packed array.
31111
31112         * sem_attr.adb:
31113         (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined
31114         body, just as it is in an instance.
31115         Categorization routines
31116
31117         * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram,
31118         Instantiate_Object): Set proper sloc reference for message on missing
31119         actual.
31120
31121 2003-11-19  Thomas Quinot  <quinot@act-europe.fr>
31122
31123         * Makefile.in: Add FreeBSD libgnat pairs.
31124
31125         * usage.adb: Fix typo in usage message.
31126
31127 2003-11-19  Jerome Guitton  <guitton@act-europe.fr>
31128
31129         * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?,
31130         s-thrini.ad? and s-tiitho.adb to the full runtime, to support the
31131         pragma Thread_Body.
31132         Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore.
31133
31134         * s-thread.adb: This file is now a dummy implementation of
31135         System.Thread.
31136
31137 2003-11-19  Sergey Rybin  <rybin@act-europe.fr>
31138
31139         * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available
31140
31141 2003-11-19  Emmanuel Briot  <briot@act-europe.fr>
31142
31143         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
31144         instanciation references in the parent type description.
31145
31146 2003-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31147
31148         * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s".
31149
31150         * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set
31151         TYPE_PRECISION directly from esize.
31152
31153 2003-11-18  Thomas Quinot  <quinot@act-europe.fr>
31154
31155         * cstreams.c:
31156         Use realpath(3) on FreeBSD. Fix typo in comment while we are at it.
31157
31158         * init.c: Initialization routines for FreeBSD
31159
31160         * link.c: Link info for FreeBSD
31161
31162         * sysdep.c: Add the case of FreeBSD
31163
31164 2003-11-17  Jerome Guitton  <guitton@act-europe.fr>
31165
31166         * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is
31167         already called in System.Threads.
31168
31169         * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the
31170         environment task, as it has been moved to System.Threads.Initialization.
31171
31172 2003-11-17  Arnaud Charlet  <charlet@act-europe.fr>
31173
31174         * adaint.c (__gnatlib_install_locks): Only reference
31175         __gnat_install_locks on VMS, since other platforms can avoid using
31176         --enable-threads=gnat
31177
31178 2003-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31179
31180         * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro.
31181
31182         * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set
31183         TYPE_PACKED_ARRAY_TYPE_P.
31184         (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P.
31185
31186         Part of PR ada/12806
31187         * utils.c (float_type_for_precision): Renamed from float_type_for_size.
31188         Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE.
31189
31190 2003-11-17  Vincent Celier  <celier@gnat.com>
31191
31192         * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted
31193         to False.
31194         Do not set exit status to Failure when Warning is True.
31195         (Gnatchop): Make errors "no compilation units found" and
31196         "no source files written" warnings only.
31197
31198         * make.adb (Gnatmake): When using a project file, set
31199         Look_In_Primary_Dir to False.
31200         (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas
31201         and Local_Configuration_Pragmas in the project where they are declared
31202         not an extending project which might have inherited them.
31203
31204         * osint.adb (Locate_File): If Name is already an absolute path, do not
31205         look for a directory.
31206
31207         * par-ch10.adb (P_Compilation_Unit): If source contains no token, and
31208         -gnats (Check_Syntax) is used, issue only a warning, not an error.
31209
31210         * prj.adb (Register_Default_Naming_Scheme): Add new component Project
31211         in objects of type Variable_Value.
31212
31213         * prj.ads: (Variable_Value): New component Project
31214
31215         * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source
31216         is in a project extended by Project.
31217
31218         * prj-proc.adb (Add_Attributes): New parameter Project. Set component
31219         Project of Variable_Values to this new parameter value.
31220         (Expression): Set component Project of Variable_Values.
31221         (Process_Declarative_Items): Call Add_Attributes with parameter Project.
31222         Set the component Project in array elements.
31223
31224 2003-11-17  Sergey Rybin  <rybin@act-europe.fr>
31225
31226         * errout.adb: (Initialize): Add initialization for error nodes.
31227
31228         * sem_ch12.adb (Initialize): Add missing initializations for
31229         Exchanged_Views and Hidden_Entities.
31230
31231 2003-11-17  Ed Schonberg  <schonberg@gnat.com>
31232
31233         * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an
31234         already instantiated tree for use in subsequent inlining.
31235         (Analyze_Associations, Instantiate_Formal_Subprogram,
31236         Instantiate_Object): improve error message for mismatch in
31237         instantiations.
31238
31239         * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle
31240         instantiations of subprograms declared in instances.
31241
31242 2003-11-17  Javier Miranda  <miranda@gnat.com>
31243
31244         * sem_ch4.adb (Analyze_Allocator): Previous modification must be
31245         executed only under the Extensions_Allowed flag.
31246
31247 2003-11-17  Robert Dewar  <dewar@gnat.com>
31248
31249         * a-exexda.adb (Address_Image): Fix documentation to indicate leading
31250         zeroes suppressed.
31251         (Address_Image): Fix bug of returning 0x instead of 0x0
31252         Minor reformatting (function specs).
31253
31254         * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array
31255         (missed case of 33-63)
31256
31257         * freeze.adb, sem_ch13.adb: Properly check size of packed bit array
31258
31259         * s-thread.adb: Add comments for pragma Restriction
31260
31261         * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb,
31262         sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting
31263
31264 2003-11-17  Ed Falis  <falis@gnat.com>
31265
31266         * s-thread.adb: Added No_Tasking restriction for this implementation.
31267
31268 2003-11-17  Emmanuel Briot  <briot@act-europe.fr>
31269
31270         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
31271         instanciation references in the parent type description.
31272
31273 2003-11-17  GNAT Script  <nobody@gnat.com>
31274
31275         * Make-lang.in: Makefile automatically updated
31276
31277 2003-11-16  Jason Merrill  <jason@redhat.com>
31278
31279         * Make-lang.in (ada.tags): Create TAGS.sub files in each directory
31280         and TAGS files that include them for each front end.
31281
31282 2003-11-14  Andreas Jaeger  <aj@suse.de>
31283
31284         * lang.opt: Change -Wno-long-long to -Wlong-long since the latter
31285         is the canonical version.
31286         * misc.c (gnat_handle_option): Likewise.
31287
31288         * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
31289
31290         * 5nsystem.ads: New file for x86_64-linux-gnu.
31291
31292 2003-11-14  Arnaud Charlet  <charlet@act-europe.fr>
31293
31294         * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated.
31295
31296         * comperr.adb: Fix logic in previous change.
31297
31298 2003-11-13  Vincent Celier  <celier@gnat.com>
31299
31300         * 5bml-tgt.adb (Build_Dynamic_Library): Use
31301         Osint.Include_Dir_Default_Prefix instead of
31302         Sdefault.Include_Dir_Default_Name.
31303
31304         * gnatlbr.adb: Update Copyright notice
31305         (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of
31306         Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix
31307         instead of Sdefault.Object_Dir_Default_Name
31308
31309         * gnatlink.adb:
31310         (Process_Binder_File): Never suppress the option following -Xlinker
31311
31312         * mdll-utl.adb:
31313         (Gcc): Use Osint.Object_Dir_Default_Prefix instead of
31314         Sdefault.Object_Dir_Default_Name.
31315
31316         * osint.ads, osint.adb:
31317         (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions
31318         Minor reformatting.
31319
31320         * vms_conv.ads: Minor reformating
31321         Remove GNAT STANDARD and GNAT PSTA
31322
31323         * vms_conv.adb:
31324         Allow GNAT MAKE to have several files on the command line.
31325         (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of
31326         Sdefault.Object_Dir_Default_Name.
31327         Minor Reformating
31328         Remove data for GNAT STANDARD
31329
31330         * vms_data.ads:
31331         Add new compiler qualifier /PRINT_STANDARD (-gnatS)
31332         Remove data for GNAT STANDARD
31333         Remove options and documentation for -gnatwb/-gnatwB: these warning
31334         options no longer exist.
31335
31336 2003-11-13  Ed Falis  <falis@gnat.com>
31337
31338         * 5zthrini.adb: (Init_RTS): Made visible
31339
31340         * 5zthrini.adb:
31341         (Register): Removed unnecessary call to taskVarGet that checked whether
31342          an ATSD was already set as a task var for the argument thread.
31343
31344         * s-thread.adb:
31345         Updated comment to reflect that this is a VxWorks version
31346         Added context clause for System.Threads.Initialization
31347         Added call to System.Threads.Initialization.Init_RTS
31348
31349 2003-11-13  Jerome Guitton  <guitton@act-europe.fr>
31350
31351         * 5zthrini.adb:
31352         (Init_RTS): New procedure, for the initialization of the run-time lib.
31353
31354         * s-thread.adb:
31355         Remove dependancy on System.Init, so that this file can be used in the
31356         AE653 sequential run-time lib.
31357
31358 2003-11-13  Robert Dewar  <dewar@gnat.com>
31359
31360         * bindgen.adb: Minor reformatting
31361
31362 2003-11-13  Ed Schonberg  <schonberg@gnat.com>
31363
31364         * checks.adb:
31365         (Apply_Discriminant_Check): Do no apply check if target type is derived
31366         from source type with no applicable constraint.
31367
31368         * lib-writ.adb:
31369         (Ensure_System_Dependency): Do not apply the style checks that may have
31370         been specified for the main unit.
31371
31372         * sem_ch8.adb:
31373         (Find_Selected_Component): Further improvement in error message, with
31374         RM reference.
31375
31376         * sem_res.adb:
31377         (Resolve): Handle properly the case of an illegal overloaded protected
31378         procedure.
31379
31380 2003-11-13  Javier Miranda  <miranda@gnat.com>
31381
31382         * exp_aggr.adb:
31383         (Has_Default_Init_Comps): New function to check the presence of
31384         default initialization in an aggregate.
31385         (Build_Record_Aggr_Code): Recursively expand the ancestor in case of
31386         extension aggregate of a limited record. In addition, a new formal
31387         was added to do not initialize the record controller (if any) during
31388         this recursive expansion of ancestors.
31389         (Init_Controller): Add support for limited record components.
31390         (Expand_Record_Aggregate): In case of default initialized components
31391         convert the aggregate into a set of assignments.
31392
31393         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment
31394         describing the new syntax.
31395         Nothing else needed to be done because this subprogram delegates part of
31396         its work to P_Precord_Or_Array_Component_Association.
31397         (P_Record_Or_Array_Component_Association): Give support to the new
31398         syntax for default initialization of components.
31399
31400         * sem_aggr.adb:
31401         (Resolve_Aggregate): Relax the strictness of the frontend in case of
31402         limited aggregates.
31403         (Resolve_Record_Aggregate): Give support to default initialized
31404         components.
31405         (Get_Value): In case of default initialized components, duplicate
31406         the corresponding default expression (from the record type
31407         declaration). In case of default initialization in the *others*
31408         choice, do not check that all components have the same type.
31409         (Resolve_Extension_Aggregate): Give support to limited extension
31410         aggregates.
31411
31412         * sem_ch3.adb:
31413         (Check_Initialization): Relax the strictness of the front-end in case
31414         of aggregate and extension aggregates. This test is now done in
31415         Get_Value in a per-component manner.
31416
31417         * sem_ch4.adb (Analyze_Allocator): Don't post an error if the
31418         expression corresponds to a limited aggregate. This test is now done
31419         in Get_Value.
31420
31421         * sinfo.ads, sinfo.adb (N_Component_Association): Addition of
31422         Box_Present flag.
31423
31424         * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if
31425         present in an N_Component_Association node
31426
31427 2003-11-13  Thomas Quinot  <quinot@act-europe.fr>
31428
31429         * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a
31430         type-conformant entry only if they are homographs.
31431
31432 2003-11-13  GNAT Script  <nobody@gnat.com>
31433
31434         * Make-lang.in: Makefile automatically updated
31435
31436 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
31437
31438         * adadecode.c: Use <> form of include for ctype.h.
31439         * sysdep.c [IN_RTS]: Use <> form of include for time.h.
31440
31441 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
31442
31443         * 5gsystem.ads (Functions_Return_By_DSP): Set to False.
31444         Works around PR middle-end/6552.
31445
31446 2003-11-10  Ed Falis  <falis@gnat.com>
31447
31448         * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted
31449
31450         * 5zinit.adb: (Install_Handler): Moved back to spec
31451         (Install_Signal_Handlers): Deleted
31452
31453         * 5zthrini.adb: Added context clause for System.Storage_Elements
31454         (Register): Only handles creation of taskVar; initialization moved to
31455         Thread_Body_Enter.
31456         (Reset_TSD): Deleted; replaced by Thread_Body_Enter
31457         Added declaration of environment task secondary stack and
31458         initialization.
31459
31460         * s-thread.adb: Implement bodies for thread body processing
31461
31462         * s-thread.ads:
31463         Added comment identifying supported targets for pragma Thread_Body.
31464
31465 2003-11-10  Pascal Obry  <obry@gnat.com>
31466
31467         * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
31468         GNAT_MAX_PATH_LEN.
31469
31470         * s-fileio.adb:
31471         (Open): Properly check for string length before copying into the buffer.
31472         Raises Name_Error if buffer is too small. Note that this was a potential
31473         buffer overflow.
31474
31475 2003-11-10  Romain Berrendonner  <berrendo@act-europe.fr>
31476
31477         * bindgen.adb, comperr.adb: Code clean ups.
31478         * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function.
31479
31480 2003-11-10  Sergey Rybin  <rybin@act-europe.fr>
31481
31482         * gnat1drv.adb: Add call to Sem_Elim.Initialize.
31483
31484 2003-11-10  Vincent Celier  <celier@gnat.com>
31485
31486         * gprcmd.adb:
31487         (Gprcmd): Add new command "prefix" to get the prefix of the GNAT
31488         installation.
31489
31490         * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler
31491
31492         * prj.adb: (Project_Empty): Add new boolean component Virtual
31493
31494         * prj.ads: (Virtual_Prefix): New constant string
31495         (Project_Data): New boolean component Virtual
31496
31497         * prj-nmsc.adb (Language_Independent_Check): Adjust error message when
31498         a library project is extended by a virtual extending project.
31499
31500         * prj-part.adb:
31501         Modifications throughout to implement extending-all project, including:
31502         (Virtual_Hash, Processed_Hash): New hash tables
31503         (Create_Virtual_Extending_Project): New procedure
31504         (Look_For_Virtual_Projects_For): New procedure
31505
31506         * prj-proc.adb:
31507         (Process): After checking the projects, if main project is an
31508         extending-all project, set the object directory of all virtual extending
31509         project to the object directory of the main project.
31510         Adjust error message when a virtual extending project has the same
31511         object directory as an project being extended.
31512         (Recursive_Process): If name starts with the virtual prefix, set Virtual
31513         to True in the project data.
31514
31515         * prj-tree.adb:
31516         (Default_Project_Node): Add new boolean component Extending_All
31517         (Is_Extending_All): New function
31518         (Set_Is_Extending_All): New procedure
31519
31520         * prj-tree.ads: (Is_Extending_All): New function
31521         (Set_Is_Extending_All): New procedure
31522         (Project_Node_Record): New boolean component Extending_All
31523
31524         * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
31525
31526         * vms_data.ads:
31527         Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
31528
31529         * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
31530         "gprcmd prefix" to define it.
31531
31532 2003-11-10  Thomas Quinot  <quinot@act-europe.fr>
31533
31534         * einfo.ads: Fix a typo and remove an extraneous word in comments.
31535
31536         * lib-load.adb:
31537         (Create_Dummy_Package_Unit): Set the scope of the entity for the
31538         created dummy package to Standard_Standard, not to itself, to
31539         defend other parts of the front-end against encoutering a cycle in
31540         the scope chain.
31541
31542         * sem_ch10.adb:
31543         (Analyze_With_Clause): When setting the entities for the successive
31544         N_Expanded_Names that constitute the name of a child unit, do not
31545         attempt to go further than Standard_Standard in the chain of scopes.
31546         This case arises from the placeholder units created by
31547         Create_Dummy_Package_Unit in the case of a with_clause for a
31548         nonexistent child unit.
31549
31550 2003-11-10  Ed Schonberg  <schonberg@gnat.com>
31551
31552         * exp_ch6.adb:
31553         (Expand_Thread_Body): Place subprogram on scope stack, so that new
31554         declarations are given the proper scope.
31555
31556         * sem_ch13.adb:
31557         (Check_Expr_Constants): Reject an expression that contains a constant
31558         created during expansion, and that appears after the object to which
31559         the address clause applies.
31560
31561         * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of
31562         Analyze_Iteration_Scheme, to rewrite a loop parameter specification
31563         that uses 'Range of a function call with controlled components, so
31564         that the function result can be finalized before starting the loop.
31565
31566         * sem_ch8.adb:
31567         (Find_Selected_Component): Improve error message when prefix is
31568         an implicit dereference of an incomplete type.
31569
31570 2003-11-10  Robert Dewar  <dewar@gnat.com>
31571
31572         * opt.ads: New Print_Standard flag for -gnatS switch
31573
31574         * sem_ch13.adb: Remove some additional checks for unaligned arrays
31575
31576         * cstand.adb (Create_Standard): Print out package standard if -gnatS
31577         switch set
31578
31579         * debug.adb: Update doc for -gnatds to discuss relationship with new
31580         -gnatS flag
31581
31582         * sinfo.adb: Add new field Entity_Or_Associated_Node
31583
31584         * sinfo.ads: Add new field Entity_Or_Associated_Node
31585         Update documentation for Associated_Node and Entity fields to clarify
31586         relationship and usage.
31587
31588         * sprint.adb:
31589         (Write_Id): Properly process Associated_Node field in generic template
31590
31591         * switch-c.adb:
31592         Recognize new -gnatS switch for printing package Standard
31593         This replaces gnatpsta
31594
31595         * usage.adb:
31596         Add line for  new -gnatS switch for printing package Standard
31597         This replaces gnatpsta
31598
31599 2003-11-10  Andreas Jaeger  <aj@suse.de>
31600
31601         * 7sosprim.adb: tv_usec of struct_timeval and time_t are long
31602         integer.
31603
31604 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
31605
31606         * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed
31607         by gnat1.
31608
31609 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
31610
31611         * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta,
31612         no longer needed.
31613
31614         * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed.
31615
31616         * sysdep.c: Add handling of cygwin.
31617
31618 2003-11-10  GNAT Script  <nobody@gnat.com>
31619
31620         * Make-lang.in: Makefile automatically updated
31621
31622 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
31623
31624         PR 12950
31625         * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New
31626         functions. Used to handle dynamic prefix relocation, via set_std_prefix.
31627         Replace GNAT_ROOT by GCC_ROOT.
31628
31629         * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb
31630
31631 2003-11-06  Zack Weinberg  <zack@codesourcery.com>
31632
31633         * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION
31634         and update for changed meaning of GET_MODE_BITSIZE.
31635
31636 2003-11-04  Doug Rupp  <rupp@gnat.com>
31637
31638         * sysdep.c: Problem discovered during IA64 VMS port.
31639         [VMS] #include <unixio.h> to get proper prototypes.
31640
31641         * adaint.c:
31642         Issues discovered/problems fixed during IA64 VMS port.
31643         [VMS] #define _POSIX_EXIT for proper semantics.
31644         [VMS] #include <unixio.h> for proper prototypes.
31645         [VMS] (fork): #define IA64 version.
31646         (__gnat_os_exit): Remove unnecessary VMS specific code.
31647
31648 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31649
31650         Part of PR ada/12806
31651         * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
31652         tree, not integer.
31653
31654         * decl.c:
31655         (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
31656         not integer.
31657
31658         * targtyps.c, decl.c, misc.c,
31659         gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
31660         routines to work around change in FP sizing semantics in GCC.
31661
31662         * utils.c:
31663         (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.
31664
31665         * gigi.h: (enumerate_modes): New function.
31666
31667         * Make-lang.in: (ada/misc.o): Add real.h.
31668
31669         * misc.c: (enumerate_modes): New function.
31670
31671 2003-11-04  Robert Dewar  <dewar@gnat.com>
31672
31673         * 3vtrasym.adb: Minor reformatting
31674         Use terminology encoded/decoded name, rather than C++ specific notion
31675         of mangling (this is the terminology used throughout GNAT).
31676
31677         * einfo.h: Regenerated
31678
31679         * einfo.ads, einfo.adb: Add new flag Is_Thread_Body
31680
31681         * exp_ch6.adb:
31682         (Expand_N_Subprogram_Body): Handle expansion of thread body procedure
31683
31684         * par-prag.adb: Add dummy entry for Thread_Body pragma
31685
31686         * rtsfind.ads:
31687         Add entries for System.Threads entities for thread body processing
31688
31689         * sem_attr.adb:
31690         (Analyze_Pragma, Access attributes): Check these are not applied to a
31691         thread body, since this is not permitted
31692
31693         * sem_prag.adb: Add processing for Thread_Body pragma.
31694         Minor comment fix.
31695
31696         * sem_res.adb:
31697         (Resolve_Call): Check for incorrect attempt to call a thread body
31698          procedure with a direct call.
31699
31700         * snames.ads, snames.adb: Add entry for Thread_Body pragma
31701         Add names associated with thread body expansion
31702
31703         * snames.h: Add entry for Thread_Body pragma
31704
31705         * s-thread.adb: Add entries for thread body processing
31706         These are dummy bodies so far
31707
31708         * s-thread.ads: Add documentation on thread body handling.
31709         Add entries for thread body processing.
31710
31711 2003-11-04  Javier Miranda  <miranda@gnat.com>
31712
31713         * sem_ch10.adb:
31714         (Build_Limited_Views): Return after posting an error in case of limited
31715         with_clause on subprograms, generics, instances or generic renamings
31716         (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
31717         on subprograms, generics, instances or generic renamings
31718
31719 2003-11-04  Arnaud Charlet  <charlet@act-europe.fr>
31720
31721         * raise.c (setup_to_install): Correct mistake in last revision; two
31722         arguments out of order.
31723
31724         * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
31725         gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
31726         notice, missed in previous change.
31727         Remove trailing blanks and other style errors introduced in previous
31728         change.
31729
31730 2003-11-04  Olivier Hainque  <hainque@act-europe.fr>
31731
31732         * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
31733         rid of the wrapper for a LJM type, ensuring we don't do that if the
31734         field is addressable.  This avoids potential low level type view
31735         mismatches later on, for instance in a by-reference argument passing
31736         process.
31737
31738 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31739
31740         * decl.c (gnat_to_gnu_field): No longer check for BLKmode being
31741         aligned at byte boundary.
31742
31743 2003-11-04  Joel Brobecker  <brobecker@gnat.com>
31744
31745         * decl.c (components_to_record): Do not delete the empty variants from
31746         the end of the union type.
31747
31748 2003-11-04  Ed Schonberg  <schonberg@gnat.com>
31749
31750         * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
31751         operation for a derived type, an explicit declaration may use a local
31752         subtype of Boolean.
31753
31754 2003-11-04  Vincent Celier  <celier@gnat.com>
31755
31756         * make.adb (Gnatmake): Allow main sources on the command line with a
31757         library project when it is only for compilation (no binding or
31758         linking).
31759
31760 2003-11-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
31761
31762         * Makefile.in: Remove many duplicate variables.
31763
31764 2003-11-03  Kelley Cook  <kcook@gcc.gnu.org>
31765
31766         * Make-lang.in (dvi): Move targets to $(docobjdir).
31767         (gnat_ug_vms.dvi): Simplify rule and adjust target.
31768         (gnat_ug_wnt.dvi): Likewise.
31769         (gnat_ug_unx.dvi): Likewise.
31770         (gnat_ug_vxw.dvi): Likewise.
31771         (gnat_rm.dvi): Likewise.
31772         (gnat-style.dvi): Likewise.
31773
31774 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
31775
31776         * gigi.h: Missed commit from update for C90.
31777
31778 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
31779
31780         * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error.
31781
31782 2003-10-31  Andreas Schwab  <schwab@suse.de>
31783
31784         * raise.c (get_action_description_for): Fix typo in last change.
31785
31786 2003-10-31  Nathanael Nerode  <neroden@gcc.gnu.org>
31787
31788         PR ada/12761
31789         * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS,
31790         T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in.
31791
31792 2003-10-30  Kelley Cook  <kcook@gcc.gnu.org>
31793
31794         * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c,
31795         ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c,
31796         gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c,
31797         sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c,
31798         trans.c, utils.c, utils2.c: Convert function prototypes to C90.
31799
31800 2003-10-30  Vasiliy Fofanov  <fofanov@act-europe.fr>
31801
31802         * 3vtrasym.adb:
31803         Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line
31804         numbers when symbol name is too long.
31805
31806 2003-10-30  Ed Falis  <falis@gnat.com>
31807
31808         * g-signal.ads, g-signal.adb: New files
31809
31810         * impunit.adb: (Non_Imp_File_Names): Added "g-signal"
31811
31812         * Makefile.rtl: Introduce GNAT.Signals
31813
31814 2003-10-30  Robert Dewar  <dewar@gnat.com>
31815
31816         * freeze.adb: Minor reformatting
31817
31818         * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified
31819
31820         * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb,
31821         par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb:
31822         New handling of Id_Check parameter to improve recognition of keywords
31823         used as identifiers.
31824         Update copyright notice to include 2003
31825
31826 2003-10-29  Robert Dewar  <dewar@gnat.com>
31827
31828         * 3vtrasym.adb, 5vtraent.ads, sprint.adb,
31829         sem_ch10.adb: Minor reformatting
31830
31831         * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands
31832         (Expand_Assign_Record): Test right hand side for bit unaligned as well
31833
31834 2003-10-29  Vasiliy Fofanov  <fofanov@act-europe.fr>
31835
31836         * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c:
31837         Support for TBK$SYMBOLIZE-based symbolic traceback.
31838
31839 2003-10-29  Jose Ruiz  <ruiz@act-europe.fr>
31840
31841         * exp_disp.adb:
31842         Revert previous change, that did not work well when pragma No_Run_Time
31843         was used in conjunction with a run-time other than ZFP.
31844
31845 2003-10-29  Vincent Celier  <celier@gnat.com>
31846
31847         * make.adb:
31848         (Gnatmake): When there are no Ada mains in attribute Main, disable the
31849          bind and link steps only is switch -z is not used.
31850
31851 2003-10-29  Arnaud Charlet  <charlet@act-europe.fr>
31852
31853         * Makefile.generic: Remove duplicated setting of CC.
31854
31855         * Makefile.prolog: Set CC to gcc by default, to override make's
31856         default (cc).
31857
31858         * einfo.h: Regenerated.
31859
31860 2003-10-29  Ed Schonberg  <schonberg@gnat.com>
31861
31862         * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for
31863         current body, after compiling subunit.
31864
31865         * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype
31866         when in deleted code, because gigi needs properly ordered freeze
31867         actions to annotate types.
31868
31869         * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to
31870         prevent the premature freezing of record type that contains
31871         subcomponents with a private type that does not yet have a completion.
31872
31873 2003-10-29  Javier Miranda  <miranda@gnat.com>
31874
31875         * sem_ch12.adb:
31876         (Analyze_Package_Instantiation): Check that instances can not be used in
31877         limited with_clauses.
31878
31879         * sem_ch8.adb:
31880         (Analyze_Package_Renaming): Check that limited withed packages cannot
31881         be renamed. Improve text on error messages related to limited
31882         with_clauses.
31883
31884         * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute.
31885
31886         * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses.
31887         Update copyright notice.
31888
31889         * sem_ch10.adb: (Build_Limited_Views): Complete its documentation.
31890         (Install_Limited_Context_Clauses): New subprogram that isolates all the
31891         checks required for limited context_clauses and installs the limited
31892         view.
31893         (Install_Limited_Withed_Unit): Complete its documentation.
31894         (Analyze_Context): Check that limited with_clauses are only allowed in
31895         package specs.
31896         (Install_Context): Call Install_Limited_Context_Clauses after the
31897         parents have been installed.
31898         (Install_Limited_Withed_Unit): Add documentation. Mark the installed
31899         package as 'From_With_Type'; this mark indicates that the limited view
31900         is installed. Used to check bad usages of limited with_clauses.
31901         (Build_Limited_Views): Do not add shadow entities to the scope's list
31902         of entities. Do not add real entities to the Non_Limited_Views chain.
31903         Improve error notification.
31904         (Remove_Context_Clauses): Remove context clauses in two phases:
31905         limited views first and regular views later (to maintain the
31906         stack model).
31907         (Remove_Limited_With_Clause): If the package is analyzed then reinstall
31908         its visible entities.
31909
31910 2003-10-29  Thomas Quinot  <quinot@act-europe.fr>
31911
31912         * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible
31913         with any type that Is_Fixed_Point_Type.
31914
31915         * sinfo.ads: Fix documentation for Associated_Node attribute.
31916
31917 2003-10-29  Sergey Rybin  <rybin@act-europe.fr>
31918
31919         * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when
31920         both '-gnatc' and '-gnatt' are specified.
31921
31922         * atree.adb (Initialize): Add initialization for Node_Count (set to
31923         zero).
31924
31925 2003-10-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31926
31927         * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value,
31928         do not consider as Pure.
31929
31930         Part of implementation of function-at-a-time:
31931
31932         * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt.
31933         (tree_transform): Add new argument to build_component_ref.
31934         (tree_transform, case N_Assignment_Statement): Make and return an
31935         EXPR_STMT.
31936         (tree_transform): If result IS_STMT, set flags and return it.
31937         (gnat_expand_stmt, set_lineno_from_sloc): New functions.
31938
31939         * utils2.c (build_simple_component_ref, build_component_ref): Add new
31940         arg, NO_FOLD_P.
31941         (build_binary_op, case EQ_EXPR): Pass additional arg to it.
31942         (build_allocator): Likewise.
31943
31944         * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert):
31945         Add new arg to build_component_ref.
31946         (maybe_unconstrained_array, unchecked_convert): Likewise.
31947
31948         * ada-tree.def (EXPR_STMT): New code.
31949
31950         * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros.
31951
31952         * decl.c (gnat_to_gnu_entity, case object): Add extra arg to
31953         build_component_ref calls.
31954
31955         * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt.
31956
31957         * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions.
31958         (build_component_ref): Add new argument, NO_FOLD_P.
31959
31960 2003-10-27  Arnaud Charlet  <charlet@act-europe.fr>
31961
31962         * Makefile.generic: Add missing substitution on object_deps handling.
31963
31964         PR ada/5909
31965         * Make-lang.in (check-ada): Enable ACATS test suite.
31966
31967 2003-10-27  Robert Dewar  <dewar@gnat.com>
31968
31969         * exp_ch3.adb:
31970         (Freeze_Array_Type): We do not need an initialization routine for types
31971         derived from String or Wide_String. They should be treated the same
31972         as String and Wide_String themselves. This caused problems with the
31973         use of Initialize_Scalars.
31974
31975         * exp_ch5.adb:
31976         (Expand_Assign_Record): Do component-wise assignment of non-byte aligned
31977         composites. This allows use of component clauses that are not byte
31978         aligned.
31979
31980         * sem_prag.adb:
31981         (Analyze_Pragma, case Pack): Generate warning and ignore pack if there
31982         is an attempt to pack an array of atomic objects.
31983
31984         * make.adb, prj-env.adb, prj-env.ads: Minor reformatting
31985
31986 2003-10-27  Pascal Obry  <obry@gnat.com>
31987
31988         * g-dirope.adb:
31989         (Basename): Check for drive letters in a pathname only on DOS based OS.
31990
31991 2003-10-27  Vincent Celier  <celier@gnat.com>
31992
31993         * make.adb:
31994         (Gnatmake): When unable to change dir to the object dir, display the
31995         content of the parent dir of the obj dir, to try to understand why this
31996         happens.
31997
31998 2003-10-27  GNAT Script  <nobody@gnat.com>
31999
32000         * Make-lang.in: Makefile automatically updated
32001
32002 2003-10-27  Ed Schonberg  <schonberg@gnat.com>
32003
32004         * sem_ch12.adb:
32005         (Inline_Instance_Body): Indicate that the save/restore of use_clauses
32006         should not be done in Save/Restore_Scope_Stack, because it is performed
32007         locally.
32008
32009         * sem_ch8.adb:
32010         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
32011         whether use clauses should be removed/restored.
32012
32013         * sem_ch8.ads:
32014         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
32015         whether use clauses should be removed/restored.
32016
32017 2003-10-26  Andreas Jaeger  <aj@suse.de>
32018
32019         * Makefile.in: Remove duplicated lines.
32020
32021 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
32022
32023         * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to
32024         minimize the differences with ACT tree.
32025
32026         * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb,
32027         gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of
32028         Gnatvsn.Gnat_Static_Version_String to reduce differences between
32029         ACT and FSF trees.
32030
32031 2003-10-24  Pascal Obry  <obry@gnat.com>
32032
32033         PR ada/12014
32034         * adadecode.c (ostrcpy): New function.
32035         (__gnat_decode): Use ostrcpy of strcpy.
32036         (has_prefix): Set first parameter a const.
32037         (has_suffix): Set first parameter a const.
32038         Update copyright notice. Fix source name in header.
32039         Removes a trailing space.
32040
32041 2003-10-24  Jose Ruiz  <ruiz@act-europe.fr>
32042
32043         * exp_disp.adb:
32044         Remove the test against being in No_Run_Time_Mode before generating a
32045         call to Register_Tag. It is redundant with the test against the
32046         availability of the function Register_Tag.
32047
32048 2003-10-24  Vincent Celier  <celier@gnat.com>
32049
32050         * g-catiio.adb: (Month_Name): Correct spelling of February
32051
32052         * make.adb: (Mains): New package
32053         (Initialize): Call Mains.Delete
32054         (Gnatmake): Check that each main on the command line is a source of a
32055         project file and, if there are several mains, each of them is a source
32056         of the same project file.
32057         (Gnatmake): When a foreign language is specified in attribute Languages,
32058         no main is specified on the command line and attribute Mains is not
32059         empty, only build the Ada main. If there is no Ada main, just compile
32060         the Ada sources and their closure.
32061         (Gnatmake): If a main is specified on the command line with directory
32062         information, check that the source exists and, if it does, that the path
32063         is the actual path of a source of a project.
32064
32065         * prj-env.adb:
32066         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When
32067         Full_Path is True, return the full path instead of the simple file name.
32068         (Project_Of): New function
32069
32070         * prj-env.ads:
32071         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path,
32072         defaulted to False.
32073         (Project_Of): New function
32074
32075 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
32076
32077         * Makefile.generic:
32078         Ensure objects of main project are always checked and rebuilt if needed.
32079         Set CC to gcc by default.
32080         Prepare new handling of link by creating a global archive (not activated
32081         yet).
32082
32083         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
32084         stringt.h: Update copyright notice. Remove trailing blanks.
32085         Fix source name in header.
32086
32087 2003-10-24  Robert Dewar  <dewar@gnat.com>
32088
32089         * sem_ch12.adb: Minor reformatting
32090
32091         * sem_ch3.adb:
32092         Minor reformatting (including new function return style throughout)
32093
32094         * sem_ch3.ads:
32095         Minor reformatting (including new function return style throughout)
32096
32097 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
32098
32099         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
32100         stringt.h: Update copyright notice. Remove trailing blanks.
32101         Fix source name in header.
32102
32103 2003-10-24  GNAT Script  <nobody@gnat.com>
32104
32105         * Make-lang.in: Makefile automatically updated
32106
32107 2003-10-23  Nathanael Nerode  <neroden@gcc.gnu.org>
32108
32109         * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h,
32110         stringt.h: Convert to ISO C90 declarations and definitions.
32111
32112 2003-10-23  Thomas Quinot  <quinot@act-europe.fr>
32113
32114         PR ada/11978
32115         * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
32116         External_Tag attribute definition clauses.
32117
32118 2003-10-23  Ed Schonberg  <schonberg@gnat.com>
32119
32120         PR ada/7613
32121         * exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
32122         child unit, generate a fully qualified name to avoid spurious errors
32123         when the context contains renamings of different child units with
32124         the same simple name.
32125
32126         * exp_dbug.ads: Add documentation on name qualification for renamings
32127         of child units.
32128
32129 2003-10-23  Robert Dewar  <dewar@gnat.com>
32130
32131         * g-regpat.ads, g-regpat.adb: Minor reformatting
32132
32133 2003-10-23  Jose Ruiz  <ruiz@act-europe.fr>
32134
32135         * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times.
32136
32137 2003-10-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32138
32139         * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to
32140         Machine call.
32141
32142         * urealp.h: (Machine): Update to proper definition.
32143
32144 2003-10-23  Arnaud Charlet  <charlet@act-europe.fr>
32145
32146         * init.c, adaint.c: Minor reformatting.
32147
32148 2003-10-23  Danny Smith  <dannysmith@users.sourceforge.net>
32149
32150         * adaint.c (w32_epoch_offset): Define static const at file level.
32151         (win32_filetime): Replace offset with w32_epoch_offset. Use NULL
32152         rather than t_create, t_access in call to GetFileTime. Use union
32153         to convert between FILETIME and  unsigned long long.
32154         (__gnat_file_time_name): Test for invalid file handle.
32155         (__gnat_set_filetime_name): Support win32 targets using
32156         w32api SetFileTime.
32157
32158 2003-10-22  Danny Smith  <dannysmith@users.sourceforge.net>
32159
32160         * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW.
32161
32162         * ctrl_c.c (__gnat_int_handler): Remove declaration.
32163
32164         * decl.c (creat_concat_name):  Const-ify prefix.
32165
32166         * adaint.c: Include ctype.h if __MINGW32__.
32167         (__gnat_readlink): Mark arguments as possibly unused.
32168         (__gnat_symlink): Likewise.
32169         (__gnat_is_symbolic_link): Likewise.
32170         (__gnat_portable_spawn): Likewise.  Cast last arg of spawnvp to match
32171         declaration
32172         (__gnat_file_time_name): Don't declare struct stat statbuf when
32173         not needed.
32174         (__gnat_is_absolute_path): Add parenthesis around condition of
32175         'if' statement to avoid warning.
32176         (__gnat_plist_init): Specify void as parameter.
32177         (plist_enter): Likewise.
32178         (plist_leave): Likewise.
32179         (remove_handle): Make static. Initialize prev.
32180
32181 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
32182
32183         PR ada/10110
32184         * Makefile.in: Disable build of gnatpsta.
32185         * cstreams.c (__gnat_full_name): Minor improvements and clean up
32186         of previous change.
32187
32188 2003-10-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
32189
32190         * tracebak.c (MAX): Avoid redefinition warning.
32191
32192         * init.c [sgi] (__gnat_error_handler): Remove i, unused.
32193         Change msg to const char *.
32194         (__gnat_install_handler): Remove ss, unused.
32195         [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg
32196         to const char *.
32197         * cstreams.c (__gnat_full_name): Declare p only when used.
32198         (__gnat_full_name) [sgi] Return buffer.
32199
32200 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
32201
32202         * mingw32.h: New file.
32203         * gnat_wrapper.adb: New file.
32204
32205 2003-10-22  Jerome Roussel  <roussel@act-europe.fr>
32206
32207         * g-regpat.ads, g-regpat.adb (Match): new function, to know if a
32208         string match a pre compiled regular expression (the corresponding
32209         version of the function working on a raw regular expression)
32210         Fix typos in various comments
32211         Update copyright notice in spec
32212
32213 2003-10-21  Gary Dismukes  <dismukes@gnat.com>
32214
32215         * exp_ch3.adb:
32216         (Component_Needs_Simple_Initialization): Return False when the type is a
32217         packed bit array. Revise spec comments to document this case.
32218
32219         * exp_prag.adb:
32220         (Expand_Pragma_Import): Set any expression on the imported object to
32221         empty to avoid initializing imported objects (in particular this
32222         covers the case of zero-initialization of bit arrays).
32223         Update copyright notice.
32224
32225 2003-10-21  Ed Schonberg  <schonberg@gnat.com>
32226
32227         * sem_ch12.adb:
32228         (Load_Parent_Of_Generic): If parent is compilation unit, stop search,
32229         a subunit is missing.
32230         (Instantiate_Subprogram_Body): If body of function is missing, set type
32231         of return expression explicitly in dummy body, to prevent cascaded
32232         errors when a subunit is missing.
32233         Fixes PR 5677.
32234
32235         * sem_ch3.adb:
32236         (Access_Subprogram_Declaration): Verify that return type is valid.
32237         Fixes PR 8693.
32238
32239         * sem_elab.adb:
32240         (Check_Elab_Calls): Do not apply elaboration checks if the main unit is
32241         generic.
32242         Fixes PR 12318.
32243
32244         * sem_util.adb:
32245         (Corresponding_Discriminant): If the scope of the discriminant is a
32246         private type without discriminant, use its full view.
32247         Fixes PR 8247.
32248
32249 2003-10-21  Arnaud Charlet  <charlet@act-europe.fr>
32250
32251         * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads,
32252         3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads,
32253         3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads,
32254         55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb,
32255         56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads,
32256         59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads,
32257         5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb,
32258         5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads,
32259         5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads,
32260         5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb,
32261         5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads,
32262         5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb,
32263         5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb,
32264         5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb,
32265         7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb,
32266         a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb,
32267         a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb,
32268         a-stwisu.ads, bld.adb, bld.ads, bld-io.adb,
32269         bld-io.ads, clean.adb, clean.ads, ctrl_c.c,
32270         erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
32271         err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads,
32272         g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb,
32273         g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads,
32274         g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb,
32275         g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb,
32276         g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb,
32277         g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads,
32278         gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb,
32279         g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads,
32280         g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb,
32281         i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl,
32282         prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
32283         prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb,
32284         s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb,
32285         s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb,
32286         s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb,
32287         s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
32288         s-caun64.ads, scng.adb, scng.ads, s-exnint.adb,
32289         s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb,
32290         s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb,
32291         s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads,
32292         socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb,
32293         s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads,
32294         s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads,
32295         s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb,
32296         styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb,
32297         s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads,
32298         tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads,
32299         vms_conv.ads, vms_conv.adb, vms_data.ads,
32300         vxaddr2line.adb: Files added. Merge with ACT tree.
32301
32302         * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads,
32303         5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb,
32304         5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads,
32305         5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c,
32306         g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb,
32307         s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads,
32308         s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
32309         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads,
32310         s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads,
32311         s-expssi.ads, style.adb: Files removed. Merge with ACT tree.
32312
32313         * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
32314         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
32315         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
32316         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
32317         4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads,
32318         4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads,
32319         4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb,
32320         4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads,
32321         51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads,
32322         53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads,
32323         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
32324         5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads,
32325         5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb,
32326         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
32327         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads,
32328         5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads,
32329         5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads,
32330         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
32331         5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads,
32332         5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads,
32333         5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads,
32334         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
32335         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
32336         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
32337         5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb,
32338         5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads,
32339         5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb,
32340         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
32341         5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb,
32342         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
32343         5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
32344         5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads,
32345         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
32346         5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb,
32347         6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb,
32348         7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb,
32349         7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb,
32350         a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads,
32351         a-comlin.adb, adaint.c, adaint.h, ada-tree.def,
32352         a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb,
32353         a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads,
32354         a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads,
32355         ali.adb, ali.ads, ali-util.adb, ali-util.ads,
32356         a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb,
32357         a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb,
32358         a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb,
32359         a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb,
32360         a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads,
32361         a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
32362         a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb,
32363         a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb,
32364         a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb,
32365         a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb,
32366         a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads,
32367         a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads,
32368         atree.adb, atree.ads, a-witeio.adb, a-witeio.ads,
32369         a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb,
32370         a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb,
32371         bcheck.adb, binde.adb, bindgen.adb, bindusg.adb,
32372         checks.adb, checks.ads, cio.c, comperr.adb,
32373         comperr.ads, csets.adb, cstand.adb, cstreams.c,
32374         debug_a.adb, debug_a.ads, debug.adb, decl.c,
32375         einfo.adb, einfo.ads, errout.adb, errout.ads,
32376         eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb,
32377         expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb,
32378         exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb,
32379         exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
32380         exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb,
32381         exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c,
32382         exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
32383         exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb,
32384         exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb,
32385         fe.h, fmap.adb, fmap.ads, fname.adb,
32386         fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb,
32387         freeze.ads, frontend.adb, g-awk.adb, g-awk.ads,
32388         g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
32389         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
32390         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
32391         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
32392         g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads,
32393         g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads,
32394         g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads,
32395         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb,
32396         g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb,
32397         g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h,
32398         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
32399         g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads,
32400         gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb,
32401         gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb,
32402         gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb,
32403         gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb,
32404         gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb,
32405         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb,
32406         g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads,
32407         g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads,
32408         g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads,
32409         g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads,
32410         g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb,
32411         g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb,
32412         g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads,
32413         i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads,
32414         i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c,
32415         inline.adb, interfac.ads, i-pacdec.ads, itypes.adb,
32416         itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h,
32417         layout.adb, lib.adb, lib.ads, lib-list.adb,
32418         lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb,
32419         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
32420         link.c, live.adb, make.adb, make.ads,
32421         Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb,
32422         mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
32423         mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb,
32424         misc.c, mkdir.c, mlib.adb, mlib.ads,
32425         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads,
32426         mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads,
32427         namet.adb, namet.ads, namet.h, nlists.ads,
32428         nlists.h, nmake.adt, opt.adb, opt.ads,
32429         osint.adb, osint.ads, osint-b.adb, osint-c.adb,
32430         par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb,
32431         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
32432         par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
32433         par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb,
32434         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads,
32435         prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads,
32436         prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads,
32437         prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
32438         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
32439         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
32440         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
32441         prj-util.adb, prj-util.ads, raise.c, raise.h,
32442         repinfo.adb, repinfo.h, restrict.adb, restrict.ads,
32443         rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads,
32444         s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb,
32445         s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb,
32446         scans.ads, scn.adb, scn.ads, s-crc32.adb,
32447         s-crc32.ads, s-direio.adb, sem.adb, sem.ads,
32448         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
32449         sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
32450         sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb,
32451         sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
32452         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
32453         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
32454         sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb,
32455         sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb,
32456         sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads,
32457         sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads,
32458         sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb,
32459         s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads,
32460         s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads,
32461         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
32462         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb,
32463         s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb,
32464         s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads,
32465         s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb,
32466         sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb,
32467         sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads,
32468         sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads,
32469         s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads,
32470         s-memory.adb, s-memory.ads, snames.adb, snames.ads,
32471         snames.h, s-osprim.ads, s-parame.ads, s-parint.ads,
32472         s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb,
32473         s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads,
32474         s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads,
32475         s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads,
32476         s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads,
32477         s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads,
32478         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads,
32479         s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
32480         s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb,
32481         s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb,
32482         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb,
32483         s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads,
32484         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
32485         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
32486         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads,
32487         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
32488         stringt.adb, stringt.ads, stringt.h, style.ads,
32489         stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads,
32490         s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb,
32491         s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb,
32492         switch.ads, switch-b.adb, switch-c.adb, switch-m.adb,
32493         s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads,
32494         table.adb, table.ads, targparm.adb, targparm.ads,
32495         targtyps.c, tbuild.adb, tbuild.ads, tracebak.c,
32496         trans.c, tree_io.adb, treepr.adb, treeprs.adt,
32497         ttypes.ads, types.ads, types.h, uintp.adb,
32498         uintp.ads, uintp.h, uname.adb, urealp.adb,
32499         urealp.ads, urealp.h, usage.adb, utils2.c,
32500         utils.c, validsw.adb, validsw.ads, widechar.adb,
32501         xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads,
32502         xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb,
32503         einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb,
32504         gnatvsn.ads: Merge with ACT tree.
32505
32506         * gnatvsn.adb: Rewritten in a simpler and more efficient way.
32507
32508 2003-10-20  Mark Mitchell  <mark@codesourcery.com>
32509
32510         * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir.
32511         (gnat_ug_vmx.info): Likewise.
32512         (gnat_ug_vxw.info): Likewise.
32513         (gnat_ug_wnt.info): Likewise.
32514         (gnat_rm.info): Likewise.
32515         (gnat-style.info): Likewise.
32516
32517         * Make-lang.in (ada.install-info): Remove target.
32518         (info): New target.
32519         (install-info): Likewise.
32520         (gnat_ug_unx.info): Simplify rule.
32521         (gnat_ug_vmx.info): Likewise.
32522         (gnat_ug_vxw.info): Likewise.
32523         (gnat_ug_wnt.info): Likewise.
32524         (gnat_rm.info): Likewise.
32525         (gnat-style.info): Likewise.
32526
32527 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
32528
32529         * Make-lang.in: Replace uses of $(target_alias) with
32530         $(target_noncanonical).
32531         * ada/Makefile.in: Remove unused mention of $(target_alias).
32532
32533 2003-10-06  Mark Mitchell  <mark@codesourcery.com>
32534
32535         * Make-lang.in (ada.info): Replace with ...
32536         (info): ... this.
32537         (ada.dvi): Replace with ...
32538         (dvi): ... this.
32539
32540 2003-09-29  Zack Weinberg  <zack@codesourcery.com>
32541
32542         * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to
32543         initialize dconstp5 and dconstmp5.
32544
32545 2003-09-28  Richard Henderson  <rth@redhat.com>
32546
32547         * trans.c (tree_transform): Update call to expand_asm_operands.
32548
32549 2003-09-21  Richard Henderson  <rth@redhat.com>
32550
32551         * trans.c, utils.c: Revert.
32552
32553 2003-09-21  Richard Henderson  <rth@redhat.com>
32554
32555         * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
32556         change to const.
32557
32558 2003-09-04  Michael Matz  <matz@suse.de>
32559
32560         * misc.c: Include "target.h".
32561         * Make-lang.in (misc.o): Add dependency on target.h.
32562
32563 2003-09-03  DJ Delorie  <dj@redhat.com>
32564
32565         * misc.c (default_pass_by_ref): Convert to calls.return_in_memory
32566         hook.
32567
32568 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
32569
32570         * Makefile.in: Update substitutions to match changes to
32571         configure.  Use include directives instead of @-insertions
32572         to read in host and target fragments.  Add a rule to
32573         regenerate ada/Makefile.
32574
32575 2003-07-18  Neil Booth  <neil@daikokuya.co.uk>
32576
32577         * lang-options.h: Remove.
32578         * lang.opt: Add help text.
32579
32580 2003-07-07  Nathan Sidwell  <nathan@codesourcery.com>
32581
32582         * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note
32583         calls.
32584
32585 2003-07-06  Neil Booth  <neil@daikokuya.co.uk>
32586
32587         * misc.c (gnat_handle_option): Don't handle filenames.
32588
32589 2003-07-04  H.J. Lu <hongjiu.lu@intel.com>
32590
32591         * Make-lang.in: Replace PWD with PWD_COMMAND.
32592         * Makefile.adalib: Likewise.
32593         * Makefile.in: Likewise.
32594
32595 2003-07-04  Matt Kraai  <kraai@alumni.cmu.edu>
32596
32597         * misc.c (gnat_argv): Revert last change.
32598         (gnat_handle_option, gnat_init_options): Copy arguments.
32599
32600 2003-07-03  Neil Booth  <neil@daikokuya.co.uk>
32601
32602         * misc.c (gnat_argv): Make const.
32603
32604 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
32605
32606         * misc.c (save_argc, save_argv): Keep non-static!
32607
32608 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
32609
32610         * misc.c (save_argc, save_argv): Make static.
32611         (gnat_init_options): New prototype.
32612         (gnat_init_options): Update.
32613
32614 2003-07-01  Matt Kraai  <kraai@alumni.cmu.edu>
32615
32616         * gnat_ug.texi: Remove unlikely characters from @vars.
32617         * gnat_ug_vms.texi: Regenerate.
32618
32619 2003-06-27  Nathan Sidwell  <nathan@codesourcery.com>
32620
32621         * misc.c (record_code_position): Adjust emit_note call.
32622
32623 2003-06-26  Neil Booth  <neil@daikokuya.co.uk>
32624
32625         * misc.c (gnat_handle_option): Don't check for missing arguments.
32626
32627 2003-06-20  Nathan Sidwell  <nathan@codesourcery.com>
32628
32629         * utils.c (end_subprog_body): Adjust expand_function_end call.
32630
32631 2003-06-16  Matt Kraai  <kraai@alumni.cmu.edu>
32632
32633         * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test
32634         Bind_Main_Program.
32635
32636 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
32637
32638         * lang.opt: Declare Ada.
32639         * misc.c (gnat_init_options): Update.
32640
32641 2003-06-14  Nathan Sidwell  <nathan@codesourcery.com>
32642
32643         * utils.c (begin_subprog_body): Adjust init_function_start call.
32644
32645 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
32646
32647         * Make-lang.in: Update to use options.c and options.h.
32648         * misc.c: Include options.h not aoptions.h.
32649         (gnat_handle_option): Abort on unrecognized switch.
32650         (gnat_init_options): Request Ada switches.
32651
32652 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
32653
32654         * lang.opt: Add -Wall.
32655         * misc.c (gnat_handle_option): Handle it.
32656
32657 2003-06-12  Neil Booth  <neil@daikokuya.co.uk>
32658
32659         * misc.c (gnat_handle_option): Fix warnings.
32660
32661 2003-06-11  Matt Kraai  <kraai@alumni.cmu.edu>
32662
32663         * Make-lang.in (gnatbind): Remove $(LIBIBERTY).
32664
32665 2003-06-11  Neil Booth  <neil@daikokuya.co.uk>
32666
32667         * Make-lang.in: Update to handle command-line options.
32668         * lang.opt: New file.
32669         * misc.c: Include aoptions.h.
32670         (cl_options_count, cl_options): Remove.
32671         (gnat_handle_option): New.
32672         (gnat_decode_option): Remove.
32673         (LANG_HOOKS_DECODE_OPTION): Remove.
32674         (LANG_HOOKS_HANDLE_OPTION): Override.
32675
32676 2003-06-10  Nathanael Nerode  <neroden@gcc.gnu.org>
32677
32678         * init.c, misc.c, trans.c, utils.c: Remove dead code.
32679
32680 2003-06-09  Nathanael Nerode  <neroden@gcc.gnu.org>
32681
32682         * Makefile.in: Replace "host_canonical" with "host" for autoconf
32683         substitution.
32684
32685 2003-06-08  Neil Booth  <neil@daikokuya.co.uk>
32686
32687         * Make-lang.in: Update.
32688         * misc.c: Include opts.h. Define cl_options_count and cl_options.
32689
32690 2003-06-07  Neil Booth  <neil@daikokuya.co.uk>
32691
32692         * misc.c (gnat_init_options): Update.
32693
32694 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
32695
32696         * Make-lang.in (ada/b_gnatb.o-warn): Remove.
32697         * bindgen.adb (Gen_Main_C): Mark ensure_reference with
32698         __attribute__ ((__unused__)).
32699
32700 2003-06-05  Jan Hubicka  <jh@suse.cz>
32701
32702         * Make-lang.in:  Add support for stageprofile and stagefeedback
32703
32704 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
32705
32706         * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C)
32707         (Gen_Main_C, Gen_Output_File_C): Generate ISO C.
32708
32709 2003-06-04  Matt Kraai  <kraai@alumni.cmu.edu>
32710
32711         * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr):
32712         Remove non-VMS directive.
32713         (Switches for gnatlbr, Optimization Levels): Remove non-VMS
32714         alternatives.
32715         (Examples of gnatls Usage): Remove VMS alternative.
32716
32717 2003-06-04  Olivier Hainque  <hainque@act-europe.fr>
32718
32719         PR ada/9953
32720         * 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
32721         and turn ZCX_By_Default back to False since the underlying support
32722         is not quite there yet.
32723
32724 2003-06-01  Andreas Jaeger  <aj@suse.de>
32725
32726         * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE
32727         and ROUND_TYPE_SIZE_UNIT.
32728
32729 2003-05-22   Geert Bosch <bosch@gnat.com>
32730
32731         * gnat_rm.texi : Remove reference to Ada Core Technologies.
32732
32733 2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>
32734
32735         * trans.c (tree_transform): Use location_t and input_location
32736         directly.
32737         (build_unit_elab): Likewise.
32738         * utils.c (create_label_decl): Likewise.
32739
32740 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
32741
32742         * trans.c (tree_transform, build_unit_elab,
32743         set_lineno): Rename lineno to input_line.
32744         * utils.c (pushdecl, create_label_decl, begin_subprog_body,
32745         end_subprog_body): Likewise.
32746         * utils2.c (build_call_raise): Likewise.
32747
32748 2003-05-01  Laurent Guerby <guerby@acm.org>
32749
32750         PR ada/10546
32751         * 5iosinte.ads: Increase pthread_cond_t size to match recent
32752         LinuxThread and NPTL version, merge from ACT.
32753
32754 2003-04-28  Zack Weinberg  <zack@codesourcery.com>
32755
32756         * utils.c (convert): No need to clear TREE_CST_RTL.
32757
32758 2003-04-23   Geert Bosch <bosch@gnat.com>
32759
32760         * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
32761         1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
32762         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
32763         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
32764         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
32765         4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb,
32766         4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads,
32767         4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads,
32768         4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb,
32769         4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb,
32770         4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb,
32771         4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb,
32772         52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads,
32773         5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads,
32774         5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb,
32775         5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads,
32776         5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb,
32777         5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb,
32778         5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb,
32779         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
32780         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
32781         5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads,
32782         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
32783         5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads,
32784         5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads,
32785         5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb,
32786         5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads,
32787         5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads,
32788         5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb,
32789         5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads,
32790         5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb,
32791         5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb,
32792         5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb,
32793         5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads,
32794         5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads,
32795         5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb,
32796         5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb,
32797         5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads,
32798         5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads,
32799         5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb,
32800         5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb,
32801         5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads,
32802         5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads,
32803         5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb,
32804         6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb,
32805         7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads,
32806         7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads,
32807         9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb,
32808         a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb,
32809         a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads,
32810         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
32811         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
32812         a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads,
32813         a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads,
32814         a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads,
32815         a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb,
32816         a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads,
32817         a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads,
32818         a-intnam.ads, a-intsig.adb, a-intsig.ads, a-ioexce.ads,
32819         a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
32820         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads,
32821         a-lliwti.ads, a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads,
32822         a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, a-ngelfu.ads,
32823         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
32824         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads,
32825         a-nselfu.ads, a-nucoty.ads, a-nudira.adb, a-nudira.ads,
32826         a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads,
32827         a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb,
32828         a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads,
32829         a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads,
32830         a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads,
32831         a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads,
32832         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
32833         a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads,
32834         a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads,
32835         a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads,
32836         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads,
32837         a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads,
32838         a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads,
32839         a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb,
32840         a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb,
32841         a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb,
32842         a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb,
32843         a-ticoau.ads, a-ticoio.adb, a-ticoio.ads, a-tideau.adb,
32844         a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
32845         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.adb,
32846         a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb,
32847         a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
32848         a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb,
32849         a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb,
32850         a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads,
32851         a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb,
32852         a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb,
32853         a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb,
32854         a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb,
32855         a-wtenau.ads, a-wtenio.adb, a-wtenio.ads, a-wtfiio.adb,
32856         a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, a-wtflio.adb,
32857         a-wtflio.ads, a-wtgeau.adb, a-wtgeau.ads, a-wtinau.adb,
32858         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb,
32859         a-wtmoau.ads, a-wtmoio.adb, a-wtmoio.ads, a-wttest.adb,
32860         a-wttest.ads, ada-tree.h, ada.ads, ada.h,
32861         adadecode.c, adadecode.h, ali-util.adb, ali-util.ads,
32862         ali.adb, ali.ads, alloc.ads, argv.c,
32863         atree.adb, atree.ads, atree.h, aux-io.c,
32864         back_end.adb, back_end.ads, bcheck.adb, bcheck.ads,
32865         binde.adb, binde.ads, binderr.adb, binderr.ads,
32866         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads,
32867         butil.adb, butil.ads, cal.c, calendar.ads,
32868         casing.adb, casing.ads, ceinfo.adb, checks.adb,
32869         checks.ads, cio.c, comperr.adb, comperr.ads,
32870         config-lang.in, csets.adb, csets.ads, csinfo.adb,
32871         cstand.adb, cstand.ads, cuintp.c, debug.adb,
32872         debug.ads, debug_a.adb, debug_a.ads, dec-io.adb,
32873         dec-io.ads, dec.ads, deftarg.c, directio.ads,
32874         einfo.adb, einfo.ads, elists.adb, elists.ads,
32875         elists.h, errno.c, errout.adb, errout.ads,
32876         eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb,
32877         exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads,
32878         exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads,
32879         exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads,
32880         exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads,
32881         exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
32882         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads,
32883         exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads,
32884         exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads,
32885         exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
32886         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads,
32887         exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads,
32888         exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads,
32889         exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
32890         exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads,
32891         fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads,
32892         fname-uf.adb, fname-uf.ads, fname.adb, fname.ads,
32893         freeze.adb, freeze.ads, frontend.adb, frontend.ads,
32894         g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads,
32895         g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
32896         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
32897         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
32898         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
32899         g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb,
32900         g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb,
32901         g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb,
32902         g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb,
32903         g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads,
32904         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads,
32905         g-htable.adb, g-htable.ads, g-io.adb, g-io.ads,
32906         g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb,
32907         g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb,
32908         g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads,
32909         g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb,
32910         g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads,
32911         g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb,
32912         g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads,
32913         g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads,
32914         g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads,
32915         g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads,
32916         get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads,
32917         gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads,
32918         gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads,
32919         gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
32920         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb,
32921         gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb,
32922         gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads,
32923         gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb,
32924         hlo.adb, hlo.ads, hostparm.ads, i-c.adb,
32925         i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads,
32926         i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads,
32927         i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
32928         i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb,
32929         i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb,
32930         i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads,
32931         inline.adb, inline.ads, interfac.ads, ioexcept.ads,
32932         itypes.adb, itypes.ads, krunch.adb, krunch.ads,
32933         layout.adb, layout.ads, lib-list.adb, lib-load.adb,
32934         lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads,
32935         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
32936         lib.adb, lib.ads, live.adb, live.ads,
32937         machcode.ads, make.adb, make.ads, makeusg.adb,
32938         makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads,
32939         mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads,
32940         memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb,
32941         mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
32942         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb,
32943         mlib.ads, namet.adb, namet.ads, nlists.adb,
32944         nlists.ads, opt.adb, opt.ads, osint-b.adb,
32945         osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb,
32946         osint-l.ads, osint-m.adb, osint-m.ads, osint.adb,
32947         osint.ads, output.adb, output.ads, par-ch10.adb,
32948         par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb,
32949         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
32950         par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
32951         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb,
32952         par-tchk.adb, par-util.adb, par.adb, par.ads,
32953         prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads,
32954         prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads,
32955         prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads,
32956         prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads,
32957         prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads,
32958         prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads,
32959         prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads,
32960         prj.adb, prj.ads, repinfo.adb, repinfo.ads,
32961         restrict.adb, restrict.ads, rident.ads, rtsfind.adb,
32962         rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb,
32963         s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb,
32964         s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb,
32965         s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads,
32966         s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads,
32967         s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb,
32968         s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads,
32969         s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads,
32970         s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
32971         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads,
32972         s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads,
32973         s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
32974         s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb,
32975         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
32976         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads,
32977         s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads,
32978         s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads,
32979         s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads,
32980         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads,
32981         s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads,
32982         s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads,
32983         s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads,
32984         s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
32985         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads,
32986         s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads,
32987         s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads,
32988         s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb,
32989         s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb,
32990         s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads,
32991         s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads,
32992         s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
32993         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
32994         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads,
32995         s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads,
32996         s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads,
32997         s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
32998         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
32999         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads,
33000         s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads,
33001         s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads,
33002         s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
33003         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
33004         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads,
33005         s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads,
33006         s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads,
33007         s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
33008         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
33009         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads,
33010         s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads,
33011         s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads,
33012         s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
33013         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
33014         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads,
33015         s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads,
33016         s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads,
33017         s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
33018         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads,
33019         s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads,
33020         s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads,
33021         s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb,
33022         s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads,
33023         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads,
33024         s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads,
33025         s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
33026         s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads,
33027         s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads,
33028         s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb,
33029         s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb,
33030         s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb,
33031         s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads,
33032         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
33033         s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads,
33034         s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
33035         s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb,
33036         s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
33037         s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb,
33038         s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb,
33039         s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb,
33040         s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads,
33041         s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads,
33042         s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads,
33043         s-valenu.adb, s-valenu.ads, s-valint.adb, s-valint.ads,
33044         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads,
33045         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
33046         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads,
33047         s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads,
33048         s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads,
33049         s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb,
33050         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
33051         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb,
33052         s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb,
33053         s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
33054         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb,
33055         s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb,
33056         scn-slit.adb, scn.adb, scn.ads, sdefault.ads,
33057         sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads,
33058         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
33059         sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads,
33060         sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads,
33061         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads,
33062         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads,
33063         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
33064         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
33065         sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads,
33066         sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads,
33067         sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads,
33068         sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
33069         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads,
33070         sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads,
33071         sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads,
33072         sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads,
33073         sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb,
33074         sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb,
33075         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb,
33076         sinput-p.ads, sinput.adb, sinput.ads, snames.adb,
33077         snames.ads, sprint.adb, sprint.ads, stand.adb,
33078         stand.ads, stringt.adb, stringt.ads, style.adb,
33079         style.ads, stylesw.adb, stylesw.ads, switch-b.adb,
33080         switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
33081         switch-m.ads, switch.adb, switch.ads, system.ads,
33082         table.adb, table.ads, targparm.adb, targparm.ads,
33083         tbuild.adb, tbuild.ads, text_io.ads, trans.c,
33084         tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads,
33085         tree_io.adb, tree_io.ads, treepr.adb, treepr.ads,
33086         ttypef.ads, ttypes.ads, types.adb, types.ads,
33087         uintp.adb, uintp.ads, uname.adb, uname.ads,
33088         unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads,
33089         usage.adb, usage.ads, validsw.adb, validsw.ads,
33090         widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb,
33091         xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads,
33092         xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header,
33093         formatting and other trivial changes from ACT.
33094
33095 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
33096
33097         * gigi.h, utils2.c (build_constructor):
33098         Rename gnat_build_constructor. Use build_constructor.
33099         * decl.c (gnat_to_gnu_entity)
33100         * trans.c (tree_transform, pos_to_constructor, extract_values)
33101         * ada/utils.c (build_template, convert_to_fat_pointer, convert)
33102         (unchecked_convert)
33103         * ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
33104         (fill_vms_descriptor):
33105         Update to match.
33106
33107 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
33108
33109         * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero.
33110         * misc.c (gnat_tree_size): New function.
33111         (LANG_HOOKS_TREE_SIZE): Override.
33112
33113 2003-04-03  Jason Merrill  <jason@redhat.com>
33114
33115         * misc.c (gnat_adjust_rli): #if 0.
33116
33117 2003-03-31   Geert Bosch <bosch@gnat.com>
33118
33119         PR ada/10020
33120         * link.c : Fix misspelled "const" keyword
33121
33122 2003-03-23  Mark Mitchell  <mark@codesourcery.com>
33123
33124         PR c++/7086
33125         * utils2.c: Adjust calls to put_var_into_stack.
33126
33127 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
33128
33129         * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC.
33130
33131 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
33132
33133         * misc.c (gnat_init): Update for new prototype.
33134
33135 2003-03-05  Olivier Hainque  <hainque@gnat.com>
33136
33137         ada/9961
33138         * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid
33139         warning, and fix return type for the IN_RTS && !SJLJ case.
33140
33141 2003-03-04  Tom Tromey  <tromey@redhat.com>
33142
33143         * Make-lang.in (ada.tags): New target.
33144
33145 2003-03-04  Olivier Hainque  <hainque@act-europe.fr>
33146
33147         ada/9911
33148         * a-except.adb (Unwind_RaiseException): Import a GNAT specific
33149         wrapper, which name remains constant whatever underlying GCC
33150         scheme.
33151
33152         * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing
33153         the stable interface needed for a-except.
33154
33155 2003-03-02  Andreas Jaeger  <aj@suse.de>
33156
33157         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
33158         gnat_ug_wnt.texi: Regenerate.
33159
33160 2003-03-02  Laurent Guerby <guerby@acm.org>
33161
33162         * Makefile.in (install-gnatlib): Match previous change there
33163         so it works.
33164
33165 2003-02-28  Andreas Schwab  <schwab@suse.de>
33166
33167         * Make-lang.in (install-gnatlib): Change to ada directory before
33168         running make instead of using ada/Makefile directly.
33169
33170 2003-02-18  Ben Elliston  <bje@redhat.com>
33171
33172         Part of PR ada/9406
33173         * gnat_ug.texi (Binder output file): Grammar fix.
33174
33175 2003-02-18  Ben Elliston  <bje@redhat.com>
33176
33177         PR other/7350
33178         * 5qtaprop.adb (Sleep): Fix typo in comment.
33179
33180 2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
33181
33182         * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2.
33183         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
33184         gnat_ug_wnt.texi: Regenerate.
33185
33186 2003-02-03  Christian Cornelssen <ccorn@cs.tu-berlin.de>
33187
33188         * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir)
33189         be created if necessary.
33190         (ada.install-common): Let $(DESTDIR)$(bindir) be created
33191         if necessary.  Remove erroneous and redundant gnatchop
33192         installation commands.  Test for gnatdll before attempting
33193         to install it.
33194         (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr,
33195         and gnatdll from all plausible locations.
33196
33197 2003-02-01  Richard Sandiford  <rsandifo@redhat.com>
33198
33199         * utils2.c (build_unary_op): Don't check flag_volatile.
33200         * gnat_ug.texi: Remove -fvolatile from example.
33201         * gnat_ug_vxw.texi: Likewise.
33202
33203 2003-01-29  Laurent Guerby <guerby@acm.org>
33204
33205         PR ada/8344
33206         * final.c: rename to adafinal.c to avoid file name conflicts with gcc file.
33207         * Makefile.in: match previous change.
33208         * Make-lang.in: match previous change.
33209
33210 2003-01-29      Joel Sherrill <joel@OARcorp.com>
33211
33212         * 5rosinte.ads: Add SIGXCPU.
33213         * 5rtpopsp.adb: New file.
33214         * Make-lang.in: Do not build gnatpsta and gnatpsys when cross.
33215         * Makefile.in: Recognize more RTEMS targets and add the RTEMS
33216         specific file 5rtpopsp.adb.
33217         * adaint.h: Add include of <stdio.h> when target is RTEMS.  This
33218         is likely needed for all newlib targets.
33219         * init.c: Add RTEMS specific version of __gnat_initialize().
33220
33221 2003-01-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
33222
33223         * adaint.c, adaint.h, gmem.c, init.c: Update copyright year.
33224
33225 2003-01-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
33226
33227         * init.c (__gnat_error_handler): Make msg const.
33228
33229         * gmem.c (convert_addresses): Move declaration ...
33230         * adaint.h: ... here.
33231         * adaint.c (convert_addresses): Adapt addrs type to match
33232         prototype.
33233
33234         * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format.
33235
33236 2003-01-24  Andreas Schwab  <schwab@suse.de>
33237
33238         * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to
33239         size_t to avoid warning.
33240
33241 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
33242
33243         * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c.
33244
33245 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
33246
33247         * gnat_rm.texi: Remove RCS version number.
33248
33249         * ada-tree.h (union lang_tree_node): Add chain_next option.
33250
33251 2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
33252
33253         * Make-lang.in (ada.install-info, ada.install-common,
33254         ada.uninstall): Prepend $(DESTDIR) to the destination
33255         directory in all (un)installation commands.
33256         * Makefile.in (install-gnatlib, install-rts): Ditto.
33257
33258 2002-12-28  Joseph S. Myers  <jsm@polyomino.org.uk>
33259
33260         * gnat_rm.texi, gnat_ug.texi: Use @copying.
33261         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
33262         gnat_ug_wnt.texi: Regenerate.
33263
33264 2002-12-23  Joseph S. Myers  <jsm@polyomino.org.uk>
33265
33266         * gnat_rm.texi: Include gcc-common.texi.  Use GCC version number
33267         only.
33268         * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
33269         $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
33270         $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
33271         ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
33272         ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
33273         $(srcdir)/doc/include/gcc-common.texi.
33274
33275 2002-12-15   Geert Bosch <bosch@gnat.com>
33276
33277         * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting
33278
33279 2002-12-14   Geert Bosch <bosch@gnat.com>
33280
33281         PR ada/5690
33282         * sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
33283         case of a body created for a Renaming_As_Body, on which
33284         conformance checks are not performed.
33285
33286 2002-11-30  Zack Weinberg  <zack@codesourcery.com>
33287
33288         * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c,
33289         utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when
33290         not already included.
33291         * Make-lang.in: Update dependencies.
33292
33293 2002-11-18  Nathanael Nerode  <neroden@gcc.gnu.org>
33294         * adaint.c (__gnat_tmp_name): Better, but good enough for now,
33295         solution to buffer overflow bug on GNU/Linux.
33296
33297 2002-11-14  Nathanael Nerode  <neroden@gcc.gnu.org>
33298
33299         PR ada/5856
33300         PR ada/6919
33301         * bindgen.adb: Remove all references to Public_Version.
33302         * comperr.adb: Remove all references to Public_Version and
33303         GNATPRO_Version; correct bug reporting instructions.
33304         * comperr.ads: Change to match bug box.
33305         * gnatvsn.ads: Remove all references to Public version and
33306         GNATPRO version.
33307
33308 2002-11-13  Nathanael Nerode  <neroden@gcc.gnu.org>
33309
33310         PR ada/6919
33311         * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
33312         GNU/Linux.
33313
33314         PR ada/6558
33315         * config-lang.in: Remove diff_excludes.
33316
33317 2002-11-05  Graham Stott  <graham.stott@btinternet.com>
33318
33319         PR ada/8358
33320         * trans.c (gnu_pending_elaboration_lists): New GC root.
33321         (build_unit_elab): Use..
33322
33323 2002-10-30   Geert Bosch <bosch@gnat.com>
33324
33325         PR ada/6558
33326         * misc.c : Include optabs.h
33327
33328         * Make-lang.in (misc.o): Add dependency on optabs.h
33329
33330 2002-10-29   Geert Bosch <bosch@gnat.com>
33331
33332         PR ada/6558
33333         * Make-lang.in (gnatbind): Depend on CONFIG_H
33334
33335 2002-10-29  Geert bosch  <bosch@gnat.com>
33336
33337         PR ada/6558
33338         * misc.c: Unrevert misc.c (1.13)
33339
33340 2002-10-28  Nathanael Nerode  <neroden@gcc.gnu.org>
33341
33342         * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update
33343         maintainership comments.
33344
33345 2002-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
33346
33347         PR ada/5904
33348         * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
33349         5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb
33350         5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb
33351         7staprop.adb: Correct statements in comments about
33352         maintainership of GNAT.
33353
33354         PR ada/5904
33355         * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c
33356         gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads
33357         osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb
33358         osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads
33359         s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb
33360         s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb
33361         sinput-d.ads switch-b.adb switch-b.ads switch-c.adb
33362         switch-c.ads switch-m.adb switch-m.ads: Correct statements in
33363         comments about maintainership of GNAT.
33364
33365         PR ada/6919 (forward port of patch for PR ada/5904)
33366         * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads
33367         4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb
33368         4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads
33369         4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads
33370         4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb
33371         4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb
33372         4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb
33373         52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads
33374         5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads
33375         5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads
33376         5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads
33377         5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb
33378         5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads
33379         5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads
33380         5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads
33381         5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads
33382         5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads
33383         5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads
33384         5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb
33385         5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads
33386         5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads
33387         5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb
33388         5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads
33389         5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb
33390         5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb
33391         5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb
33392         5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb
33393         5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb
33394         7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb
33395         a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb
33396         a-chahan.ads a-colien.adb a-colien.ads a-colire.adb
33397         a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads
33398         a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads
33399         a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads
33400         a-except.adb a-except.ads a-excpol.adb a-exctra.adb
33401         a-exctra.ads a-filico.adb a-filico.ads a-finali.adb
33402         a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads
33403         a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb
33404         a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads
33405         a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb
33406         a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb
33407         a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb
33408         a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads
33409         a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads
33410         a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads
33411         a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads
33412         a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb
33413         a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb
33414         a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads
33415         a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads
33416         a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads
33417         a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads
33418         a-ticoio.adb a-ticoio.ads a-tideau.adb a-tideau.ads
33419         a-tideio.adb a-tideio.ads a-tienau.adb a-tienau.ads
33420         a-tienio.adb a-tienio.ads a-tifiio.adb a-tifiio.ads
33421         a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads
33422         a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads
33423         a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads
33424         a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads
33425         a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb
33426         a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads
33427         a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads
33428         a-wtedit.adb a-wtedit.ads a-wtenau.adb a-wtenau.ads
33429         a-wtenio.adb a-wtenio.ads a-wtfiio.adb a-wtfiio.ads
33430         a-wtflau.adb a-wtflau.ads a-wtflio.adb a-wtflio.ads
33431         a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads
33432         a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb
33433         a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h
33434         adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads
33435         alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb
33436         back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads
33437         binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb
33438         bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads
33439         ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads
33440         csets.adb csets.ads csinfo.adb cstand.adb cstand.ads
33441         cstreams.c cuintp.c debug.adb debug.ads debug_a.adb
33442         debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c
33443         einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h
33444         errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c
33445         exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads
33446         exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb
33447         exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads
33448         exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb
33449         exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads
33450         exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb
33451         exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb
33452         exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb
33453         exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb
33454         exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb
33455         exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb
33456         exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads
33457         exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h
33458         final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads
33459         fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb
33460         freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb
33461         g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads
33462         g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h
33463         gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb
33464         gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb
33465         gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb
33466         gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads
33467         gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads
33468         gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads
33469         i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb
33470         i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads
33471         i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads
33472         i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads
33473         impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c
33474         itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h
33475         lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb
33476         lib-load.ads lib-sort.adb lib-util.adb lib-util.ads
33477         lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb
33478         lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb
33479         makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c
33480         namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h
33481         nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb
33482         osint.ads output.adb output.ads par-ch10.adb par-ch11.adb
33483         par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb
33484         par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb
33485         par-endh.adb par-labl.adb par-load.adb par-prag.adb
33486         par-sync.adb par-tchk.adb par-util.adb par.adb par.ads
33487         prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb
33488         prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads
33489         prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads
33490         prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads
33491         prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads
33492         prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h
33493         repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads
33494         rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads
33495         s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads
33496         s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb
33497         s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads
33498         s-direio.adb s-direio.ads s-except.ads s-exctab.adb
33499         s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads
33500         s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads
33501         s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads
33502         s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads
33503         s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads
33504         s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads
33505         s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb
33506         s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads
33507         s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads
33508         s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads
33509         s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb
33510         s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb
33511         s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb
33512         s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb
33513         s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb
33514         s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb
33515         s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb
33516         s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb
33517         s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads
33518         s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb
33519         s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads
33520         s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads
33521         s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads
33522         s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads
33523         s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads
33524         s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads
33525         s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads
33526         s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads
33527         s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads
33528         s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads
33529         s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads
33530         s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads
33531         s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads
33532         s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads
33533         s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads
33534         s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads
33535         s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads
33536         s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads
33537         s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads
33538         s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads
33539         s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads
33540         s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads
33541         s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads
33542         s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads
33543         s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads
33544         s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads
33545         s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads
33546         s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads
33547         s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads
33548         s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads
33549         s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads
33550         s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads
33551         s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads
33552         s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb
33553         s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb
33554         s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb
33555         s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb
33556         s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb
33557         s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb
33558         s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads
33559         s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads
33560         s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads
33561         s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads
33562         s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads
33563         s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads
33564         s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.ads
33565         s-valint.adb s-valint.ads s-vallld.adb s-vallld.ads
33566         s-vallli.adb s-vallli.ads s-valllu.adb s-valllu.ads
33567         s-valrea.adb s-valrea.ads s-valuns.adb s-valuns.ads
33568         s-valuti.adb s-valuti.ads s-valwch.adb s-valwch.ads
33569         s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads
33570         s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb
33571         s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb
33572         s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb
33573         s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb
33574         s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb
33575         s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb
33576         s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads
33577         scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb
33578         sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads
33579         sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb
33580         sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb
33581         sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads
33582         sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb
33583         sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads
33584         sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb
33585         sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb
33586         sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb
33587         sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb
33588         sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb
33589         sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads
33590         sem_type.adb sem_type.ads sem_util.adb sem_util.ads
33591         sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads
33592         sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb
33593         sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb
33594         sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads
33595         snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb
33596         stringt.ads stringt.h style.adb style.ads stylesw.adb
33597         stylesw.ads switch.adb switch.ads sysdep.c system.ads
33598         table.adb table.ads targparm.adb targparm.ads targtyps.c
33599         tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads
33600         tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb
33601         treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads
33602         types.adb types.ads types.h uintp.adb uintp.ads uintp.h
33603         uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb
33604         usage.ads utils.c utils2.c validsw.adb validsw.ads
33605         widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb
33606         xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb
33607         xtreeprs.adb: Correct statements in comments about maintainership
33608         of GNAT.
33609
33610 2002-09-23  Zack Weinberg  <zack@codesourcery.com>
33611
33612         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o.
33613         * Makefile.in (TOOLS_LIBS): Add ../../version.o.
33614         * gnatvsn.ads: Gnat_Version_String is now a function.
33615         * gnatvsn.adb: New file.  When asked for Gnat_Version_String,
33616         copy the C version_string into a String and return it.
33617         * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb,
33618         gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb:
33619         Remove pragma Ident (Gnat_Version_String).  If this was the
33620         sole use of package Gnatvsn, remove the with statement too.
33621         * gnat1drv.adb: Tweak -gnatv output.
33622
33623 2002-09-17  Richard Henderson  <rth@redhat.com>
33624
33625         * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
33626         * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN.
33627         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
33628         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
33629         * config/m68k/m68k.c (floating_exact_log2): Use real_exponent
33630         and real_2expN instead of a loop.
33631         * doc/tm.texi (REAL_VALUE_LDEXP): Remove.
33632         (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove.
33633
33634 2002-08-25  Andre Leis <a.leis@gmx.net>
33635             David Billinghurst (David.Billinghurst@riotinto.com>
33636
33637         * sysdep.c (__gnat_ttyname): include <termios.h> on cygwin
33638
33639 2002-08-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
33640
33641         * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS).
33642         Remove $(CONFIG_H) dependency.
33643
33644 2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
33645
33646         * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
33647
33648 2002-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
33649
33650         * adadecode.c (ada_demangle): Use xstrdup in lieu of
33651         xmalloc/strcpy.
33652         * misc.c (gnat_decode_option): Likewise.
33653
33654 2002-07-15  Florian Weimer  <fw@deneb.enyo.de>
33655
33656         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
33657         function approach did not work well because of a side effect (the
33658         function call could reallocate the table which was being indexed
33659         using its result). Fixes ada/4851. [RESURRECTED]
33660
33661 2002-07-01  Roger Sayle  <roger@eyesopen.com>
33662
33663         * ada/utils.c (builtin_function): Accept an additional parameter.
33664
33665 2002-06-28  Andreas Jaeger  <aj@suse.de>
33666
33667         PR ada/7144
33668         * Makefile.in: Fix typo in comment, patch by Adrian Knoth
33669         <adi@thur.de>.
33670
33671 2002-06-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
33672
33673         * Makefile.in (SHELL): Set to @SHELL@.
33674
33675 2002-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
33676
33677         * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit
33678         array size calculation.
33679
33680 2002-06-04  Andreas Jaeger  <aj@suse.de>
33681
33682         * Make-lang.in (gnatbind): Readd rule that has been lost in last
33683         patch.
33684
33685 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
33686
33687         Merge from pch-branch:
33688
33689         * config-lang.in (gtfiles): Add ada-tree.h.
33690         * ada-tree.h (SET_TYPE_CI_CO_LIST): New.
33691         (SET_TYPE_MODULUS): New.
33692         (SET_TYPE_INDEX): New.
33693         (SET_TYPE_DIGITS_VALUE): New.
33694         (SET_TYPE_RM_SIZE): New.
33695         (SET_TYPE_UNCONSTRAINED_ARRAY): New.
33696         (SET_TYPE_ADA_SIZE): New.
33697         (SET_TYPE_ACTUAL_BOUNDS): New.
33698         (SET_DECL_CONST_CORRESPONDING_VAR): New.
33699         (SET_DECL_ORIGINAL_FIELD): New.
33700         (TREE_LOOP_ID): Correct typo.
33701         * decl.c: Use new macros.
33702         * utils.c: Include debug.h, use new macros.
33703         * utils2.c: Use new macros.
33704
33705         * ada-tree.h: Update all macros for new tree description.
33706         (struct tree_loop_id): New.
33707         (union lang_tree_node): New.
33708         (struct lang_decl): New.
33709         (struct lang_type): New.
33710         * misc.c (gnat_mark_tree): Delete.
33711         (LANG_HOOKS_MARK_TREE): Delete.
33712         * trans.c (tree_transform): No longer any need to cast
33713         for TREE_LOOP_ID.
33714
33715         * utils.c (struct language_function): New dummy structure.
33716
33717         * Makefile.in (decl.o): gt-ada-<filename.h> is in objdir, not srcdir.
33718         (misc.o): Likewise.
33719         (utils.o): Likewise; also gtype-ada.h.
33720         * Make-lang.in (gnat1): Add dependency on s-gtype.
33721         (gnatbind): Add dependency on $(CONFIG_H).
33722         * utils.c: Correct last #include.
33723         (stuct e_stack): Remove unnecessary 'static'.
33724         (mark_e_stack): Remove unused prototype.
33725
33726         * scn-nlit.adb: Remove whitespace after version number to
33727         keep lines under 80 chars.
33728         * snames.adb: Likewise.
33729         * treepr.ads: Likewise.
33730
33731         * Makefile.in (decl.o): Include gt-ada-<filename>.h.
33732         (misc.o): Likewise.
33733         (utils.o): Include gt-ada-<filename>.h and gtype-ada.h.
33734         * config-lang.in (gtfiles): New.
33735         * decl.c: Use gengtype for roots.
33736         * gigi.h: Use gengtype for roots.
33737         * trans.c: Use gengtype for roots.
33738         * utils.c: Use gengtype for roots, marking.  Include gtype-ada.h.
33739
33740 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
33741
33742         * misc.c (gnat_init): Adjust setting of internal_error_function.
33743
33744 2002-06-01  Joseph S. Myers  <jsm28@cam.ac.uk>
33745
33746         * gnat_ug.texi: Use @ifnottex instead of @ifinfo.
33747         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
33748         gnat_ug_wnt.texi: Regenerate.
33749
33750 2002-05-31  Florian Weimer  <fw@deneb.enyo.de>
33751
33752         * 5ntaprop.adb (with System.OS_Primitives): Remove.
33753
33754         * cstreams.c (max_path_len): Move from here ...
33755         * adaint.c (__gnat_max_path_len): ... to here.
33756         * adaint.c (__gnat_max_path_len): Declare.
33757         * g-dirope.adb (Max_Path): Adjust.
33758         * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust.
33759         * i-cstrea.ads (max_path_len): Adjust.
33760         * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust.
33761         * xr_tabls.adb (Dir_Name.Max_Path: Adjust.
33762
33763         * Makefile.in, Make-lang.in: Documentation is now built in
33764         Make-lang.in.  Store Info and generated Texinfo files in the
33765         source directory.
33766         * gnat_ug.texi: Remove CVS keywords, correct version number.
33767         Set file name correctly.
33768
33769         * gnat_ug_*.texi: Add.
33770         * .cvsignore: Ignore generated Texinfo files.
33771
33772 2002-05-30  Zack Weinberg  <zack@codesourcery.com>
33773
33774         * ada.h: Add MI guard macro.
33775         (SUBTYPE): Define constants with an anonymous enum, not static
33776         const variables.
33777         (IN): Cast constants to appropriate type before use.
33778
33779 2002-05-26  Joseph S. Myers  <jsm28@cam.ac.uk>
33780
33781         * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526
33782         (experimental)".
33783
33784 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
33785
33786         * Make-lang.in (CP, ECHO): Copy from Makefile.in.
33787         (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise.
33788         (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise.
33789         (ALL_ADA_CFLAGS): Likewise.
33790         (ADA_INCLUDES): Likewise.
33791         Adapt for new working dir.
33792         (GNATBIND): Use Makefile.in version.
33793         (.SUFFIXES): Copy from Makefile.in.
33794         (ada-warn): Define.
33795         (.adb.o, .ads.o): Copy from Makefile.in.
33796         Added $(OUTPUT_OPTION).
33797         (GNAT1_C_OBJS): Moved from Makefile.in.
33798         Prefix with ada subdir.
33799         (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise.
33800         (EXTRA_GNAT1_OBJS): Moved from Makefile.in.
33801         Adapt for new working dir.
33802         (EXTRA_GNATBIND_OBJS): Likewise.
33803         (ADA_BACKEND): Moved from Makefile.in.
33804         Renamed to avoid conflict with global BACKEND.
33805         Use that one.
33806         (TARGET_ADA_SRCS): Moved from Makefile.in.
33807         (gnat1$(exeext)): Replaced recursive rule with Makefile.in version.
33808         Use ADA_BACKEND.
33809         (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version.
33810         (ada_extra_files): Moved from Makefile.in.
33811         Prefix with ada subdir.
33812         (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise.
33813         (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise.
33814         (ada/nmake.ads): Likewise.
33815         (update-sources): Moved from Makefile.in.
33816         Prefix with ada subdir.
33817         (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise.
33818         (ADA_TREE_H): Likewise.
33819         (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise.
33820         (ada/memtrack.o): Likewise.
33821         (ada/adadecode.o): Likewise.
33822         Update dependencies.
33823         (ada/adaint.o): New.
33824         (ada/argv.o): Moved from Makefile.in.
33825         Prefix with ada subdir.
33826         Update dependencies.
33827         (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise.
33828         (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise.
33829         (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in.
33830         Prefix with ada subdir.
33831         (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise.
33832         (GNAT DEPENDENCIES): Regenerate.
33833         * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by
33834         toplevel Makefile.in.
33835         (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed.
33836         (TARGET_ADA_SRCS): Removed.
33837         (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise.
33838         (GNATBIND_OBJS): Likewise.
33839         (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here.
33840         (BACKEND): Removed.
33841         (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise.
33842         (TREE_H): Likewise.
33843         (ada_extra_files): Likewise.
33844         (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise.
33845         (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise.
33846         (update-sources): Likewise.
33847         (sdefault.adb, stamp-sdefault, sdefault.o): Likewise
33848         (ADA_TREE_H): Likewise.
33849         (adadecoce.o): Likewise.
33850         (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise.
33851         (GNAT DEPENDENCIES): Likewise.
33852
33853 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
33854
33855         * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd.
33856         * Makefile.in: Likewise.
33857
33858 2002-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
33859
33860         * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools):
33861         Restore $(CONFIG_H) and prefix.o dependencies.
33862         (ada.stage[1-4]): Depend on stage?-start.
33863
33864         * Makefile.in (b_gnatb.c): Depend on interfac.o.
33865
33866 2002-05-02  Jim Wilson  <wilson@redhat.com>
33867
33868         * utils.c (finish_record_type): Change record_size to record_type.
33869
33870 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
33871
33872         * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides.
33873         (ALL_ADA_CFLAGS): Define.  Replace ADA_CFLAGS with ALL_ADA_CFLAGS in
33874         ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC.
33875
33876 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
33877
33878         * misc.c (gnat_parse_file): Update.
33879
33880 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
33881
33882         * misc.c (gnat_init): Don't set lang_attribute_common.
33883
33884 2002-04-21  Joseph S. Myers  <jsm28@cam.ac.uk>
33885
33886         * gnat_rm.texi: Use @ifnottex instead of @ifinfo.
33887
33888 2002-04-21  Florian Weimer  <fw@deneb.enyo.de>
33889
33890         * gnat_ug.texi: New file.
33891
33892         * gnat_rm.texi: Do not include texiplus.texi.  Include fdl.texi
33893         instead of gfdl.texi
33894
33895         * xgnatug.adb, ug_words: New files.
33896
33897         * Makefile.in (doc, dvi): New targets.  Build gnat_ug_*,
33898         gnat_rm and gnat-style manuals.
33899
33900 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
33901
33902         * gigi.h (incomplete_type_error): Remove.
33903         * utils.c (incomplete_type_error): Remove.
33904
33905 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
33906
33907         * trans.c (tree_transform): Add has_scope argument to
33908         expand_start_stmt_expr.
33909
33910 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
33911
33912         * gigi.h (truthvalue_conversion): Rename.
33913         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
33914         * trans.c (tree_transform): Update.
33915         * utils2.c (truthvalue_conversion): Rename, update.
33916         (build_binary_op, build_unary_op): Update.
33917
33918 2002-04-04  Laurent Guerby  <guerby@acm.org>
33919
33920         * make.adb: Implement -margs, remove restriction about file name placement.
33921         * makeusg.adb: Documentation update.
33922         * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir).
33923         * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line.
33924
33925 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
33926
33927         * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME.
33928         (builtin_function): Similarly.
33929
33930 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
33931
33932         * decl.c (gnat_to_gnu_entity): Update.
33933         * gigi.h (mark_addressable): Rename.
33934         * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
33935         * trans.c (tree_transform): Update.
33936         * utils.c (create_var_decl): Update.
33937         * util2.c (build_binary_op, build_unary_op,
33938         fill_vms_descriptor): Update.
33939         (mark_addressable): Rename, update.
33940
33941 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
33942
33943         * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
33944         Rename.
33945         * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
33946         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
33947         * trans.c (tree_transform, convert_with_check): Update.
33948         * utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
33949         Rename.
33950
33951 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
33952
33953         * gigi.h (finish_incomplete_decl): Rename.
33954         * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
33955         * utils.c (gnat_init_decl_processing): Don't set hook.
33956         (finish_incomplete_decl): Rename.
33957
33958 2002-03-29  Andreas Schwab  <schwab@suse.de>
33959
33960         * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts
33961         directory.
33962
33963 2001-03-28  Robert Dewar <dewar@gnat.com>
33964
33965         * checks.ads:
33966         (Remove_Checks): New procedure
33967
33968         * checks.adb:
33969         (Remove_Checks): New procedure
33970
33971         * exp_util.adb:
33972         Use new Duplicate_Subexpr functions
33973         (Duplicate_Subexpr_No_Checks): New procedure
33974         (Duplicate_Subexpr_No_Checks_Orig): New procedure
33975         (Duplicate_Subexpr): Restore original form (checks duplicated)
33976         (Duplicate_Subexpr): Call Remove_Checks
33977
33978         * exp_util.ads:
33979         (Duplicate_Subexpr_No_Checks): New procedure
33980         (Duplicate_Subexpr_No_Checks_Orig): New procedure
33981         Add 2002 to copyright notice
33982
33983         * sem_util.adb: Use new Duplicate_Subexpr functions
33984
33985         * sem_eval.adb:
33986         (Eval_Indexed_Component): This is the place to call
33987         Constant_Array_Ref and to replace the value. We simply merge
33988         the code of this function in here, since it is now no longer
33989         used elsewhere. This fixes the problem of the back end not
33990         realizing we were clever enough to see that this was
33991         constant.
33992         (Expr_Val): Remove call to Constant_Array_Ref
33993         (Expr_Rep_Val): Remove call to Constant_Array_Ref
33994         Minor reformatting
33995         (Constant_Array_Ref): Deal with string literals (patch
33996         suggested by Zack Weinberg on the gcc list)
33997
33998 2001-03-28  Ed Schonberg <schonber@gnat.com>
33999
34000         * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig =>
34001         Duplicate_Subexpr_Move_Checks.
34002
34003         * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig =>
34004         Duplicate_Subexpr_Move_Checks.
34005
34006         * sem_eval.adb: (Constant_Array_Ref): Verify that constant
34007         value of array exists before retrieving it (it may a private
34008         protected component in a function).
34009
34010 2002-03-28   Geert Bosch <bosch@gnat.com>
34011
34012         * prj-pp.adb : New file.
34013
34014         * prj-pp.ads : New file.
34015
34016 2002-03-28  Andreas Jaeger  <aj@suse.de>
34017
34018         * Makefile.in (stamp-sdefault): Fix path for Makefile.
34019
34020 2002-03-28  Neil Booth  <neil@daikokuya.demon.co.uk>
34021
34022         * misc.c (gnat_expand_expr): Move prototype.
34023
34024 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
34025
34026         * misc.c (insert_default_attributes): Remove.
34027
34028 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
34029
34030         * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
34031         (gnat_init): Don't set hook.
34032         (gnat_expand_expr): Fix prototype.
34033
34034 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
34035
34036         * misc.c (ggc_p): Remove.
34037
34038 2002-03-27  Geert Bosch  <bosch@gnat.com>
34039
34040         * prj-makr.ads, prj-makr.adb : New files.
34041
34042 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
34043
34044         * misc.c (LANG_HOOKS_MARK_TREE): Redefine.
34045         (lang_mark_tree): Make static, rename.
34046
34047 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
34048
34049         * misc.c (maybe_build_cleanup): Remove.
34050
34051 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
34052
34053         * gigi.h (yyparse): Remove.
34054
34055 2002-03-23  Florian Weimer  <fw@deneb.enyo.de>
34056
34057         * gnat_rm.texi: Sync with ACT version.
34058           (From Ben Brosgol <brosgol@gnat.com>)
34059
34060 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
34061
34062         * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
34063         (gnat_init): Remove old hook.
34064
34065 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
34066
34067         * misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
34068         (yyparse): Rename gnat_parse_file.
34069
34070 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
34071
34072         Delete all lines containing "$Revision:".
34073         * xeinfo.adb: Don't look for revision numbers.
34074         * xnmake.adb: Likewise.
34075         * xsinfo.adb: Likewise.
34076         * xsnames.adb: Likewise.
34077         * xtreeprs.adb: Likewise.
34078
34079 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
34080
34081         * misc.c (gnat_tree_code_type, gnat_tree_code_length,
34082         gnat_tree_code_name): Delete.
34083         (tree_code_type, tree_code_length, tree_code_name): Define.
34084         (gnat_init): Don't try to copy into the various tree_code
34085         arrays.
34086
34087 2002-03-11  Richard Henderson  <rth@redhat.com>
34088
34089         * Makefile.in (.NOTPARALLEL): Add fake tag.
34090
34091 2002-03-07  Geert Bosch  <bosch@gnat.com>
34092
34093         * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads,
34094         s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads,
34095         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads,
34096         switch-m.adb, switch-m.ads : New files.
34097
34098 2002-03-07  Geert Bosch  <bosch@gnat.com>
34099
34100         * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads,
34101         4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads,
34102         4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads,
34103         4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads,
34104         5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb,
34105         5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads,
34106         5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb,
34107         5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads,
34108         5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb,
34109         5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb,
34110         5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads,
34111         5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb,
34112         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads,
34113         5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb,
34114         5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb,
34115         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb,
34116         5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb,
34117         5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb,
34118         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
34119         5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb,
34120         7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb,
34121         Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads,
34122         a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb,
34123         a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads,
34124         a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb,
34125         a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb,
34126         a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb,
34127         a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb,
34128         a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h,
34129         adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb,
34130         atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb,
34131         bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb,
34132         csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c,
34133         einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads,
34134         eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
34135         exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads,
34136         exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
34137         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads,
34138         exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb,
34139         exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads,
34140         expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb,
34141         freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb,
34142         g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads,
34143         g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb,
34144         g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb,
34145         g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb,
34146         g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb,
34147         g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c,
34148         gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb,
34149         gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads,
34150         gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb,
34151         i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads,
34152         impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb,
34153         lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
34154         lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb,
34155         memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads,
34156         mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb,
34157         nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads,
34158         output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb,
34159         par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb,
34160         prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb,
34161         prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb,
34162         prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads,
34163         rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb,
34164         s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads,
34165         s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb,
34166         s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb,
34167         s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb,
34168         s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb,
34169         s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb,
34170         s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads,
34171         s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads,
34172         s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb,
34173         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
34174         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
34175         s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
34176         s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
34177         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
34178         s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb,
34179         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
34180         sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb,
34181         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads,
34182         sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb,
34183         sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb,
34184         sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb,
34185         sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
34186         sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb,
34187         sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb,
34188         sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads,
34189         snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads,
34190         stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads,
34191         table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb,
34192         tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb,
34193         treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads,
34194         types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb,
34195         utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb,
34196         xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes.
34197
34198         * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads,
34199         g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads,
34200         mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads,
34201         osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files
34202
34203         * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb,
34204         5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed
34205
34206         * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed
34207         to mdll-fil.ad[bs] and mdll-util.ad[bs]
34208
34209         * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed
34210         from mdllfile.ad[bs] and mdlltool.ad[bs]
34211
34212 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
34213
34214         * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
34215         lieu of explicit sizeof/sizeof.
34216
34217 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
34218
34219         * misc.c (copy_lang_decl): Remove.
34220
34221 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
34222
34223         * misc.c: Delete traditional-mode-related code copied from the
34224         C front end but not used, or used only to permit the compiler
34225         to link.
34226
34227 2002-02-07  Richard Henderson  <rth@redhat.com>
34228
34229         * adaint.c (__gnat_to_gm_time): First arg is int, not time_t.
34230         * adaint.h (__gnat_to_gm_time): Update prototype.
34231
34232 2002-01-30  Richard Henderson  <rth@redhat.com>
34233
34234         * trans.c (tree_transform) [N_Loop_Statement]: Use
34235         expand_exit_loop_top_cond.
34236
34237 2001-12-23  Richard Henderson  <rth@redhat.com>
34238
34239         * utils.c (end_subprog_body): Push GC context around
34240         rest_of_compilation for nested functions.
34241
34242 2001-12-23  Richard Henderson  <rth@redhat.com>
34243
34244         * 5nosinte.ads: Get definition of "int" from Interfaces.C.
34245
34246 2001-12-23  Florian Weimer  <fw@deneb.enyo.de>
34247
34248         * gnat-style.texi (Declarations and Types): Remove ancient style
34249         rule which was mandated by code generation issues.
34250
34251         * gnat-style.texi (header): Add @dircategory, @direntry.
34252         (title page): Remove date.
34253         (general) Add @./@: where approriate, and two spaces after the
34254         full stop at the end of a sentence.  Use @samp markup when
34255         referring concrete lexical entities (keywords, attribute names
34256         etc.), and @syntax for ARM grammar elements. Use @r for English
34257         text in comments.  Use @emph for emphasis.  Change "if-statements"
34258         etc. to "if statements" (without @samp). Break long lines.  Make
34259         casing of section names consistent.
34260         (Identifiers): Use @samp markup for variable names.
34261         (Comments): Use @samp markup for comment characters. Line-end
34262         comments may follow any Ada code, not just statements.  Fix
34263         misspelling of "Integer" as "integer".
34264         (Loop statements): Do not use variable name "I", use "J".
34265         (Subprogram Declarations): Document alignment.
34266         (Subprogram Bodies, Block statements): Document empty line before
34267         "begin".
34268
34269 2001-12-22  Florian Weimer  <fw@deneb.enyo.de>
34270
34271         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
34272         function approach did not work well because of a side effect (the
34273         function call could reallocate the table which was being indexed
34274         using its result). Fixes ada/4851.
34275
34276 2001-12-19  Robert Dewar <dewar@gnat.com>
34277
34278         * bindgen.adb: Minor reformatting
34279
34280         * cstand.adb: Minor reformatting
34281
34282         * fmap.adb: Minor reformatting
34283         Change name from Add for Add_To_File_Map (Add is much too generic)
34284         Change Path_Name_Of to Mapped_Path_Name
34285         Change File_Name_Of to Mapped_File_Name
34286         Fix copyright dates in header
34287
34288         * fmap.ads:
34289         Change name from Add for Add_To_File_Map (Add is much too generic)
34290         Change Path_Name_Of to Mapped_Path_Name
34291         Change File_Name_Of to Mapped_File_Name
34292         Fix copyright dates in header
34293
34294         * fname-uf.adb: Minor reformatting.  New names of stuff in Fmap.
34295         Add use clause for Fmap.
34296
34297         * make.adb: Minor reformatting
34298
34299         * osint.adb: Minor reformatting.  Change of names in Fmap.
34300         Add use clause for Fmap.
34301
34302         * prj-env.adb: Minor reformatting
34303
34304         * prj-env.ads: Minor reformatting
34305
34306         * switch.adb: Minor reformatting.  Do proper raise of Bad_Switch if
34307         error found (there were odd exceptions to this general rule in
34308         -gnatec/-gnatem processing)
34309
34310 2001-12-19  Olivier Hainque <hainque@gnat.com>
34311
34312         * raise.c (__gnat_eh_personality): Exception handling personality
34313         routine for Ada.  Still in rough state, inspired from the C++ version
34314         and still containing a bunch of debugging artifacts.
34315         (parse_lsda_header, get_ttype_entry): Local (static) helpers, also
34316         inspired from the C++ library.
34317
34318         * raise.c (eh_personality): Add comments. Part of work for the GCC 3
34319         exception handling integration.
34320
34321 2001-12-19  Arnaud Charlet <charlet@gnat.com>
34322
34323         * Makefile.in: Remove use of 5smastop.adb which is obsolete.
34324         (HIE_SOURCES): Add s-secsta.ad{s,b}.
34325         (HIE_OBJS): Add s-fat*.o
34326         (RAVEN_SOURCES): Remove files that are no longer required. Add
34327         interrupt handling files.
34328         (RAVEN_MOD): Removed, no longer needed.
34329
34330 2001-12-19  Robert Dewar <dewar@gnat.com>
34331
34332         * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always
34333         Add 2001 to copyright date
34334
34335         * g-regpat.adb: Change pragma Inline_Always to Inline. There is no
34336         need to force universal inlining for these cases.
34337
34338 2001-12-19  Arnaud Charlet <charlet@gnat.com>
34339
34340         * s-taprob.adb: Minor clean ups so that this unit can be used in
34341         Ravenscar HI.
34342
34343         * exp_ch7.adb: Allow use of secondary stack in HI mode.
34344         Disallow it when pragma Restrictions (No_Secondary_Stack) is specified.
34345
34346 2001-12-19  Vincent Celier <celier@gnat.com>
34347
34348         * prj-tree.ads (Project_Node_Record): Add comments for components
34349         Pkg_Id and Case_Insensitive.
34350
34351 2001-12-19  Pascal Obry <obry@gnat.com>
34352
34353         * g-socket.adb: Minor reformatting. Found while reading code.
34354
34355 2001-12-19  Robert Dewar <dewar@gnat.com>
34356
34357         * prj-tree.ads: Minor reformatting
34358
34359 2001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
34360
34361         * config-lang.in (diff_excludes): Remove.
34362
34363 2001-12-17  Ed Schonberg <schonber@gnat.com>
34364
34365         * sem_res.adb (Resolve_Selected_Component): do not generate a
34366         discriminant check if the selected component is a component of
34367         the argument of an initialization procedure.
34368
34369         * trans.c (tree_transform, case of arithmetic operators): If result
34370         type is private, the gnu_type is the base type of the full view,
34371         given that the full view itself may be a subtype.
34372
34373 2001-12-17  Robert Dewar <dewar@gnat.com>
34374
34375         * sem_res.adb: Minor reformatting
34376
34377         * trans.c (tree_transform, case N_Real_Literal): Add missing third
34378         parameter in call to Machine (unknown horrible effects from this
34379         omission).
34380
34381         * urealp.h: Add definition of Round_Even for call to Machine
34382         Add third parameter for Machine
34383
34384 2001-12-17  Ed Schonberg <schonber@gnat.com>
34385
34386         * sem_warn.adb (Check_One_Unit): Suppress warnings completely on
34387         predefined units in No_Run_Time mode.
34388
34389 2001-12-17  Richard Kenner <kenner@gnat.com>
34390
34391         * misc.c (insn-codes.h): Now include.
34392
34393 2001-12-17  Olivier Hainque <hainque@gnat.com>
34394
34395         * a-except.adb: Preparation work for future integration of the GCC 3
34396         exception handling mechanism
34397         (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines
34398         to factorize previous code sequences and make them externally callable,
34399         e.g. for the Ada personality routine when the GCC 3 mechanism is used.
34400         (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler):
34401         Use the new notification routines.
34402
34403 2001-12-17  Emmanuel Briot <briot@gnat.com>
34404
34405         * prj-tree.ads (First_Choice_Of): Document the when others case
34406
34407 2001-12-17  Arnaud Charlet <charlet@gnat.com>
34408
34409         * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in
34410         HI-E mode, in order to support Ravenscar profile properly.
34411
34412         * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E
34413         mode on 32 bits targets.
34414
34415 2001-12-17  Vincent Celier <celier@gnat.com>
34416
34417         * fmap.adb: Initial version.
34418
34419         * fmap.ads: Initial version.
34420
34421         * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped.
34422         If search is successfully done, add to mapping.
34423
34424         * frontend.adb: Initialize the mapping if a -gnatem switch was used.
34425
34426         * make.adb:
34427         (Gnatmake): Add new local variable Mapping_File_Name.
34428          Create mapping file when using project file(s).
34429          Delete mapping file before exiting.
34430
34431         * opt.ads (Mapping_File_Name): New variable
34432
34433         * osint.adb (Find_File): Use path name found in mapping, if any.
34434
34435         * prj-env.adb (Create_Mapping_File): New procedure
34436
34437         * prj-env.ads (Create_Mapping_File): New procedure.
34438
34439         * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem
34440         (Mapping_File)
34441
34442         * usage.adb: Add entry for new switch -gnatem.
34443
34444         * Makefile.in: Add dependencies for fmap.o.
34445
34446 2001-12-17  Ed Schonberg <schonber@gnat.com>
34447
34448         * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit
34449         is a package instantiation rewritten as a package body.
34450         (Install_Withed_Unit): Undo previous change, now redundant.
34451
34452 2001-12-17  Gary Dismukes <dismukes@gnat.com>
34453
34454         * layout.adb:
34455         (Compute_Length): Move conversion to Unsigned to callers.
34456         (Get_Max_Size): Convert Len expression to Unsigned after calls to
34457         Compute_Length and Determine_Range.
34458         (Layout_Array_Type): Convert Len expression to Unsigned after calls to
34459         Compute_Length and Determine_Range.
34460         Above changes fix problem with length computation for supernull arrays
34461         where Max (Len, 0) wasn't getting applied due to the Unsigned
34462         conversion used by Compute_Length.
34463
34464 2001-12-17  Arnaud Charlet <charlet@gnat.com>
34465
34466         * rtsfind.ads:
34467         (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and
34468          System.Secondary_Stack.
34469         (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar
34470          in HI-E mode.
34471         Remove unused entity RE_Exception_Data.
34472
34473         * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode.
34474
34475         * rident.ads (No_Secondary_Stack): New restriction.
34476
34477 2001-12-17  Joel Brobecker <brobecke@gnat.com>
34478
34479         * gnat_rm.texi: Fix minor typos. Found while reading the section
34480         regarding "Bit_Order Clauses" that was sent to a customer.
34481         Very interesting documentation!
34482
34483 2001-12-17  Robert Dewar <dewar@gnat.com>
34484
34485         * sem_case.adb (Choice_Image): Avoid creating improper character
34486         literal names by using the routine Set_Character_Literal_Name. This
34487         fixes bombs in certain error message cases.
34488
34489 2001-12-17  Arnaud Charlet <charlet@gnat.com>
34490
34491         * a-reatim.adb: Minor reformatting.
34492
34493 2001-12-17  Ed Schonberg <schonber@gnat.com>
34494
34495         * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the
34496         case where the formal is an extension of another formal in the current
34497         unit or in a parent generic unit.
34498
34499 2001-12-17  Arnaud Charlet <charlet@gnat.com>
34500
34501         * s-tposen.adb: Update comments.  Minor reformatting.
34502         Minor code clean up.
34503
34504         * s-tarest.adb: Update comments.  Minor code reorganization.
34505
34506 2001-12-17  Gary Dismukes <dismukes@gnat.com>
34507
34508         * exp_attr.adb (Attribute_Tag): Suppress expansion of <type_name>'Tag
34509         when Java_VM.
34510
34511 2001-12-17  Robert Dewar <dewar@gnat.com>
34512
34513         * exp_attr.adb: Minor reformatting
34514
34515 2001-12-17  Ed Schonberg <schonber@gnat.com>
34516
34517         * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle
34518         derivations nested within a child unit: verify that the parent
34519         type is declared in an outer scope.
34520
34521 2001-12-17  Robert Dewar <dewar@gnat.com>
34522
34523         * sem_ch12.adb: Minor reformatting
34524
34525 2001-12-17  Ed Schonberg <schonber@gnat.com>
34526
34527         * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post
34528         warning if current unit is a predefined one, from which bodies may
34529         have been deleted.
34530
34531 2001-12-17  Robert Dewar <dewar@gnat.com>
34532
34533         * eval_fat.ads: Add comment that Round_Even is referenced in Ada code
34534         Fix header format. Add 2001 to copyright date.
34535
34536         * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference,
34537         which caused CE during compilation if checks were enabled.
34538
34539 2001-12-17  Vincent Celier <celier@gnat.com>
34540
34541         * make.adb:
34542         (Switches_Of): New function
34543         (Test_If_Relative_Path): New procedure
34544         (Add_Switches): Use new function Switches_Of
34545         (Collect_Arguments_And_Compile): Use new function Switches_Of.
34546         When using a project file, test if there are any relative
34547         search path. Fail if there are any.
34548         (Gnatmake): Only add switches for the primary directory when not using
34549         a project file. When using a project file, change directory to the
34550         object directory of the main project file. When using a project file,
34551         test if there are any relative search path. Fail if there are any.
34552         When using a project file, fail if specified executable is relative
34553         path with directory information, and prepend executable, if not
34554         specified as an absolute path, with the exec directory.  Make sure
34555         that only one -o switch is transmitted to the linker.
34556
34557         * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir
34558
34559         * prj-nmsc.adb:
34560         (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc,
34561         when using a non standard naming scheme.
34562         (Check_Ada_Naming_Scheme): Make sure that error messages
34563         do not raise exceptions.
34564         (Is_Illegal_Append): Return True if there is no dot in the suffix.
34565         (Language_Independent_Check): Check the exec directory.
34566
34567         * prj.adb (Project_Empty): Add new component Exec_Directory
34568
34569         * prj.ads:
34570         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults.
34571         (Project_Data): Add component Exec_Directory
34572
34573         * snames.adb: Updated to match snames.ads revision 1.215
34574
34575         * snames.ads: Added Exec_Dir
34576
34577 2001-12-17  Robert Dewar <dewar@gnat.com>
34578
34579         * make.adb: Minor reformatting
34580
34581         * prj-nmsc.adb: Minor reformatting
34582
34583         * snames.adb: Updated to match snames.ads
34584
34585         * snames.ads: Alphebetize entries for project file
34586
34587 2001-12-17  Ed Schonberg <schonber@gnat.com>
34588
34589         * trans.c (process_freeze_entity): Do nothing if the entity is a
34590         subprogram that was already elaborated.
34591
34592 2001-12-17  Richard Kenner <kenner@gnat.com>
34593
34594         * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment
34595         and Esize if object is referenced via pointer.
34596
34597 2001-12-17  Ed Schonberg <schonber@gnat.com>
34598
34599         * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant
34600         is discrete before analyzing choices.
34601
34602 2001-12-17  Joel Brobecker <brobecke@gnat.com>
34603
34604         * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string
34605         containing the name of the Ada Main Program. This string is mainly
34606         intended for the debugger.
34607         (Gen_Output_File_C): Do the equivalent change when generating a C file.
34608
34609 2001-12-17  Robert Dewar <dewar@gnat.com>
34610
34611         * ali.adb: Set new Dummy_Entry field in dependency entry
34612
34613         * ali.ads: Add Dummy_Entry field to source dependency table
34614
34615         * bcheck.adb (Check_Consistency): Ignore dummy D lines
34616
34617         * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files
34618
34619         * lib-writ.ads: Document dummy D lines for missing files.
34620
34621         * types.ads: (Dummy_Time_Stamp): New value for non-existant files
34622
34623 2001-12-17  Robert Dewar <dewar@gnat.com>
34624
34625         * ali.adb: Type reference does not reset current file.
34626
34627         * ali.adb: Recognize and scan renaming reference
34628
34629         * ali.ads: Add spec for storing renaming references.
34630
34631         * lib-xref.ads: Add documentation for handling of renaming references
34632
34633         * lib-xref.adb: Implement output of renaming reference.
34634
34635         * checks.adb:
34636         (Determine_Range): Document local variables
34637         (Determine_Range): Make sure Hbound is initialized. It looks as though
34638          there could be a real problem here with an uninitialized reference
34639          to Hbound, but no actual example of failure has been found.
34640
34641 2001-12-17  Laurent Pautet <pautet@gnat.com>
34642
34643         * g-socket.ads:
34644         Fix comment of Shutdown_Socket and Close_Socket. These functions
34645         should not fail silently because if they are called twice, this
34646         probably means that there is a race condition in the user program.
34647         Anyway, this behaviour is consistent with the rest of this unit.
34648         When an error occurs, an exception is raised with the error message
34649         as exception message.
34650
34651 2001-12-17  Robert Dewar <dewar@gnat.com>
34652
34653         * frontend.adb: Move call to Check_Unused_Withs from Frontend, so
34654         that it happens before modification of Sloc values for -gnatD.
34655
34656         * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend,
34657         so that it happens before modification of Sloc values for -gnatD.
34658
34659         * switch.adb: Minor reformatting
34660
34661 2001-12-15  Richard Henderson  <rth@redhat.com>
34662
34663         * sem_ch7.adb: Wrap comment.
34664
34665 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
34666
34667         * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
34668         5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
34669         5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
34670         5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
34671         5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
34672         7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
34673         a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
34674         a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
34675         cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
34676         exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
34677         exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
34678         g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
34679         gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
34680         make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
34681         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
34682         repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
34683         s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
34684         s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
34685         s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
34686         s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
34687         sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
34688         sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
34689         sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
34690         sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
34691         spelling errors.
34692
34693 2001-12-14  Vincent Celier <celier@gnat.com>
34694
34695         * osint.adb(Create_Debug_File): When an object file is specified,
34696         put the .dg file in the same directory as the object file.
34697
34698 2001-12-14  Robert Dewar <dewar@gnat.com>
34699
34700         * osint.adb: Minor reformatting
34701
34702         * lib-xref.adb (Output_Instantiation): New procedure to generate
34703         instantiation references.
34704
34705         * lib-xref.ads: Add documentation of handling of generic references.
34706
34707         * ali.adb (Read_Instantiation_Ref): New procedure to read
34708         instantiation references
34709
34710         * ali.ads: Add spec for storing instantiation references
34711
34712         * bindusg.adb: Minor reformatting
34713
34714         * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
34715
34716         * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
34717
34718         * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
34719
34720         * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
34721
34722         * csets.ads:
34723         Fix header format
34724         Add 2001 to copyright date
34725         Add entry for Latin-5 (Cyrillic ISO-8859-5)
34726
34727 2001-12-14  Matt Gingell <gingell@gnat.com>
34728
34729         * adaint.c: mktemp is a macro on Lynx and can not be used as an
34730         expression.
34731
34732 2001-12-14  Richard Kenner <kenner@gnat.com>
34733
34734         * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR
34735         if operand is CONSTRUCTOR.
34736
34737 2001-12-14  Ed Schonberg <schonber@gnat.com>
34738
34739         * trans.c (tree_transform, case N_Assignment_Statement): Set lineno
34740         before emiting check on right-hand side, so that exception information
34741         is correct.
34742
34743 2001-12-14  Richard Kenner <kenner@gnat.com>
34744
34745         * utils.c (create_var_decl): Throw away initializing expression
34746         if just annotating types and non-constant.
34747
34748 2001-12-14  Vincent Celier <celier@gnat.com>
34749
34750         * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
34751         Default_Ada_...
34752
34753         * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
34754         Remove functions.
34755         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
34756
34757         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
34758         Remove functions.
34759         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.
34760
34761 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
34762
34763         * ChangeLog: Remove piece of diff output.
34764
34765 2001-12-14  Geert Bosch <bosch@gnat.com>
34766
34767         * config-lang.in: Update copyright notice
34768
34769         * layout.adb: Remove commented out code.
34770
34771         * mdllfile.ads: Update copyright notice. Fix header format.
34772
34773         * sem_case.ads: Likewise.
34774
34775         * sem_ch3.adb: Minor reformatting.
34776
34777 2001-12-12  Geert Bosch <bosch@gnat.com>
34778
34779         * freeze.ads: Update copyright date.
34780
34781         * g-comlin.ads: Minor reformatting.
34782
34783         * gnat-style.texi: Fix typo.
34784
34785 2001-12-12  Geert Bosch <bosch@gnat.com>
34786
34787         *  einfo.h: Regenerate.
34788
34789 2001-12-12  Ed Schonberg <schonber@gnat.com>
34790
34791         * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names
34792         on known node types, rather than untyped fields. Further cleanups.
34793
34794 2001-12-12  Robert Dewar <dewar@gnat.com>
34795
34796         * sem_ch12.adb:
34797         (Save_Entity_Descendant): Minor comment update.
34798         (Copy_Generic_Node): Deal with incorrect reference to Associated_Node
34799          of an N_Attribute_Reference node. As per note below, this does not
34800         eliminate need for Associated_Node in attribute ref nodes.
34801         (Associated_Node): Documentation explicitly mentions attribute
34802         reference nodes, since this field is used in such nodes.
34803
34804         * sem_ch12.adb (Associated_Node): Minor documentation cleanup.
34805
34806 2001-12-12  Robert Dewar <dewar@gnat.com>
34807
34808         * s-stalib.adb: Add more comments on with statements being needed
34809
34810         * par-ch12.adb: Minor reformatting
34811
34812         * prj-dect.ads: Fix copyright header
34813
34814         * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both
34815         inputs fit in 32 bits, but the result still overflows.
34816
34817         * s-fatgen.ads: Minor comment improvement
34818
34819 2001-12-12  Ed Schonberg <schonber@gnat.com>
34820
34821         * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a
34822         formal derived type, look for an inherited component from the full
34823         view of the parent, if any.
34824
34825 2001-12-12  Robert Dewar <dewar@gnat.com>
34826
34827         * checks.ads (Apply_Alignment_Check): New procedure.
34828
34829         * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to
34830         ensure that the alignment of objects with address clauses is
34831         appropriate, and raise PE if not.
34832
34833         * exp_util.ads (Must_Be_Aligned): Removed, replaced by
34834         Exp_Pakd.Known_Aligned_Enough
34835
34836         * mdllfile.ads: Minor reformatting
34837
34838         * mlib-fil.ads: Minor reformatting
34839
34840 2001-12-12  Ed Schonberg <schonber@gnat.com>
34841
34842         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous
34843         fix to any component reference if enclosing record has non-standard
34844         representation.
34845
34846 2001-12-12  Vincent Celier <celier@gnat.com>
34847
34848         * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package
34849         Iteration
34850
34851 2001-12-12  Ed Schonberg <schonber@gnat.com>
34852
34853         * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in
34854         sem_attr.
34855
34856 2001-12-12  Robert Dewar <dewar@gnat.com>
34857
34858         * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
34859
34860 2001-12-12  Emmanuel Briot <briot@gnat.com>
34861
34862         * g-regexp.adb: Remove all debug code, since it isn't required anymore,
34863         and it adds dependencies to system.io.
34864
34865 2001-12-12  Pascal Obry <obry@gnat.com>
34866
34867         * g-dirope.adb (Expand_Path.Var): Correctly detect end of
34868         variable name.
34869
34870 2001-12-11  Ed Schonberg <schonber@gnat.com>
34871
34872         * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
34873         that is the parent of other generics, the instance body replaces the
34874         instance node.  Retrieve the instance of the spec, which is the one
34875         that is visible in clients and within the body.
34876
34877 2001-12-11  Vincent Celier <celier@gnat.com>
34878
34879         * gnatmain.adb: Initial version.
34880
34881         * gnatmain.ads: Initial version.
34882
34883         * prj-attr.adb (Initialisation_Data): Add package Gnatstub.
34884
34885         * snames.adb: Updated to match snames.ads.
34886
34887         * snames.ads: Added Gnatstub.
34888
34889 2001-12-11  Vincent Celier <celier@gnat.com>
34890
34891         * prj-attr.adb (Initialization_Data): Change name from
34892         Initialisation_Data.
34893
34894 2001-12-11  Emmanuel Briot <briot@gnat.com>
34895
34896         * g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
34897         + and * applied to backslashed expressions like \r.
34898
34899 2001-12-11  Vasiliy Fofanov <fofanov@gnat.com>
34900
34901         * g-os_lib.ads: String_List type added, Argument_List type is now
34902         subtype of String_List.
34903
34904 2001-12-11  Robert Dewar <dewar@gnat.com>
34905
34906         * g-os_lib.ads: Change copyright to FSF
34907         Add comments for String_List type
34908
34909 2001-12-11  Vincent Celier <celier@gnat.com>
34910
34911         * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a
34912         string to the buffer).
34913
34914 2001-12-11  Ed Schonberg <schonber@gnat.com>
34915
34916         * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
34917         sem_attr.
34918
34919         * sem_attr.adb: Simplify previous fix for Address.
34920         (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now,
34921         to avoid anomalies where the bound of the type appears to raise
34922         constraint error.
34923
34924 2001-12-11  Robert Dewar <dewar@gnat.com>
34925
34926         * lib-xref.adb (Output_Refs): Make sure pointers are always properly
34927         handled.
34928
34929 2001-12-11  Ed Schonberg <schonber@gnat.com>
34930
34931         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a
34932         renamed unit before checking for recursive instantiations.
34933
34934 2001-12-11  Emmanuel Briot <briot@gnat.com>
34935
34936         * prj.ads: Add comments for some of the fields.
34937
34938 2001-12-11  Robert Dewar <dewar@gnat.com>
34939
34940         * lib-xref.adb (Output_Refs): Don't output type references outside
34941         the main unit if they are not otherwise referenced.
34942
34943 2001-12-11  Ed Schonberg <schonber@gnat.com>
34944
34945         * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify
34946         code and diagnose additional illegal uses
34947
34948         * sem_util.adb (Is_Object_Reference): An indexed component is an
34949         object only if the prefix is.
34950
34951 2001-12-11  Vincent Celier <celier@gnat.com>
34952
34953         * g-diopit.adb: Initial version.
34954
34955         * g-diopit.ads: Initial version.
34956
34957         * g-dirope.adb:
34958         (Expand_Path): Avoid use of Unbounded_String
34959         (Find, Wildcard_Iterator): Moved to child package Iteration
34960
34961         * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
34962
34963 2001-12-11  Robert Dewar <dewar@gnat.com>
34964
34965         * sem_attr.adb: Minor reformatting
34966
34967 2001-12-11  Ed Schonberg <schonber@gnat.com>
34968
34969         * sem_ch3.adb: Clarify some ???.
34970
34971 2001-12-11  Robert Dewar <dewar@gnat.com>
34972
34973         * exp_util.adb (Must_Be_Aligned): Removed, replaced by
34974         Exp_Pakd.Known_Aligned_Enough
34975
34976         * sem_ch13.adb (Check_Address_Alignment): Removed, extended
34977         version is moved to Exp_Ch13.
34978
34979 2001-12-11  Robert Dewar <dewar@gnat.com>
34980
34981         * einfo.ads: Minor reformatting
34982
34983         * exp_ch5.adb: Add comment for previous.change
34984
34985         * ali.adb: New interface for extended typeref stuff.
34986
34987         * ali.ads: New interface for typeref stuff.
34988
34989         * checks.adb (Apply_Alignment_Check): New procedure.
34990
34991         * debug.adb: Add -gnatdM for modified ALI output
34992
34993         * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
34994
34995         * lib-xref.adb: Extend generation of <..> notation to cover
34996         subtype/object types. Note that this is a complete rewrite,
34997         getting rid of the very nasty quadratic algorithm previously
34998         used for derived type output.
34999
35000         * lib-xref.ads: Extend description of <..> notation to cover
35001         subtype/object types. Uses {..} for these other cases.
35002         Also use (..) for pointer types.
35003
35004         * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
35005
35006         * exp_pakd.adb: Minor reformatting.  Note that prevous RH should say:
35007         (Known_Aligned_Enough): Replaces Must_Be_Aligned.
35008
35009 2001-12-11  Vincent Celier <celier@gnat.com>
35010
35011         * gnatcmd.adb:
35012         Changed /COMPILE_ONLY to /ACTIONS=COMPILE
35013         Changed /BIND_ONLY to /ACTIONS=BIND
35014         Changed /LINK_ONLY to /ACTIONS=LINK
35015
35016 2001-12-11  Ed Schonberg  <schonber@gnat.com>
35017
35018         * sem_ch8.adb (Find_Selected_Component): improved search for a
35019         candidate package in case of error.
35020
35021         * sem_ch12.adb (Inline_Instance_Body): place head of use_clause
35022         chain back on scope stack before reinstalling use clauses.
35023
35024         * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
35025         is enabled, do not kill the code for the condition, to preserve
35026         warning.
35027
35028 2001-12-11  Robert Dewar <dewar@gnat.com>
35029
35030         * checks.adb (Insert_Valid_Check): Apply validity check to expression
35031         of conversion, not to result of conversion.
35032
35033 2001-12-11  Ed Schonberg <schonber@gnat.com>
35034
35035         * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag
35036         before freezing parent. If the declarations are mutually recursive,
35037         an access to the current record type may be frozen before the
35038         derivation is complete.
35039
35040 2001-12-05  Vincent Celier <celier@gnat.com>
35041
35042         * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY,
35043         -c /COMPILE_ONLY, -l /LINK_ONLY
35044
35045         * opt.ads:
35046         (Bind_Only): New Flag
35047         (Link_Only): New flag
35048
35049         * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only)
35050         and -l (Link_Only)
35051
35052         * makeusg.adb: Add new switches -b and -l. Update Copyright notice.
35053
35054         * make.adb:
35055         (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
35056         (Gnatmake): Set the step flags. Only perform a step if the
35057         corresponding step flag is True.
35058         (Scan_Make_Arg): Reset the bind and link step flags when -u
35059         or -gnatc has been specified.
35060
35061 2001-12-05  Ed Schonberg <schonber@gnat.com>
35062
35063         * sem_eval.adb (Eval_Concatenation): If left operand is a null string,
35064         get bounds from right operand.
35065
35066         * sem_eval.adb: Minor reformatting
35067
35068         * exp_util.adb (Make_Literal_Range): use bound of literal rather
35069         than Index'First, its lower bound may be different from 1.
35070
35071         * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B
35072         and C48009J
35073
35074 2001-12-05  Vincent Celier <celier@gnat.com>
35075
35076         * prj-nmsc.adb Minor reformatting
35077
35078         * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if
35079         set and libraries are not supported.
35080
35081 2001-12-05  Ed Schonberg <schonber@gnat.com>
35082
35083         * sem_ch3.adb (Build_Derived_Private_Type): set Public status of
35084         private view explicitly, so the back-end can treat as a global
35085         when appropriate.
35086
35087 2001-12-05  Ed Schonberg <schonber@gnat.com>
35088
35089         * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
35090          unit, always replace instance node with new body, for ASIS use.
35091
35092 2001-12-05  Vincent Celier <celier@gnat.com>
35093
35094         * prj-nmsc.adb (Language_Independent_Check): Issue a warning if
35095         libraries are not supported and both attributes Library_Name and
35096         Library_Dir are specified.
35097
35098         * prj-proc.adb (Expression): Set location of Result to location of
35099         first term.
35100
35101         * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
35102         (prj-nmsc is now importing MLib.Tgt)
35103
35104         * prj-proc.adb: Put the change indicated above that was forgotten.
35105
35106 2001-12-05  Robert Dewar <dewar@gnat.com>
35107
35108         * Makefile.in: Add dependencies for System.IO for GNAT.Regexp
35109
35110 2001-12-05  Ed Schonberg <schonber@gnat.com>
35111
35112         * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
35113         constraint, introduce explicit subtype declaration and derive from it.
35114
35115         * sem_ch3.adb: Minor reformatting
35116
35117 2001-12-05  Robert Dewar <dewar@gnat.com>
35118
35119         * checks.adb (Determine_Range): Increase cache size for checks.
35120         Minor reformatting
35121
35122         * exp_ch6.adb: Minor reformatting
35123         (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
35124         a parameter whose root type is System.Address, since treating such
35125         subprograms as pure in the code generator is almost surely a mistake
35126         that will lead to unexpected results.
35127
35128         * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and
35129         change handling of conversions.
35130
35131         * g-regexp.adb: Use System.IO instead of Ada.Text_IO.
35132
35133 2001-12-05  Ed Schonberg <schonber@gnat.com>
35134
35135         * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
35136         aggregate with static wrong size, attach generated Raise node to
35137         declaration.
35138
35139 2001-12-05  Robert Dewar <dewar@gnat.com>
35140
35141         * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute.
35142         Fixes compilation abandoned bomb in B24009B.
35143
35144 2001-12-05  Ed Schonberg <schonber@gnat.com>
35145
35146         * sem_ch12.adb:
35147         Document use of Associated_Node on Selected_Components.
35148         (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
35149         to clarify use of untyped descendant fields.
35150
35151 2001-12-05  Robert Dewar <dewar@gnat.com>
35152
35153         * prj-dect.ads: Add ??? comment
35154         Add 2001 to copyright notice (was not done in after all)
35155
35156         * prj-part.adb: Minor reformatting. Reword one awkward error message.
35157
35158         * prj.ads: Minor reformatting throughout, and add some ??? comments
35159
35160         * snames.ads: Minor reformatting
35161
35162 2001-12-05  Geert Bosch <bosch@gnat.com>
35163
35164         * snames.adb: Autoupdate
35165
35166 2001-12-05  Vincent Celier <celier@gnat.com>
35167
35168         * prj-dect.adb (Parse): Rename parameter Modifying to Extends.
35169
35170         * prj-dect.ads (Parse): Rename parameter Modifying to Extends.
35171
35172         * prj-env.adb: Minor comment changes (modifying -> extends).
35173
35174         * prj-nmsc.adb: Minor comment changes (modifying -> extends).
35175
35176         * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to
35177         Tok_Extends.
35178
35179         * prj.adb (Initialize): Change Modifying to Extends.
35180
35181         * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
35182
35183         * prj.ads: Minor comment change (Modifying -> extending).
35184
35185         * snames.ads: Change modifying to extends.
35186
35187 2001-12-05  Robert Dewar <dewar@gnat.com>
35188
35189         * sem_warn.adb: Remove stuff for conditionals, we are not going to
35190         do this after all.
35191
35192         * sem_warn.ads: Remove stuff for conditionals, we are not going to
35193         do this after all.  Add 2001 to copyright notice
35194
35195 2001-12-04  Geert Bosch <bosch@gnat.com>
35196
35197         *  einfo.h, sinfo.h, treeprs.ads: Regenerate.
35198
35199 2001-12-04  Robert Dewar <dewar@gnat.com>
35200
35201         * errout.adb (Error_Msg): Ignore attempt to put error msg at junk
35202         location if we already have errors. Stops some cases of cascaded
35203         errors.
35204
35205         * errout.adb: Improve comment.
35206
35207 2001-12-04  Robert Dewar <dewar@gnat.com>
35208
35209         * sem_ch12.adb:
35210         (Analyze_Formal_Type_Definition): Defend against Error.
35211         (Analyze_Formal_Subprogram): Defend against Error.
35212
35213         * par-ch12.adb (F_Formal_Type_Declaration): In case of error,
35214         remove following semicolon if present. Removes cascaded error.
35215
35216 2001-12-04  Douglas B. Rupp <rupp@gnat.com>
35217
35218         * bindgen.adb:
35219         (Gen_Exception_Table_Ada): Write "begin" and then return if Num
35220          exceptions equals 0.
35221         (Gen_Exception_Table_C): Return if Num exceptions equals 0.
35222         Fixes PIWG E tests (which have to be run with -gnatL).
35223
35224 2001-12-04  Robert Dewar <dewar@gnat.com>
35225
35226         * einfo.ads: Minor reformatting
35227
35228 2001-12-04  Ed Schonberg <schonber@gnat.com>
35229
35230         * einfo.ads: Block_Node points to the identifier of the block, not to
35231         the block node itself, to preserve the link when the block is
35232         rewritten, e.g. within an if-statement with a static condition.
35233
35234         * inline.adb (Cleanup_Scopes): recover block statement from block
35235         entity using new meaning of Block_Node.
35236
35237         * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to
35238         identifier of block node, rather than to node itself.
35239
35240 2001-12-04  Gary Dismukes <dismukes@gnat.com>
35241
35242         * layout.adb:
35243         (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
35244         (Discrimify): Go back to setting the Etypes of the selected component
35245         because the Vname component does not exist at this point and will
35246         fail name resolution. Also set Analyzed.
35247         Remove with and use of Sem_Res.
35248
35249 2001-12-04  Arnaud Charlet <charlet@gnat.com>
35250
35251         * Makefile.in: (HIE_SOURCES): add s-fat*.
35252
35253 2001-12-04  Robert Dewar <dewar@gnat.com>
35254
35255         * sem_attr.adb:
35256         (Compile_Time_Known_Attribute): New procedure.
35257         (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
35258          proper range check.
35259
35260 2001-12-04  Ed Schonberg <schonber@gnat.com>
35261
35262         * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before
35263         processing discriminants to diagnose illegal default values.
35264
35265 2001-12-04  Ed Schonberg <schonber@gnat.com>
35266
35267         * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide
35268         access discriminant within a type extension that constrains its
35269         parent discriminants.
35270
35271 2001-12-04  Ed Schonberg <schonber@gnat.com>
35272
35273         * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication
35274         is malformed, use instance of Any_Id to allow analysis to proceed.
35275
35276         * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if
35277         type definition is illegal.
35278         (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
35279         misplaced.
35280
35281 2001-12-04  Ed Schonberg <schonber@gnat.com>
35282
35283         * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to
35284         constants.
35285
35286 2001-12-04  Robert Dewar <dewar@gnat.com>
35287
35288         * errout.adb: Minor reformatting
35289
35290 2001-12-04  Robert Dewar <dewar@gnat.com>
35291
35292         * exp_util.adb: Minor reformatting from last change
35293
35294         * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
35295         which is a rewriting of an expression, traverse the original
35296         expression to remove warnings that may have been posted on it.
35297
35298 2001-12-04  Ed Schonberg <schonber@gnat.com>
35299
35300         * exp_util.adb (Must_Be_Aligned): Return false for a component of a
35301         record that has other packed components.
35302
35303 2001-12-04  Douglass B. Rupp <rupp@gnat.com>
35304
35305         * adaint.c: Minor cleanups.
35306
35307 2001-12-04  Douglass B. Rupp <rupp@gnat.com>
35308
35309         * adaint.c: Do not use utime.h on vxworks.
35310
35311 2001-12-04  Arnaud Charlet <charlet@gnat.com>
35312
35313         * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes
35314         more confusion than it solves.
35315
35316 2001-12-04  Geert bosch <bosch@gnat.com>
35317
35318         * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.
35319
35320 2001-12-04  Geert Bosch  <bosch@gnat.com>
35321
35322         * Makefile.in (update-sources): New target.
35323         For use by gcc_release script.
35324
35325 2001-12-04  Ed Schonberg <schonber@gnat.com>
35326
35327         * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as
35328         a configuration pragma, it is now legal wherever a pragma can appear.
35329
35330 2001-12-04  Zack Weinberg  <zack@codesourcery.com>
35331
35332         * Makefile.in: Don't set ALL.  Delete @cross_defines@,
35333         @cross_overrides@, @build_overrides@ stanzas.  INTERNAL_CFLAGS
35334         is now @CROSS@ -DIN_GCC; update comment.
35335
35336 2001-12-04  Robert Dewar <dewar@gnat.com>
35337
35338         * einfo.adb (Has_Pragma_Pure_Function): New flag.
35339         Fix problem that stopped ceinfo from working
35340
35341         * einfo.ads (Has_Pragma_Pure_Function): New flag.
35342
35343         * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.
35344
35345 2001-12-04  Douglas B. Rupp <rupp@gnat.com>
35346
35347         * gnatchop.adb:
35348         (File_Time_Stamp): New procedure.
35349         (Preserve_Mode): New boolean.
35350         (Write_Unit): Pass time stamp.
35351         Implement -p switch (preserve time stamps).
35352
35353         * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
35354
35355         * gnatchop.adb: Do usage info for -p switch
35356
35357         * adaint.h (__gnat_set_file_time_name): New function
35358
35359         * adaint.c (__gnat_set_file_time_name): Implement
35360
35361         * adaint.h: Fix typo
35362
35363 2001-12-03  Robert Dewar <dewar@gnat.com>
35364
35365         * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
35366         have Associated_Node.
35367
35368 2001-12-03  Robert Dewar <dewar@gnat.com>
35369
35370         * prj-proc.adb: Minor reformatting
35371
35372         * make.adb: Minor reformatting
35373
35374 2001-12-03  Geert Bosch <bosch@gnat.com>
35375
35376         * make.adb: Minor reformatting.
35377
35378 2001-12-03 Robert Dewar  <dewar@gnat.com>
35379
35380         * sem_ch12.adb: Minor reformatting
35381
35382 2001-12-03  Ed Schonberg <schonber@gnat.com>
35383
35384         * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
35385         push Standard on the stack before analyzing the instance body,
35386         in order to have a clean visibility environment.
35387
35388         * sem_ch12.adb (Inline_Instance_Body): Remove redundant code.
35389
35390 2001-12-03  Ed Schonberg <schonber@gnat.com>
35391
35392         * sem_ch12.adb (Instantiate_Package_Body): Protect against double
35393         instantiation of a body that contains an inlined body.
35394
35395 2001-12-03  Ed Schonberg <schonber@gnat.com>
35396
35397         * sem_ch12.adb:
35398         (Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
35399         to prevent freezing within formal packages.
35400         (Freeze_Subprogram_Body): If body comes from another instance that
35401         appeared before its own body, place freeze node at end of current
35402         declarative part, to prevent a back-end crash.
35403         (Inline_Instance_Body): Handle properly a package instance within
35404         a subprogram instance that is a child unit.
35405
35406 2001-12-01  Graham Stott  <grahams@redhat.com>
35407
35408         * Makefile.in (misc.o): Add missing $(srcdir) prefix
35409         and add optabs.h dependency.
35410
35411         * misc.c: Include optabs.h
35412         (gnat_tree_code_type): Make static and const.
35413         (gnat_tree_code_length): Likewise.
35414         (gnat_tree_code_name): Likewise.
35415         (update_setjmp_buf): Obtain operands mode from insn_data.
35416
35417 2001-11-29  Richard Henderson  <rth@redhat.com>
35418
35419         * init.c: Remove obsolete dwarf2 frame.h section.
35420
35421 2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
35422
35423         * Make-lang.in (ada.generated-manpages): New dummy target.
35424
35425 2001-11-29  Ed Schonberg <schonber@gnat.com>
35426
35427         * g-os_lib.adb (Add_To_Command): use explicit loop to move string
35428         into Command, an array conversion is illegal here. Uncovered by
35429         ACATS B460005.
35430
35431 2001-11-28  Geert Bosch <bosch@gnat.com>
35432
35433         * init.c: Minor whitespace changes.
35434
35435 2001-11-28  Doug Rupp <rupp@gnat.com>
35436
35437         * init.c: (__gnat_install_handler,VMS): Increase size of alternate
35438         signal stack.
35439
35440 2001-11-28  Zack Weinberg  <zack@codesourcery.com>
35441
35442         * misc.c (gnat_expand_constant): Move declaration above
35443         definition of lang_hooks.
35444         (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
35445         (gnat_init): lang_expand_constant no longer exists.
35446
35447         (internal_error_function): Remove #ifdef HAVE_VPRINTF.  We
35448         always have vprintf.
35449         (gnat_init): Always call set_internal_error_function.
35450
35451 2001-11-27  Andreas Jaeger  <aj@suse.de>
35452
35453         * Makefile.in (stamp-tool_src_dir): Use symbolic link.
35454
35455 2001-11-27  Laurent Guerby  <guerby@acm.org>
35456
35457         * Makefile.in: Regenerate Ada dependencies.
35458
35459 2001-11-26  Richard Henderson  <rth@redhat.com>
35460
35461         * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
35462         gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
35463         gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.
35464
35465 2001-11-25  Laurent Guerby  <guerby@acm.org>
35466
35467         * sysdep.c (rts_get_*): Fix style.
35468
35469 2001-11-19  Laurent Guerby  <guerby@acm.org>
35470
35471         * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
35472         since it is of no apparent use and cause warnings.
35473
35474 2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
35475
35476         * misc.c (gnat_decode_option, gnat_init_options): Make definitions
35477         static too.
35478         (gnat_init): Don't return NULL.
35479         (finish_parse): Remove.
35480
35481 2001-11-17  Laurent Guerby  <guerby@acm.org>
35482
35483         * Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
35484         * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
35485         * io-aux.c: Provide K&R prototypes to all functions, reformat code.
35486         * lang-spec.h: Add missing struct field to silence warnings.
35487         * sysdep.c (rts_get_*): Provide K&R prototype.
35488         * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
35489         * traceback.c (Unlock_Task, Lock_Task): Likewise.
35490         * tracebak.c (__gnat_backtrace): Remove unused variable.
35491         * utils.c (end_subprog_body): Move to K&R style.
35492
35493 Thu Nov 15 18:16:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35494
35495         * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.
35496
35497 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
35498
35499         * misc.c (gnat_init): Change prototype.  Include the
35500         functionality of the old init_parse and init_decl_processing.
35501         (gnat_init_decl_processing): New prototype.
35502         (init_parse): Remove.
35503         * utils.c (init_decl_processing): Rename gnat_init_decl_processing.
35504
35505 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
35506
35507         * misc.c (gnat_print_decl, gnat_print_type): Renamed.
35508         (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
35509         (print_lang_statistics, lang_print_xnode, print_lang_identifier,
35510         set_yydebug): Remove.
35511
35512 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
35513
35514         * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
35515         (struct lang_hooks): Constify.
35516         (language_string, lang_identify): Remove.
35517         * utils.c (init_decl_processing): Update.
35518
35519 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
35520
35521         * misc.c: Include langhooks-def.h.
35522         * Makefile.in: Update.
35523
35524 2001-10-30  Robert Dewar <dewar@gnat.com>
35525
35526         * style.adb:
35527         (Check_Identifier): Rewrite circuit to be compatible with use of letters
35528         in the upper half of ASCII.
35529         (Check_Identifier): Minor reformatting
35530
35531 2001-10-30  Geert Bosch <bosch@gnat.com>
35532
35533         * (Associated_Node, Set_Associated_Node): Do not check for
35534         Freeze_Entity.
35535
35536 2001-10-30  Robert Dewar <dewar@gnat.com>
35537
35538         * a-reatim.ads: Minor reformatting
35539
35540 2001-10-30  Robert Dewar <dewar@gnat.com>
35541
35542         * gnatdll.adb: Minor reformatting throughout. Many ??? added for
35543         undocumented declarations.
35544
35545 2001-10-30  Pascal Obry <obry@gnat.com>
35546
35547         * gnatdll.adb (Parse_Command_Line): handle -g option to be passed
35548         to the binder and linker.
35549         Minor style fix.
35550
35551         * mdll.ads: Fix layout.  Update copyright notice.
35552
35553         * mdll.adb: Fix layout.  Update copyright notice.
35554
35555 2001-10-30  Robert Dewar <dewar@gnat.com>
35556
35557         * usage.adb: Minor fix to output for -gnaty.
35558
35559 2001-10-30  Ed Schonberg <schonber@gnat.com>
35560
35561         * a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
35562         to accommodate all its possible values.
35563
35564         * a-reatim.adb (Split): Special-case handling of Time_Span_First
35565         and of small absolute values of T.
35566
35567 2001-10-30  Richard Kenner <kenner@gnat.com>
35568
35569         * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
35570         set_mem_attributes since not needed and wrong if RESULT if a REG;
35571         fixes ACATS failures.
35572
35573 2001-10-30  Geert Bosch <bosch@gnat.com>
35574
35575         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
35576         s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.
35577
35578 2001-10-30  Robert Dewar <dewar@gnat.com>
35579
35580         * bindusg.adb: Undocument -f switch.
35581
35582         * gnatcmd.adb: Remove /FULL_ELABORATION.
35583
35584         * opt.ads (Force_RM_Elaboration_Order): Document that this is
35585         obsolescent.
35586
35587         * gnatbind.adb: Output new warning for use of obsolescent -f switch.
35588
35589         * gnatbind.adb: Minor update of warning msg.
35590
35591 2001-10-30  Vincent Celier <celier@gnat.com>
35592
35593         * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
35594         for project file switches (-P (/PROJECT_FILE=),
35595          -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
35596         or MEDIUM or HIGH)
35597
35598 2001-10-30  Geert Bosch <bosch@gnat.com>
35599
35600         * decl.c: Minor whitespace fixes.
35601
35602 2001-10-30  Richard Kenner <kenner@gnat.com>
35603
35604         * utils2.c (build_allocator): Test for SIZE overflow in array case too
35605
35606 2001-10-30  Geert Bosch <bosch@gnat.com>
35607
35608         * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
35609         Found due to GCC 3.0 warning of using uninitialized value.
35610
35611         * layout.adb:
35612         (Get_Max_Size): Use variant record for tracking value/expression.
35613          Makes logic clearer and prevents warnings for uninitialized variables.
35614         (Layout_Array_Type): Use variant record for tracking value/expression.
35615          Makes logic clearer and prevents warnings for uninitialized variables.
35616
35617 2001-10-30  Robert Dewar <dewar@gnat.com>
35618
35619         * lib.adb: Minor reformatting
35620
35621         * s-taprop.ads: Minor reformatting
35622
35623 2001-10-29  Laurent Guerby  <guerby@acm.org>
35624
35625         * init.c:
35626         (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
35627         const.
35628         (_gnat_error_handler): Make MSG const.
35629
35630 2001-10-29  Richard Kenner <kenner@gnat.com>
35631
35632         * sysdep.c: Fix localtime_r problem on LynxOS.
35633         Also remove #elif to avoid warnings.
35634
35635         * misc.c (yyparse): Don't set up and register jmpbuf; remove decls
35636         used by this.
35637
35638         * decl.c (annotate_value): Make SIZE unsigned to avoid warning.
35639
35640 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
35641
35642         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
35643         exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
35644         g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
35645         g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
35646         layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
35647         s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
35648         sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
35649         sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
35650         sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
35651         types.ads, urealp.adb: Fix spelling errors.
35652
35653 2001-10-27  Laurent Guerby <guerby@acm.org>
35654
35655         * trans.c (gigi): Fix non determinism leading to bootstrap
35656         comparison failures for debugging information.
35657
35658 2001-10-26  Florian Weimer  <fw@deneb.enyo.de>
35659
35660         * gnat_rm.texi: Use @./@: where appropriate.
35661
35662 2001-10-26  Robert Dewar <dewar@gnat.com>
35663
35664         * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.
35665
35666 2001-10-26  Richard Kenner <kenner@gnat.com>
35667
35668         * gmem.c (__gnat_gmem_read_next): Properly check for EOF
35669
35670 2001-10-26  Richard Kenner <kenner@gnat.com>
35671
35672         * decl.c (validate_size): Modify message for bad size to avoid
35673         implication that compiler is modifying the size.
35674
35675 2001-10-26  Robert Dewar <dewar@gnat.com>
35676
35677         * prj-util.adb: Minor reformatting. Fix bad header format.
35678
35679 2001-10-26  Robert Dewar <dewar@gnat.com>
35680
35681         * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.
35682
35683         * sinfo.ads: Clarify use of Associated_Node (documentation only).
35684
35685         * sem_ch12.adb: Change Node4 to Associated_Node. Change
35686         Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
35687         much more narrowly in places where needed. These are cleanups.
35688
35689 2001-10-26  Joel Brobecker <brobecke@gnat.com>
35690
35691         * 5zosinte.ads (null_pthread): new constant.
35692
35693         * 5ztaprop.adb:
35694         (Initialize_TCB): Initialize thread ID to null, to be able to verify
35695          later that this field has been set.
35696         (Finalize_TCB): ditto.
35697         (Suspend_Task): Verify that the thread ID is not null before using it.
35698         (Resume_Task): ditto.
35699
35700         * s-tasdeb.adb:
35701         (Resume_All_Tasks): Lock the tasks list before using it.
35702         (Suspend_All_Tasks): ditto.
35703
35704 2001-10-26  Richard Kenner <kenner@gnat.com>
35705
35706         * decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
35707         Make constant variant of designated type for Is_Access_Constant.
35708         Call update_pointer_to with main variant.
35709
35710         * trans.c (process_freeze_entity, process_type):
35711         Call update_pointer_to on main variant.
35712
35713         * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
35714         If main variant, update all other variants.
35715
35716         * utils2.c (build_unary_op, case INDIRECT_REF): No longer set
35717         TREE_STATIC.
35718
35719 2001-10-26  Robert Dewar <dewar@gnat.com>
35720
35721         * prj-util.adb: Minor reformatting
35722
35723 2001-10-26  Robert Dewar <dewar@gnat.com>
35724
35725         * prj-util.adb: Minor reformatting
35726
35727 2001-10-26  Robert Dewar <dewar@gnat.com>
35728
35729         * prj-attr.adb: Minor reformatting throughout
35730
35731 2001-10-26  Robert Dewar <dewar@gnat.com>
35732
35733         * prj-attr.ads: Minor reformatting
35734         Add ??? comment (this whole spec has almost no comments)
35735
35736 2001-10-26  Vincent Celier <celier@gnat.com>
35737
35738         * g-os_lib.adb (Normalize_Pathname): Preserve the double slash
35739         ("//") that precede the drive letter on Interix.
35740
35741 2001-10-26  Geert Bosch <bosch@gnat.com>
35742
35743         * gnat_rm.texi: Add GNAT Reference Manual.
35744
35745 2001-10-25  Robert Dewar <dewar@gnat.com>
35746
35747         * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
35748         is Error. Similar change for other renaming cases.
35749
35750 2001-10-25  Robert Dewar <dewar@gnat.com>
35751
35752         * s-atacco.ads: Add pragma Inline_Always for functions.
35753         Fix header format. Add copyright 2001
35754
35755 2001-10-25  Ed Schonberg <schonber@gnat.com>
35756
35757         * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
35758         return Error rather than Empty so that analysis can proceed.
35759
35760 2001-10-25  Ed Schonberg <schonber@gnat.com>
35761
35762         * sem_util.adb (Enter_Name): better handling of cascaded error
35763         messages when a unit appears in its own context.
35764
35765 2001-10-25  Ed Schonberg <schonber@gnat.com>
35766
35767         * sem_util.adb (Defining_Entity): in case of error, attach created
35768         entity to specification, so that semantic analysis can proceed.
35769
35770 2001-10-25  Robert Dewar <dewar@gnat.com>
35771
35772         * sem_util.adb
35773         (Defining_Entity): Deal with Error.
35774         (Process_End_Label): Deal with bad end label for.
35775
35776 2001-10-25  Ed Schonberg <schonber@gnat.com>
35777
35778         * sem_elab.adb (Check_A_Call): refine message when call is in an
35779         instance but callee is not declared in the generic unit.
35780
35781 2001-10-25  Ed Schonberg <schonber@gnat.com>
35782
35783         * sem_elab.adb (Check_A_Call): check for renaming before finding the
35784         enclosing unit, which may already be different from the calling unit.
35785
35786 2001-10-25  Geert Bosch <bosch@gnat.com>
35787
35788         * 4gintnam.ads: fix header format.
35789
35790 2001-10-25  Ed Schonberg <schonber@gnat.com>
35791
35792         * sem_res.adb (Resolve_Call): if the call is actually an indexing
35793         operation on the result of a parameterless call, perform elaboration
35794         check after the node has been properly rewritten.
35795
35796         * sem_ch12.adb (Copy_Generic_Node): after the proper body has been
35797         inlined within the generic tree, the defining identifier is not a
35798         compilation_unit.
35799
35800 2001-10-25  Ed Schonberg <schonber@gnat.com>
35801
35802         * sem_res.adb (Resolve): special-case resolution of Null in an
35803          instance or an inlined body to avoid view conflicts.
35804
35805         * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
35806          compatibility by retrieving the access type of the generic copy.
35807
35808 2001-10-25  Robert Dewar <dewar@gnat.com>
35809
35810         * sem_ch3.adb:
35811         (Analyze_Number_Declaration): Handle error expression.
35812         (Signed_Integer_Type_Declaration): Handle error bound.
35813         (Analyze_Subtype_Indication): Handle error range.
35814
35815         * sem_util.adb (Get_Index_Bounds): Check for Error.
35816
35817 2001-10-25  Robert Dewar <dewar@gnat.com>
35818
35819         * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
35820         in no run time mode.
35821
35822 2001-10-25  Pascal Obry <obry@gnat.com>
35823
35824         * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
35825         mode case for ALLOC case.
35826
35827         * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
35828         all platforms. Improvement of last change.
35829
35830 2001-10-25  Robert Dewar <dewar@gnat.com>
35831
35832         * exp_ch4.adb (Expand_N_Allocator): Minor reformatting.
35833
35834 2001-10-25  Geert Bosch  <bosch@gnat.com>
35835
35836         * osint.adb (Is_Relative): Remove duplicate.
35837
35838 2001-10-25  Pascal Obry <obry@gnat.com>
35839
35840         * osint.adb (Read_Default_Search_Dirs): correctly detect relative
35841         pathnames in UNIX and DOS style with drive letter.
35842         (Is_Relative): new routine.
35843
35844         * osint.adb: Minor reformatting
35845
35846         * osint.adb (Is_Relative): implementation using
35847         GNAT.OS_Lib.Is_Absolute_Path. Better fix.
35848
35849 2001-10-25  Pascal Obry <obry@gnat.com>
35850
35851         * g-dirope.adb (Basename): correctly compute offset between the
35852         original Path and the translated one.
35853
35854         * g-dirope.adb: (Base_Name): add some comments.
35855
35856 2001-10-25  Robert Dewar <dewar@gnat.com>
35857
35858         * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
35859         in HIE mode, avoids compilation abandoned message
35860
35861         * exp_imgv.adb: Correct typo in previous change
35862
35863         * exp_imgv.adb: Correct typo in previous change (not my day!)
35864
35865 2001-10-25  Robert Dewar <dewar@gnat.com>
35866
35867         * s-tpinop.ads: Add 2001 to copyright notice. Fix header format.
35868
35869 2001-10-25  Pascal Obry <obry@gnat.com>
35870
35871         * g-awk.ads: Move all pragma inlines next to the routine
35872          declarations. This is more uniform with other GNAT spec.
35873
35874 2001-10-22  Geert Bosch  <bosch@gnat.com>
35875
35876         * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.
35877
35878 2001-10-19  Geert Bosch  <bosch@gnat.com>
35879
35880         * Makefile.in (tools, gnattools): Remove gnatmem.
35881
35882 2001-10-17  Richard Henderson  <rth@redhat.com>
35883
35884         * Makefile.in (misc.o): Depend on langhooks.h.
35885         * misc.c: Include it.
35886         (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
35887         (LANG_HOOKS_DECODE_OPTION): New.
35888         (lang_hooks): Use LANG_HOOKS_INITIALIZER.
35889
35890 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
35891
35892         * trans.c (tree_transform): Adjust to recent change in
35893         expand_asm_operands to implement named asm operands.
35894
35895 2001-10-11  Ed Schonberg  <schonber@gnat.com>
35896
35897         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
35898         renaming of discriminant for mutable record type.
35899
35900 2001-10-11  Robert Dewar  <dewar@gnat.com>
35901
35902         * validsw.adb: Properly save -gnatVn status.
35903
35904 2001-10-11  Robert Dewar <dewar@gnat.com>
35905
35906         * usage.adb: Add lines for V switch.
35907
35908         * gnatcmd.adb (COMPILE): Revise translations for -gnatV
35909         (/VALIDITY_CHECKING).
35910
35911 2001-10-11  Ed Schonberg <schonber@gnat.com>
35912
35913         * sem_type.adb (Add_One_Interp): an operator for a type declared in
35914         an extension of System is known to be visible.
35915
35916 2001-10-11  Ed Schonberg <schonber@gnat.com>
35917
35918         * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
35919         properly. Fixes regression on ACATS C34005G.
35920
35921 2001-10-11  Robert Dewar <dewar@gnat.com>
35922
35923         * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
35924         loop in generic instance, since this is likely not very useful.
35925
35926 2001-10-11  Robert Dewar <dewar@gnat.com>
35927
35928         * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
35929         the error message for high integrity mode.
35930
35931         * rtsfind.adb (RTE): Give message if we try to find an entity that
35932         is not available in high integrity mode.
35933
35934         * rtsfind.ads:
35935         (OK_To_Use_In_HIE_Mode): New array.
35936         (RTE): May return Empty in high integrity mode.
35937
35938         * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
35939         OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
35940
35941         * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
35942         unit if not inlined always and in no runtime mode. Fixes problem
35943         caused by new Rtsfind changes.
35944
35945         * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
35946         body is deleted.
35947
35948         * rtsfind.adb (RTE): Make sure we do not try to load unit after
35949         giving message for entity not available in high integrity mode.
35950
35951 2001-10-11  Pascal Obry <obry@gnat.com>
35952
35953         * impunit.adb: Add GNAT.CRC32.
35954
35955 2001-10-11  Ed Schonberg <schonber@gnat.com>
35956
35957         * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
35958         properly the case where one universal operand in a non-static
35959         exponentiation of a real literal.
35960
35961 2001-10-11  Ed Schonberg <schonber@gnat.com>
35962
35963         * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
35964         clause, return the gobal finalization list, for lack of anthing else.
35965
35966 2001-10-11  Ed Schonberg <schonber@gnat.com>
35967
35968         * exp_ch7.adb (Make_Transient_Block): if statement is within
35969         exception handler, always use new transient scope to place Clean
35970         procedure.
35971
35972 2001-10-11  Pascal Obry <obry@gnat.com>
35973
35974         * Makefile.in:
35975         (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
35976         (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
35977         (GNATLS_RTL_OBJS): add g-crc32.o
35978         (GNATMAKE_RTL_OBJS): add g-crc32.o
35979
35980         * ali-util.adb:
35981         (CRC_Match): new function.
35982         (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
35983         instead of the previous simple checksum algorithm.
35984         (Time_Stamp_Mismatch): use CRC_Match for comparison.
35985         (Set_Source_Table): idem.
35986
35987         * ali-util.ads:
35988         (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
35989         instead of simple checksum.
35990         (CRC_Match): new function.
35991         (CRC_Error): new constant.
35992
35993         * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
35994         a CRC now and not a simple checksum. A CRC uses lower-case hex
35995         letters, fixes ambiguity in parsing.
35996
35997         * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
35998         is what this variable will store.
35999
36000         * bcheck.adb: Change reference to chechsum in comments by CRC.
36001         (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
36002         rename All_Checksum_Match to All_CRC_Match. Change due to API
36003         renaming since now GNAT does not use a simple checksum but a
36004         CRC using GNAT.CRC32.
36005
36006         * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
36007         now and not anymore a simple checksum.
36008
36009         * lib-load.adb: Use Source_CRC instead of Source_Checksum in many
36010         places.
36011
36012         * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.
36013
36014         * scans.adb:
36015         (Restore_Scan_State): rename Checksum to CRC.
36016         (Save_Scan_State): idem.
36017
36018         * scans.ads:
36019         With GNAT.CRC32.
36020         (Checksum): rename to CRC.
36021         (Saved_Scan_State): Save_Checksum field renamed to Save_CRC
36022
36023         * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
36024         GNAT.CRC32).  Update copyright notice.
36025
36026         * scn-slit.adb: Rename many Accumulate_Checksum to Update (from
36027         GNAT.CRC32).  Update copyright notice.
36028
36029         * scn.adb:
36030         (Accumulate_Checksum): removed.
36031         (Update): new procedure. Add a wide-character into the CRC.
36032
36033         * sinput-l.adb:
36034         (Complete_Source_File_Entry): use CRC32 instead of simple checksum.
36035         (Load_File): fix initialization of S (change Source_Checksum to
36036         Source_CRC)
36037
36038         * sinput-p.adb (Load_Project_File): rename Source_Checksum to
36039         Source_CRC in S initialization.
36040
36041         * sinput.adb (Source_Checksum): renamed to Source_CRC.
36042
36043         * sinput.ads (Source_Checksum): renamed to Source_CRC.
36044         Update comments for the CRC.
36045
36046         * types.adb (Hex): Use lowercase for the letter part.
36047
36048         * types.ads (Get_Hex_String): Returns the hexadecimal representation
36049         for a word. This is currently used only for CRC. In previous version,
36050         the checksum was using a representation with all letter being
36051         upper-case. With the new implementation (using CRC) we do not remove
36052         the 32th bit of the CRC, so we can have an upper-case starting letter
36053         in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
36054         It is ambigous since the CRC was optional and could be followed by
36055         options like EB, EE. So now this routines uses lower-case letter for
36056         the hexadecimal representation. Strange enough only lower case letters
36057         where checked in Scan_ALI (even if this was not a possible case).
36058
36059         * gnatvsn.ads (Library_Version): changed to 3.15a.
36060
36061         * s-crc32.ads: Initial version from GNAT.CRC32. This is the version
36062         for the compiler.
36063
36064         * s-crc32.adb: Initial version from GNAT.CRC32. This is the version
36065         for the compiler.
36066
36067         * ali-util.adb: Redo previous change to avoid using word CRC everywhere
36068         Add 2001 to copyright notice
36069         (Accumulate_Checksum): Modify to use System.CRC32.
36070
36071         * ali-util.ads: Redo changes of previous revision to continue to use
36072         the word Checksum. Add 2001 to copyright notice.
36073
36074         * ali.adb: Undo some of previous changes, not needed.
36075         Keep the change for lower case letters in the checksum.
36076
36077         * ali.ads: Undo previous change not needed.
36078
36079         * bcheck.adb: Undo most of previous change, not needed.
36080         But do use Checksums_Match for checksum comparison.
36081
36082         * gnatls.adb: Undo most of previous change, not needed.
36083         But do use Checksums_Match for comparing checksums.
36084
36085         * lib-load.adb: Undo previous change, not needed.
36086
36087         * lib-writ.adb: Undo previous change, not needed.
36088
36089         * lib-writ.ads: Document that checksums use lower case,
36090         not upper case letters.
36091
36092         * scans.adb: Undo previous change, not needed
36093
36094         * scans.ads: Undo previous change, not needed.
36095
36096         * scn-nlit.adb: Undo previous changes, not needed.
36097
36098         * scn-slit.adb: Undo previous change, not needed.  Fix header format.
36099
36100         * scn.adb:
36101         (Accumulate_Checksum): Use System.CRC32.
36102         (Initialize_Checksum): New procedure.
36103         Remove other changes of previous revision.
36104
36105         * sinput-p.adb: Undo previous change, not needed.
36106
36107         * sinput.adb: Undo previous change, not needed.
36108
36109         * sinput-l.adb: Undo previous change, not needed.
36110
36111         * sinput.ads: Undo previous change, not needed.  Keep only comment
36112         on new checksum algorithm
36113
36114         * Makefile.in: Add s-crc32 as needed, remove g-crc32.
36115         Also remove a-tags and a-stream from GNAT sources.
36116
36117         * ali.adb (Scan_ALI): fix typo introduce in latest check-in.
36118
36119         * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.
36120
36121 2001-10-11  Geert Bosch  <bosch@gnat.com>
36122
36123         * einfo.h: Regenerate.
36124
36125         * nmake.ads: Regenerate.
36126
36127         * nmake.adb: Regenerate.
36128
36129         * sinfo.h: Regenerate.
36130
36131         * treeprs.adb: Regenerate.
36132
36133 2001-10-10  Geert Bosch  <bosch@gnat.com>
36134
36135         * gnat-style.texi: New file describing coding guidelines for Ada.
36136
36137 2001-10-10  Ed Schonberg <schonber@gnat.com>
36138
36139         * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
36140         is Flag174.
36141
36142 2001-10-10  Geert Bosch  <bosch@gnat.com>
36143
36144         * snames.ads: Add new names for project facility.
36145
36146         * snames.adb: Update to reflect snames.ads changes.
36147
36148         * snames.h: Update to reflect snames.ads changes.
36149
36150 2001-10-10  Vincent Celier <celier@gnat.com>
36151
36152         * make.adb:
36153         (Add_Switches): reflect the changes for the switches attributes
36154         Default_Switches indexed by the programming language,
36155         Switches indexed by the file name.
36156         (Collect_Arguments_And_Compile): Idem.
36157         Reflect the attribute name changes.
36158
36159         * prj-attr.adb:
36160         (Initialisation_Data): Change the names of some packages and
36161         attributes.
36162         (Initialize): process case insensitive associative arrays.
36163
36164         * prj-attr.ads:
36165         (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.
36166
36167         * prj-dect.adb:
36168         (Parse_Attribute_Declaration): For case insensitive associative
36169          arrays, set the index string to lower case.
36170
36171         * prj-env.adb:
36172         Reflect the changes of the project attributes.
36173
36174         * prj-nmsc.adb:
36175         Replace Check_Naming_Scheme by Ada_Check and
36176         Language_Independent_Check.
36177
36178         * prj-nmsc.ads:
36179         Replaced Check_Naming_Scheme by 2 procedures:
36180         Ada_Check and Language_Independent_Check.
36181
36182         * prj-proc.adb:
36183         (Process_Declarative_Items): For case-insensitive associative
36184         arrays, set the index string to lower case.
36185         (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
36186         Prj.Nmsc.Check_Naming_Scheme.
36187
36188         * prj-tree.adb:
36189         (Case_Insensitive): New function
36190         (Set_Case_Insensitive): New procedure
36191
36192         * prj-tree.ads:
36193         (Case_Insensitive): New function
36194         (Set_Case_Insensitive): New procedure
36195         (Project_Node_Record): New flag Case_Insensitive.
36196
36197         * prj-util.adb:
36198         (Value_Of): new function to get the string value of a single
36199         string variable or attribute.
36200
36201         * prj-util.ads:
36202         (Value_Of): new function to get the string value of a single
36203         string variable or attribute.
36204
36205         * prj.adb:
36206         (Ada_Default_Spec_Suffix): New function
36207         (Ada_Default_Impl_Suffix): New function
36208         Change definitions of several constants to reflect
36209         new components of record types.
36210
36211         * prj.ads:
36212         (Naming_Data): Change several components to reflect new
36213         elements of naming schemes.
36214         (Project_Data): New flags Sources_Present and
36215         Language_Independent_Checked.
36216         (Ada_Default_Spec_Suffix): New function.
36217         (Ada_Default_Impl_Suffix): New function.
36218
36219         * snames.ads:
36220         Modification of predefined names for project manager: added
36221         Implementation, Specification_Exceptions, Implementation_Exceptions,
36222         Specification_Suffix, Implementation_Suffix, Separate_Suffix,
36223         Default_Switches, _Languages, Builder, Cross_Reference,
36224         Finder. Removed Body_Part, Specification_Append, Body_Append,
36225         Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
36226         Gnatlink.
36227
36228         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
36229         Add comments.
36230
36231         * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
36232         not that it is Nil_Variable_Value.
36233
36234         * prj.ads: Add ??? for uncommented declarations
36235
36236 2001-10-10  Ed Schonberg <schonber@gnat.com>
36237
36238         * sem_prag.adb: (Analyze_Pragma, case External): If entity is a
36239         constant, do not indicate possible modification, so that gigi can
36240         treat it as a bona fide constant.
36241
36242 2001-10-10  Robert Dewar <dewar@gnat.com>
36243
36244         * sem_prag.adb: Add processing for pragma External.
36245
36246         * snames.ads: Add entry for pragma External.
36247
36248         * par-prag.adb: Add pragma External.
36249
36250         * snames.adb: Updated to match snames.ads.
36251
36252 2001-10-10  Ed Schonberg <schonber@gnat.com>
36253
36254         * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
36255         a dynamic task if the allocator appears in an indexed assignment
36256         or selected component assignment.
36257
36258         * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
36259         For a dynamic task in an assignment statement, use target of
36260         assignment to generate meaningful name.
36261
36262 2001-10-10  Ed Schonberg <schonber@gnat.com>
36263
36264         * einfo.adb (Write_Field19_Name): Body_Entity is also defined for
36265         a generic package.
36266
36267         * einfo.ads: Body_Entity is also defined for generic package.
36268         Documentation change only
36269
36270         * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
36271         others_choice for a discriminated component initialization,
36272         convert discriminant references into the corresponding discriminals.
36273
36274         * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
36275         only if original type is private and expression has to be wrapped
36276         in a conversion.
36277
36278         * checks.adb:
36279         (Apply_Constraint_Check): Do not perform length check
36280         if expression is an aggregate with only an others_choice.
36281         (Length_N_Cond): two references to the same in_parameter
36282         (typically the discriminal in an init_proc) denote the same value.
36283         Two useful optimization uncovered by bugfixes above.
36284
36285 2001-10-10  Robert Dewar <dewar@gnat.com>
36286
36287         * xeinfo.adb: Change int to char in translation of enumeration types.
36288         This fixes a problem in the C representation of component alignment.
36289         Add 2001 to copyright notice
36290
36291 2001-10-10  Richard Kenner <kenner@gnat.com>
36292
36293         * decl.c: (validate_size): Do check size of object of integral type
36294         if it is a packed array type.
36295
36296 2001-10-10  Richard Kenner <kenner@gnat.com>
36297
36298         * decl.c: (gnat_to_gnu_entity, case object): Also materialize
36299         VAR_DECL for constant if not Is_Public but -O0.
36300
36301 2001-10-10  Richard Kenner  <kenner@gnat.com>
36302
36303         * misc.c (struct lang_hooks): Add new initializer to match GCC change.
36304
36305 2001-10-10  Geert Bosch  <bosch@gnat.com>
36306
36307         * xnmake.adb (XNmake): Fix handling of -s/-b options.  No longer
36308         use '/' as switch character, allowing for absolute file names.
36309
36310 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
36311
36312         * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
36313         FSF address.
36314
36315 2001-10-08  Geert Bosch  <bosch@gnat.com>
36316
36317         * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
36318         Automatically build utilities when files need to be regenerated.
36319
36320 2001-10-08  Geert Bosch  <bosch@gnat.com>
36321
36322         * xsnames.adb: New utility for updating snames.ads and snames.adb
36323
36324 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
36325
36326         * Make-lang.in (ADAFLAGS): Add -W -Wall.
36327         (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
36328         (gnat1): Also depend on attribs.o.
36329         (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
36330         * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
36331         (ADAC): Set to @ADAC@ in stage1, $(CC) later.
36332         (ADAFLAGS): Add -W -Wall.
36333         (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
36334         take out CFLAGS.
36335
36336         (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
36337         s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
36338         s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
36339         Use $(ADAC), not $(CC), as compilation command.
36340
36341         (gnattools): Depend directly on tools to build, don't use
36342         recursive make.
36343         (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.
36344
36345         * einfo.h, sinfo.h: New files (autogenerated).
36346
36347 2001-10-08  Richard Henderson  <rth@redhat.com>
36348
36349         * comperr.adb (Abort_In_Progress): New.
36350         (Compiler_Abort): Use it to prevent recursion.
36351
36352 2001-10-08  Robert Dewar <dewar@gnat.com>
36353
36354         * atree.adb: Set Error_Posted in Error node, helps error recovery.
36355
36356         * par-endh.adb (Output_End_Expected): We should also not test
36357         Error_Posted on the Error node, since now it is always set.
36358
36359         * cstand.adb (Create_Standard): Set Etype of Error to Any_Type
36360         to help error recovery. Part of general work on 9407-004.
36361
36362         * par.adb: Add ??? for misuse of error
36363
36364         * sem_res.adb:
36365         (Resolve): Defend against Error, fixes 9407-003.
36366         (Resolve_Discrete_Subtype_Indication): Defend against Error.
36367
36368         * sinfo.ads (N_Error): Now has Etype field (which will be set
36369         to Any_Type to help error recovery).
36370
36371 2001-10-08  Richard Kenner (kenner@gnat.com)
36372
36373         * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
36374         Consistently set MEM attributes from expression; fixes
36375         bootstrap failure on x86.
36376
36377 2001-10-08  Geert Bosch  (bosch@gnat.com)
36378
36379         * 5oosinte.adb: Add 2001 to copyright notice.
36380
36381 2001-10-08  Geert Bosch  (bosch@gnat.com)
36382
36383         * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].
36384
36385         * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].
36386
36387 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
36388
36389         * 5oosinte.adb: Fix spelling error of "separate" as "seperate".
36390
36391 2001-10-05  Geert Bosch  (bosch@gnat.com)
36392
36393         * adaint.h: Small formatting fix.
36394
36395 2001-10-04  Geert Bosch  <bosch@gnat.com>
36396
36397         * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
36398         Arg is int, not FILE *, in dummy version of functions.
36399
36400         * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
36401         Arg is int, not FILE *.
36402
36403 2001-10-04  Geert Bosch  <bosch@gnat.com>
36404
36405         * 3lsoccon.ads: Added file, missed with initial check ins.
36406
36407         * 4lintnam.ads: Fix header format.
36408         Change Linux to GNU/Linux.
36409
36410         * 5iosinte.adb: Change Linux to GNU/Linux.
36411
36412         * 5iosinte.ads: Change Linux to GNU/Linux.
36413
36414         * 5itaprop.adb: Change Linux to GNU/Linux.
36415
36416         * 5itaspri.ads: Change Linux to GNU/Linux.
36417         Update copyright notice.
36418
36419         * 5lintman.adb: Change Linux to GNU/Linux.
36420
36421         * 5lml-tgt.adb: Change Linux to GNU/Linux.
36422
36423         * 5losinte.ads: Change Linux to GNU/Linux.
36424
36425         * 5lsystem.ads: Change Linux to GNU/Linux.
36426
36427         * 5qosinte.adb: Change Linux to GNU/Linux.
36428
36429         * 5qosinte.ads: Change Linux to GNU/Linux.
36430
36431         * 5qparame.ads: Change Linux to GNU/Linux.
36432
36433         * 5qtaprop.adb: Change Linux to GNU/Linux.
36434
36435         * 5qtaspri.ads: Change Linux to GNU/Linux.
36436         Add 2001 to copyright notice.
36437
36438         * 5vintman.ads: Change Linux to GNU/Linux.
36439         Fix header format.  Add 2001 to copyright notice.
36440
36441         * g-soccon.ads: Change Linux to GNU/Linux.
36442
36443         * g-trasym.ads: Change Linux to GNU/Linux.
36444         Add 2001 to copyright notice.
36445
36446         * memtrack.adb: Change Linux to GNU/Linux.
36447
36448         * s-intman.ads: Change Linux to GNU/Linux.
36449         Add 2001 to copyright notice.  Fix header format.
36450
36451         * s-stache.adb: Change Linux to GNU/Linux.
36452
36453         * adaint.c: Change Linux to GNU/Linux.
36454
36455         * cio.c: Change Linux to GNU/Linux.
36456
36457         * cstreams.c: Change Linux to GNU/Linux.
36458
36459         * init.c: Change Linux to GNU/Linux.
36460
36461         * gmem.c: Change Linux to GNU/Linux.
36462
36463         * tracebak.c: Change Linux to GNU/Linux.
36464
36465
36466 2001-10-02  Geert Bosch  <bosch@gnat.com>
36467
36468         * misc.c (insert_default_attributes): Add dummy version.