OSDN Git Service

* decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Do not
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
2
3         * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Do not
4         bother propagating the TYPE_USER_ALIGN flag when creating a JM type.
5
6 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7
8         * decl.c (gnat_to_gnu_entity) <E_Record_Type>: Do not force
9         BIGGEST_ALIGNMENT when capping the alignment of records with
10         strict alignment and size clause.
11
12 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
13
14         * lang-specs.h: Pass -gnatwa if -Wall is passed.
15         * misc.c (gnat_handle_option) <OPT_Wall>: Expand into -Wunused
16         and -Wuninitialized.
17         (gnat_post_options): Clear warn_unused_parameter.
18
19 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
20
21         * utils.c (finish_record_type): Clear DECL_BIT_FIELD on sufficiently
22         aligned bit-fields, bumping the alignment of the record type if deemed
23         profitable.
24         (value_factor_p): Return false instead of 0.
25
26 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
27
28         * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Add support
29         for scalar types with small alignment.
30
31 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
32
33         * trans.c (Loop_Statement_to_gnu): Set the SLOC of the loop label
34         from that of the front-end's end label.
35         (gnat_gimplify_stmt) <LOOP_STMT>: Set the SLOC of the backward goto
36         from that of the loop label.
37
38 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
39
40         * decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Add
41         comment for the packed array type case.
42         * utils.c (build_template): Use a loop to strip padding or
43         containing records for justified modular types.
44
45 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
46
47         * decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously
48         large alignments specified for types.
49         (validate_alignment): Minor cleanup.
50
51 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
52
53         * decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined.
54         (gnat_to_gnu_entity) <E_Record_Type>: Try to get a smaller form of
55         the component for packing, if possible, as well as if a component
56         size clause is specified.
57         <E_Record_Subtype>: For an array type used to implement a packed
58         array, get the component type from the original array type.
59         Try to get a smaller form of the component for packing, if possible,
60         as well as if a component size clause is specified.
61         (round_up_to_align): New function.
62         (make_packable_type): Add in_record parameter.
63         For a padding record, preserve the size.  If not in_record and the
64         size is too large for an integral mode, attempt to shrink the size
65         by lowering the alignment.
66         Ditch the padding bits of the last component.
67         Compute sizes and mode manually, and propagate the RM size.
68         Return a BLKmode record type if its size has shrunk.
69         (maybe_pad_type): Use MAX_FIXED_MODE_SIZE instead of BIGGEST_ALIGNMENT.
70         Use Original_Array_Type to retrieve the type in case of an error.
71         Adjust call to make_packable_type.
72         (gnat_to_gnu_field): Likewise.
73         (concat_id_with_name): Minor tweak.
74         * trans.c (larger_record_type_p): New predicate.
75         (call_to_gnu): Compute the nominal type of the object only if the
76         parameter is by-reference.  Do the conversion actual type -> nominal
77         type if the nominal type is a larger record.
78         (gnat_to_gnu): Do not require integral modes on the source type to
79         avoid the conversion for types with identical names.
80         (addressable_p): Add gnu_type parameter.  If it is specified, do not
81         return true if the expression is not addressable in gnu_type.
82         Adjust recursive calls.
83         * utils.c (finish_record_type): Remove dead code.
84
85 2008-03-05  Eric Botcazou  <ebotcazou@adacore.com>
86
87         PR ada/35186
88         * decl.c (maybe_pad_type): Avoid padding an integral type when
89         bumping its alignment is sufficient.
90
91 2008-03-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
92
93         * gnatfind.adb, gnatxref.adb: Fix argument parsing typos.
94         * s-auxdec-empty.adb, s-auxdec.adb: Fix typos in copyright
95         statement.
96         * a-ngcoar.adb, a-ngrear.adb, g-awk.adb, g-debpoo.adb,
97         gprep.adb, make.adb, makegpr.adb, par-ch6.adb, prj-nmsc.adb,
98         sem_attr.adb, sem_ch4.adb, sem_ch8.adb: Fix typos in ada source
99         code output strings.
100         * sem_type.adb, system-vms-ia64.ads, system-vms.ads,
101         system-vms_64.ads: Fix typos in ada source code comments.
102         * sinfo-cn.adb: Remove incomplete sentence.
103
104         PR documentation/15479
105         * gnat_rm.texi, gnat_ugn.texi: Avoid standalone `non' word.
106
107 2008-02-27  Samuel Tardieu  <sam@rfc1149.net>
108
109         PR ada/22255
110         * s-fileio.adb (Reset): Do not raise Use_Error if mode isn't changed.
111
112 2008-02-27  Samuel Tardieu  <sam@rfc1149.net>
113
114         PR ada/34799
115         * sem_ch13.adb (Analyze_Record_Representation_Clause): Check
116         that underlying type is present.
117
118 2008-02-26  Tom Tromey  <tromey@redhat.com>
119
120         * misc.c (internal_error_function): Remove test of
121         USE_MAPPED_LOCATION.
122         * trans.c (gigi): Remove test of USE_MAPPED_LOCATION.
123         (Sloc_to_locus): Remove old location code.
124
125 2008-02-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
126
127         * gnat_rm.texi, gnat_ugn.texi: Fix spacing after `e.g.' and
128         `i.e.' by adding comma or `@:' as appropriate.
129         * gnat_rm.texi (Pragma Wide_Character_Encoding): Instead of
130         plain characters `C', use `@samp{C}'.
131         * gnat_ugn.texi (File Naming Rules, About gnatkr)
132         (Krunching Method): Likewise.
133
134         * gnat_ugn.texi (Conventions): List environment variables and
135         metasyntactic variables.
136         (Compiling Programs): Fix notation of metasyntactic variables.
137         Add @file where appropriate.  Use @file for file extensions,
138         @samp for strings.
139         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, use @samp
140         instead of @file, @env instead of @code.
141
142 2008-02-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
143
144         PR documentation/15479
145         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, replace `..'
146         and `...' with `@dots{}' or `@enddots{}'.
147
148         PR documentation/15479
149         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, add @command,
150         use @command instead of @code, @option instead of @samp or @code,
151         @code instead of @var, @samp instead of @file.
152
153         PR documentation/15479
154         * gnat_ugn.texi (Using gnatmake in a Makefile): Do not ignore errors
155         in Makefile rules, by using `&&' rather than `;'.
156
157 2008-02-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
158
159         PR documentation/15479
160         * gnat_ugn.texi: In non-code, avoid space before colon.
161         (Regular Expressions in gnatfind and gnatxref): Fix indentation.
162         (Examples of gnatxref Usage): Use @command{vi} instead of
163         @file{vi}.
164         (Character Set Control): Do not use @code for UTF-8.
165         (Validity Checking): Fix typo "NaNs" instead of "NaN's".  Do not
166         use @code for IEEE.
167         * gnat_rm.texi (Aggregates with static bounds): Fix typo in code
168         sample.
169         * gnat_rm.texi, gnat_ugn.texi: Fix typos.  Bump copyright years.
170
171 2008-02-11  Joel Sherrill <joel.sherrill@oarcorp.com>
172
173         PR ada/35143
174         * env.c: Add __rtems__ to if defined.
175         * s-osinte-rtems.adb: Add To_Target_Priority.  Fix formatting.
176         * s-osinte-rtems.ads: Add To_Target_Priority prototype and
177         PTHREAD_SCOPE_PROCESS/PTHREAD_SCOPE_SYSTEM constants.  Add
178         pragma Convention as required.
179         * gsocket.h: Make compile in and out of RTS.
180         * Makefile.in: Add system-rtems.ads.  Build DEC extensions.
181         Use g-soccon-rtems.ads.
182         * g-soccon-rtems.ads, system-rtems.ads: New files.
183
184 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
185
186         PR other/35107
187         * Make-lang.in (gnat1): Add $(GMPLIBS).
188
189 2008-01-26  Eric Botcazou  <ebotcazou@adacore.com>
190
191         * decl.c (components_to_record): Improve comment.
192
193 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
194
195         * decl.c (components_to_record): Do not reuse the empty union type
196         if there is a representation clause on the record.
197         * trans.c (addressable_p): Return true for INTEGER_CST.
198
199 2008-01-21  Eric Botcazou  <ebotcazou@adacore.com>
200
201         * trans.c (gnat_to_gnu) <N_Free_Statement>: Use POINTER_PLUS_EXPR
202         in pointer arithmetics.
203         * utils2.c (build_allocator): Likewise.
204
205 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
206
207         * utils.c (build_function_stub): Properly build the call expression.
208
209 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
210
211         * decl.c (gnat_to_gnu_entity) <object>: Process renamings
212         before converting the expression to the type of the object.
213         * trans.c (maybe_stabilize_reference) <CONSTRUCTOR>: New case.
214         Stabilize constructors for special wrapping types.
215
216 2008-01-13  Eric Botcazou  <ebotcazou@adacore.com>
217
218         * trans.c (call_to_gnu):Invoke the addressable_p predicate only
219         when necessary.  Merge some conditional statements.  Update comments.
220         Rename unchecked_convert_p local variable to suppress_type_conversion.
221         Do not suppress conversions in the In case.
222         (addressable_p) <VIEW_CONVERT_EXPR>: Do not take alignment issues
223         into account on non strict-alignment platforms.
224
225 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
226
227         * utils.c (aggregate_type_contains_array_p): New predicate.
228         (create_field_decl): In a packed record, force byte alignment
229         for fields without specified position that contain an array.
230
231 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
232
233         * utils.c (unchecked_convert): Fold the VIEW_CONVERT_EXPR expression.
234
235 2008-01-10  John David Anglin  <dave.anglin.@nrc-cnrc.gc.ca>
236
237         PR ada/34466
238         * s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for
239         sysconf call.
240         (bit_field): New packed boolean type used by cpu_set_t.
241         (cpu_set_t): New type corresponding to the C type with
242         the same name. Note that on the Ada side we use a bit
243         field array for the affinity mask. There is not need
244         for the C macro for setting individual bit.
245         (pthread_setaffinity_np): New imported routine.
246
247 2008-01-03  Tero Koskinen <tero.koskinen@iki.fi>
248
249         PR ada/34647
250         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
251         on OpenBSD as is done on other BSD systems.
252
253         PR ada/34645
254         * sysdep.c (__gnat_ttyname, getc_immediate_nowait,
255         getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate
256         I/O.
257
258         PR ada/34644
259         * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing
260         clearenv().
261
262         PR ada/34646
263         * init.c (__gnat_error_handler, __gnat_install_handler,
264         __gnat_init_float): Define for OpenBSD.
265
266         * initialize.c (__gnat_initialize): Define for OpenBSD.
267
268 2007-12-27  Samuel Tardieu  <sam@rfc1149.net>
269
270         PR ada/34553
271         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
272         instead of mktemp() or tmpnam() on NetBSD.
273
274 2007-12-23  Eric Botcazou  <ebotcazou@adacore.com>
275
276         * trans.c (call_to_gnu): Make the temporary for non-addressable
277         In parameters passed by reference.
278         (addressable_p): Return true for STRING_CST and CALL_EXPR.
279
280 2007-12-19  Robert Dewar  <dewar@adacore.com>
281
282         * g-expect-vms.adb, g-expect.adb, s-poosiz.adb: 
283         Add pragma Warnings (Off) for unassigned IN OUT arguments
284
285         * sem_warn.adb (Output_Reference): Suppress messages for internal names
286         (Check_References): Extensive changes to tune up warnings
287         (Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings
288         (Has_Pragma_Unmodifed_Check_Spec): New function
289         (Check_References): Implement pragma Unmodified
290         (Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified
291
292         * par-prag.adb: Dummy entry for pragma Unmodified
293
294         * sem_prag.adb: Implement pragma Unmodified
295
296         * einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag
297         (Proc_Next_Component_Or_Discriminant): Fix typo.
298         Update comments.
299
300         * sem_util.adb (Note_Possible_Modification): Add processinng for pragma
301         Unmodified.
302         (Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func,
303         because the former already takes care of discarding the result.
304         (Mark_Coextensions): Remove ununused initial value from Is_Dynamic.
305         Add comment.
306
307         * snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified
308
309 2007-12-19  Eric Botcazou  <ebotcazou@adacore.com>
310
311         * targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads,
312         system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
313         system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads,
314         system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads,
315         system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
316         system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
317         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
318         system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
319         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
320         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads
321         (Dynamic_Trampolines_Used): Delete.
322
323         * system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto.
324         Turn on stack probing mechanism on LynxOS.
325
326 2007-12-19  Bob Duff  <duff@adacore.com>
327
328         * atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate
329         the resulting tail recursion by hand. This prevents running out of
330         memory on deeply nested concatenations, since Field2 is where the left
331         operand of concatenations is stored.
332         Fix bug (was returning OK_Orig in some cases). Fix return subtype to
333         clarify that it can only return OK or Abandon.
334
335         * sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left
336         operand by iteration, in order to avoid running out of memory on
337         deeply-nested concatenations. Use the Parent pointer to get back up the
338         tree.
339         (Resolve_Op_Concat_Arg, Resolve_Op_Concat_First,
340          Resolve_Op_Concat_Rest): New procedures split out of
341         Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is
342         clearer.
343
344         * checks.adb (Remove_Checks): Use Traverse_Proc instead of
345         Traverse_Func, because the former already takes care of discarding the
346         result.
347
348         * errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func,
349         because the former already takes care of discarding the result.
350         (Remove_Warning_Messages): Use appropriate subtype for Status and
351         Discard 
352
353 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
354
355         * exp_aggr.adb (Not_OK_For_Backend): A component of a private type with
356         discriminants forces expansion of the aggregate into assignments.
357         (Init_Record_Controller):  If the type of the aggregate is untagged and
358         is not inherently limited, the record controller is not limited either.
359
360 2007-12-19  Robert Dewar  <dewar@adacore.com>
361
362         * exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in
363         handling compile time known size of record or array (case of front end
364         layout active, e.g. in GNAAMP).
365
366 2007-12-19  Javier Miranda  <miranda@adacore.com>
367
368         * exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry
369         that forces the construction of static dispatch tables in case of
370         record subtypes.
371
372 2007-12-19  Robert Dewar  <dewar@adacore.com>
373
374         * exp_ch9.adb (Null_Statements): Moved to library level
375         (Trivial_Accept_OK): New function
376         (Expand_Accept_Declaration): Use Trivial_Accept_OK
377         (Expand_N_Accept_Statement): Use Trivial_Accept_OK
378
379 2007-12-19  Robert Dewar  <dewar@adacore.com>
380
381         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type
382         in complex case where array is Volatile.
383
384 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
385
386         * freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement
387         properly the Ada2005 rules concerning when the current instance of a
388         record type is aliased.
389
390 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
391
392         * par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in
393         mangled declaration
394         (P_Type_Declaration): Diagnose misuse of "abstract" in untagged record
395         declarations.
396         (P_Variant_Part): Cleaner patch for parenthesized discriminant
397
398 2007-12-19  Vincent Celier  <celier@adacore.com>
399
400         * prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when
401         package is not known
402
403         * prj-attr.ads (Unknown_Package): New constant
404         Do not crash when an unknown package is in several projects
405
406         * prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as
407         ignored
408
409         * prj-nmsc.adb (Check): Remove obsolete code related to no longer
410         existing package Language_Processing.
411
412 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
413             Gary Dismukes  <dismukes@adacore.com>
414             Samuel Tardieu  <sam@rfc1149.net>
415
416         PR ada/15803, ada/15805
417         * sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose
418         illegal access subtypes when there is a constrained partial view.
419         (Check_For_Premature_Usage): New procedure inside
420         Access_Subprogram_Declaration for checking that an access-to-subprogram
421         type doesn't reference its own name within any formal parameters or
422         result type (including within nested anonymous access types).
423         (Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage.
424         (Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the
425         context is an access_to_variable, the expression cannot be an
426         access_to_constant.
427
428 2007-12-19  Bob Duff  <duff@adacore.com>
429
430         * sem_ch4.adb (Analyze_Concatenation_Rest): New procedure.
431         (Analyze_Concatenation): Use iteration instead of recursion in order
432         to avoid running out of stack space for deeply nested concatenations.
433
434 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
435             Gary Dismukes  <dismukes@adacore.com>
436
437         * sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings
438         whose renamed entity is a subprogram that requires overriding.
439         (Premature_Usage): Test for the case of N_Full_Type_Declaration when
440         issuing an error for premature usage and issue a message that says
441         'type' rather than 'object'.
442
443 2007-12-19  Gary Dismukes  <dismukes@adacore.com>
444
445         PR ada/34149
446         * sem_disp.adb (Check_Dispatching_Call): Augment existing test for
447         presence of a statically tagged operand (Present (Static_Tag)) with
448         test for Indeterm_Ancestor_Call when determining whether to propagate
449         the static tag to tag-indeterminate operands (which forces dispatching
450         on such calls).
451         (Check_Controlling_Formals): Ada2005, access parameters can have
452         defaults.
453         (Add_Dispatching_Operation, Check_Operation_From_Private_View): do
454         not insert subprogram in list of primitive operations if already there.
455
456 2007-12-19  Tristan Gingold  <gingold@adacore.com>
457
458         * utils.c (create_var_decl_1): call rest_of_decl_compilation only for
459         global variable.
460
461 2007-12-19  Thomas Quinot  <quinot@adacore.com>
462
463         Part of PR ada/33688
464         * gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary
465         datagram info on Linux.
466
467 2007-12-19  Vincent Celier  <celier@adacore.com>
468
469         * makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so
470         that the source path name is always found in the dependencies.
471
472 2007-12-19  Robert Dewar  <dewar@adacore.com>
473
474         * gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o
475         Fix name of Wide_Wide_Latin_1/9 file names
476         Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads)
477         Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode
478         Add missing documentation for Ada.Command_Line.Response_File
479         Update list of warning letters for Warnings pragma
480         Add documentation for pragma Unmodified
481
482 2007-12-19  Samuel Tardieu  <sam@rfc1149.net>
483
484         * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target.
485
486 2007-12-17  Arnaud Charlet  <charlet@adacore.com>
487
488         * s-vxwork-alpha.ads: Removed, no longer used.
489
490 2007-12-15  Jakub Jelinek  <jakub@redhat.com>
491
492         * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line.
493
494 2007-12-13  Samuel Tardieu  <sam@rfc1149.net>
495
496         PR ada/34360
497         * Makefile.in: Change two occurrences of mlib-tgt.adb by correct name
498         mlib-tgt-specific.adb.
499
500 2007-12-13  Bob Duff  <duff@adacore.com>
501
502         * trans.c (Attribute_to_gnu): Check for violations of the
503         No_Implicit_Dynamic_Code restriction. This checking used to be done in
504         the front end, but is moved here so we can make it more accurate.
505
506 2007-12-13  Pascal Obry  <obry@adacore.com>
507
508         * adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy
509          version is provided for older GNU/Linux distribution not
510          supporting thread affinity sets.
511         
512         * s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf
513         call.
514         (bit_field): New packed boolean type used by cpu_set_t.
515         (cpu_set_t): New type corresponding to the C type with
516         the same name. Note that on the Ada side we use a bit
517         field array for the affinity mask. There is not need
518         for the C macro for setting individual bit.
519         (pthread_setaffinity_np): New imported routine.
520         
521         * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is
522         no null.
523         (Create_Task): Set the processor affinity mask if information
524         is present.
525         
526         * s-tasinf-linux.ads, s-tasinf-linux.adb: New files.
527         
528 2007-12-13  Robert Dewar  <dewar@adacore.com>
529
530         * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads, 
531         s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads, 
532         s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads, 
533         s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb,
534         s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads,
535         s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads, 
536         s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads, 
537         i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C
538         for subprogram pointers.
539
540         * g-ctrl_c.adb: New file.
541
542         * g-ctrl_c.ads (Install_Handler): New body.
543
544         * freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always
545         instead of obsolete function Is_Always_Inlined.
546         (Freeze_Entity): check for tagged type in imported C subprogram
547         (Freeze_Entity): check for 8-bit boolean in imported C subprogram
548         (Freeze_Entity): check for convention Ada subprogram pointer in
549         imported C subprogram.
550         (Freeze_Fixed_Point_Type): In the case of a base type where the low
551         bound would be chopped off and go from negative to zero, force
552         Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower
553         bound) so that the size computation for the base type will take
554         negative values into account.
555
556 2007-12-13  Eric Botcazou  <ebotcazou@adacore.com>
557             Bob Duff  <duff@adacore.com>
558             Tristan Gingold  <gingold@adacore.com>
559
560         * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, 
561         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads, 
562         system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
563         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, 
564         system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads, 
565         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, 
566         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, 
567         system-vxworks-arm.ads, system-darwin-x86.ads, system.ads,
568         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, 
569         system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads,
570         system-vms-ia64.ads (Stack_Check_Limits): New target parameter.
571         (Always_Compatible_Rep): New flag to control trampolines globally.
572         (Dynamic_Trampolines_Used): New flag for implementing the
573         No_Implicit_Dynamic_Code restriction more correctly (not yet used,
574         and not yet set correctly for some targets).
575
576         * s-taprop-vxworks.adb: Use stack limit method of stack checking.
577         Simply indirectly call s-stchop when a task is created.
578
579         * ali.ads: 
580         New flag added: Stack_Check_Switch_Set which is set when '-fstack-check'
581         appears as an argument (entries A) in an ALI file.
582
583         * fe.h (Stack_Check_Limits): Declare new target parameter.
584         (Check_Implicit_Dynamic_Code_Allowed): New procedure.
585
586         * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS.
587         This variable is declared in C to be sure not subject to elaboration
588         code.
589         (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to
590         Storage_Error.
591
592         * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter.
593         (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters.
594
595         * s-stchop.ads: Add comments.
596
597         * s-stchop-vxworks.adb: Package almost fully rewritten to use stack
598         limit method of stack checking.
599
600         * s-stchop-limit.ads: New file.
601
602 2007-12-13  Robert Dewar  <dewar@adacore.com>
603
604         * sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb, 
605         a-cihama.adb, g-awk.adb, 
606         s-inmaop-posix.adb: Update handling of assigned value/unreferenced
607         warnings
608
609         * exp_smem.adb: Update handling of assigned value/unreferenced warnings
610
611         * sem.adb: Update handling of assigned value/unreferenced warnings
612
613         * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return
614
615         * lib-xref.ads: Improve documentation for k xref type
616
617         * lib-xref.adb: 
618         Update handling of assigned value/unreferenced warnings
619         (Generate_Reference): Warning for reference to entity for which a
620         pragma Unreferenced has been given should be unconditional.
621         If the entity is a discriminal, mark the original
622         discriminant as referenced.
623
624         * sem_warn.ads, sem_warn.adb
625         (Check_One_Unit): Test Renamed_In_Spec to control giving warning for
626         no entities referenced in package
627         (Check_One_Unit): Don't give message about no entities referenced in
628         a package if a pragma Unreferenced has appeared.
629         Handle new warning flag -gnatw.a/-gnatw.A
630         Update handling of assigned value/unreferenced warnings
631
632         * atree.h: Add flags up to Flag247
633         (Flag231): New macro.
634
635 2007-12-13  Jose Ruiz  <ruiz@adacore.com>
636
637         * adaint.h: (__gnat_plist_init): Not defined for RTX.
638
639         * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for
640         RTX systems.
641
642         * Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb.
643         (LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB,
644         EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS,
645         GNATLIB_SHARED for RTX run time): Use the versions required by RTX.
646
647         * mingw32.h: 
648         Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported.
649
650         * sysdep.c (winflush_function for RTX): Procedure that does nothing
651         since we only have problems with Windows 95/98, which are not
652         supported by RTX.
653         (__gnat_ttyname): Return the empty string on Nucleus, just as
654         done on vxworks.
655
656 2007-12-13  Robert Dewar  <dewar@adacore.com>
657
658         * a-textio.adb, a-textio.ads: 
659         Extensive changes to private part for wide character encoding
660
661         * a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb
662         (Look_Ahead): Fix mishandling of encoded sequences
663         Move declaration of Wch_Con to private part (should not be visible)
664
665         * ali.adb (Scan_ALI): Set default encoding method to brackets instead of
666         UTF-8. Probably this is never used, but if it is, brackets is
667         clearly correct.
668
669         * bindgen.adb (Get_WC_Encoding): New procedure to properly handle
670         setting wide character encoding for no main program case and when
671         encoding is specified using -W?
672         Initialize stack limit of environment task if stack limit method of
673         stack checking is enabled.
674         (Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method
675         (Gen_Adainit_C): Use Get_WC_Encoding to output encoding method
676         (Get_Main_Unit_Name): New function.
677         (Gen_Adainit_Ada): Add call to main program for .NET when needed.
678         (Gen_Output_File): Set Bind_Main_Program to True for .NET
679
680         * bindusg.adb: Add line for -Wx switch
681
682         * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function
683         Add comments
684         Add new useful constant WC_Longest_Sequences
685
686         * switch-b.adb: Clean up handling of -Wx switch
687         For -gnatWx, set Wide_Character_Encoding_Method_Specified
688
689         * switch-c.adb: -gnatg activates warning on assertion errors
690         For -gnatWx, set Wide_Character_Encoding_Method_Specified
691
692         * s-wchcon.adb: (Is_Start_Of_Encoding): New function
693
694 2007-12-13  Robert Dewar  <dewar@adacore.com>
695             Ed Schonberg  <schonberg@adacore.com>
696
697         * a-ngcoty.adb: New pragma Fast_Math
698
699         * opt.adb: New pragma Fast_Math
700
701         * par-prag.adb: 
702         Add Implemented_By_Entry to the list of pragmas which do not require any
703         special processing.
704         (Favor_Top_Level): New pragma.
705         New pragma Fast_Math
706
707         * exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv
708         (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
709         Expand_Allocator_Expression): Take into account VM_Target
710         (Expand_Attribute, case 'Identity):  Handle properly the case where
711         the prefix is a task interface.
712         New pragma Fast_Math
713
714         * par.adb (Next_Token_Is): New function
715         (P_Pragma): Add Skipping parameter
716         (U_Left_Paren): New procedure
717         (U_Right_Paren): New procedure
718         New pragma Fast_Math
719
720         * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after
721         subunit
722         New pragma Fast_Math
723
724         * sem_prag.adb: Add significance value to table Sig_Flag for pragma
725         Implemented_By_Entry.
726         (Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry.
727         (Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep
728         items, since it can apply to more than one overloadable entity. Set
729         new flag Has_Pragma_Inline_Always for Inline_Always case.
730         (Analyze_Pragma, case Complex_Representation): Improve error message.
731         (Analyze_Pragma, case Assert): When assertions are disabled build the
732         rewritten code with Sloc of expression rather than pragma, so new
733         warning about failing is not deleted.
734         (Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to
735         protected types and update error message to reflect that. Test whether
736         the protected type is allowed for the pragma (an error is issued if the
737         type has any entries, or components that do not have preelaborable
738         initialization).
739         New pragma Fast_Math
740         (Analyze_Pragma, case No_Return): Handle generic instance
741
742         * snames.h, snames.ads, snames.adb: 
743         Add new predefined name for interface primitive _Disp_Requeue.
744         New pragma Fast_Math
745
746         * a-tags.ads, a-tags.adb: New calling sequence for
747         String_To_Wide_[Wide_]String
748         (Secondary_Tag): New subprogram.
749
750         * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here
751         from Exp_Attr
752         New calling sequence for String_To_Wide_[Wide_]String
753         (Expand_Image_Attribute): Major rewrite. New calling sequence avoids
754         the use of the secondary stack for image routines.
755
756         * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New
757         calling sequence for String_To_Wide_[Wide_]String
758
759         * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in
760         Ada 95 mode
761         (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully
762         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
763
764         * par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode
765         (P_Formal_Part): Use Skipping parameter in P_Pragma call
766         to improve error recovery
767
768         * par-util.adb (Next_Token_Is): New function
769         (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function
770
771         * par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to
772         semicolon if missing
773         (P_Pragma): Implement new Skipping parameter
774         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
775         Fix location of flag for unrecognized pragma message
776
777         * par-tchk.adb (U_Left_Paren): New procedure
778         (U_Right_Paren): New procedure
779
780 2007-12-13  Geert Bosch  <bosch@adacore.com>
781
782         * a-tifiio.adb: 
783         (Put_Int64): Use Put_Digit to advance Pos. This fixes a case where
784         the second or later Scaled_Divide would omit leading zeroes,
785         resulting in too few digits produced and a Layout_Error as result.
786         (Put): Initialize Pos.
787
788 2007-12-13  Robert Dewar  <dewar@adacore.com>
789
790         atree.ads, atree.adb (Flag231..Flag247): New functions
791         (Set_Flag231..Set_Flag247): New procedures
792         (Basic_Set_Convention): Rename Set_Convention to be
793         Basic_Set_Convention
794         (Nkind_In): New functions
795         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
796
797         * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always
798         instead
799          of obsolete function Is_Always_Inlined
800         (Register_Predefined_DT_Entry): Initialize slots of the second
801         secondary dispatch table.
802         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
803         (Expand_N_Function_Call): Remove special provision for stack checking.
804
805         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
806         Include _Disp_Requeue in the list of predefined operations.
807         (Find_Interface_ADT): Modified to fulfill the new specification.
808         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
809
810         * par-ch4.adb, nlists.ads, nlists.adb: 
811         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
812
813         * sinfo.ads, sinfo.adb: (Nkind_In): New functions
814         Fix location of flag for unrecognized pragma message
815
816         * sem_ch7.adb: Use Nkind_In
817
818 2007-12-13  Vincent Celier  <celier@adacore.com>
819
820         * opt.ads: 
821         Indicate what flags are used by the Project Manager, gprbuild and
822         gprclean.
823         (Opt.Follow_Links_For_Dirs): New flag
824         (Warn_On_Assertion_Failure): New flag
825         (Wide_Character_Encoding_Method_Specified): New flag
826         (Suppress_All_Inlining): New switch set by -fno-inline
827         (Real_VMS_Target): New flag
828         New pragma Fast_Math
829
830 2007-12-13  Robert Dewar  <dewar@adacore.com>
831
832         * back_end.adb: Recognize -fno-inline
833
834 2007-12-13  Robert Dewar  <dewar@adacore.com>
835
836         * checks.adb: Fix optimization problem with short-circuited form
837
838 2007-12-13  Bob Duff  <duff@adacore.com>
839
840         * clean.adb (Usage): Add line for -aP
841         (Check_Version_And_Help): Change Check_Version_And_Help to be generic,
842         with a parameter "procedure Usage", instead of passing a pointer to a
843         procedure. This is to eliminate trampolines (since the Usage procedure
844         is often nested in a main procedure, and it would be inconvenient to
845         unnest it).
846
847         * g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch
848         to be generic, with a parameter "procedure Callback (...)", instead of
849         passing a pointer to a procedure. This is to eliminate trampolines
850         (since the Callback procedure is usually nested).
851
852         * gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb, 
853         gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb
854         (Check_Version_And_Help): Change Check_Version_And_Help to be generic.
855
856         * g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets):
857         Use the generic Heap_Sort_G instead of Heap_Sort_A.
858
859 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
860
861         * einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry.
862         (Implemented_By_Entry, Set_Implemented_By_Entry): New routines.
863         (Write_Entry_Flags): Add an entry for Implemented_By_Entry.
864         (Renamed_In_Spec): New flag
865         (Has_Pragma_Inline_Always): New flag
866         Add missing doc for pragma Obsolescent_Warning
867         Add missing doc for 17 additional unused flags (230-247)
868         (Is_Derived_Type): Remove condition "not Is_Generic_Type".
869         Alphabetize with clauses.
870         Separate Is_Thunk and Has_Thunks flags
871         (Write_Entity_Flags): Add forgotten entry for Has_Thunks
872         (Related_Interface): Renamed to Related_Type.
873         (Has_Thunks/Set_Has_Thunks): Subprograms of new attribute.
874         (Set_Is_Flag): Restrict the assertion.
875
876 2007-12-13  Vincent Celier  <celier@adacore.com>
877
878         * errout.adb (Output_Source_Line): Do not keep a trailing space after
879         the source line number if the source line is empty.
880
881 2007-12-13  Geert Bosch  <bosch@adacore.com>
882
883         * eval_fat.adb (Decompose_Int): Handle argument of zero.
884         (Compose): Remove special casing of zero.
885         (Exponent): Likewise.
886         (Fraction): Likewise.
887         (Machine): Likewise.
888         (Decompose): Update comment.
889
890 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
891
892         * exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a
893         limited ancestor part, initialize controllers of enclosing record
894         before expanding ancestor aggregate.
895         (Gen_Assign): If a component of the aggregate is box-initialized, add
896         code to call Initialize if the component is controlled, and explicit
897         assignment of null if the component is an access type.
898
899         Handle properly aggregates for limited types that appear in object
900         declarations when the aggregate contains controlled values such as
901         protected types.
902         When expanding limited aggregates into individual components, do not
903         call Adjust on controlled components that are limited.
904
905 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
906
907         * expander.adb: Take into account N_Subprogram_Renaming_Declaration
908
909 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
910
911         * exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of
912         predefined primitive _Disp_Requeue.
913         (Make_Predefined_Primitive_Specs): Create the spec for predefined
914         primitive _Disp_Requeue.
915         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the
916         type of formal Renamed_Eq to Entity_Id (instead of Node_Id).
917         (Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is
918         an interface type. In case of limited interfaces we now declare all the
919         predefined primitives associated with synchronized interfaces as
920         abstract.
921         (Predef_Spec_Or_Body): For interface types generate abstract subprogram
922         declarations.
923         (Predefined_Primitive_Bodies): Add body of "=" if the parent of the
924         tagged type is an interface type and there is no user-defined equality
925         function.
926         Add also bodies of predefined primitives associated with synchronized
927         interfaces.
928         (Freeze_Record_Type): Do not build bodies of predefined primitives of
929         interface types because they are now defined abstract.
930         Add missing documentation.
931         (Expand_Record_Controller): Update occurrence of Related_Interface
932         to Related_Type.
933         (Build_Offset_To_Top_Functions): Do nothing in case of VM.
934         (Expand_N_Object_Declaration): Take into account VM_Target when handling
935         class wide interface object declaration.
936         (Expand_Previous_Access_Type): Do not create a duplicate master entity
937         if the access type already has one.
938         (Expand_N_Object_Declaration): Defend against attempt to validity check
939         generic types. Noticed for -gnatVcf specified with previous errors.
940
941 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
942
943         * exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
944         Expand_Allocator_Expression): Take into account VM_Target
945
946         * exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use
947         secondary stack when VM_Target /= No_VM
948
949 2007-12-13  Javier Miranda  <miranda@adacore.com>
950             Ed Schonberg  <schonberg@adacore.com>
951
952         * exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute
953         Is_Complation_Unit by Is_Library_Level_Entity in the code
954         that decides if the static dispatch tables need to be built.
955         (Wrap_Transient_Declaration): Do not generate a finalization call if
956         this is a renaming declaration and the renamed object is a component
957         of a controlled type.
958
959 2007-12-13  Gary Dismukes  <dismukes@adacore.com>
960
961         * exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration):
962         In the case where the renamed subprogram is a dereference, call
963         Force_Evaluation on the prefix.
964
965 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
966             Ed Schonberg  <schonberg@adacore.com>
967
968         * exp_ch9.adb (Expand_N_Asynchronous_Select,
969         Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and
970         comment reformatting.
971         (Set_Privals): Inherit aliased flag from formal. From code reading.
972         (Build_Simple_Entry_Call): Out parameters of an access type are passed
973         by copy and initialized from the actual. This includes entry parameters.
974         (Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95
975         and Ada 2005 models of requeue.
976         (Null_Statements): Still connsider do-end block null if it contains
977         Unreferenced and Warnings pragmas.
978         (Expand_N_Accept_Statement): Do not optimize away null do end if
979         dispatching policy is other than defaulted.
980         (Expand_N_Timed_Entry_Call): When the triggering statement is a
981         dispatching call, manually analyze the delay statement.
982         (Find_Parameter_Type): Move subprogram to Sem_Util.
983
984 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
985             Javier Miranda  <miranda@adacore.com>
986
987         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive
988         _Disp_Requeue occupies dispatch table slot number 15. Move
989         _Disp_Timed_Select to slot 16.
990         (Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which
991         generate the spec and body of _Disp_Reqeueue.
992         (Make_DT): Build and initialize the second dispatch table.
993         Handle initialization of RC_Offset when the parent
994         is a private type with variable size components.
995         (Make_Secondary_DT): Complete documentation. Add support to
996         initialize the second dispatch table.
997         (Make_Tags): Generate the tag of the second dispatch table.
998         (Register_Primitive): Add support to register primitives in the
999         second dispatch table.
1000
1001 2007-12-13  Pascal Obry  <obry@adacore.com>
1002
1003         * expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on
1004         Windows. This signal is used by gnatmake to kill child processes for
1005         example.
1006
1007 2007-12-13  Javier Miranda  <miranda@adacore.com>
1008
1009         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
1010         support for generic dispatching constructor calls in which we need to
1011         locate the tag of a secondary dispatch table associated with an
1012         interface type to properly dispatch the call.
1013         (Expand_N_Attribute_Reference [case Address],
1014         Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix
1015         handling of VM targets.
1016
1017 2007-12-13  Robert Dewar  <dewar@adacore.com>
1018             Ed Schonberg  <schonberg@adacore.com>
1019
1020         * exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for
1021         assert fail
1022
1023         * ug_words: Add entries for -gnatw.a -gnatw.A
1024
1025         * sem_res.adb (Set_String_Literal_Subtype): If the context of the
1026         literal is a subtype with non-static constraints, use the base type of
1027         the context as the base of the string subtype, to prevent type
1028         mismatches in gigi.
1029         (Resolve_Actuals): If the actual is an entity name, generate a
1030         reference before the actual is resolved and expanded, to prevent
1031         spurious warnings on formals of enclosing protected operations.
1032         (Analyze_Overloaded_Selected_Component): If type of prefix if
1033         class-wide, use visible components of base type.
1034         (Resolve_Selected_Component): Ditto.
1035         (Resolve_Short_Circuit): Detect case of pragma Assert argument
1036         evaluating to False, and issue warning message.
1037
1038         * usage.adb: Add lines for -gnatw.a and -gnatw.A
1039
1040 2007-12-13  Emmanuel Briot  <briot@adacore.com>
1041
1042         * g-calend.ads (No_Time): New constant, to represent an uninitialized
1043         time value
1044
1045         * g-catiio.ads, g-catiio.adb (Value): Added support for more date
1046         formats.
1047         (Month_Name_To_Number): New subprogram
1048
1049         * g-dirope.adb (Get_Current_Dir): On windows, normalize the drive
1050         letter to upper-case.
1051
1052 2007-12-13  Robert Dewar  <dewar@adacore.com>
1053             Ed Schonberg  <schonberg@adacore.com>
1054
1055         * gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target
1056
1057         * layout.adb (Resolve_Attribute, case 'Access): If designated type of
1058         context is a limited view, use non-limited view when available. If the
1059         non-limited view is an unconstrained array, this enforces consistency
1060         requirements in 3.10.2 (27).
1061         (Layout_Type): For an access type whose designated type is a limited
1062         view, examine its declaration to determine if it is an unconstrained
1063         array, and size the access type accordingly.
1064         (Layout_Type): Do not force 32-bits for convention c subprogram
1065         pointers in -gnatdm mode, only if real vms target.
1066
1067         * sem_attr.adb (Analyze_Access_Attribute): Use new flag
1068         Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
1069         (Analyze_Access_Attribute,Attribute_Address): Remove checks for
1070         violations of the No_Implicit_Dynamic_Code restriction.
1071         (Resolve_Attribute, case 'Access): If designated type of context is a
1072         limited view, use non-limited view when available. If the non-limited
1073         view is an unconstrained array, this enforces consistency requirements
1074         in 3.10.2 (27).
1075         (Layout_Type): For an access type whose designated type is a limited
1076         view, examine its declaration to determine if it is an unconstrained
1077         array, and size the access type accordingly.
1078
1079 2007-12-13  Vincent Celier  <celier@adacore.com>
1080
1081         * gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when
1082         object directory of main project does not exist.
1083         On VMS, correctly set then environment variable for the source
1084         directories.
1085
1086 2007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
1087
1088         * g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when
1089         set to True this procedure will create the value of type REG_EXPAND_SZ.
1090         It was only possible to create REG_SZ values before.
1091
1092 2007-12-13  Robert Dewar  <dewar@adacore.com>
1093
1094         * g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads,
1095         g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads,
1096         namet-sp.adb, namet-sp.ads: New files.
1097
1098         * g-speche.adb: Use generic routine in g-spchge
1099
1100         * s-wchcnv.ads, s-wchcnv.adb: 
1101         Minor code cleanup (make formal type consistent with spec)
1102
1103         * namet.adb: Update comments.
1104
1105         * par-endh.adb (Evaluate_End_Entry): Use new
1106         Namet.Sp.Is_Bad_Spelling_Of function
1107
1108         * par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function
1109
1110         * sem_aggr.adb (Resolve_Record_Aggregate): If a component of an
1111         ancestor is an access type initialized with a box, set its type
1112         explicitly, for use in subsequent expansion.
1113         (Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of
1114         function
1115
1116 2007-12-13  Robert Dewar  <dewar@adacore.com>
1117
1118         * g-spipat.adb (Break): Fix accessibility error (vsn taking not null
1119         access Vstring)
1120
1121 2007-12-13  Robert Dewar  <dewar@adacore.com>
1122
1123         * inline.adb (Back_End_Cannot_Inline): Use new flag
1124         Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
1125
1126         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag
1127         Has_Pragma_Inline_Always instead.
1128         of obsolete function Is_Always_Inlined
1129         (Build_Body_To_Inline): Same change
1130         (Cannot_Inline): Same change
1131         Do not give warning on exception raise in No_Return function
1132
1133         * sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited
1134         component has two inconsistent component clauses in the same record
1135         representation clause, favor the message that complains about
1136         duplication rather than inconsistency.
1137         Update comments.
1138         (Record_Representation_Clause): Do not warn on missing component
1139         clauses for inherited components of a type extension.
1140         (Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for
1141         an overloadable item if it is a pragma that can apply to multiple
1142         overloadable entities (e.g. Inline) because a pragma cannot be on
1143         more than one chain at a time.
1144         (Validate_Unchecked_Conversion): Add code to warn on unchecked
1145         conversion where one of the operands is Ada.Calendar.Time.
1146         (Analyze_Attribute_Definition_Clause): Fix typo in error message.
1147         For now, ignore Component_Size clause on VM targets, as done for
1148         pragma Pack.
1149
1150 2007-12-13  Emmanuel Briot  <briot@adacore.com>
1151             Vincent Celier  <celier@adacore.com>
1152
1153         * prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a
1154         string
1155         (Must_Check_Configuration, Default_Language_Is_Ada): new flags in
1156         prj.ads
1157         (Hash): Move instantiation of System.HTable.Hash from spec to body
1158         (prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive
1159         systems, since we do not need to recompute the Name_Id for the canonical
1160         file name.
1161         (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
1162         as a parameter. This parameter is in fact always "ada" in all calls, and
1163         we were doing 160560 extra calls to Name_Find to convert it to Name_Ada
1164         while loading a project with 40000 files
1165
1166         * prj-attr.adb: Fix name of attribute Dependency_Driver
1167         Change the kind of indexing for attribute Root
1168
1169         * prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of
1170         variables already declared, in case constructions.
1171
1172         * prj-env.adb (Initialize): Reset Current_Source_Path_File and
1173         Current_Object_Path_File to No_Path.
1174
1175         * prj-ext.adb (Initialize_Project_Path): In multi language mode, use
1176         ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty.
1177
1178         * prj-makr.adb: new parameter Current_Dir
1179
1180         * prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for
1181         Ada sources when language is not Ada.
1182         Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
1183         (Find_Excluded_Sources, Find_Explicit_Sources): new subprograms
1184         (Must_Check_Configuration, Default_Language_Is_Ada): new flags.
1185         (Locate_Directory): Always resolve links when computing Canonical_Path
1186         (Look_For_Sources): Make sure that Name_Buffer contains the file name
1187         in Source_Files before checking for the presence of a directory
1188         separator.
1189         Optimize calls to Name_Find when on case sensitive systems.
1190         (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
1191         as a parameter.
1192         (Prj.Nmsc.Check): new parameter Current_Dir
1193         (Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They
1194         cannot be empty and the spec suffix cannot be the same as the body or
1195         separate suffix.
1196         (Get_Unit): When a file name can be of several unit kinds (spec, body or
1197         subunit), always consider the longest suffix.
1198         (Check_Configuration): Do not issue an error if there is no compiler
1199         for a language. Just issue a warning and ignore the sources for the
1200         language.
1201         (Check_Library_Attributes): Only check Library_Dir if Library_Name is
1202         not empty.
1203         (Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity
1204         (Unit_Exceptions): New hash table
1205         (Check_Naming_Schemes): Check if a file that could be a unit because of
1206         the naming scheme is not in fact a source because there is an exception
1207         for the unit.
1208         (Look_For_Sources): Put the unit exceptions in hash table
1209         Unit_Exceptions
1210         (Get_Unit_Exceptions): Give initial value No_Source to local variable
1211         Other_Part to avoid exception when code is compiled with validity
1212         checking.
1213         (Get_Sources_From_File): Check that there is no directory information
1214         in the file names.
1215         (Look_For_Sources): Check that there is no directory information in the
1216         list of file names in Source_Files.
1217         (Look_For_Sources): In multi-language mode, do not allow exception file
1218         names that are excluded.
1219         (Excluded_Sources_Htable): New hash table
1220         (Search_Directories.Check_File): New procedure to simplify
1221         Search_Directories.
1222         (Search_Directories): Do not consider excluded sources
1223         (Look_For_Sources): Populate Excluded_Sources_Htable before calling
1224         Search_Directories.
1225         (Get_Exceptions): Set component Lang_Kind of Source_Data
1226         (Get_Unit_Exceptions): Ditto
1227         (Search_Directories): Ditto
1228
1229         * prj-pars.adb: new parameter Current_Dir
1230
1231         * prj-part.ads, prj-part.adb: 
1232         Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
1233         (Opt.Follow_Links_For_Dirs): New flag
1234         (Project_Path_Name_Of): Cache information returned by this routine as
1235         Locate_Regular_File is a costly routine. The code to output a log
1236         information and the effective call to Locate_Regular_File is now
1237         factorized into a routine (code clean-up).
1238         (Parse, Parse_Single_Project): new parameter Current_Dir
1239         When main project file cannot be found, indicate in the error
1240         message the project path that was used to do the search.
1241
1242         * prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag
1243         (Prj.Proc.Process*): new parameter Current_Dir
1244
1245         * switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files
1246
1247 2007-12-13  Bob Duff  <duff@adacore.com>
1248
1249         * restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New
1250         procedure to be called from the back end to check the
1251         No_Implicit_Dynamic_Code restriction.
1252
1253 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
1254
1255         * rtsfind.adb (Check_CRT): Take into account RTE_Available_Call
1256         Fixes another case where RTE_Available_Call was ignored instead of being
1257         taken into account.
1258         (Load_Fail): Ditto.
1259
1260         * rtsfind.ads: Add new entries.
1261
1262 2007-12-13  Robert Dewar  <dewar@adacore.com>
1263
1264         * g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads,
1265         g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files.
1266
1267         * scn.adb: Implement BOM recognition
1268
1269 2007-12-13  Thomas Quinot  <quinot@adacore.com>
1270             Ed Schonberg  <schonberg@adacore.com>
1271
1272         * sem_ch10.adb (Check_Private_Child_Unit): A non-private library level
1273         subprogram body that acts as its own spec may not have a non-private
1274         WITH clause on a private sibling.
1275         (Build_Unit_Name): If the parent unit in the name in a with_clause on a
1276         child unit is a renaming, create an implicit with_clause on that
1277         parent, and not on the unit it renames, to prevent visibility errors
1278         in the current unit.
1279
1280 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
1281
1282         * sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram
1283         renaming declaration, use the Slocs of the formal parameters from the
1284         declaration of the formal subprogram when creating the formal parameter
1285         entities in the renaming declaration.
1286         (Analyze_Formal_Type_Declaration): Change the placement of the error
1287         message concerning illegal known discriminants. It is now posted on the
1288         type rather than on the first discriminant. This change ensures early
1289         error report.
1290         (Freeze_Subprogram_Body): If the generic subprogram is nested within
1291         the package body that contains the instance, do not generate an
1292         out-of-place freeze node for the enclosing package.
1293         (Collect_Previous_Instantiations): Ignore internal instantiations
1294         generated for formal packages.
1295         (Validate_Derived_Type_Instance): Add a check that when a formal
1296         derived type is Known_To_Have_Preelab_Init then the actual type must
1297         have preelaborable initialization, and issue an error when this
1298         condition is violated.
1299
1300 2007-12-13  Robert Dewar  <dewar@adacore.com>
1301
1302         * s-imenne.adb, s-imenne.ads: New files.
1303
1304         * s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb, 
1305         s-imgdec.ads, s-imgenu.ads, s-imgint.adb, s-imgint.ads, s-imglld.adb, 
1306         s-imglld.ads, s-imglli.adb, s-imglli.ads, s-imgllu.adb, s-imgllu.ads, 
1307         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwch.adb, 
1308         s-imgwch.ads: New calling sequence for Image routines to avoid sec
1309         stack usage.
1310
1311 2007-12-13  Javier Miranda  <miranda@adacore.com>
1312             Ed Schonberg  <schonberg@adacore.com>
1313
1314         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Avoid
1315         generation of spurious error if parent is an interface type; caused
1316         because predefined primitive bodies will be generated later by
1317         Freeze_Record_Type.
1318         (Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init
1319         flag.
1320         (Derive_Subprograms): Handle derivations of predefined primitives
1321         after all the user-defined primitives to ensure that they are
1322         found in proper order in instantiations.
1323         (Add_Interface_Tag_Components, Inherit_Components): Update occurrences
1324         of Related_Interface to Related_Type.
1325         (Record_Type_Declaration): Minor reordering of calls to decorate the
1326         Tag component because the entity must have set its Ekind attribute
1327         before setting its Is_Tag attribute.
1328         (Analyze_Subtype_Declaration): In the case of subtypes with
1329         Private_Kind, inherit Known_To_Have_Preelab_Init from the parent.
1330
1331 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
1332             Ed Schonberg  <schonberg@adacore.com>
1333
1334         * sem_ch4.adb (Analyze_Selected_Component): Include the requeue
1335         statement to the list of contexts where a selected component with a
1336         concurrent tagged type prefix should yield a primitive operation.
1337         (Find_Primitive_Operation): Handle case of class-wide types.
1338         (Analyze_Overloaded_Selected_Component): If type of prefix is
1339         class-wide, use visible components of base type.
1340         (Resolve_Selected_Component): Ditto.
1341         (Try_Primitive_Operation, Collect_Generic_Type_Ops): If the type is a
1342         formal of a generic subprogram. find candidate interpretations by
1343         scanning the list of generic formal declarations.:
1344         (Process_Implicit_Dereference_Prefix): If the prefix has an incomplete
1345         type from a limited_with_clause, and the full view is available, use it
1346         for subsequent semantic checks.
1347         (Check_Misspelled_Selector): Use Namet.Sp.Is_Bad_Spelling_Of function
1348         (Find_Primitive_Operation): New function.
1349         (Analyze_Overloaded_Selected_Component): insert explicit dereference
1350         only once if several interpretations of the prefix yield an access type.
1351         (Try_Object_Operation): Code and comment cleanup.
1352         (Analyze_Selected_Component): Reorder local variables. Minot comment and
1353         code reformatting. When the type of the prefix is tagged concurrent, a
1354         correct interpretation might be available in the primitive and
1355         class-wide operations of the type.
1356
1357 2007-12-13  Robert Dewar  <dewar@adacore.com>
1358             Ed Schonberg  <schonberg@adacore.com>
1359
1360         * sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for
1361         renaming entry as subprogram using rename-as-body if subprogram spec
1362         frozen.
1363         (Use_One_Type): The clause is legal on an access type whose designated
1364         type has a limited view.
1365         (Find_Direct_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
1366         (Find_Expanded_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
1367         (Analyze_Renamed_Primitive_Operation): new procedure to determine the
1368         operation denoted by a selected component.
1369         (Analyze_Renamed_Entry): Resolve the prefix of the entry name, because
1370         it can be an expression, possibly overloaded, that returns a task or
1371         an access to one.
1372
1373 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
1374             Gary Dismukes  <dismukes@adacore.com>
1375
1376         * sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a
1377         requeue statement is dispatching. Do not emit an error when the name is
1378         not an entry and the context is a dispatching select. Add code to
1379         perform subtype conformance between the formals of the current entry
1380         and those of the target interface primitive.
1381         (Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_
1382         Timed_Entry_Call): Analyze the triggering statement as the first step of
1383         the processing. If this is a dispatching select, postpone the analysis
1384         of all select statements until the Expander transforms the select. This
1385         approach avoids generating duplicate identifiers after the Expander has
1386         replicated some of the select statements. In case the Expander is
1387         disabled, perform regular analysis.
1388         (Check_Triggering_Statement): New routine.
1389         (Analyze_Requeue): Exclude any interpretations that are not entries when
1390         checking overloaded names in a requeue. Also test type conformance for
1391         matching interpretations rather than requiring subtype conformance at
1392         that point to conform with the RM's resolution rule for requeues.
1393
1394 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
1395
1396         * sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an
1397         inherited operation is a defaulted tag-indeterminate call, and there is
1398         a statically tagged actual, use the static tag as a controlling actual
1399         for the defaulted actual.
1400
1401 2007-12-13  Geert Bosch  <bosch@adacore.com>
1402
1403         * sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static
1404         context, so do not call Check_Non_Static_Context.
1405
1406 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
1407
1408         * sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check
1409         whether formal E is an entity which may have parameters.
1410
1411 2007-12-13  Bob Duff  <duff@adacore.com>
1412             Javier Miranda  <miranda@adacore.com>
1413             Robert Dewar  <dewar@adacore.com>
1414
1415         * sem_util.ads, sem_util.adb (Is_Concurrent_Interface): New routine.
1416         (Set_Convention): New procedure to set the Convention flag, and in
1417         addition make sure the Favor_Top_Level flag is kept in sync (all
1418         foreign-language conventions require Favor_Top_Level = True).
1419         (Collect_Abstract_Interfaces): Update occurrences of Related_Interface
1420         to Related_Type.
1421         (Collect_Interfaces_Info): Minor update to handle the two secondary
1422         dispatch tables. Update occurrence of Related_Interface to Related_Type.
1423         (Generate_Parent_Ref): Add parameter to specify entity to check
1424         (Is_Preelaborable_Expression): Allow the name of a discriminant to
1425         initialize a component of a type with preelaborable initialization.
1426         This includes the case of a discriminal used in such a context.
1427         (Is_Dependent_Component_Of_Mutable_Object): Take into account the
1428         latest Ada 2005 rules about renaming and 'Access of
1429         discriminant-dependent components.
1430         (Check_Nested_Access): Add handling when there are no enclosing
1431         subprograms (e.g. case of a package body).
1432         (Find_Parameter_Type): Factor routine from several other compiler files.
1433         Remove routine from Find_Overridden_Synchronized_Primitive.
1434
1435 2007-12-13  Thomas Quinot  <quinot@adacore.com>
1436
1437         * sinput.adb (Get_Source_File_Index): Add assertion to guard against
1438         an invalid access to an uninitialized slot in the
1439         Source_File_Index_Table.
1440
1441 2007-12-13  Thomas Quinot  <quinot@adacore.com>
1442
1443         * sinput-l.adb (Load_File): Disable style checks when preprocessing.
1444
1445 2007-12-13  Bob Duff  <duff@adacore.com>
1446
1447         * s-soflin.ads: Apply new pragma Favor_Top_Level to all
1448         access-to-subprogram types in this package.
1449
1450 2007-12-13  Olivier Hainque  <hainque@adacore.com>
1451
1452         * s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant
1453         with Stack_Grows_Down in System.Parameters. Rename Array_Address into
1454         Stack_Overlay_Address and document that we are using an internal
1455         abstraction.
1456         (Byte_Size, Unsigned_32_Size): Remove, now useless.
1457         (Pattern_Type, Bytes_Per_Pattern): New subtype and constant, to be used
1458         consistently throughout the various implementation pieces.
1459
1460         * s-stausa.adb (Stack_Slots): New type, abstraction for the stack
1461         overlay we are using to fill the stack area with patterns.
1462         (Top_Slot_Index_In, Bottom_Slot_Index_In): Operations on Stack_Slots.
1463         (Push_Index_Step_For, Pop_Index_Step_For): Likewise.
1464         (Fill_Stack, Compute_Result): Use the Stack_Slots abstraction.
1465
1466 2007-12-13  Robert Dewar  <dewar@adacore.com>
1467
1468         * s-stoele.adb ("mod"): mod negative value raises Constraint_Error
1469
1470 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
1471
1472         * s-tassta.adb: 
1473         (Create_Task): Take into account tasks created by foreign threads.
1474         Code clean up: use constants instead of hard coded values.
1475
1476 2007-12-13  Robert Dewar  <dewar@adacore.com>
1477
1478         * styleg.adb (Check_Comment): More liberal rules for comment placement
1479
1480 2007-12-13  Olivier Hainque  <hainque@adacore.com>
1481
1482         * tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use
1483         of Procedure Value instead of Frame Pointer as the invocation
1484         identifier associated with the instruction pointer in each traceback
1485         entry.
1486
1487         * g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For,
1488         TB_Entry_For): Revert back to use of Procedure Value instead of Frame
1489         Pointer as the invocation identifier passed to tbk$symbolize.
1490
1491         * s-traent-vms.ads, s-traent-vms.adb
1492         (Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of
1493         Procedure Value instead of Frame Pointer as the invocation identifier
1494         passed to tbk$symbolize.
1495
1496 2007-12-13  Robert Dewar  <dewar@adacore.com>
1497
1498         * tbuild.ads, tbuild.adb: 
1499         Fix location of flag for unrecognized pragma message
1500
1501 2007-12-13  Robert Dewar  <dewar@adacore.com>
1502
1503         * treepr.ads, treepr.adb: (pl): implement use of positive value
1504         shorthands
1505
1506 2007-12-13  Robert Dewar  <dewar@adacore.com>
1507
1508         * xeinfo.adb: Remove warnings
1509         * xnmake.adb: Remove warnings
1510         * xsinfo.adb: Remove warnings
1511         * xtreeprs.adb: Remove warnings
1512         * xsnames.adb: Remove warnings
1513
1514         * a-ngcoar.adb: Fix typo.
1515         * s-interr.adb: Minor reformatting
1516         * env.c: Minor reformatting.
1517         * g-bytswa.adb: Minor reformatting.
1518         * g-rannum.ads: Minor documentation improvements
1519         * s-tasinf-mingw.adb: Minor header fix
1520         * a-clrefi.adb: Minor reformatting
1521         * g-sttsne.ads: Minor documentation improvement
1522         * g-sttsne-locking.ads: Minor documentation improvement
1523         * g-soliop-solaris.ads: Minor documentation improvement
1524         * g-soliop-mingw.ads: Minor documentation improvement
1525         * g-soliop.ads: Minor documentation improvement
1526         * exp_aggr.ads: Minor reformatting
1527         * debug.adb: Add documentation for the gprbuild debug flags
1528         * exp_ch2.adb: Use Nkind_In to simplify code throughout
1529         * exp_pakd.adb: Minor reformatting
1530
1531         * g-altive.ads, g-alleve.adb: Remove assertions.
1532         Add comment about minor differences between targets regarding
1533         floating-point operations.
1534
1535         * g-thread.adb: Remove pragma unreferenced.
1536         * lib.ads: Minor reformatting
1537         * par-ch9.adb: Minor reformatting of error messages
1538         * sem_case.adb: Minor reformatting
1539         * s-fileio.adb: Minor reformattinng
1540         * s-vmexta.ads: Minor typo
1541         * vxaddr2line.adb: 
1542         Take into account 'Success' value as per new GNAT warning.
1543
1544 2007-12-13  Vincent Celier  <celier@adacore.com>
1545
1546         * a-direct.adb (Create_Path): Always take '/' as a directory separator,
1547         even on Windows
1548
1549 2007-12-13  Robert Dewar  <dewar@adacore.com>
1550             Bob Duff  <duff@adacore.com>
1551
1552         * gnat_ugn.texi: Dcoument new rules for style check comment alignment
1553         Document that suffixes may be terminations of each others
1554         Add doc for -gnatw.a and -gnatw.A
1555         Document gnatbind -Wx switch
1556         Document BOM recognition
1557         Document pragma Implemented_By_Entry.
1558         Document new units.
1559
1560         * gnat_rm.texi: (Favor_Top_Level): Document new pragma.
1561         Add doc for pragma Unreferenced suppressing no entities referenced msg
1562         Add documentation of GNAT.Directory_Operations.Iteration
1563         Add documentation of GNAT.Random_Numbers
1564         Add documentation for pragma Shared.
1565         Correct documentation for Bit_Order
1566         Add documentation for the Pool_Address attribute.
1567         Fix and improve documentation of pragma machine_attribute.
1568         New pragma Fast_Math
1569         Document BOM recognition
1570
1571         * vms_data.ads: Add entries for -gnatw.a -gnatw.A
1572         Add /Wide_Character_Encoding for binder
1573         Add qualifier for the new gnatpp option --no-separate-loop-then
1574
1575 2007-12-13  Matthew Heaney  <heaney@adacore.com>
1576
1577         * a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document
1578         which generic formal operations are called for each operation.
1579
1580 2007-12-13  Olivier Hainque  <hainque@adacore.com>
1581
1582         * tb-gcc.c (uw_data_t, trace_callback): Only define if not GCC-SJLJ eh.
1583         (__gnat_backtrace): Early return 0 if using GCC-SJLJ eh.
1584
1585 2007-12-13  Emmanuel Briot  <briot@adacore.com>
1586
1587         * s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute
1588         Reference_Dir unless we actually need it.
1589
1590 2007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
1591             Tristan Gingold  <gingold@adacore.com>
1592
1593         * g-socthi-vms.ads (Fd_Set_Access): make it 32-bit.
1594
1595         * s-osprim-vms.adb,
1596         a-calend-vms.adb: Remove pragma warning off and add pragma
1597         unreferenced.
1598
1599 2007-12-13  Robert Dewar  <dewar@adacore.com>
1600
1601         * impunit.adb: Add entries for missing units
1602
1603         * Makefile.rtl: Add new run-time units.
1604
1605         * Make-lang.in:  Update dependencies.
1606
1607 2007-12-13  Bob Duff  <duff@adacore.com>
1608
1609         * itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram
1610         types, set Can_Use_Internal_Rep appropriately, based on
1611         Always_Compatible_Rep_On_Target.
1612
1613 2007-12-13  Gary Dismukes  <dismukes@adacore.com>
1614             Arnaud Charlet  <charlet@adacore.com>
1615
1616         * make.adb (Scan_Make_Arg): Add test for -aamp_target switch, passing
1617         it to the front end and setting the aamp_target environment variable
1618         to the switch's argument to ensure that gnaampbind and gnaamplink will
1619         take the specified library into account.
1620         (Make): Only set Check_Object_Consistency to False for JVM, not for CIL
1621         target, since the CIL compiler supports an "object" file (.il files).
1622
1623 2007-12-13  Vincent Celier  <celier@adacore.com>
1624
1625         * symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure
1626         (Process.H): Remove variable. Replace Read_Half (H) with Skip_Half.
1627
1628 2007-12-13  Geert Bosch  <bosch@adacore.com>
1629
1630         * s-parame-vxworks.adb: 
1631         Update comments to reflect usage of this package by Nucleus.
1632
1633 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
1634
1635         * i-vxwork.ads: Kill new warning on Convention C, since changing the
1636         spec would break code.
1637
1638         * i-forbla-unimplemented.ads, vx_stack_info.c: New files.
1639
1640         * system-vxworks-alpha.ads: Removed.
1641
1642 2007-12-10  Eric Botcazou  <ebotcazou@adacore.com>
1643
1644         * ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around.
1645
1646 2007-12-09  Samuel Tardieu  <sam@rfc1149.net>
1647
1648         PR ada/34366
1649         * sem_ch3.adb (Designates_T): New function.
1650         (Mentions_T): Factor reusable part of the logic into Designates_T.
1651         Consider non-access parameters and access and non-access result.
1652         (Check_Anonymous_Access_Components): Set ekind of anonymous access to
1653         E_Subprogram_Type to E_Anonymous_Access_Subprogram_Type.
1654
1655         * einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type.
1656
1657 2007-12-07  Ludovic Brenta  <ludovic@ludovic-brenta.org>
1658
1659         PR ada/34361
1660         * mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect
1661         the new implementation of target-specific calls.
1662
1663 2007-12-07  Olivier Hainque  <hainque@adacore.com>
1664
1665         * decl.c (gnat_to_gnu_entity) <case E_Access_Type>: When computing
1666         the designated full view, only follow a second level Full_View link
1667         for Non_Limited_Views of from_limited_with references.
1668         
1669 2007-12-07  Samuel Tardieu  <sam@rfc1149.net>
1670
1671         PR ada/15805
1672         * sem_ch6.adb (Process_Formals): Prevent an access type formal
1673         to be initialized with an access to constant object.
1674
1675         * sem_ch3.adb (Analyze_Object_Declaration): Signal an error
1676         when an access to constant is used to initialize an access
1677         value.
1678
1679         PR ada/21346
1680         * a-direct.adb (Compose): Containing_Directory can be an empty string.
1681
1682 2007-12-07  Olivier Hainque  <hainque@adacore.com>
1683
1684         PR ada/34173
1685         * decl.c (gnat_to_gnu_entity) <case E_Array_Type>: When setting
1686         the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if
1687         this is from an alignment clause on the GNAT entity.
1688         * utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN
1689         to distinguish the case where we set it from the type's alignment.
1690         When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate
1691         whether this alignment was set from an explicit alignment clause.
1692
1693 2007-12-06  Eric Botcazou  <ebotcazou@adacore.com>
1694
1695         * decl.c (make_packable_type): Revert last change.
1696         (gnat_to_gnu_field): Avoid setting size and position multiple times.
1697         * utils.c (finish_record_type): Retrieve the real name of the type.
1698
1699 2007-12-05  Eric Botcazou  <ebotcazou@adacore.com>
1700
1701         * trans.c (lvalue_required_p): Take base node directly instead
1702         of its parent.  Rename second parameter to 'gnu_type'.
1703         <N_Indexed_Component>: Return 0 if the node isn't the prefix.
1704         <N_Slice>: Likewise.
1705         (Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue.
1706         Adjust calls to lvalue_required_p.
1707
1708 2007-12-05  Samuel Tardieu  <sam@rfc1149.net>
1709
1710         PR ada/21489
1711         * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type
1712         parameters of an entry call.
1713
1714 2007-12-03  Robert Dewar <dewar@adacore.com>
1715             Samuel Tardieu  <sam@rfc1149.net>
1716
1717         PR ada/34287
1718         * sem_util.adb (Safe_To_Capture_Value): Do not capture values
1719         of variables declared in a library-level package.
1720     
1721 2007-12-02  Samuel Tardieu  <sam@rfc1149.net>
1722
1723         * clean.adb (Clean_Library_Directory): Use Empty_String'Access intead
1724         of Empty_String'Unchecked_Access.
1725
1726         * Makefile.in: Add support for sh4-linux.
1727
1728         * system-linux-sh4.ads: New file.
1729
1730 2007-12-01  Kostik Belousov  <kostikbel@ukr.net>
1731
1732         PR ada/33722
1733         * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
1734         and its argument must not be free()ed.
1735
1736 2007-11-29  Eric Botcazou  <ebotcazou@adacore.com>
1737
1738         * decl.c (make_packable_type): Retrieve the real name of the type.
1739         (maybe_pad_type): Simplify similar code.
1740
1741 2007-11-28  Samuel Tardieu  <sam@rfc1149.net>
1742
1743         PR ada/15804
1744         * par-ch3.adb (P_Variant_Part): Signal an error when anything other
1745         than an identifier is used after "case" in a variant_part.
1746
1747         PR ada/17318
1748         * par-ch4.adb (Is_Parameterless_Attribute): New map.
1749         (P_Name, Scan_Apostrophe block): Parse left parenthesis following
1750         attribute name or not depending on the new map.
1751
1752         * sem-attr.adb (Analyze_Attribute): Parameterless attributes
1753         returning a string or a type will not be called with improper
1754         arguments.
1755
1756         * sem-attr.ads (Attribute_Class_Array): Move to snames.ads.
1757
1758         * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads.
1759
1760         PR ada/32792
1761         * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause):
1762         Signal an error when attribute argument is a fixed-point value of
1763         an unknown type.
1764
1765         PR ada/22559
1766         * sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on
1767         a derived ordinary fixed point type.
1768
1769         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute
1770         RM_Size when a Small clause is found.
1771
1772 2007-11-26  Andreas Krebbel  <krebbel1@de.ibm.com>
1773
1774         PR 34081/C++
1775         * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu):
1776         Pass 'false' for the new allocate_struct_function parameter.
1777         * utils.c (build_function_stub): Likewise.
1778
1779 2007-11-25  Richard Guenther  <rguenther@suse.de>
1780
1781         * utils.c (gnat_pushlevel): Use BLOCK_CHAIN.
1782         (gnat_poplevel): Likewise.
1783
1784 2007-11-25  Eric Botcazou  <ebotcazou@adacore.com>
1785
1786         * decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the type has
1787         strict alignment, no alignment clause and a known static size, cap
1788         the type alignment to the greatest power of 2 factor of the size.
1789         (gnat_to_gnu_field): If the field has a component clause, is aliased
1790         or of a type with strict alignment, require that its size be equal to
1791         that of the type.
1792         (validate_size): Use the type size as the minimum size for a type with
1793         strict alignment.
1794
1795 2007-11-23  Samuel Tardieu  <sam@rfc1149.net>
1796
1797         * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb,
1798         s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
1799         s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb:
1800         Use 'Access instead of 'Unchecked_Access in second and third
1801         arguments of pthread_sigmask.
1802
1803 2007-11-23  Eric Botcazou  <ebotcazou@adacore.com>
1804
1805         * decl.c (ceil_alignment): New function.
1806         (gnat_to_gnu_entity): Use it to set the alignment on atomic types.
1807         (make_packable_type): Likewise.
1808
1809 2007-11-22  Olivier Hainque  <hainque@adacore.com>
1810
1811         * trans.c (gnat_to_gnu) <case N_Free_Statement>: Reformat lines
1812         to fit in 80 columns.
1813
1814 2007-11-21  Aurelien Jarno <aurelien@aurel32.net>
1815
1816         * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
1817         * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.
1818
1819 2007-11-19  Eric Botcazou  <ebotcazou@adacore.com>
1820
1821         PR ada/34098
1822         * misc.c (gnat_adjust_rli): Delete.
1823         (gnat_init): Do not initialize the translation code here.
1824         Do not call set_lang_adjust_rli.
1825         * trans.c (init_code_table): Make static.
1826         (gnat_init_stmt_group): Delete.
1827         (gigi): Initialize the translation code entirely here.
1828         Emit debug info for the common types here instead of...
1829         * utils.c (gnat_init_decl_processing): ...here.
1830         * gigi.h (init_code_table): Delete.
1831         (gnat_init_stmt_group): Likewise.
1832
1833 2007-11-16  Olivier Hainque  <hainque@adacore.com>
1834
1835         * utils2.c (build_call_alloc_dealloc) <if gnu_obj>: Move the code
1836         retrieving an allocator return value from a super-aligned address from
1837         here to ...
1838         * trans.c (gnat_to_gnu) <case N_Free_Statement>: ... here, and don't
1839         expect a super-aligned address for a fat or thin pointer.
1840         
1841 2007-11-14  Eric Botcazou  <ebotcazou@adacore.com>
1842
1843         * trans.c (call_to_gnu): Always set the source location on the call
1844         expression.  If the function returns-by-target, also set it on the
1845         address expression.
1846
1847 2007-11-14  Samuel Tardieu  <sam@rfc1149.net>
1848
1849         * adaint.c, init.c, initialize.c, link.c: Remove system-specific
1850         sections of non-supported Interix target.
1851
1852         * s-osinte-interix.ads: Removed.
1853
1854         * i-cstrin.ads (chars_ptr): Make it a C convention type.
1855
1856 2007-11-13  Samuel Tardieu  <sam@rfc1149.net>
1857
1858         * a-tasatt.adb: Add a comment at the beginning of the package
1859         explaining why in general 'Unchecked_Access must be used instead
1860         of 'Access.
1861
1862         * sem_prag.adb (Process_Convention): Move the test for the
1863         entity on which the Convention pragma applies down to also
1864         forbid pragma Convention on enumeration literals reached
1865         through renamings.
1866
1867 2007-11-10  Samuel Tardieu  <sam@rfc1149.net>
1868
1869         * a-tasatt.adb: Revert previous change for this file as it will
1870         generate an error when this package is instantiated from a
1871         local context.
1872
1873 2007-11-07  Samuel Tardieu  <sam@rfc1149.net>
1874
1875         * a-tasatt.adb: Type Wrapper should be declared in comment instead
1876         of already declared type Node_Access.
1877         Use 'Access instead of 'Unchecked_Access when applicable. Local
1878         lifetime is the one of the package.
1879         (Set_Value): W is allocated on the heap.
1880
1881         * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
1882         applicable.
1883         (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
1884         access type.
1885         (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
1886         access type.
1887
1888         * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
1889         applicable.
1890         (elaboration code): Timer_Queue lifetime is the one of the
1891         package.
1892
1893         * tracebak.c (i386 alternative): Remove useless comparaison
1894         which is always false; LOWEST_ADDRESS is 0 and is never greater
1895         than an unsigned integer.
1896
1897         * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
1898         embedded check for "Ada_Version >= Ada_05".
1899
1900 2007-11-07  Olivier Hainque  <hainque@adacore.com>
1901
1902         * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
1903         craft and expand comment.
1904
1905 2007-11-01  Eric Botcazou  <ebotcazou@adacore.com>
1906
1907         * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
1908
1909 2007-10-23  Eric Botcazou  <ebotcazou@adacore.com>
1910
1911         * misc.c (gnat_handle_option): Replace call to abort with
1912         call to gcc_unreachable.
1913         (gnat_init): Likewise.
1914         (gnat_expand_expr): Likewise.
1915         (fp_prec_to_size): Likewise.
1916         (fp_size_to_prec): Likewise.
1917
1918 2007-10-23  Richard Guenther  <rguenther@suse.de>
1919
1920         PR bootstrap/33608
1921         * tracebak.c: #undef abort after including system.h.
1922
1923 2007-10-20  Danny Smith <dannysmith@users.sourceforge.net>
1924
1925         * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
1926         s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
1927         for win32 targets.
1928         (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
1929
1930 2007-10-15  Eric Botcazou  <ebotcazou@adacore.com>
1931
1932         * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
1933         Set the protection status of the guard page based on the value of On.
1934
1935         * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
1936
1937         * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
1938         (Exit_Task): Pass False to Hide_Yellow_Zone.
1939
1940 2007-10-15  Robert Dewar  <dewar@adacore.com>
1941
1942         * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 
1943         s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
1944         a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb, 
1945         checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb, 
1946         freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb, 
1947         gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb, 
1948         mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb, 
1949         prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb, 
1950         sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb, 
1951         s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
1952         uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb, 
1953         a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb, 
1954         a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb, 
1955         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb, 
1956         a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb, 
1957         a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
1958         Minor reformatting.
1959         Add Unreferenced and Warnings (Off) pragmas for cases of
1960         variables modified calls where they are IN OUT or OUT parameters and
1961         the resulting values are not subsequently referenced. In a few cases,
1962         we also remove redundant code found by the new warnings.
1963
1964         * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads, 
1965         sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
1966         sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
1967         sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
1968         warning controlled by -gnatw.o that warns on cases of out parameter
1969         values being ignored.
1970
1971 2007-10-15  Geert Bosch  <bosch@adacore.com>
1972
1973         * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
1974
1975         * expect.c: Initial port to arm-mentor-nucleus.
1976         Use kill for __gnat_kill() on VMS.
1977
1978 2007-10-15  Emmanuel Briot  <briot@adacore.com>
1979
1980         * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
1981         value.
1982         (Xref_Record): Change type for Line, since in the case of a reference to
1983         a predefined entity (as happens for array index types), the line is set
1984         to 0.
1985         Add support for parsing multiple array index types info, or
1986         multiple inherited interfaces info. This information cannot be stored
1987         in Xref_Entity_Record, which only supports a single instance of Tref_*,
1988         and is therefore stored in the list of references instead. It has a
1989         special treatement later on in tools that use this information.
1990
1991 2007-10-15  Tristan Gingold  <gingold@adacore.com>
1992
1993         * debug.adb: Document use of -gnatd.a and -gnatd.I
1994
1995         * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
1996
1997 2007-10-15  Javier Miranda  <miranda@adacore.com>
1998
1999         * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
2000         Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
2001         care of access to class-wide interface types plus removal of bizarre
2002         conversion of tagged object to access type (reported by Gary
2003         Dismukes). After this patch there is no need to perform any
2004         additional management on these nodes in Expand_Interface_Actuals.
2005
2006         * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
2007         that handles use of 'Access and 'Unchecked_Access applied to
2008         actuals covering interface types. Such code is now
2009         centralized in Expand_N_Attribute_Reference.
2010
2011 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
2012
2013         * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
2014         of tagged types whose ultimate ancestor is a CPP type.
2015         (Freeze_Array_Type): For a packed array type, generate an initialization
2016         procedure if the type is public, to handle properly a client that
2017         specifies Normalize_Scalars.
2018
2019 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
2020
2021         * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
2022         inside a generic body, retrieve the full view of the entry family
2023         discrete subtype if available.
2024
2025 2007-10-15  Thomas Quinot  <quinot@adacore.com>
2026
2027         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
2028         attempt to generate stubs for hidden primitive operations.
2029
2030 2007-10-15  Vincent Celier  <celier@adacore.com>
2031
2032         * mlib-tgt-specific.adb (Support_For_Libraries): New function,
2033         returning None, used when there is no platform specific body for
2034         MLib.Tgt.Specific.
2035
2036 2007-10-15  Bob Duff  <duff@adacore.com>
2037
2038         * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
2039         (passing'Unrestricted_Access of nested subprograms to Sort) with use of
2040         the generic Heap_Sort_G, in order to avoid trampolines.
2041
2042 2007-10-15  Vasiliy Fofanov  <fofanov@adacore.com>
2043             Jose Ruiz  <ruiz@adacore.com>
2044
2045         * vx_stack_info.c: New file.
2046
2047         * i-forbla-unimplemented.ads: New file.
2048
2049         * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
2050         for unsupported configurations; use it on VMS targets instead of the
2051         real one.
2052         (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
2053         vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
2054         used by VxWorks targets to have access to task-specific data and be
2055         able to extract the stack boundaries for stack checking.
2056         Use system-vms-ia64.ads on ivms.
2057
2058         * Make-lang.in: Update dependencies.
2059
2060         * sysdep.c (__gnat_get_stack_info): Move to a standalone file
2061         (vx_stack_info.c).
2062
2063 2007-10-15  Vincent Celier  <celier@adacore.com>
2064
2065         * snames.adb, snames.ads: Add new standard name runtime_library_dir
2066
2067         * prj.ads (Language_Config): Add new component Runtime_Library_Dir
2068
2069         * prj-attr.adb: Add project level attribute Runtime_Library_Dir
2070
2071         * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
2072         the source is unknown.
2073
2074         * prj-ext.adb: Spelling error fix
2075
2076         * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
2077         95 reserved word in its name.
2078         (Process_Project_Level_Array_Attributes): Process new attribute
2079         Runtime_Library_Dir.
2080
2081         * prj-part.adb (Parse_Single_Project): Do not check the name of the
2082         config project against the user project names.
2083
2084         * prj-proc.adb (Expression): In multi-language mode, indexes that do
2085         not include a dot are always case insensitive.
2086         (Process_Declarative_Items): Ditto
2087         (Process_Project_Tree_Phase_1): Set Success to False in case an error is
2088         detected.
2089
2090         * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
2091         True, compare both indexes in lower case.
2092
2093 2007-10-15  Robert Dewar  <dewar@adacore.com>
2094
2095         * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
2096
2097 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
2098
2099         * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
2100         association for an access component, add an association with null as
2101         the expression. Remove testing for array subtypes and the setting in
2102         that case of Ctyp to the array component type, which prevented proper
2103         inclusion of an association for null-initialized arrays. Collapse
2104         condition that tests for array subtypes into just a test of
2105         Is_Partially_Initialized_Type (which already covers arrays anyway).
2106
2107 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
2108
2109         * sem_ch12.adb: Minor code reformatting.
2110         (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
2111         find the parent package which may have been hidden by local
2112         declarations.
2113
2114 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
2115
2116         * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
2117         flag of derived concurrent types, taking into account the flag setting
2118         on the parent subtype and any new set of discriminants.
2119
2120 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
2121
2122         * sem_ch4.adb: Minor code and comment reformatting.
2123         (Analyze_Allocator): When the designated type of an unconstrained
2124         allocator is a record with unknown discriminants or an array with
2125         unknown range bounds, emit a detailed error message depending on the
2126         compilation mode and whether the designated type is limited.
2127
2128 2007-10-15  Tristan Gingold  <gingold@adacore.com>
2129
2130         * system-vms-ia64.ads: New file.
2131
2132         * system-vms_64.ads: Minor comment fix.
2133
2134 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
2135
2136         * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
2137         body generated for a function with a controlling result that is a null
2138         extension, discard the generated body in favor of the current explicit
2139         one.
2140
2141 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
2142
2143         * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
2144         examining its original form, to handle properly operator calls that
2145         have been rewritten.
2146
2147 2007-10-15  Olivier Hainque  <hainque@adacore.com>
2148
2149         * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
2150         instead of a procedure value in each traceback entry.
2151
2152         * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
2153         instead of procedure value to TBK$SYMBOLIZE.
2154
2155         * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
2156         field.
2157         (TB_Entry_For): Account for the PV/FP renaming.
2158
2159         * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
2160         add comment.
2161         (Null_TB_Entry): Account for change of component name.
2162         (PV_For): Rename as FP_For.
2163
2164 2007-10-15  Tristan Gingold  <gingold@adacore.com>
2165
2166         * trans.c (gnat_to_gnu): Remove the padding structure more often.
2167         This optimize assignment to over-aligned record.
2168
2169 2007-10-15  Emmanuel Briot  <briot@adacore.com>
2170
2171         * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
2172         interfaces.
2173
2174         * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
2175         type, for dispatching calls.
2176
2177 2007-10-15  Vincent Celier  <celier@adacore.com>
2178             Robert Dewar  <dewar@adacore.com>
2179
2180         * gnat_ugn.texi: Add documentation for switches --version and --help
2181         for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
2182         gnatxref, gnatfind, gnatls, and gnatclean.
2183         Document -gnatw.o.
2184         Mention attribute Excluded_Source_Dirs
2185         Replace obsolescent attribute Locally_Removed_Files with attribute
2186         Excluded_Source_Files.
2187         Improve documentation of -u (gnatbind)
2188         Document how to do reliable stack checking for the environmental task
2189         on iVMS.
2190
2191         * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
2192         Document attribute Excluded_Source_Files and indicate that attribute
2193         Locally_Removed_Files is obsolescent.
2194
2195 2007-10-15  Thomas Quinot  <quinot@adacore.com>
2196
2197         * g-soccon-vms.ads: Fix value of MSG_WAITALL.
2198
2199         * gen-soccon.c: 
2200         Update documentation to note that OpenVMS 8.3 or later must be used
2201         to generate g-soccon-vms.ads.
2202
2203         * atree.adb: Add ??? comment
2204
2205         * exp_util.adb: Minor reformatting.
2206         Add ??? comment in Kill_Dead_Code.
2207
2208 2007-10-15  Robert Dewar  <dewar@adacore.com>
2209
2210         * errout.ads: Comment clarification
2211
2212         * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
2213         (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
2214
2215         * lib.ads: Comment update
2216
2217         * init.c: Minor reformatting.
2218
2219         * sem_attr.adb: Minor formatting
2220
2221         * osint-b.ads: Minor reformatting
2222
2223         * sem_ch9.adb: Implement -gnatd.I switch
2224
2225         * g-comlin.adb: (Start): Fix handling of empty command line.
2226
2227         * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
2228         even when -rules follows the -cargs section.
2229
2230 2007-10-08  Ollie Wild  <aaw@google.com>
2231
2232         * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
2233         gnat_return_tree.
2234         (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
2235         gnat_return_tree.
2236         (gnat_eh_runtime_type): Removed.
2237         (gnat_return_tree): New function.
2238
2239 2007-10-08  Ben Elliston  <bje@au.ibm.com>
2240
2241         PR ada/33454
2242         Revert:
2243         2007-08-31  Ben Elliston  <bje@au.ibm.com>
2244
2245         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
2246         when compiling for powerpc64-*-linux.
2247         * system-linux-ppc64.ads: New file.
2248
2249 2007-09-27  Eric Botcazou  <ebotcazou@adacore.com>
2250
2251         Mapped location support
2252         * back_end.adb (Call_Back_End): Pass information about source
2253         files instead of units to gigi.
2254         * gigi.h (struct File_Info_Type): New.
2255         (gigi): Rename and change type of number_units parameter, change
2256         type of file_info_ptr parameter.
2257         * trans.c (number_files): New global variable.
2258         (gigi): Rename and change type of number_units parameter, change
2259         type of file_info_ptr parameter.
2260         If mapped location support is enabled, create the isomorphic mapping
2261         between source files and line maps.
2262         (Sloc_to_locus): If mapped location support is enabled, translate
2263         source location into mapped location.
2264         (annotate_with_node): Rename into set_expr_location_from_node.
2265         Call set_expr_location instead of annotate_with_locus.
2266         (Pragma_to_gnu): Adjust for above change.
2267         (Loop_Statement_to_gnu): Likewise.
2268         (call_to_gnu): Likewise.
2269         (Handled_Sequence_Of_Statements_to_gnu): Likewise.
2270         (gnat_to_gnu): Likewise.
2271         (add_stmt_with_node): Likewise.
2272         (add_cleanup): Likewise.
2273         * utils.c (gnat_init_decl_processing): Do not set input_line.
2274
2275 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
2276
2277         * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
2278         (Applicable_Use): Emit a warning when a package tries to use itself.
2279         (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
2280         is already in use or the package where it is declared is in use or is
2281         declared in the current package.
2282         (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
2283
2284         * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
2285         s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
2286         s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
2287
2288 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
2289
2290         * a-calend-vms.adb, a-calend.adb: 
2291         Add a section on leap seconds control along with two entities used to
2292         enable and disable leap seconds support. The array Leap_Second_Times is
2293         now constant and contains hard time values pre-generated. Remove
2294         all elaboration code used to populate the table of leap seconds.
2295
2296         * bindgen.adb: 
2297         Add entity Leap_Seconds_Support to the list of global run-time variables
2298         along with a comment on its usage and values.
2299         (Gen_Adainit_Ada): Add code to generate the declaration and import of
2300         Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
2301         or one (enabled) depending on the presence of binder switch "-y".
2302         (Gen_Adainit_C): Add code to generate the declaration of external int
2303         __gl_leap_seconds_support. Set is value to zero (disabled) or one
2304         (enabled) depending on the presence of binder switch "-y".
2305
2306         * init.c: Add __gl_leap_seconds_support to the list of global values
2307         computed by the binder.
2308
2309 2007-09-26  Jerome Guitton  <guitton@adacore.com>
2310
2311         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
2312         s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
2313          s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
2314         s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
2315
2316         * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
2317
2318         * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
2319         function which can be called by the debugger to interrupt the tasks of
2320         an Ada application asynchronously, as needed on VxWorks.
2321         (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
2322
2323         * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
2324         renamed from Stop_All_Tasks. Update comments.
2325         (Stop_All_tasks): New function declaration.
2326
2327 2007-09-26  Olivier Hainque  <hainque@adacore.com>
2328
2329         * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
2330         #include <utime.h> and #define GCC_RESOURCE_H before
2331         #include <sys/wait.h>.
2332         Add more protections in __gnat_translate_vms.
2333
2334         * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
2335         #include <sys/wait.h>.
2336
2337 2007-09-26  Thomas Quinot  <quinot@adacore.com>
2338             Sergey Rybin  <rybin@adacore.com>
2339
2340         * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
2341
2342         * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
2343         where it belongs.
2344
2345         * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
2346
2347         * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
2348         where it belongs.
2349
2350         * sem_dist.ads: Minor comment fix
2351
2352         * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
2353
2354 2007-09-26  Javier Miranda  <miranda@adacore.com>
2355             Eric Botcazou  <ebotcazou@adacore.com>
2356
2357         * a-tags.adb: 
2358         (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
2359          indirection added to the HT_Link component of the TSD. This is required
2360          to statically allocate the TSD.
2361
2362         * a-tags.ads: 
2363         Minor reordering of the declarations in the private part. Required to
2364         add a level of indirection to the contents of the TSD component HT_Link.
2365         This is required to statically allocate the TSD.
2366
2367         * decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
2368         Is_Statically_Allocated set from constant objects.
2369         Do not make exported constants created by the compiler volatile.
2370         (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
2371         as read-only.
2372
2373         * trans.c (Identifier_to_gnu): For constants, unshare initializers
2374         before returning them.
2375
2376         * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
2377         public part of the package.
2378         (Make_DT): Move HT_Link component out of the TSD record. For this
2379         purpose Make_DT now declares a separate object that stores the
2380         HT_Link value, and initializes the TSD component with the address
2381         of this new object. The addition of this level of indirection is
2382         required to statically allocate the TSD because the TSD cannot
2383         have variable components.
2384         (Expand_Interface_Conversion): Improve the expanded code.
2385         (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
2386
2387         * sem_disp.adb (Check_Dispatching_Operation): In case of a body
2388         declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
2389         if we are building static dispatch tables then we must not generate
2390         extra code to register the primitive because the dispatch table will
2391         be built at the end of the library package; otherwise we notify that
2392         we cannot build the static dispatch table.
2393
2394 2007-09-26  Robert Dewar  <dewar@adacore.com>
2395
2396         * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
2397         overlays.
2398
2399         * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
2400         (Analyze_Record_Representation_Clause): Suppress junk warning for
2401         missing component clause.
2402         (Analyze_Attribute_Definition_Clause, case Address): Apply the special
2403         tests for controlled type overlay to composites with controlled
2404         components.
2405         (Analyze_Record_Representation_Clause): Add reference for component name
2406
2407 2007-09-26  Javier Miranda  <miranda@adacore.com>
2408             Gary Dismukes  <dismukes@adacore.com>
2409
2410         * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
2411         for thunks associated with interface types.
2412
2413         * einfo.ads: Improve documentatation of Is_Internal
2414         (Is_Thunk): New attribute applicable to subprograms. True for thunks
2415         associated with interface types.
2416         Extensive comment fixes regarding flags that appear in all entities. The
2417         documentation is now consistent for all such flags (there were a number
2418         of errors in the documentation in this regard).
2419
2420         * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
2421
2422         * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
2423         of these procedures are passed a function call that already has
2424         build-in-place actuals (testing new flag
2425         Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
2426         the case where processing continues.
2427         (Expand_Call): If the call is generated from a thunk body then we
2428         propagate the extra actuals associated with the accessibility
2429         level of the access type actuals.
2430
2431         * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
2432         of each extra formal of a protected operation to reference the
2433         corresponding extra formal of the subprogram denoted by the
2434         operation's Protected_Body_Subprogram.
2435         
2436         * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
2437         N_Function_Call nodes.
2438
2439 2007-09-26  Robert Dewar  <dewar@adacore.com>
2440
2441         * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
2442
2443         * debug.adb: Add d.s flag.
2444
2445 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
2446
2447         * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
2448         debug variable so that it won't be initialized when pragma
2449         Initialize_Scalars is in effect.
2450
2451 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
2452
2453         * freeze.adb (Freeze_Entity): Remove check for preelaborable
2454         initialization of a full view. This is moved to
2455         Analyze_Package_Specification.
2456
2457         * sem_ch7.adb (Analyze_Package_Specification): Add check for
2458         preelaborable initialization of a full view in entity loop.
2459         (Uninstall_Declarations): If entity is a use-visible compilation unit,
2460         its child units are use-visible only if they are visible child units.
2461
2462         * sem_util.adb (Is_Preelaborable_Expression): New function to determine
2463         whether an expression can be used within a type declaration that
2464         requires preelaborable init.
2465         (Check_Components): Replace inline code that does partial checking for
2466         preelaborable default expressions with call to
2467         Is_Preelaborable_Expression.
2468         (Has_Preelaborable_Initialization): In the case of a generic actual
2469         subtype, (that is, Is_Generic_Actual is True), return the result of
2470         applying Has_Preelaborable_Initialization to the generic actual's base
2471         type.
2472
2473 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
2474
2475         * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
2476         call to Jan_1_Day _Of_Week to optimize its performance.
2477         (Is_Leap): Move the routine to the scope of Week_In_Year.
2478         (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
2479         weekday on which January 1 falls of Year - 1 and Year + 1. This function
2480         avoids calling Time_Of and Split, thus making it more efficent.
2481         (Week_In_Year): Reimplemented in oder to follow ISO 8601.
2482
2483         * g-calend.ads (Week_In_Year): Change comment to reflect new
2484         implementation.
2485
2486 2007-09-26  Emmanuel Briot  <briot@adacore.com>
2487
2488         * g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
2489         Command_Line): New types
2490         (Define_Alias, Define_Prefix, Free): New subprograms. These provide
2491         support for defining how switches can be grouped on a command line (as
2492         is the case for -gnatw... for GNAT), and how simple switches can be
2493         used as aliases for more complex switches (-gnatwa is same as
2494         -gnatwbcef...)
2495         (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
2496         (Start, Current_*): New subprograms
2497         Added support for parsing an array of strings in addition to the real
2498         command line.
2499         (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
2500          be moved from the body to the private part of the spec.
2501         (*): All subprograms now have an extra parameter with default value to
2502         specify which parser should be used. For backward compatibility, it
2503         defaults to parsing the command line of the application. They were also
2504         modified to properly handle cases where each of the argument does not
2505         start at index 1 (which is always true for Ada.Command_Line, but not
2506         when processing any Argument_List).
2507         (Free): New subprogram
2508         (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
2509         Argument): New subprograms
2510         (Switch_Parameter_Type): New enum, which clarifies the code. The extra
2511         special characters like ':', '=',... are now handled in a single place,
2512         which makes the code more extensible eventually.
2513         (Getopt, Full_Switch): When the switch was returned as part of the
2514         special character '*', make sure it is prepended by the switch character
2515         ('-' in general), so that the application knows whether "foo" or "-foo"
2516         was specified on the command line.
2517
2518 2007-09-26  Florian Villoing  <villoing@adacore.com>
2519
2520         * g-dirope.adb (Remove_Dir): In case we are removing directories
2521         recursively, make sure that if an exception is raised during the
2522         processing, the current working directory is reset to its initial
2523         value before propagating the exception.
2524
2525 2007-09-26  Vincent Celier  <celier@adacore.com>
2526
2527         * gnatbind.adb: If there are several ALI files specified and there is
2528         a main program to bind, the first ALI is expected to contain the main
2529         subprogram and the names of the binder generated files will be derived
2530         from the first ALI file name.
2531         (Gnatbind): Fix insertion character in invocation of Error_Msg
2532
2533 2007-09-26  Vincent Celier  <celier@adacore.com>
2534
2535         * gnatcmd.adb (Check_Files): Do not include sources that have been
2536         removed by attributes Exclude_Source_Files or Locally_Removed_Files.
2537
2538 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
2539
2540         * lib-xref.ads, lib-xref.adb: The entry for array types now carries
2541         information about each of its index types, following the type
2542         reference for its component type.
2543
2544 2007-09-26  Vincent Celier  <celier@adacore.com>
2545
2546         * make.adb: (Kill): New procedure (__gnat_kill imported)
2547         (Running_Compile, Outstanding_Compiles): Global variables that
2548         were previously local to procedure Compile_Sources.
2549         (Sigint_Intercepted): Send signal SIGINT to all outstanding
2550         compilation processes.
2551
2552         (Gnatmake): If project files are used, create the mapping of all the
2553         sources, so that the correct paths will be found.
2554
2555         * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
2556
2557 2007-09-26  Vincent Celier  <celier@adacore.com>
2558
2559         * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
2560
2561         * prj.ads, prj.adb (Default_Language): Remove function, no longer used
2562         Replace components Compiler_Min_Options and Binder_Min_Options with
2563         Compiler_Required_Switches and Binder_Required_Switches in record
2564         Language_Config.
2565         Remove components Default_Language and Config in Project_Tree_Data,
2566         no longer used.
2567
2568         * prj-attr.adb: New attributes Required_Switches (<language>) in
2569         packages Compiler and Binder.
2570
2571         * prj-nmsc.adb: Major rewrite of the processing of configuration
2572         attributes for gprbuild. No impact on GNAT tools.
2573
2574         * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
2575         process configuration attributes: this is done in Prj.Nmsc.Check.
2576         (Recursive_Process): Make a full copy of packages inherited from project
2577         being extended, instead of a shallow copy.
2578         (Process_Project_Tree_Phase_1): New procedure
2579         (Process_Project_Tree_Phase_1): New procedure
2580         (Process): Implementation now uses the two new procedures
2581
2582         * prj-util.adb (Executable_Of): Get the suffix and the default suffix
2583         from the project config, not the tree config that no longer exists.
2584
2585 2007-09-26  Vincent Celier  <celier@adacore.com>
2586
2587         * Make-lang.in: Update dependencies..
2588
2589 2007-09-26  Vincent Celier  <celier@adacore.com>
2590
2591         * osint.adb, osint.ads: Minor reformatting
2592
2593         * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
2594
2595 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
2596
2597         * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
2598         message to cite use of <> in aggregate component associations rather
2599         than wrongly indicating use of limited aggregates.
2600
2601 2007-09-26  Robert Dewar  <dewar@adacore.com>
2602
2603         * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
2604         Address_Taken.
2605
2606 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
2607
2608         * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
2609         ancestor of the derived type, the operations are inherited from the
2610         primary dispatch table of the parent.
2611         (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
2612         when the context is an explicit type conversion.
2613
2614 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
2615
2616         * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
2617         rule for qualified expressions properly, to detect improper conversions
2618         and resolve some cases of overloading.
2619
2620 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
2621
2622         * sem_res.adb (Resolve_Call): If the call is dispatching, generate the
2623         proper kind of reference to the primitive operation, for better source
2624         navigation.
2625         (Valid_Conversion): A tagged conversion is legal if both operands are
2626         tagged.
2627
2628 2007-09-26  Robert Dewar  <dewar@adacore.com>
2629
2630         * sem_warn.adb (Check_References): Catch more cases of unreferenced
2631         packages.
2632
2633 2007-09-26  Vincent Celier  <celier@adacore.com>
2634
2635         * snames.adb, snames.ads: Change Include_Option to Include_Switches
2636
2637 2007-09-26  Robert Dewar  <dewar@adacore.com>
2638
2639         * s-wchstw.adb: provide messages for run time unit exceptions
2640
2641         * a-witeio.adb: Minor reformatting
2642
2643         * exp_ch13.adb: Minor reformatting
2644
2645 2007-09-26  Sergey Rybin  <rybin@adacore.com>
2646
2647         * vms_data.ads: Revise gnatmetric qualifiers.
2648         Add qualified for the new gnatbind option '-y'
2649
2650         * gnat_ugn.texi: Revise the gnatmetric section.
2651         Add entry for new gnatbind option '-y'.
2652
2653         * gnat_rm.texi: Minor spelling correction.
2654         Document restriction on overlaying controlled types
2655
2656 2007-09-26  Vincent Celier  <celier@adacore.com>
2657
2658         * makegpr.adb (Link_Executables): Do not fail when the root project has
2659         no sources, but is an extending project.
2660
2661 2007-09-25  Eric Botcazou  <ebotcazou@adacore.com>
2662
2663         * trans.c: Fix misplaced #define.
2664
2665 2007-09-22  Eric Botcazou  <ebotcazou@adacore.com>
2666
2667         * utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate
2668         the TYPE_REF_CAN_ALIAS_ALL flag to the result.
2669
2670 2007-09-21  Olivier Hainque  <hainque@adacore.com>
2671
2672         * utils.c (type_for_nonaliased_component_p): Return false for
2673         all AGGREGATE_TYPEs.
2674
2675 2007-09-17  Eric Botcazou  <ebotcazou@adacore.com>
2676
2677         * decl.c (gnat_to_gnu_entity) <object>: Make again the type of an
2678         object covered by 13.3(19) volatile.
2679
2680 2007-09-12  Eric Botcazou  <ebotcazou@adacore.com>
2681
2682         PR ada/26797
2683         PR ada/32407
2684         * utils.c (unchecked_convert): Use a subtype as the intermediate type
2685         in the special VIEW_CONVERT_EXPR case.
2686
2687 2007-09-12  Robert Dewar  <dewar@adacore.com>
2688
2689         * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
2690
2691         * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
2692         lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
2693         s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
2694         s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
2695         s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
2696         s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
2697         s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
2698         s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
2699         a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads, 
2700         g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads, 
2701         s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb, 
2702         s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb, 
2703         snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads, 
2704         s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads, 
2705         s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads, 
2706         s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads, 
2707         s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
2708         pragma Compiler_Unit and adds it to relevant library units.
2709
2710 2007-09-12  Ed Schonberg  <schonberg@adacore.com>
2711
2712         * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
2713         a box need not correspond to any component.
2714
2715 2007-09-12  Robert Dewar  <dewar@adacore.com>
2716
2717         * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
2718         the tasking version of the Ada run time when foreign threads are
2719         present and there are no explicit Ada tasks or tasking constructs.
2720
2721         * gnat_rm.texi: Clarify documentation of GNAT.Threads.
2722
2723 2007-09-12  Hristian Kirtchev  <kirtchev@adacore.com>
2724
2725         * bindusg.adb (Display): Correct comment for switch -X. Add a line for
2726         the usage of switch -y.
2727
2728         * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
2729         when switch -y is present.
2730
2731         * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
2732         leap seconds in Ada.Calendar and its children.
2733
2734 2007-09-12  Jose Ruiz  <ruiz@adacore.com>
2735
2736         * a-extiti.ads (Timer): The discriminant is a "not null access
2737         constant" in the Reference Manual.
2738         (Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
2739
2740 2007-09-12  Robert Dewar  <dewar@adacore.com>
2741
2742         * a-swuwha.adb: Remove junk RM header
2743
2744 2007-09-12  Vincent Celier  <celier@adacore.com>
2745
2746         * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
2747         indicator
2748
2749         * g-bytswa.ads: Minor reformatting
2750
2751 2007-09-12  Thomas Quinot  <quinot@adacore.com>
2752
2753         * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads: 
2754         Add new constant Thread_Blocking_IO, always True by default, set False
2755         on a per-runtime basis.
2756         (Need_Netdb_Buffer): New constant.
2757
2758 2007-09-12  Arnaud Charlet  <charlet@adacore.com>
2759
2760         * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
2761         Added renames for corresponding functions in System.Partition_Interface.
2762
2763 2007-09-12  Doug Rupp  <rupp@adacore.com>
2764
2765         * Makefile.in: Remove VMS specific System.CRTL packages which are no
2766         longer needed.
2767
2768         * s-crtl-vms64.ads: Removed.
2769
2770 2007-09-12  Olivier Hainque  <hainque@adacore.com>
2771
2772         * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype
2773         with discriminant constraints, generalize the code for BIT_FIELDs
2774         to PACKED fields of constant size and propagate DECL_PACKED.
2775
2776 2007-09-11  Eric Botcazou  <ebotcazou@adacore.com>
2777
2778         * decl.c (array_type_has_nonaliased_component): New predicate.
2779         (gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
2780         set the TYPE_NONALIASED_COMPONENT flag on the type.
2781         <E_Array_Subtype>: Likewise.
2782         * gigi.h (type_for_nonaliased_component_p): Declare.
2783         * utils.c (type_for_nonaliased_component_p): New predicate.
2784         (create_field_decl): Invoke the above predicate to set the
2785         DECL_NONADDRESSABLE_P flag on the field.
2786
2787 2007-09-11  Javier Miranda  <miranda@adacore.com>
2788
2789         * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
2790         in library level record type entities if we are generating statically
2791         allocated dispatch tables.
2792
2793         * exp_disp.adb (Make_Tags/Make_DT): Replace previous code
2794         importing/exporting the _tag declaration by new code
2795         importing/exporting the dispatch table wrapper. This change allows us
2796         to statically allocate of the TSD.
2797         (Make_DT.Export_DT): New procedure.
2798         (Build_Static_DT): New function.
2799         (Has_DT): New function.
2800
2801         * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
2802         True_Constant and Current_Value. Required to statically
2803         allocate the dispatch tables.
2804         (Check_Allocator): Make function iterative instead of recursive.
2805         Also return inner allocator node, when present, so that we do not have
2806         to look for that node again in the caller.
2807
2808 2007-09-11  Jan Hubicka <jh@suse.cz>
2809
2810         * misc.c (gnat_expand_body): Kill.
2811         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
2812
2813 2007-09-10  Robert Dewar  <dewar@adacore.com>
2814
2815         * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
2816         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
2817         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
2818         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
2819         ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
2820         bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
2821         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
2822         butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
2823         comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
2824         elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
2825         err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
2826         exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
2827         exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
2828         exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
2829         exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
2830         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
2831         exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
2832         exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
2833         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
2834         exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
2835         exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
2836         exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
2837         fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
2838         get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
2839         gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
2840         gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
2841         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
2842         gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
2843         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
2844         gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
2845         inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
2846         lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
2847         lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
2848         make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
2849         mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
2850         mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
2851         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
2852         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
2853         osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
2854         osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
2855         par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
2856         par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
2857         par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
2858         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
2859         par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
2860         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
2861         prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
2862         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
2863         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
2864         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
2865         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
2866         prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
2867         rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
2868         scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
2869         sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
2870         sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
2871         sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
2872         sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
2873         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
2874         sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
2875         sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
2876         sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
2877         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
2878         sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
2879         sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
2880         sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
2881         sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
2882         sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
2883         stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
2884         styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
2885         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
2886         switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
2887         tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
2888         treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
2889         types.h, uintp.h, urealp.h, usage.adb, usage.ads,
2890         validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
2891         xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
2892         xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
2893         gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
2894         mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
2895         symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
2896         mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
2897         mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
2898
2899 2007-09-10  Emmanuel Briot  <briot@adacore.com>
2900
2901         * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
2902         classes ("[]").
2903
2904 2007-09-10  Vasiliy Fofanov  <fofanov@adacore.com>
2905
2906         * adaint.c (__gnat_translate_vms): new function.
2907
2908 2007-09-10  Gary Dismukes  <dismukes@adacore.com>
2909             Thomas Quinot  <quinot@adacore.com>
2910
2911         * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
2912         create an abstract subprogram in the case of 'Input. For 'Output we now
2913         create a real spec/body when the type is abstract, since it can
2914         potentially be called.
2915         (Predefined_Primitive_Bodies): Now allow the creation of a predefined
2916         body for 'Output when the type is abstract (only the creation of the
2917         body for 'Input is excluded when the type is abstract).
2918         (Stream_Operation_OK): Add an additional condition in the return
2919         statement, so that False will be returned for TTS_Stream_Input if the
2920         associated tagged type is an abstract extension. Add comments for
2921         return statement.
2922         (Expand_N_Object_Declaration): For the case of a shared passive
2923         variable, insert init proc call only after the shared variable
2924         procedures have been processed, because the IP call needs to undergo
2925         shared passive variable reference expansion, which requires these
2926         procedures to be available (and elaborated).
2927
2928 2007-09-10  Vincent Celier  <celier@adacore.com>
2929
2930         * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
2931         parameter Runtime_Project.
2932
2933 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
2934
2935         * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
2936         given a box association, the type of the component is discriminated,
2937         and the value of the discriminant is the discriminant of the enclosing
2938         type, retrieve its value from the aggregate itself, where it must have
2939         been supplied.
2940
2941         * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
2942         to remove other spurious ambiguities on arithmetic operations involving
2943         literals and addresses, on systems where Address is a visible integer
2944         type, when the operator is called in functional notation.
2945         (Try_Primitive_Operation): Within an instance, a call in prefixed form
2946         is legal when the types match, even if the operation is currently
2947         hidden.
2948
2949 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
2950
2951         * sem_ch12.adb (Build_Local_Package): A formal package with no
2952         associations is legal if all formals have defaults. It is not
2953         equivalent to a formal declared with a box.
2954
2955 2007-09-10  Sergey Rybin  <rybin@adacore.com>
2956
2957         * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
2958
2959 2007-09-10  Sergey Rybin  <rybin@adacore.com>
2960
2961         * gnat_ugn.texi: Add description of the new '-lratio' option
2962         Update 7.3.1 section about availability of the feature.
2963
2964 2007-09-10  Thomas Quinot  <quinot@adacore.com>
2965
2966         * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
2967         inserted node.
2968
2969 2007-09-10  Olivier Hainque  <hainque@adacore.com>
2970
2971         * Makefile.in: (mips-irix section): Activate build of libgmem.
2972
2973 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
2974
2975         * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
2976         x87 registers.
2977
2978 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
2979
2980         * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for
2981         a debug renaming declaration specially.
2982
2983 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
2984
2985         * decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
2986         which a constant renaming is treated as a normal object declaration.
2987         * trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
2988         the N_Indexed_Component case.
2989         <N_Indexed_Component>: Fall through to above case.
2990         <N_Object_Renaming_Declaration>: Return true for all composite types.
2991
2992 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
2993
2994         * decl.c (make_packable_type): If the new type has been given BLKmode,
2995         try again to get an integral mode for it.
2996
2997 2007-09-07  Eric Botcazou  <ebotcazou@adacore.com>
2998
2999         Re-apply accidentally reverted change:
3000
3001         2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
3002
3003         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
3004         get_action_description_for): Replace _Unwind_Word with _uleb128_t 
3005         and _Unwind_SWord with _sleb128_t.
3006
3007 2007-09-06  Eric Botcazou  <ebotcazou@adacore.com>
3008
3009         * trans.c (convert_with_check): Update call to real_2expN.
3010
3011 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
3012
3013         * trans.c (Compilation_unit_to_gnu): Use set_cfun.
3014         * utils.c (end_subprog_body): Likewise.
3015
3016 2007-09-03  Nick Clifton  <nickc@redhat.com>
3017
3018         * Make-lang.in: Change copyright header to refer to version 3 of
3019         the GNU General Public License and to point readers at the
3020         COPYING3 file and the FSF's license web page.
3021         * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
3022         Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
3023         namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
3024         treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
3025         Likewise.
3026
3027 2007-08-31  Vincent Celier  <celier@adacore.com>
3028
3029         PR ada/4720
3030
3031         * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb, 
3032         gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
3033         (Check_Version_And_Help): New procedure in package Switch to process
3034         switches --version and --help.
3035         Use Check_Version_And_Help in GNAT tools
3036
3037         * make.adb:  Ditto.
3038         (Compile_Sources): Make sure that sources that are "excluded" are not
3039         compiled.
3040         (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
3041         project file is used.
3042         (Version_Switch): Remove, moved to Switch
3043         (Help_Switch): Remove, moved to Switch
3044         (Display_Version): Remove, moved to Switch
3045
3046         * switch.ads, switch.adb (Check_Version_And_Help): New procedure in
3047         package Switch to process switches --version and --help.
3048         (Display_Version): New procedure
3049
3050         * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.
3051
3052 2007-08-31  Javier Miranda  <miranda@adacore.com>
3053
3054         * a-tags.adb (Internal_Tag): Protect the run-time against wrong
3055         internal tags.
3056
3057 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
3058
3059         * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
3060         (Mark_Non_Null): If the node for which we just generated an access check
3061         is a reference to an *in* parameter and the reference appears in the
3062         declarative part of a subprogram body, mark the node as known non null.
3063
3064 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
3065
3066         * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
3067         structure of E_Exception to reflect the new flag.
3068         (Is_Raised, Set_Is_Raised): New inlined routines.
3069         Update the usage of available flag to reflect the addition of Is_Raised.
3070         (Is_Raised, Set_Is_Raised): Bodies of new routines.
3071         (Write_Entity_Flags): Write the status of flag Is_Raised.
3072         (Is_Descendent_Of_Address): New entity flag, to simplify handling of
3073         spurious ambiguities when integer literals appear in the context of an
3074         address type that is a visible integer type.
3075
3076         * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
3077         exceptions never being raised.
3078         (Analyze_Raise_Statement): When analyzing an exception, mark it as being
3079         explicitly raised.
3080
3081 2007-08-31  Javier Miranda  <miranda@adacore.com>
3082
3083         * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
3084         statement when compiling under restriction No_Exceptions_Proparation.
3085
3086 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
3087
3088         * exp_ch3.adb (Build_Record_Init_Proc): If there is a static
3089         initialization aggregate for the type, generate itype references for
3090         thetypes of its (sub)components, to prevent out-of-scope errors in gigi.
3091
3092 2007-08-31  Gary Dismukes  <dismukes@adacore.com>
3093
3094         * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
3095         library-level package renaming, pass the declaration associated with
3096         the renaming's special debug variable to Qualify_Entity_Names to ensure
3097         that its encoded name is properly qualified.
3098
3099         * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
3100         occurring in the list of entities to qualify, and do not attempt to
3101         traverse an entity list in that case. Variables associated with
3102 `       library-level package renamings can now occur in the table.
3103
3104         * exp_dbug.ads: Revise documentation of the encoding for renaming
3105         declarations.
3106
3107 2007-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3108
3109         * layout.adb (Layout_Type): Use Underlying_Type to determine whether an
3110         access type points to an unconstrained array.
3111
3112 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
3113
3114         * restrict.adb, namet.adb, par-util.adb: Remove redundant type
3115         conversion.
3116
3117         * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
3118         simple redundant qualifications. The check is performed whenever the
3119         expression is a non-overloaded identifier.
3120         (Resolve_Type_Conversion): Enchance the redundant type conversion check
3121         to include loop parameters.
3122         (Valid_Conversion): Avoid generation of spurious error message.
3123
3124 2007-08-31  Bob Duff  <duff@adacore.com>
3125
3126         * par-ch4.adb (P_Simple_Expression): Fold long sequences of
3127         concatenations of string literals into a single literal, in order to
3128         avoid very deep recursion in the front end, which was causing stack
3129         overflow.
3130
3131         * sem_eval.adb (Eval_Concatenation): If the left operand is the empty
3132         string, and the right operand is a string literal (the case of "" &
3133         "..."), optimize by avoiding copying the right operand -- just use the
3134         value of the right operand directly.
3135
3136         * stringt.adb (Store_String_Chars): Optimize by growing the
3137         String_Chars table all at once, rather than appending characters one by
3138         one.
3139         (Write_String_Table_Entry): If the string to be printed is very long,
3140         just print the first few characters, followed by the length. Otherwise,
3141         doing "pn(n)" in the debugger can take an extremely long time.
3142
3143         * sem_prag.adb (Process_Interface_Name): Replace loop doing
3144         Store_String_Char with Store_String_Chars.
3145
3146 2007-08-31  Vincent Celier  <celier@adacore.com>
3147
3148         * prj-attr.adb: Add new attribute Excluded_Source_Files
3149
3150         * prj-nmsc.adb: Use attribute Excluded_Source_Files before
3151         Locally_Removed_Files.
3152
3153         * snames.ads, snames.adb: New standard name Excluded_Source_Files
3154
3155 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
3156
3157         * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
3158         clauses of subunits, ignore limited_with_clauses that are illegal and
3159         have not been fully analyzed.
3160
3161 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
3162
3163         * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
3164         flag, for effiency. It is called when analyzing arithmetic operators
3165         and also for actuals in calls that are universal_integers. The flag is
3166         set for the predefined type address, and for any type or subtype
3167         derived from it.
3168
3169         * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
3170         Universal_Integer, when the formal is a descendent of address and the
3171         call appears in user code.
3172         (Analyze_Selected_Component): if the prefix is a private extension, the
3173         tag component is visible.
3174
3175         * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
3176         entity flag.
3177
3178 2007-08-31  Robert Dewar  <dewar@adacore.com>
3179
3180         * s-fileio.adb (Open): Normalize file name to lower case in non-case
3181         sensitive file name systems to avoid unexpected mismatch in Vista.
3182
3183 2007-08-31  Vincent Celier  <celier@adacore.com>
3184
3185         * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
3186
3187 2007-08-31  Vincent Celier  <celier@adacore.com>
3188
3189         * symbols-vms.adb (Initialize): Read symbol files with continuation
3190         lines
3191         (Finalize): If symbol is long, split the line
3192
3193 2007-08-31  Vincent Celier  <celier@adacore.com>
3194
3195         * fmap.ads: Minor comment updates
3196
3197 2007-08-31  GNAT Script  <nobody@adacore.com>
3198
3199         * Make-lang.in: Makefile automatically updated
3200
3201 2007-08-31  Bob Duff  <duff@adacore.com>
3202
3203         * sinfo.ads: Minor comment fix.
3204
3205 2007-08-31  Thomas Quinot  <quinot@adacore.com>
3206
3207         * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
3208         with implementation.
3209         Documentation cleanup only.
3210
3211 2007-08-31  Sergey Rybin  <rybin@adacore.com>
3212
3213         * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
3214         gnatpp '--separate-stmt-name' option.
3215         Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
3216         option.
3217
3218         * gnat_ugn.texi: Add description for the new gnatpp
3219         '--separate-stmt-name' and '--use-on-new-line' options.
3220
3221 2007-08-31  Ben Elliston  <bje@au.ibm.com>
3222
3223         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
3224         when compiling for powerpc64-*-linux.
3225         * system-linux-ppc64.ads: New file.
3226
3227 2007-08-22  Krister Walfridsson  <cato@df.lth.se>
3228
3229         * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
3230         NetBSD.
3231
3232 2007-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3233
3234         * misc.c (gnat_type_max_size): Constify.
3235
3236 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
3237
3238         * cstand.adb (Create_Standard): Create an entity for a zero-sized type
3239         associated with Standard_Debug_Renaming_Type, to be used as the type of
3240         the special variables whose names provide debugger encodings for
3241         renaming declarations.
3242
3243         * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
3244         (Set_Debug_Renaming_Link): Change to set Node25.
3245         (Write_Field13_Name): Remove case for E_Enumeration_Literal.
3246         (Write_Field25_Name): Add case for E_Variable to output
3247         "Debug_Renaming_Link".
3248         (Write_Field23_Name): Correct the output string for "Limited_View".
3249
3250         * exp_dbug.adb: Add with and use of Tbuild.
3251         (Debug_Renaming_Declaration): Replace creation of an enumeration type
3252         and literal with creation of a variable of type
3253         Standard_Debug_Renaming_Type whose name encodes both the renamed object
3254         and the entity of the renaming declaration.
3255         (Qualify_Entity_Name): Add the delayed qualification of the entity name
3256         part of the name of a variable that has a Debug_Renaming_Link.
3257
3258         * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
3259         special type to be associated with variables that provide debugger
3260         encodings for renaming declarations.
3261
3262 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
3263             Ed Schonberg  <schonberg@adacore.com>
3264             Javier Miranda  <miranda@adacore.com>
3265
3266         * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
3267         ancestor part given by an aggregate to test for an unchecked conversion,
3268         since this can occur in some cases when the ancestor part is a function
3269         call, and we don't want to fall into the recursive call to this
3270         procedure in that case.
3271
3272         * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
3273         stream attributes on limited types to account for user-specified
3274         attributes as well as whether Input (resp. Output) becomes available
3275         due to Read (resp. Write) being available for the type. Change Boolean
3276         variable to the more accurate name
3277         Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
3278         double-"not" predicate at beginning of return statement to more
3279         understandable form.
3280
3281         * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
3282         return has an associated N_Handled_Sequence_Of_Statements, then wrap it
3283         in a block statement and use that as the first statement of the
3284         expanded return rather than incorrectly using the handled sequence as
3285         the first statement.
3286
3287         * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
3288         operation, generate an explicit freeze node for it rather than
3289         generating extra formals, to ensure that gigi has the proper order of
3290         elaboration for anonymous subtypes in the signature of the subprograms.
3291         (Build_In_Place_Formal): Move assertion to beginning of loop.
3292         (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
3293         applied to a function call (occurs for some cases of 'Input).
3294         (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
3295         applied to a function call (occurs for some cases of 'Input).
3296
3297         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
3298         2005, generate an extended return statement enclosing the result object
3299         and 'Read call.
3300
3301         * freeze.adb (Freeze_Record_Type): Extend the current management of
3302         components that are access type with an allocator as default value: add
3303         missing support to the use of qualified expressions of the
3304         allocator (which also cause freezing of the designated type!)
3305         (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
3306         dispatching operation, since extra formals may be needed by calls to
3307         build-in-place functions (such as stream 'Input).
3308
3309         * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
3310         formals for 'Constrained and accessibility level in the case of a
3311         predefined dispatching operation.
3312
3313         * exp_util.adb (Insert_Actions): A protected body is a valid insertion
3314         point, no need to find the parent node.
3315
3316 2007-08-16  Javier Miranda  <miranda@adacore.com>
3317
3318         * exp_attr.adb (Attribute_Priority): Add missing support for entries
3319         and entry barriers.
3320
3321 2007-08-16  Javier Miranda  <miranda@adacore.com>
3322
3323         * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
3324         is not really required and can introduce regression with the debugger.
3325         The original problem is fixed with the patch written for checks.adb.
3326
3327 2007-08-16  Thomas Quinot  <quinot@adacore.com>
3328
3329         * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
3330         Range_Check on Allocated_Table.
3331
3332 2007-08-16  Vincent Celier  <celier@adacore.com>
3333
3334         * make.adb (Collect_Arguments): Call Test_If_Relative_Path with
3335         Including_Non_Switch set to False.
3336         (Gnatmake): For the compiler, call Test_If_Relative_Path with
3337         Including_Non_Switch set to False.
3338
3339         * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
3340         parameter Including_Non_Switch, defaulted to True. When
3341         Including_Non_Switch is False, options that are not switches and
3342         appear as relative path are not converted to absolute paths.
3343
3344 2007-08-16  Nicolas Roche  <roche@adacore.com>
3345
3346         * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
3347         makefiles
3348
3349         * Make-lang.in: Update dependencies
3350
3351 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
3352
3353         * sem_ch10.adb (Has_With_Clause): If the name of the with clause
3354         currently inspected is a selected component, retrieve the entity of
3355         its selector.
3356         (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
3357         from the immediate ancestor of Main_Unit_Entity.
3358         (Install_Limited_Withed_Unit): Do not install the limited view of
3359         package P if P is reachable through an ancestor chain from package C
3360         and C also has a with clause for P in its body.
3361         (Has_Limited_With_Clause): New routine.
3362         (Has_With_Clause): New routine.
3363
3364 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
3365
3366         * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
3367         generic for an enclosing instance is a global reference, even though
3368         its scope is the enclosing instance.
3369
3370 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
3371             Javier Miranda  <miranda@adacore.com>
3372
3373         * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
3374         initialize a limited object.
3375         (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
3376         13/2 and 14/2.
3377         Make sure Has_Complex_Representation is inherited by derived type.
3378
3379 2007-08-16  Robert Dewar  <dewar@adacore.com>
3380
3381         * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
3382         exception case
3383
3384 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
3385
3386         * sem_disp.adb (Check_Dispatching_Operation): If the operation
3387         implements an operation inherited from a progenitor interface, verify
3388         that they are subtype-conformant.
3389
3390 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
3391             Bob Duff  <duff@adacore.com>
3392             Nicolas Setton  <setton@adacore.com>
3393
3394         * sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
3395         (Resolve): Alphabetize local variables. Add new variable From_Lib. When
3396         the statement which is being resolved comes from a predefined library
3397         unit, all non-predefined library interpretations are skipped.
3398         (Resolve_Op_Concat): If string concatenation was folded in the parser,
3399         but the "&" is user defined, give an error, because the folding would
3400         be wrong.
3401
3402         * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
3403         the parser has folded a long sequence of concatenations of string
3404         literals.
3405
3406         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
3407         and "JMP_BUF" variables as artificial.
3408         (N_String_Literal): Do not use alloca for very long string literals. Use
3409         xmalloc/free instead. Otherwise the stack might overflow.
3410
3411         * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
3412         compiler.
3413
3414 2007-08-16  Vincent Celier  <celier@adacore.com>
3415
3416         * vms_conv.adb (Process_Argument): Ensure that project related options
3417         are not put in the -cargs section when using GNAT COMPILE.
3418
3419 2007-08-16  Robert Dewar  <dewar@adacore.com>
3420
3421         * gnat_ugn.texi: Add note on preprocessing (output file not written)
3422
3423 2007-08-16  Thomas Quinot  <quinot@adacore.com>
3424
3425         * a-tags.adb: Minor reformatting.
3426
3427 2007-08-16  Bob Duff  <duff@adacore.com>
3428
3429         * sem_type.ads, sem_ch4.adb: Minor reformatting.
3430
3431 2007-08-14  Thomas Quinot  <quinot@adacore.com>
3432
3433         * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads, 
3434         s-osinte-interix.ads, system-interix.ads: Removed.
3435
3436 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
3437
3438         * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
3439         calls to Check_Within_Time_Bounds.
3440         ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
3441         (Difference): Account for possible rounding of the resulting difference
3442
3443 2007-08-14  Robert Dewar  <dewar@adacore.com>
3444
3445         * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
3446         par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
3447         s-osinte-solaris.adb, s-osinte-solaris.ads,
3448         s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
3449
3450         * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
3451         switch -gnatyS. Enable -gnatyS in GNAT style check mode
3452
3453 2007-08-14  Robert Dewar  <dewar@adacore.com>
3454             Ed Schonberg  <schonberg@adacore.com>
3455
3456         * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads: 
3457         Suppress unmodified in-out parameter warning in some cases
3458         This patch is a also fairly significant change to the way suppressible
3459         checks are handled.
3460
3461         * checks.ads, checks.adb (Install_Null_Excluding_Check): No check
3462         needed for access to concurrent record types generated by the expander.
3463         (Generate_Range_Check): When generating a temporary to capture the
3464         value of a conversion that requires a range check, set the type of the
3465         temporary before rewriting the node, so that the type is always
3466         properly placed for back-end use.
3467         (Apply_Float_Conversion_Check): Handle case where the conversion is
3468         truncating.
3469         (Get_Discriminal): Code reformatting. Climb the scope stack looking
3470         for a protected type in order to examine its discriminants.
3471
3472 2007-08-14  Robert Dewar  <dewar@adacore.com>
3473             Gary Dismukes  <dismukes@adacore.com>
3474             Ed Schonberg  <schonberg@adacore.com>
3475             Thomas Quinot  <quinot@adacore.com>
3476
3477         * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb, 
3478         a-stwisu.adb, a-strsup.adb: Fix warnings for range
3479         tests optimized out.
3480
3481         * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
3482         (Get_Allocator_Final_List): For the case of an anonymous access type
3483         that has a specified Associated_Final_Chain, do not go up to the
3484         enclosing scope.
3485         (Expand_N_Type_Conversion): Test for the case of renamings of access
3486         parameters when deciding whether to apply a run-time accessibility
3487         check.
3488         (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
3489         aggregate code before allocator, and ahead of declaration for
3490         temporary, to prevent access before elaboration when the allocator is
3491         an actual for an access parameter.
3492         (Expand_N_Type_Conversion): On an access type conversion involving an
3493         access parameter, do not apply an accessibility check when the
3494         operand's original node was an attribute other than 'Access. We now
3495         create access conversions for the expansion of 'Unchecked_Access and
3496         'Unrestricted_Access in certain cases and clearly accessibility should
3497         not be checked for those.
3498
3499         * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
3500         includes a type conversion of a packed component that has been expanded,
3501         recover the original expression for the object, and use this expression
3502         in the post-call assignment statement, so that the assignment is made
3503         to the object and not to a back-end temporary.
3504         (Freeze_Subprogram): In case of primitives of tagged types not defined
3505         at the library level force generation of code to register the primitive
3506         in the dispatch table. In addition some code reorganization has been
3507         done to leave the implementation clear.
3508         (Expand_Call): When expanding an inherited implicit conversion,
3509         preserve the type of the inherited function after the intrinsic
3510         operation has been expanded.
3511
3512         * exp_ch2.ads, exp_ch2.adb
3513         (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
3514         of an entry formal appearing in an assignment statement does not assign
3515         to the formal.
3516         (Expand_Current_Value): Instead of calling a routine to determine
3517         whether the prefix of an attribute reference should be optimized or
3518         not, prevent the optimization of such prefixes all together.
3519
3520         * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
3521         component whose prefix is known to be of an access type is an implicit
3522         dereference and does not assign to the prefix.
3523
3524 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
3525             Robert Dewar  <dewar@adacore.com>
3526
3527         * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
3528         itype is visited, make an entry into table to link associated node and
3529         new itype.
3530         Add comments and correct harmless error in Build_NCT_Hash_Tables
3531         (Array_Aggr_Subtype): Associate each itype created for an index type to
3532         the corresponding range construct, and not to the aggregate itself. to
3533         maintain a one-to-one correspondence between itype and its associated
3534         node, to prevent errors when complex expression is copied.
3535         Fix mishandling of multiple levels of parens
3536
3537         * sem_aggr.adb: Create a limited view of an incomplete type, to make
3538         treatment of limited views uniform for all visible declarations in a
3539         limited_withed package.
3540         (New_Copy_Tree): If hash table is being used and itype is visited,
3541         make an entry into table to link associated node and new itype.
3542         (Resolve_Record_Aggregate): Do not add an others box association for a
3543         discriminated record component that has only discriminants, when there
3544         is a box association for the component itself.
3545
3546         * par-ch4.adb: Fix mishandling of multiple levels of parens
3547
3548 2007-08-14  Robert Dewar  <dewar@adacore.com>
3549
3550         * comperr.adb: Fix problem with suppressing warning messages from gigi
3551
3552         * erroutc.ads, erroutc.adb, errout.ads, 
3553         errout.adb (Write_Eol): Remove trailing spaces before writing the line
3554         (Write_Eol_Keep_Blanks): New procedure to write a line, including
3555         possible trailing spaces.
3556         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
3557         Fix problem with suppressing warning messages from back end
3558         Improve handling of deleted warnings
3559
3560         * gnat1drv.adb: 
3561         Fix problem with suppressing warning messages from back end
3562         Handle setting of Static_Dispatch_Tables flag.
3563
3564         * prepcomp.adb: 
3565         Fix problem with suppressing warning messages from back end
3566
3567         * exp_intr.adb: Improve handling of deleted warnings
3568
3569 2007-08-14  Robert Dewar  <dewar@adacore.com>
3570
3571         * debug.adb: Improve -gnatdI to cover all cases of serialization
3572         Add documentation of dZ, d.t
3573
3574         * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
3575         serialization.
3576         (Sprint_Node_Actual): Generate new output associated with implicit
3577         importation and implicit exportation of object declarations.
3578
3579 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
3580             Robert Dewar  <dewar@adacore.com>
3581             Javier Miranda  <miranda@adacore.com>
3582             Gary Dismukes  <dismukes@adacore.com>
3583
3584         * einfo.ads, einfo.adb: Create a limited view of an incomplete type,
3585         to make treatment of limited views uniform for all visible declarations
3586         in a limited_withed package.
3587         Improve warnings for in out parameters
3588         (Set_Related_Interaface/Related_Interface): Allow the use of this
3589         attribute with constants.
3590         (Write_Field26_Name): Handle attribute Related_Interface in constants.
3591         Warn on duplicate pragma Preelaborable_Initialialization
3592
3593         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
3594         generation of a freezing node to ensure proper management of null
3595         excluding access types in the backend.
3596         (Create_Extra_Formals): Test base type of the formal when checking for
3597         the need to add an extra accessibility-level formal. Pass the entity E
3598         on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
3599         originally being done in a couple of cases), to ensure that the
3600         Extra_Formals list gets set on the entity E when the first entity is
3601         added.
3602         (Conforming_Types): Add missing calls to Base_Type to the code that
3603         handles anonymous access types. This is required to handle the
3604         general case because Process_Formals builds internal subtype entities
3605         to handle null-excluding access types.
3606         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
3607         functions that need it, even when not marked Requires_Overriding.
3608         Improve warnings for in out parameters
3609         (Analyze_Function_Return): Warn for disallowed null return
3610         Warn on return from procedure with unset out parameter
3611         Ensure consistent use of # in error messages
3612         (Check_Overriding_Indicator): Add in parameter Is_Primitive.
3613         (Analyze_Function_Return): Move call to Apply_Constraint_Check before
3614         the implicit conversion of the expression done for anonymous access
3615         types. This is required to generate the code of the null excluding
3616         check (if required).
3617
3618         * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
3619         A formal parameter is never publicly referenceable outside of its body.
3620         (Check_References): For an unreferenced formal parameter in an accept
3621         statement, use the same warning circuitry as for subprogram formal
3622         parameters.
3623         (Warn_On_Unreferenced_Entity): New subprogram, taken from
3624         Output_Unreferenced_Messages, containing the part of that routine that
3625         is now reused for entry formals as described above.
3626         (Goto_Spec_Entity): New function
3627         (Check_References): Do not give IN OUT warning for dispatching operation
3628         Improve warnings for in out parameters
3629         (Test_Ref): Check that the entity is not undefinite before calling
3630         Scope_Within, in order to avoid infinite loops.
3631         Warn on return from procedure with unset out parameter
3632         Improved warnings for unused variables
3633
3634 2007-08-14  Robert Dewar  <dewar@adacore.com>
3635             Javier Miranda  <miranda@adacore.com>
3636             Gary Dismukes  <dismukes@adacore.com>
3637
3638         * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
3639         (Expand_N_Attribute_Reference): Further unify the handling of the
3640         three forms of access attributes, using common code now for all three
3641         cases. Add a test for the case of applying an access attribute to
3642         an explicit dereference when the context is an access-to-interface
3643         type. In that case we need to apply the conversion to the prefix
3644         of the explicit dereference rather than the prefix of the attribute.
3645         (Attribute_Version, UET_Address): Set entity as internal to ensure
3646         proper dg output of implicit importation.
3647         (Expand_Access_To_Type): Removed.
3648         (Expand_N_Attribute_Reference): Merge the code from the three cases
3649         of access attributes, since the processing is largely identical for
3650         these cases. The substantive fix here is to process the case of a
3651         type name prefix (current instance case) before handling the case
3652         of interface prefixes.
3653
3654 2007-08-14  Thomas Quinot  <quinot@adacore.com>
3655             Ed Schonberg  <schonberg@adacore.com>
3656             Javier Miranda  <miranda@adacore.com>
3657             Robert Dewar  <dewar@adacore.com>
3658
3659         * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
3660         (Freeze_Array_Type, Freeze_Record_Type): For the case of a component
3661         type that is an anonymous access to controlled object, establish
3662         an associated finalization chain to avoid corrupting the global
3663         finalization list when a dynamically allocated object designated
3664         by such a component is deallocated.
3665         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
3666         functions that need it, even when not marked Requires_Overriding.
3667         (Initialize_Tag): Replace call to has_discriminants by call to
3668         Is_Variable_Size_Record in the circuitry that handles the
3669         initialization of secondary tags.
3670         (Is_Variable_Size_Record): New implementation.
3671         (Expand_N_Object_Declaration): Suppress call to init proc if there is a
3672         Suppress_Initialization pragma for a derived type.
3673         (Is_Variable_Size_Record): New subprogram.
3674         (Build_Offset_To_Top_Functions): New implementation that simplifies the
3675         initial version of this routine and also fixes problems causing
3676         incomplete initialization of the table of interfaces.
3677         (Build_Init_Procedure): Improve the generation of code to initialize the
3678         the tag components of secondary dispatch tables.
3679         (Init_Secondary_Tags): New implementation that simplifies the previous
3680         version of this routine.
3681         (Make_DT): Add parameter to indicate when type has been frozen by an
3682         object declaration, for diagnostic purposes.
3683         (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
3684         diagnose attemps to freeze a subprogram when some untagged type of its
3685         profile is a private type whose full view has not been analyzed yet.
3686         (Freeze_Array_Type): Generate init proc for packed array if either
3687         Initialize or Normalize_Scalars is set.
3688         (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
3689         constructing the new profile, copy the null_exclusion indicator for each
3690         parameter, to ensure full conformance of the new body with the spec.
3691
3692         * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
3693         Create wrappers for constructor functions that need it, even when not
3694         marked Requires_Overriding.
3695         (Covers): Handle properly designated types of anonymous access types,
3696         whose non-limited views are themselves incomplete types.
3697         (Add_Entry): Use an entity to store the abstract operation which hides
3698         an interpretation.
3699         (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
3700         (Collect_Interps): Use Empty as an actual for Abstract_Op in the
3701         initialization aggregate.
3702         (Function_Interp_May_Be_Hidden): Rename to
3703         Function_Interp_Has_Abstract_Op.
3704         (Has_Compatible_Type): Remove machinery that skips interpretations if
3705         they are labeled as potentially hidden by an abstract operator.
3706         (Has_Hidden_Interp): Rename to Has_Abstract_Op.
3707         (Set_May_Be_Hidden): Rename to Set_Abstract_Op.
3708         (Write_Overloads): Output the abstract operator if present.
3709         (Add_Entry): Before inserting a new entry into the interpretation table
3710         for a node, determine whether the entry will be disabled by an abstract
3711         operator.
3712         (Binary_Op_Interp_May_Be_Hidden): New routine.
3713         (Collect_Interps): Add value for flag May_Be_Hidden in initialization
3714         aggregate.
3715         (Function_Interp_May_Be_Hidden): New routine.
3716         (Has_Compatible_Type): Do not consider interpretations hidden by
3717         abstract operators when trying to determine whether two types are
3718         compatible.
3719         (Has_Hidden_Interp): New routine.
3720         (Set_May_Be_Hidden_Interp): New routine.
3721         (Write_Overloads): Write the status of flag May_Be_Hidden.
3722
3723 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
3724             Javier Miranda  <miranda@adacore.com>
3725
3726         * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
3727         types declared in the declarative part of a nested package body or in
3728         the proper body of a stub.
3729         (Set_All_DT_Position): Add missing check to avoid wrong assignation
3730         of the same dispatch table slot to renamed primitives.
3731         (Make_Select_Specific_Data_Table): Handle private types.
3732         (Tagged_Kind): Handle private types.
3733         (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
3734         output of implicit importation and exportation.
3735         (Expand_Interface_Thunk): Fix bug in the expansion assuming that the
3736         first formal of the thunk is always associated with the controlling
3737         type. In addition perform the following code cleanup: remove formal
3738         Thunk_Alias which is no longer required, cleanup evaluation of the
3739         the controlling type, and update the documentation.
3740         Replace occurrence of Default_Prim_Op_Count by
3741         Max_Predef_Prims. Addition of compile-time check to verify
3742         that the value of Max_Predef_Prims is correct.
3743         (Check_Premature_Freezing): Apply check in Ada95 mode as well.
3744         (Make_DT): Add parameter to indicate when type has been frozen by an
3745         object declaration, for diagnostic purposes.
3746         (Build_Static_Dispatch_Tables): New subprogram that takes care of the
3747         construction of statically allocated dispatch tables.
3748         (Make_DT): In case of library-level tagged types export the declaration
3749         of the primary tag. Remove generation of tags (now done by Make_Tags).
3750         Additional modifications to handle non-static generation of dispatch
3751         tables. Take care of building tables for asynchronous interface types
3752         (Make_Tags): New subprogram that generates the entities associated with
3753         the primary and secondary tags of Typ and fills the contents of Access_
3754         Disp_Table. In case of library-level tagged types imports the forward
3755         declaration of the primary tag that will be declared later by Make_DT.
3756         (Expand_Interface_Conversion): In case of access types to interfaces
3757         replace an itype declaration by an explicit type declaration to avoid
3758         problems associated with the scope of such itype in transient blocks.
3759
3760 2007-08-14  Robert Dewar  <dewar@adacore.com>
3761             Ed Schonberg  <schonberg@adacore.com>
3762             Javier Miranda  <miranda@adacore.com>
3763
3764         * exp_util.ads, exp_util.adb: 
3765         This patch replaces a number of occurrences of explicit tests for N_Null
3766         with calls to Known_Null. This improves tracking of null values, since
3767         Known_Null also catches null constants, and variables currently known to
3768         be null, so we get better tracking.
3769         (Ensure_Defined): create an itype reference only in the scope of the
3770         itype.
3771         (Side_Effect_Free): A selected component of an access type that
3772         denotes a component with a rep clause must be treated as not
3773         side-effect free, because if it is part of a linked structure its
3774         value may be affected by a renaming.
3775         (Expand_Subtype_From_Expr): For limited objects initialized with build
3776         in place function calls, do nothing; otherwise we prematurely introduce
3777         an N_Reference node in the expression initializing the object, which
3778         breaks the circuitry that detects and adds the additional arguments to
3779         the called function. Bug found working in the new patch for statically
3780         allocated dispatch tables.
3781         (Is_Library_Level_Tagged_Type): New subprogram.
3782         (Remove_Side_Effects): If the expression of an elementary type is an
3783         operator treat as a function call.
3784         (Make_Literal_Range): If the index type of the array is not integer, use
3785         attributes properly to compute the constraint on the resulting aggregate
3786         which is a string.
3787
3788         * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
3789         class-wide type whose base type is an incomplete private type, leave
3790         class-wide type unfrozen so that freeze nodes can be generated
3791         properly at a later point.
3792         (Freeze_Entity, array case): Handle case of pragma Pack and component
3793         size attributre clause for same array.
3794
3795 2007-08-14  Vincent Celier  <celier@adacore.com>
3796
3797         * prj.ads, prj.adb: Update Project Manager to new attribute names for
3798         gprbuild.
3799         Allow all valid declarations in configuration project files
3800         (Reset): Initialize all tables and hash tables in the project tree data
3801         Major update of the Project Manager and of the project aware tools,
3802         including gprmake, so that the same sources in the GNAT repository
3803         can be used by gprbuild.
3804         (Slash_Id): Change type to be Path_Name_Type
3805         (Slash): Return a Path_Name_Type instead of a File_Name_Type
3806
3807         * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
3808         gprbuild.
3809         Update Project Manager to new attribute names for ghprbuild
3810         Allow all valid declarations in configuration project files
3811         Major update of the Project Manager and of the project aware tools,
3812         including gprmake, so that the same sources in the GNAT repository
3813         can be used by gprbuild.
3814
3815         * prj-com.ads: 
3816         Major update of the Project Manager and of the project aware tools,
3817         including gprmake, so that the same sources in the GNAT repository
3818         can be used by gprbuild.
3819
3820         * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
3821         insensitive flag for attributes with optional index.
3822         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
3823         array attribute, put the index in lower case.
3824         Update Project Manager to new attribute names for ghprbuild
3825         Allow all valid declarations in configuration project files
3826         Major update of the Project Manager and of the project aware tools,
3827         including gprmake, so that the same sources in the GNAT repository
3828         can be used by gprbuild.
3829
3830         * prj-env.ads, prj-env.adb: 
3831         Major update of the Project Manager and of the project aware tools,
3832         including gprmake, so that the same sources in the GNAT repository
3833         can be used by gprbuild.
3834         (Get_Reference): Change type of parameter Path to Path_Name_Type
3835
3836         * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
3837         removing '-' from the path to start with the first character of the
3838         next directory.
3839         Major update of the Project Manager and of the project aware tools,
3840         including gprmake, so that the same sources in the GNAT repository
3841         can be used by gprbuild.
3842         Major update of the Project Manager and of the project aware tools,
3843         including gprmake, so that the same sources in the GNAT repository
3844         can be used by gprbuild.
3845
3846         * prj-nmsc.ads, prj-nmsc.adb: 
3847         Update Project Manager to new attribute names for ghprbuild
3848         Allow all valid declarations in configuration project files
3849         (Search_Directories): Detect subunits that are specified with an
3850         attribute Body in package Naming. Do not replace a source/unit in the
3851         same project when the order of the source dirs are known. Detect
3852         duplicate sources/units in the same project when the order of the
3853         source dirs are not known.
3854         (Check_Ada_Name): Allow all identifiers that are not reserved words
3855         in Ada 95.
3856         Major update of the Project Manager and of the project aware tools,
3857         including gprmake, so that the same sources in the GNAT repository
3858         can be used by gprbuild.
3859         (Look_For_Sources): If the list of sources is empty, set the object
3860         directory of non extending project to nil.
3861         Change type of path name variables to be Path_Name_Type
3862         (Locate_Directory): Make sure that on Windows '/' is converted to '\',
3863         otherwise creating missing directories will fail.
3864
3865         * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb, 
3866         prj-part.ads, prj-part.adb:
3867         Major update of the Project Manager and of the project aware tools,
3868         including gprmake, so that the same sources in the GNAT repository
3869         can be used by gprbuild.
3870
3871         * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
3872         insensitive flag for attributes with optional index.
3873         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
3874         array attribute, put the index in lower case.
3875         (Parse_Variable_Reference): Allow the current project name to be used in
3876         the prefix of an attribute reference.
3877
3878         * prj-util.ads, prj-util.adb
3879         (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
3880         defaulted to False. When True, always check against indexes in lower
3881         case.
3882
3883         * snames.ads, snames.h, snames.adb: 
3884         Update Project Manager to new attribute names for gprbuild
3885         Allow all valid declarations in configuration project files
3886
3887 2007-08-14  Robert Dewar  <dewar@adacore.com>
3888             Ed Schonberg  <schonberg@adacore.com>
3889
3890         * opt.ads: Warning for non-local exception propagation now off by
3891         default
3892         New switch -gnatI to disable representation clauses
3893         Implement new pragma Implicit_Packing
3894
3895         * usage.adb: 
3896         Warning for non-local exception propagation now off by default
3897         Add warning for unchecked conversion of pointers wi different
3898         conventions.
3899         New switch -gnatI to disable representation clauses
3900
3901         * usage.adb: new switch -gnatyS
3902
3903         * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
3904         note that aggregates of anonymous array types are not flagged.
3905         -gnatwc now includes membership tests optimized away
3906         -gnatw.x warnings are now off by default
3907         Added conditional compilation Appendix
3908         Add documentation of -gnatI
3909         Add documentation for new -gnatyS style check
3910         Update documentation about SAL and auto-init on Windows.
3911
3912         * gnat_rm.texi: 
3913         Add documentation for pragma Check_Name and 'Enabled attribute
3914         Document that Eliminate on dispatching operation is ignored
3915         Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
3916         Document pragma Main
3917         Document pragma Implicit_Packing
3918
3919         * sem_ch13.adb: Add warning for unchecked conversion of pointers wi
3920         different conventions
3921         New switch -gnatI to disable representation clauses
3922
3923         * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
3924         recognized, report the invalid characters including "-gnat" instead of
3925         just the first character in the switch.
3926         New switch -gnatI to disable representation clauses
3927         Set Warn_On_Object_Renames_Function true for -gnatg
3928
3929         * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
3930         Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
3931         Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
3932         to switch -aP (add directory to project search dir).
3933
3934         * par-prag.adb: Implement new pragma Implicit_Packing
3935
3936         * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
3937         type as having a non-standard representation, to force expansion on
3938         conversion to related types.
3939         (Analyze_Pragma): Warn on misspelled pragma
3940         (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
3941         Ensure consistent use of # in error messages
3942         Implement pragma Implicit_Packing
3943
3944 2007-08-14  Olivier Hainque  <hainque@adacore.com>
3945             Eric Botcazou  <ebotcazou@adacore.com>
3946
3947         * targtyps.c (get_target_maximum_default_alignment): New function.
3948         Maximum alignment
3949         that the compiler might choose by default for a type or object.
3950         (get_target_default_allocator_alignment): New function. Alignment known
3951         to be honored by the target default allocator.
3952         (get_target_maximum_allowed_alignment): New function. Maximum alignment
3953         we might accept for any type or object on the target.
3954         (get_target_maximum_alignment): Now synonym of maximum_default_alignment
3955
3956         * gigi.h (get_target_maximum_default_alignment): Declare new function.
3957         (get_target_default_allocator_alignment): Likewise.
3958         (get_target_maximum_allowed_alignment): Likewise.
3959
3960         PR ada/19037
3961         * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the
3962         result of a function call, first try to use a stabilized reference for
3963         a constant renaming too.
3964         (validate_alignment): Use target_maximum_allowed_alignment instead of
3965         MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
3966         (gnat_to_gnu_entity): Use common nodes directly.
3967         (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate
3968         alignment and size for the object.
3969         (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
3970         and N_Procedure_Call_Statement.
3971         (takes_address): Rename to lvalue_required_p, add third parameter
3972         'aliased' and adjust recursive calls.
3973         <N_Indexed_Component>: Update 'aliased' from the array type.
3974         <N_Selected_Component>: New case.
3975         <N_Object_Renaming_Declaration>: New Likewise.
3976         (Identifier_to_gnu): Adjust for above changes.
3977         (maybe_stabilize_reference) <CONST_DECL>: New case.
3978
3979         * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion
3980         between type variants.
3981         (build_simple_component_ref): Likewise.
3982         (build_call_alloc_dealloc): Use target_default_allocator_alignment
3983         instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
3984         aligning type circuitry for allocations from the default storage pool.
3985         (build_allocator): Likewise.
3986         (build_simple_component_ref): Manually fold the reference for a
3987         constructor if the record type contains a template.
3988
3989         * utils.c (value_zerop): Delete.
3990         (gnat_init_decl_processing): Emit debug info for common types.
3991         (rest_of_record_type_compilation): If a union contains a field
3992         with a non-constant qualifier, treat it as variable-sized.
3993         (finish_record_type): Give the stub TYPE_DECL a name.
3994         (rest_of_record_type_compilation): Likewise.
3995         (convert) <CONSTRUCTOR>: New case.  Build a new constructor if
3996         types are equivalent array types.
3997         (create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
3998         even if the type is not passed by reference.
3999         (static_ctors, static_dtors): Delete.
4000         (end_subprog_body): Do not record constructors and destructors.
4001         (build_global_cdtor): Delete.
4002         (gnat_write_global_declarations): Do not call build_global_cdtor.
4003
4004         * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
4005         -fRTS=rtp is specified.
4006         If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
4007         specified.
4008
4009         * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
4010         of the personality function with SJLJ exceptions.
4011
4012         * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
4013         the name of the personality function with SJLJ exceptions.
4014
4015 2007-08-14  Robert Dewar  <dewar@adacore.com>
4016             Ed Schonberg  <schonberg@adacore.com>
4017
4018         * par.ads, par.adb: Improve handling of extra right parens.
4019         (Par): Remove flag From_Limited_With_Clause.
4020
4021         * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
4022         Improve handling of extra right parens.
4023
4024 2007-08-14  Robert Dewar  <dewar@adacore.com>
4025
4026         * par-tchk.adb (TF_Semicolon): Improve error recovery
4027
4028 2007-08-14  Robert Dewar  <dewar@adacore.com>
4029             Ed Schonberg  <schonberg@adacore.com>
4030
4031         * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
4032         enumeration type, mark all literals as referenced.
4033         (Eval_Attribute, case 'Image): If the argument is an enumeration
4034         literal and names are available, constant-fold but mark nevertheless as
4035         non-static.
4036         Clean up function names.
4037         (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
4038         comment.
4039         (Requires_Simple_Name_Prefix): Removed.
4040
4041 2007-08-14  Robert Dewar  <dewar@adacore.com>
4042             Ed Schonberg  <schonberg@adacore.com>
4043
4044         * sem_ch11.adb: Improved warnings for unused variables
4045
4046         * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
4047         is a synchronized interface, the derived type is limited.
4048         (Analyze_Object_Declaration): Mark the potential coextensions in the
4049         definition and expression of an object declaration node.
4050         (Build_Derived_Type): For the completion of a private type declaration
4051         with a derived type declaration, chain the parent type's representation
4052         items to the last representation item of the derived type (not the
4053         first one) if they are not present already.
4054         (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
4055         object declaration of forward references to tags.
4056         (Access_Subprogram_Declaration): In Ada2005, anonymous access to
4057         subprogram types can appear as access discriminants of synchronized
4058         types.
4059         (OK_For_Limited_Init_In_05): The initialization is legal is it is a call
4060         given in prefixed form as a selected component.
4061         (Process_Discriminants): If not all discriminants have defaults, place
4062         error message on a default that is present.
4063         (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
4064         extend a synchronized tagged type.
4065         Improved warnings for unused variables
4066         (Is_Visible_Component): Fix a visibility hole on a component inherited
4067         by a private extension when parent is itself declared as a private
4068         extension, and the derivation is in a child unit.
4069         (Find_Hidden_Interface): Move spec from the package body.
4070
4071 2007-08-14  Robert Dewar  <dewar@adacore.com>
4072             Ed Schonberg  <schonberg@adacore.com>
4073
4074         * sem_ch5.adb: Improve warnings on redundant assignments
4075
4076         * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
4077         parameter
4078         (Is_Synchronized_Tagged_Type): New subprogram that returns true
4079         in case of synchronized tagged types (AARM 3.9.4 (6/2)).
4080         (Safe_To_Capture_Value): Can now return True for constants, even if Cond
4081         is set to False. Improves handling of Known_[Not_]Null.
4082         (Wrong_Type): Special case address arithmetic attempt
4083         (Collect_Abstract_Interfaces): Add new formal to allow collecting
4084         abstract interfaces just using the partial view of private types.
4085         (Has_Abstract_Interfaces): Add new formal to allow checking types
4086         covering interfaces using the partial view of private types.
4087         (Is_Fully_Initialized_Type): Special VM case for uTag component. This
4088         component still needs to be defined in this case, but is never
4089         initialized as VMs are using other dispatching mechanisms.
4090         (Abstract_Interface_List): For a protected type, use base type to get
4091         proper declaration.
4092         Improve warnings on redundant assignments
4093         (Is_Variable): Handle properly an implicit dereference of a prefixed
4094         function call.
4095         (Build_Actual_Subtype): If this is an actual subtype for an
4096         unconstrained formal parameter, use the sloc of the body for the new
4097         declaration, to prevent anomalises in the debugger.
4098
4099 2007-08-14  Robert Dewar  <dewar@adacore.com>
4100
4101         * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
4102         dispatching operation
4103
4104 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4105             Gary Dismukes  <dismukes@adacore.com>
4106
4107         * exp_aggr.ads, 
4108         exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
4109         expanded aggregate code before allocator, and ahead of declaration for
4110         temporary, to prevent access before elaboration when the allocator is
4111         an actual for an access parameter.
4112         (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
4113         the TSD and the table of interfaces.
4114         (Convert_To_Assignments): Augment the test for delaying aggregate
4115         expansion for limited return statements to include the case of extended
4116         returns, to prevent creation of an unwanted transient scope.
4117         (Is_Static_Dispatch_Table_Aggregate): New subprogram.
4118         (Expand_Array_Aggregate): Handle aggregates associated with
4119         statically allocated dispatch tables.
4120         (Expand_Record_Aggregate): Handle aggregates associated with
4121         statically allocated dispatch tables.
4122         (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
4123         of anonymous access type.
4124
4125 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4126
4127         * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
4128         is a variable that renames a slice, use the variable itself in the
4129         expannsion when the renamed expression itself may be modified between
4130         the declaration of the renaming and the array assignment.
4131
4132 2007-08-14  Jerome Guitton  <guitton@adacore.com>
4133
4134         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb, 
4135         s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb, 
4136         s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
4137         New functions; dummy implementations.
4138
4139         * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
4140         functions, used to implement the multi-tasks mode routines on VxWorks.
4141
4142         * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
4143         New functions, thin
4144         binding to the VxWorks routines which have changed between VxWorks 5
4145         and 6.
4146         (Int_Lock, Int_Unlock): New function, thin binding to kernel routines
4147         which are not callable from a RTP.
4148
4149         * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
4150         implemented for the multi-tasks mode on VxWorks 5 and 6.
4151
4152         * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.
4153
4154         * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
4155         functions.
4156
4157 2007-08-14  Vincent Celier  <celier@adacore.com>
4158
4159         * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb, 
4160         gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
4161         mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb, 
4162         mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb, 
4163         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, 
4164         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
4165         mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
4166         procedure.
4167         (Major_Id_Name): New function.
4168         mlib-tgt.ads/mlib.tgt.adb:
4169         (Library_Major_Minor_Id_Supported): New function, default returns True
4170         Most mlib-tgt-*.adb that support shared libraries and symbolic links:
4171         (Build_Dynamic_Library): Add support for major/minor ids for shared libs
4172         Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
4173         Implementation of Library_Major_Minor_Id_Supported returns False
4174         clean.adb:
4175         (Clean_Library_Directory): If major/minor ids are supported, clean all
4176         library files.
4177         Major update of the Project Manager and of the project aware tools,
4178         including gprmake, so that the same sources in the GNAT repository
4179         can be used by gprbuild.
4180
4181 2007-08-14  Olivier Hainque  <hainque@adacore.com>
4182
4183         * system-solaris-x86.ads (ZCX_By_Default): Switch to True.
4184         (GCC_ZCX_Support): Switch to True.
4185         
4186         * s-intman-solaris.adb (Notify_Exception): Call
4187         Adjust_Context_For_Raise before raising, as expected for signal
4188         handlers in general.
4189         
4190         * s-intman-posix.adb (Notify_Exception): Remove declaration of
4191         Adjust_Context_For_Raise, moved to the spec of this unit to be visible
4192         to other implementation bodies.
4193         
4194         * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
4195         be visible by multiple implementation bodies.
4196         
4197         * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
4198         only for conditions coming from hardware.
4199         [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
4200         adjustments to signal context prior to exception raise from signal
4201         handler.
4202         (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
4203         mode.
4204         Solaris section: (__gnat_adjust_context_for_raise): New function.
4205         Implementation of the machine context adjustments to perform prior to
4206         raise from a signal handler. Version for both sparc and x86.
4207         (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
4208         (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
4209         prior to raising as expected for any handler, before possible nested
4210         faults to make sure all the contexts in a chain have been adjusted by
4211         the time we propagate.
4212
4213 2007-08-14  Pascal Obry  <obry@adacore.com>
4214
4215         * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
4216         (SYSTEM_INFO): New record.
4217         (SetThreadIdealProcessor): New imported routine needed for supporting
4218         task_info pragma on Windows.
4219
4220         * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
4221         info can be applied to the current host.
4222         (Create_Task): Set the ideal processor if information is present.
4223
4224         * s-tasinf-mingw.adb, s-tasinf-mingw.ads,
4225         a-exetim-mingw.adb, a-exetim-mingw.ads: New files.
4226
4227 2007-08-14  Olivier Hainque  <hainque@adacore.com>
4228
4229         * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
4230         stack size and initial stack pointer value for a given task.
4231         (Enter_Task): Get the stack attributes of the task we are entering and
4232         let the stack checking engine know about them.
4233
4234         * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
4235         Let the stack-checking engine know about the initial sp value and stack
4236         size associated with the current task.
4237         (Set_Stack_Info): If a stack base has been notified for the current
4238         task, honor it. Fallback to the previous less accurate method otherwise.
4239
4240         * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.
4241
4242 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4243
4244         * sem_ch10.adb: Create a limited view of an incomplete type, to make
4245         treatment of limited views uniform for all visible declarations in a
4246         limited_withed package.
4247         Set flag indicating that a subprogram body for a child unit has a
4248         generated spec.
4249         (Analyze_Compilation_Unit): If unit is a subprogram body that has no
4250         separate declaration, remove the unit name from visibility after
4251         compilation, so that environment is clean for subsequent compilations.
4252         (Install_Limited_Context_Clauses): Do not install a
4253         limited_private_with_clause unless the current unit is a body or a
4254         private child unit.
4255         (Analyze_Subunit, Install_Parents): Treat generic and non-generic units
4256         in the same fashion.
4257         (Install_Limited_Withed_Unit): Do not install a limited with clause if
4258         it applies to the declaration of the current package body.
4259         (Remove_Private_With_Clauses): If there is a regular with_clause for
4260         the unit, delete Private_With_Clause from context, to prevent improper
4261         hiding when processing subsequent nested packages and instantiations.
4262
4263 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
4264
4265         * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
4266         dir/file, device:/dir/file, and device:drive_letter:/dir/file as
4267         representing absolute path names.
4268         __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.
4269
4270         * cstreams.c (__gnat_full_name for VxWorks): Use
4271         __gnat_is_absolute_path to detect whether we need to add the current
4272         directory to normalize the path.
4273
4274 2007-08-14  Javier Miranda  <miranda@adacore.com>
4275
4276         * a-tags.ads, 
4277         a-tags.adb (Displace): Associate a message with the raised CE
4278         exception.
4279         (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
4280         To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
4281         To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
4282         spec.
4283         (Default_Prim_Op_Count): Removed.
4284         (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
4285         Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
4286         Remove pragma Inline_Always.
4287
4288         * rtsfind.ads (Default_Prim_Op_Count): Removed
4289         (Max_Predef_Prims): New entity
4290         (RE_Expanded_Name): Removed
4291         (RE_HT_Link): Removed
4292         (RE_Iface_Tag): Remmoved
4293         (RE_Ifaces_Table): Removed
4294         (RE_Interfaces_Array): Removed
4295         (RE_Interface_Data_Element): Removed
4296         (RE_Nb_Ifaces): Removed
4297         (RE_RC_Offset): Removed
4298         (RE_Static_Offset_To_Top): Removed
4299
4300         * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
4301         formal.
4302         (Build_Inherit_Predefined_Prims): Replace occurrences of Default_
4303         Prim_Op_Count by Max_Predef_Prims.
4304
4305 2007-08-14  Thomas Quinot  <quinot@adacore.com>
4306             Vincent Celier  <celier@adacore.com>
4307
4308         * binde.adb (Elab_All_Links): Remove unnecessary call to
4309         Generic_Separately_Compiled (if a unit satisfies this predicate, there
4310         won't be an associated Afile).
4311         (Elab_All_Links): Fail if a referenced unit cannot be found
4312
4313         * bindgen.adb: 
4314         Fix comments in bindgen regarding consistency checks done in Bcheck:
4315         the checks are made across units within a partition, not across several
4316         partitions.
4317         Fix generation of C binder file for VxWorks.
4318
4319         * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
4320         Generic_May_Lack_ALI, more descriptive of the current use of the
4321         predicate, and update documentation.
4322
4323         * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
4324         reorganization and documentation update for the case of predefined
4325         library generics (for which we do not reference an Afile).
4326
4327 2007-08-14  Robert Dewar  <dewar@adacore.com>
4328
4329         * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
4330         s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
4331         s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
4332         s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
4333         s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
4334         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
4335         s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
4336         s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
4337         exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
4338         s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
4339         s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
4340         a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
4341         s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
4342         g-altcon.adb: Minor reformatting
4343
4344         ada-tree.h: Delete empty line.
4345
4346         ali.ads: Minor reformatting
4347         Clarification of comments.
4348         Minor spelling correction
4349
4350         * exp_dbug.adb: Add Warnings Off to suppress new warning
4351
4352         * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
4353         formal
4354
4355         * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
4356         value
4357
4358         * a-textio.adb (Write): Remove an unnecessary IN OUT mode from
4359
4360         * a-textio.ads: Reorder the standard input/output/error declarations
4361         for consistency.
4362
4363         * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call
4364
4365         * par-ch2.adb: Recognize RM specially in errout
4366         Change 'R'M to RM in all error messages
4367
4368         * scng.adb: Recognize RM specially in errout
4369
4370         * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
4371         N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.
4372
4373         * s-direio.adb: Add missing routine header box.
4374
4375         * sem_attr.ads: Add ??? comments
4376
4377         * sem_eval.adb: Recognize RM specially in errout
4378         Change 'R'M to RM in all error messages
4379
4380         * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes
4381
4382         * s-tasinf.ads: Fix minor comment typo.
4383
4384         * a-cihama.adb: Minor comment addition
4385
4386         * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
4387         formal
4388
4389         * s-tasinf-tru64.ads: Fix minor comment typo.
4390
4391         * itypes.ads: Comment update.
4392
4393         * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
4394         anymore.
4395
4396         * argv.c: Added protection against null gnat_argv and gnat_envp.
4397
4398         * bcheck.adb (Check_Consistency): Use correct markup character ({) in
4399         warning message when Tolerate_Consistency_Errors is True.
4400
4401         * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
4402         Any_Id, as this subprogram is only applicable to *type* entities (it
4403         sets RM_Size). Instead initialize just Esize and Alignment.
4404
4405 2007-08-14  Bob Duff  <duff@adacore.com>
4406
4407         * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads, 
4408         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
4409         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads, 
4410         a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
4411         a-coorse.ads (Next): Applied pragma Inline.
4412         Make all Containers packages Remote_Types (unless they are already
4413         Pure).
4414         (Previous): applied pragma Inline
4415         (Elements_Type): is now a record instead of an array
4416
4417 2007-08-14  Thomas Quinot  <quinot@adacore.com>
4418
4419         * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
4420         of Set_Item.
4421         (Set_Item): When the new item is an element of the currently allocated
4422         table passed by reference, save a copy on the stack if we're going
4423         to reallocate. Also, in Table.Set_Item, make sure we test the proper
4424         variable to determine whether to call Set_Last.
4425
4426         * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
4427         symbols-vms.adb, symbols-processing-vms-alpha.adb,
4428         symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
4429         some occurrences of the pattern
4430            T.Increment_Last;
4431            T.Table (T.Last) := Value;
4432         with a cleaner call to
4433            T.Append (Value);
4434
4435 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4436             Gary Dismukes  <dismukes@adacore.com>
4437             Thomas Quinot  <quinot@adacore.com>
4438
4439         * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
4440         derived type with interface progenitors use the analyzed formal as the
4441         parent of the actual, to create renamings for all the inherited
4442         operations in Derive_Subprograms.
4443         (Collect_Previous_Instances): new procedure within of
4444         Load_Parent_Of_Generic, to instantiate all bodies in the compilation
4445         unit being loaded, to ensure that the generation of global symbols is
4446         consistent in different compilation modes.
4447         (Is_Tagged_Ancestor): New function testing the ancestor relation that
4448         takes progenitor types into account.
4449         (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
4450         traversing over the primitives of the formal and actual types to locate
4451         any abstract subprograms of the actual type that correspond to a
4452         nonabstract subprogram of the formal type's ancestor type(s), and issue
4453         an error if such is found.
4454         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
4455         Instantiate_Package_Body, Instantiate_Subprogram_Body):
4456         Remove bogus guard around calls to Inherit_Context.
4457         (Reset_Entity): If the entity is the selector of a selected component
4458         that denotes a named number, propagate constant-folding to the generic
4459         template only if the named number is global to the generic unit.
4460         (Set_Instance_Env): Only reset the compilation switches when compiling
4461         a predefined or internal unit.
4462
4463 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4464
4465         * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
4466         parameter to determine whether operation applies to the prefix.
4467         (Complete_Object_Operation): If actual has an access type and
4468         controlling formal is not an in_parameter, reject the actual if it is
4469         an access_to_constant type.
4470         (Try_Primitive_Operation): If the type of the prefix is a formal tagged
4471         type, the candidate operations are found in the scope of declaration of
4472         the type, because the type has no primitive subprograms.
4473         (Analyze_Selected_Component): If prefix is class-wide, and root type is
4474         a private extension, only examine visible components before trying to
4475         analyze as a prefixed call.
4476         Change Entity_List to Type_To_Use, for better readability.
4477         (Has_Fixed_Op): Use base type when checking whether the type of an
4478         operator has a user-defined multiplication/division
4479         (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
4480         user-defined operators are available for fixed-point types.
4481
4482 2007-08-14  Thomas Quinot  <quinot@adacore.com>
4483             Ed Schonberg  <schonberg@adacore.com>
4484
4485         * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
4486         formal At_Any_Place indicating, when True, that we want to test for
4487         availability of the stream attribute at any place (as opposed to the
4488         current visibility context only).
4489         (Missing_Read_Write_Attributes): A stream attribute is missing for the
4490         purpose of enforcing E.2.2(8) only if it is not available at any place.
4491         Take into account the Ada2005 pragma Has_Preelaborable_Initialization
4492         when checking the legality of an extension aggregate in a preelaborable
4493         package. Treat the literal null as a valid default expression in a
4494         component declaration for a type with preelaborable initialization.
4495         A limited interface is a legal progenitor for the designated type of a
4496         remote access to class-wide type.
4497
4498 2007-08-14  Thomas Quinot  <quinot@adacore.com>
4499             Ed Schonberg  <schonberg@adacore.com>
4500
4501         * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
4502         reference): Use correct entity as denoted entity for the selector of
4503         the rewritten node.
4504         (Find_Direct_Name): Add comment about Generate_Reference incorrectly
4505         setting the Referenced_As_LHS flag for entities that are implicitly
4506         dereferenced.
4507         (Find_Type): If the type is an internally generated incomplete type,
4508         mark the full view as referenced, to prevent spurious warnings.
4509         (Find_Selected_Component, Has_Components): Handle properly non-limited
4510         views that are themselves incomplete types.
4511         Handle interfaces visible through limited-with clauses.
4512         (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
4513         subprogram generic actual for which we have generated a renaming.
4514         Warn when the renaming introduces a homonym of
4515         the renamed entity, and the renamed entity is directly visible.
4516
4517 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4518             Hristian Kirtchev  <kirtchev@adacore.com>
4519
4520         * sem_res.adb (Resolve_Allocator): Propagate any coextensions that
4521         appear in the subtree to the current allocator if it is not a static
4522         coextension.
4523         (Resolve_Allocator): Perform cleanup if resolution has determined that
4524         the allocator is not a coextension.
4525         (Resolve): Skip an interpretation hidden by an abstract operator only
4526         when the type of the interpretation matches that of the context.
4527         (Resolve): When looping through all possible interpretations of a node,
4528         do not consider those that are hidden by abstract operators.
4529         (Resolve_Actuals): When verifying that an access to class-wide object
4530         is an actual  for a controlling formal, ignore anonymous access to
4531         subprograms whose return type is an access to class_wide type.
4532         (Resolve_Slice): If the prefix of the slice is a selected component
4533         whose type depends on discriminants, build its actual subtype before
4534         applying range checks on the bounds of the slice.
4535         (Valid_Conversion): In an instance or inlined body, compare root types,
4536         to prevent anomalies between private and public views.
4537         (Resolve): Improve error message for ambiguous fixed multiplication
4538         expressions that involve universal_fixed multiplying operations.
4539
4540 2007-08-14  Javier Miranda  <miranda@adacore.com>
4541             Hristian Kirtchev  <kirtchev@adacore.com>
4542
4543         * exp_ch9.adb (Build_Protected_Entry): Propagate the original source
4544         location to allow the correct generation of errors in case of
4545         restrictions applied to the expanded code.
4546         (Expand_Entry_Barrier): Remove all generated renamings for a barrier
4547         function if the condition does not reference them.
4548         (Expand_Entry_Body_Declarations): Mark the index constant as having a
4549         valid value.
4550
4551 2007-08-14  Thomas Quinot  <quinot@adacore.com>
4552
4553         * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
4554         typecode parameters for a union (in a variant record), remove
4555         extraneous layer of Any wrapping for member label.
4556         (Expand_Receiving_Stubs_Bodies): For an RCI package body that has
4557         elabration statements, register the package with the name server
4558         at the beginning, not at the end, of the elaboration statements so
4559         that they can create remote access to subprogram values that designate
4560         remote subprograms from the package.
4561
4562 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
4563
4564         * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
4565         values to compute the number of seconds since the Unix Epoc in order to
4566         account for Daylight Savings Time. Perform special processing for dates
4567         that are earlier than the Unix Epoc to obtain a negative number.
4568
4569 2007-08-14  Emmanuel Briot  <briot@adacore.com>
4570
4571         * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
4572         switches.
4573
4574 2007-08-14  Eric Botcazou  <ebotcazou@adacore.com>
4575
4576         * gnatlink.adb (Gnatlink): Pass switches to the linker even if the
4577         binder-generated file is not in Ada.
4578         Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
4579         recorded in the ALI file.
4580         Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.
4581
4582 2007-08-14  Vincent Celier  <celier@adacore.com>
4583
4584         * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
4585         (Output_Source): Do nothing if parameter is No_Sdep_Id
4586
4587         * make.adb (Gnatmake): Do not rebuild an archive simply because a
4588         shared library it imports has a later time stamp.
4589         (Check): Resolve the symbolic links in the path name of the object
4590         directory.
4591         Check that the ALI file is in the correct object directory
4592         Check if a file name does not correspond to the mapping of units
4593         to file names.
4594         (Display_Version): New procedure
4595         (Initialize): Process switches --version and --help
4596         Use type Path_Name_Type for path name
4597
4598 2007-08-14  Paul Hilfinger  <hilfinger@adacore.com>
4599
4600         * impunit.adb: Re-organize System.Random_Numbers and
4601         GNAT.Random_Numbers and add to builds.
4602
4603         * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*
4604
4605         * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.
4606
4607         * a-assert.ads, a-assert.adb: New files.
4608
4609 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
4610
4611         * layout.adb (Layout_Type): In the case of access-to-subprogram types,
4612         if AAMP_On_Target is True, then the size of the type encompasses two
4613         addresses (a static link and a subprogram address), except in the case
4614         of library-level access types.
4615
4616 2007-08-14  Vincent Celier  <celier@adacore.com>
4617
4618         * output.ads, output.adb (Write_Eol): Remove trailing spaces before
4619         writing the line.
4620         (Write_Eol_Keep_Blanks): New procedure to write a line, including
4621         possible trailing spaces.
4622         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
4623
4624 2007-08-14  Javier Miranda  <miranda@adacore.com>
4625
4626         * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
4627         null-excluding access types.
4628
4629 2007-08-14  Javier Miranda  <miranda@adacore.com>
4630
4631         * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
4632         that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
4633         of private types add missing check on matching interfaces in the
4634         partial and full declarations.
4635         (Analyze_Protected_Type): Code cleanup.
4636         (Analyze_Task_Type): Code cleanup.
4637
4638 2007-08-14  Javier Miranda  <miranda@adacore.com>
4639
4640         * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
4641         generated interface thunk.
4642
4643 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4644
4645         * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
4646         obsolescent warning on application of 'Class to an incomplete type.
4647
4648         * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
4649         prevent obsolescent warning on application of 'Class to an incomplete
4650         type.
4651
4652 2007-08-14  Pascal Obry  <obry@adacore.com>
4653
4654         * s-fileio.adb (Is_Open): Add check for usability of the underlying
4655         file stream.
4656
4657 2007-08-14  Cyrille Comar  <comar@adacore.com>
4658
4659         * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
4660         since it is potentially used in cases implying double finalization of
4661         the same object.
4662
4663 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
4664
4665         * s-tasini.adb (Get_Stack_Info): Move this function to
4666         System.Soft_Links.Tasking because it is common to the full and the
4667         restricted run times.
4668         (Init_RTS): Do not set the Get_Stack_Info soft link because it is done
4669         in SSL.Tasking.Init_Tasking_Soft_Links.
4670
4671         * s-solita.adb (Get_Stack_Info): Function moved from
4672         System.Tasking.Initialization because it is common to the full and the
4673         restricted run times.
4674         (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.
4675
4676 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
4677
4678         * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
4679         s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
4680         (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
4681         parameter.
4682
4683         * s-tassta.adb (Task_Wrapper): Increased value of the small overflow
4684         guard to 12K.
4685
4686 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
4687
4688         * s-veboop.adb (SU): New named number initialized to
4689         System.Storage_Unit.
4690         (True_Val): The initialization expression is revised to use SU (=
4691         Storage_Unit) rather than assuming 8 for the component size of an
4692         unpacked Boolean array.
4693
4694 2007-08-14  Tristan Gingold  <gingold@adacore.com>
4695
4696         * tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
4697
4698         * tb-ivms.c: New file.
4699
4700         * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2
4701
4702 2007-08-14  Geert Bosch  <bosch@adacore.com>
4703
4704         * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
4705         s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
4706         Add required linker pragmas for automatically linking with the gnalasup
4707         linear algebra support library, and the systems math library.
4708         Rename cdot to cdotu and zdot to zdotu.
4709         Update header comment to describe purpose of package.
4710
4711 2007-08-14  Thomas Quinot  <quinot@adacore.com>
4712
4713         * exp_ch7.adb (Find_Final_List): For an anonymous access type that has
4714         an explicitly specified Associated_Final_Chain, use that list.
4715         (Expand_N_Package_Body): Build dispatch tables of library level tagged
4716         types.
4717         (Expand_N_Package_Declaration): Build dispatch tables of library level
4718         tagged types. Minor code cleanup.
4719
4720 2007-08-14  Vincent Celier  <celier@adacore.com>
4721
4722         * gnatchop.adb (Terminate_Program): Remove exception and use
4723         Types.Terminate_Program instead.
4724
4725         * osint.ads, osint.adb (Current_Exit_Status): New global variable
4726         (Find_Program_Name): Added protection against empty name.
4727         (OS_Exit_Through_Exception): New procedure
4728
4729         * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
4730         (OS_Exit_Default): New procedure that contains the previous
4731         implementation of procedure OS_Exit.
4732         (Final_Value): Remove obsolete Interix stuff.
4733
4734 2007-08-14  Thomas Quinot  <quinot@adacore.com>
4735
4736         * g-socket.ads: Reorganize example code so that it also works on
4737         Windows XP.
4738
4739 2007-08-14  Tristan Gingold  <gingold@adacore.com>
4740
4741         * g-trasym.ads: AIX now supports symbolic backtraces.
4742
4743 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4744
4745         * lib-load.adb (From_Limited_With_Chain): Always scan the stack of
4746         units being loaded to detect circularities. A circularity may be
4747         present even if the current chain of pending units to load starts from
4748         a limited_with_clause.
4749
4750         * lib-load.ads: Change profile of Load_Unit to use a with_clause
4751         rather than a boolean flag, in order to detect circularities in
4752         with_clauses.
4753
4754         * par-load.adb: Use current with_clause in calls to Load_Unit, rather
4755         than propagating the From_Limited_With flag, in order to handle
4756         properly circularities involving with_clauses.
4757
4758 2007-08-14  Nicolas Setton  <setton@adacore.com>
4759
4760         * link.c (FreeBSD): Add "const" keyword where needed, to eliminate
4761         warnings.
4762
4763 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
4764
4765         * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
4766         to build for libgnala.
4767         libgnat: Add rules to build libgnala.a
4768         (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
4769         target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
4770         Add s-osinte-vxworks-kernel.adb to the target pairs of the
4771         kernel run-time lib for VxWorks 6, which would provide a different
4772         implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
4773         x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
4774         running ZCX by default.
4775         Add g-sttsne-locking to LynxOS version.
4776         Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
4777         On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.
4778
4779         * system-darwin-x86.ads: New file.
4780
4781         * Make-lang.in: Delete files before copying onto them, so if they are
4782         read-only, the copy won't fail.
4783         Update dependencies
4784
4785 2007-08-14  Pascal Obry  <obry@adacore.com>
4786
4787         * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
4788         naming scheme.
4789
4790 2007-08-14  Vincent Celier  <celier@adacore.com>
4791
4792         * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
4793         (Gcc): Initialize Gcc_Name at the first call
4794
4795 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
4796
4797         * sem_ch7.adb (Analyze_Package_Specification): Do not install private
4798         with_clauses of the enclosing unit when analyzing the package
4799         specification of a nested instance.
4800
4801 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
4802
4803         * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
4804         (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
4805         Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
4806         layout of N_Allocator.
4807
4808 2007-08-14  Thomas Quinot  <quinot@adacore.com>
4809
4810         * rtsfind.adb (Check_RPC): Add PCS version check.
4811
4812         * gnatvsn.ads, gnatvsn.adb: Add PCS version.
4813         (Gnat_Free_Software): New function.
4814
4815         * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
4816         the PCS_Version value from s-parint, used to check that it is consistent
4817         with what exp_dist expects.
4818
4819         * s-parint.ads (PCS_Version): New entity for checking consistency
4820         between exp_dist and PCS.
4821
4822         * gen-soccon.c: (SO_REUSEPORT): New constant.
4823
4824 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
4825
4826         * a-calfor.adb (Image (Duration; Boolean)): Change type of local
4827         variable Sub_Second to Duration in order to accomodate a larger range
4828         of arithmetic operations.
4829
4830 2007-08-14  Bob Duff  <duff@adacore.com>
4831
4832         * g-sttsne-locking.ads: Move comments from spec to body.
4833         * g-sttsne-locking.adb: Move comments from spec to body.
4834         * g-sttsne-vxworks.ads: Removed.
4835         * g-sttsne-vxworks.adb: Removed.
4836
4837 2007-08-11  Ian Lance Taylor  <iant@google.com>
4838
4839         * misc.c (gnat_get_alias_set): Change return type to
4840         alias_set_type.
4841
4842 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4843
4844         * decl.c, utils2.c: Fix whitespace in last change.
4845
4846 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4847
4848         * decl.c (compare_field_bitpos): Constify.
4849         * utils2.c (compare_elmt_bitpos): Likewise.
4850
4851 2007-07-27  Aurelien Jarno  <aurelien@aurel32.net>
4852
4853         * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by 
4854         anonymous access type.
4855         (pthread_sigmask): Now take an access sigset_t.
4856
4857 2007-07-05  Joel Sherrill <joel.sherrill@oarcorp.com>
4858
4859         * s-osinte-rtems.ads: Correct prototype of pthread_sigmask.
4860         
4861 2007-06-21  Eric Botcazou  <ebotcazou@adacore.com>
4862
4863         PR tree-optimization/25737
4864         * misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
4865
4866 2007-06-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4867
4868         * trans.c (Attribute_to_gnu): When subtracting an
4869         offset from a pointer, use POINTER_PLUS_EXPR with
4870         NEGATE_EXPR instead of MINUS_EXPR.
4871         (gnat_to_gnu): Likewise.
4872         * utils.c (convert): When converting between
4873         thin pointers, use POINTER_PLUS_EXPR and sizetype
4874         for the offset.
4875         * utils2.c (known_alignment): POINTER_PLUS_EXPR
4876         have the same semantics as PLUS_EXPR for alignment.
4877         (build_binary_op): Add support for the semantics of
4878         POINTER_PLUS_EXPR's operands.
4879         When adding an offset to a pointer, use POINTER_PLUS_EXPR.
4880
4881 2007-06-11  Rafael Avila de Espindola  <espindola@google.com>
4882
4883         * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
4884         of get_signed_or_unsigned_type.
4885         * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.
4886
4887 2007-06-11  Bob Duff  <duff@adacore.com>
4888             Thomas Quinot  <quinot@adacore.com>
4889
4890         * g-stsifd-sockets.adb (Create): Work around strange behavior of
4891         'bind' on windows that causes 'connect' to fail intermittently, by
4892         retrying the 'bind'.
4893         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
4894
4895 2007-06-10  Duncan Sands  <baldrick@free.fr>
4896
4897         * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
4898         than to void, for the fields when making a new fat pointer type.
4899         (gnat_substitute_in_type): Now substitute_in_type.
4900         * gigi.h (gnat_substitute_in_type): Likewise.  Adjust recursive calls.
4901         * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
4902         * utils.c (update_pointer_to): Update fat pointers by updating the
4903         dummy node pointers used for the fields.
4904
4905 2007-06-06  Thomas Quinot  <quinot@adacore.com>
4906             Bob Duff  <duff@adacore.com>
4907
4908         * g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
4909         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads, 
4910         g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads:  Add new
4911         constant Thread_Blocking_IO, always True by default, set False
4912         on a per-runtime basis.
4913         (Need_Netdb_Buffer): New constant.
4914
4915         * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
4916         g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
4917         files.
4918
4919         * g-socthi-vxworks.ads, g-socthi-vxworks.adb,
4920         g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
4921         Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
4922         child package Task_Safe_NetDB
4923         (Host_Error_Messages): Add stub body.
4924         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
4925
4926         * g-soccon-mingw.ads: Add Windows-specific constants.
4927         (Need_Netdb_Buffer): New constant.
4928         (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
4929         wrapper and import inet_addr(3) from the standard sockets library
4930         directly instead.
4931         (In_Addr): Add alignment clause.
4932         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
4933
4934 2007-06-06  Robert Dewar  <dewar@adacore.com>
4935
4936         * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
4937         s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
4938         s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
4939         s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
4940         s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
4941         s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
4942         a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
4943         a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
4944         a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
4945         g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
4946         g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
4947         i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
4948         s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
4949         s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
4950         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
4951         s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
4952         s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
4953         s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
4954         s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
4955         s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
4956         s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
4957         s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
4958         s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
4959         s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
4960         s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
4961         s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
4962         s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
4963         s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
4964         s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
4965         s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
4966         s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
4967         a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
4968         Unchecked_* by Ada.Unchecked_*
4969
4970 2007-06-06  Robert Dewar  <dewar@adacore.com>
4971
4972         * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
4973         s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
4974         g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
4975         output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
4976         g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
4977         a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.
4978
4979         * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
4980         s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
4981         s-tasloc.adb, s-tasloc.ads: New files.
4982
4983 2007-06-06  Bob Duff  <duff@adacore.com>
4984
4985         * g-expect-vms.adb: 
4986         (Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
4987         * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
4988         (Send_Signal, Close): Raise Invalid_Process if the process id is
4989         invalid.
4990         (Pattern_Matcher_Access): Is now a general access type to be able to
4991         use aliased string.
4992
4993 2007-06-06  Thomas Quinot  <quinot@adacore.com>
4994             Arnaud Charlet  <charlet@adacore.com>
4995
4996         * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
4997         (SIGEMT is now used instead of SIGTERM on AIX).
4998
4999         * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads.
5000         (Time_Slice_Supported): Set to True.
5001         Use SIGEMT instead of SIGTERM as SIGADAABORT.
5002
5003 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
5004
5005         * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-"
5006         (Time, Time)): Use To_Relative_Time rather than manual calculation to
5007         express the bounds of Duration as Time. Raise Time_Error when the
5008         result is greater or equal to the higher bound of Duration (on the
5009         margin case).
5010         ("+" (Time, Duration)): Reorder code. Remove the declaration of constant
5011         Ada_High_And_Leaps.
5012         ("-" (Time, Duration)): Reorder code. Remove the declaration of constant
5013         Ada_High_And_Leaps.
5014         ("-" (Time, Time)): Reorder code.
5015         (All_Leap_Seconds): Removed.
5016         (Arithmetic_Operations.Add): Remove sign related kludge.
5017         (Arithmetic_Operations.Difference): Control the leaps seconds processing
5018         with flag Leap_Support.
5019         (Arithmetic_Operations.Subtract): Remove sign related kludge.
5020         (Check_Within_Time_Bounds): New procedure.
5021         (Clock): Control the leap seconds processing with flag Leap_Support.
5022         (Cumulative_Leap_Seconds): Assert that the target supports leap seconds.
5023         (Formatting_Operations.Split): Control the leap seconds processing with
5024         flag Leap_Support.
5025         (Formatting_Operations.Time_Of): Control the leaps seconds processing
5026         with flag Leap_Support. Adjust the year, month and day (if applicable)
5027         when the value of day seconds designates a new day.
5028         (Split): Use parameter associations for better readability. Integrate
5029         flag Is_Ada_05.
5030         (Time_Of): Use parameter associations for better readability. Integrate
5031         flag Is_Ada_05.
5032
5033         * a-calfor.adb (Split): Use parameter associations for better
5034         readability. Integrate flag Is_Ada_05.
5035         (Time_Of): Remove flag Leap_Checks. Use parameter associations for
5036         better readability. Integrate flag Is_Ada_05.
5037
5038 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
5039
5040         * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb, 
5041         s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb, 
5042         s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb, 
5043         s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads, 
5044         s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb, 
5045         s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb, 
5046         s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads, 
5047         s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads, 
5048         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads, 
5049         s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb,
5050         s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base
5051         time when entering this routine to detect a backward clock setting
5052         (manual setting or DST adjustment), to avoid waiting for a longer delay
5053         than needed.
5054         (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant.
5055         Remove handling of deferred priority change, and replace by setting the
5056         task priority directly, as required by AI-188.
5057         Update comments.
5058         (Max_Task_Image_Length): New constant.
5059         Replace Warnings (Off) by Unreferenced pragma, cleaner.
5060         (Dynamic_Priority_Support): Removed, no longer needed.
5061         (Poll_Base_Priority_Change): Ditto.
5062         (Set_Ceiling): Add this procedure to change the ceiling priority
5063         associated to a lock. This is a dummy implementation because dynamic
5064         priority ceilings are not supported by the underlying system.
5065
5066         * a-dynpri.adb (Set_Priority): Take into account case where Target is
5067         accepting a RV with its priority boosted.
5068         Remove handling of deferred priority change, and replace by setting the
5069         task priority directly, as required by AI-188.
5070
5071         * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for
5072         Succeeded = True.
5073         Remove handling of deferred priority change, and replace by setting the
5074         task priority directly, as required by AI-188.
5075         (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state
5076         of Self_Id earlier.
5077
5078         * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion.
5079         (Poll_Base_Priority_Change): Removed.
5080         Code clean up: use SSL.Current_Target_Exception.
5081
5082         * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks
5083         to run as this is a potentially dispatching point.
5084         (Call_Synchronous): Use Local_Defer_Abort.
5085         (Callable): Relax assertion.
5086         (Selective_Wait): Relax assertion in case abort is not allowed.
5087         Remove handling of deferred priority change, and replace by setting the
5088         task priority directly, as required by AI-188.
5089
5090         * s-tasuti.adb (Make_Passive): Adjust assertions.
5091         Remove handling of deferred priority change, and replace by setting the
5092         task priority directly, as required by AI-188.
5093
5094 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
5095
5096         * system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
5097         system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, 
5098         system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads, 
5099         system-vxworks-mips.ads, system-vxworks-alpha.ads, 
5100         system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads, 
5101         system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads, 
5102         system-interix.ads, system-linux-hppa.ads, system-tru64.ads, 
5103         system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads, 
5104         system-solaris-sparcv9.ads, system-vms.ads, system.ads,
5105         system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads,
5106         system-linux-ia64.ads: Document mapping between Ada and OS priorities.
5107         This patch changes the largest non-binary modulus from 2**31-1 to
5108         2**32-1.
5109         (Compiler_System_Version): Removed, no longer used.
5110         Clean up system files by removing flags only used on a single target.
5111         Also remove obsolete flags, only used during bootstrap from system.ads
5112         (Address): Add a pragma Preelaborable_Initialization.
5113
5114         * system-aix.ads:  Ditto.
5115         (GCC_ZCX_Support): Set to true.
5116         Update priority range on AIX and map Ada priorities to target
5117         priorities appropriately for different scheduling policies.
5118
5119         * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1
5120
5121 2007-06-06  Vincent Celier  <celier@adacore.com>
5122
5123         * mlib-tgt-specific.adb, mlib-tgt-specific.ads,
5124         mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files.
5125
5126         * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb, 
5127         mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb, 
5128         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, 
5129         mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, 
5130         mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package
5131         MLib.Tgt, containing the default versions of the exported subprograms.
5132         For each platform, create a specific version of the body of new child
5133         package MLib.Tgt.Specific that contains only the body of subprograms
5134         that are different from the default.
5135         (Archive_Builder_Append_Options): New function.
5136
5137 2007-06-06  Matthew Gingell  <gingell@adacore.com>
5138
5139         * s-osinte-aix.adb: Map Ada priorities to target priorities
5140         appropriately for different scheduling policies.
5141
5142 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
5143
5144         * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely
5145         its C counterpart.
5146         Remove references to Unchecked_Conversion, and use Ada.xxx instead.
5147         Replace Unchecked_Conversion by Ada.Unchecked_Conversion. 
5148
5149 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
5150
5151         * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure.
5152         Noop on VMS, added for interface commonality.
5153
5154 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
5155             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5156             Olivier Hainque  <hainque@adacore.com>
5157
5158         * decl.c (gnat_to_gnu_entity) <object>: Manually mark the top of the
5159         renamed expression of a full renaming at toplevel.
5160         (gnat_to_gnu_entity, case object): If not defining, do not look inside
5161         the values the constant is initialized to if it is an N_Allocator.
5162         (gnat_to_gnu_entity) <E_Array_Subtype>: Manually mark the top of the
5163         TYPE_SIZE_UNIT of inner types after the stride is elaborated.
5164         (make_aligning_type): Accept an extra ROOM argument for storage to be
5165         made available before the aligned field, and an extra BASE_ALIGN
5166         argument for callers to pass the alignment guaranteed to be honored for
5167         the whole aligning object. Avoid call to finish_record_type, which only
5168         interferes with the sizes we want to set.
5169         (gnat_to_gnu_entity) <E_Variable>: Pass the required extra arguments to
5170         make_aligning_type for super-aligned objects on stack.
5171         (components_to_record): Pass the adjusted size of the type when creating
5172         fields in the qualified union for the variant part.
5173         (gnat_substitute_in_type): Copy TYPE_USER_ALIGN.
5174         (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for
5175         packed array type.
5176         (maybe_pad_type): Set TYPE_USER_ALIGN.
5177         (make_aligning_type): Likewise.
5178         ALIGN argument is unsigned int.
5179         (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism.
5180         (gnat_to_gnu_param): Likewise, for parameters.
5181         (gnat_to_gnu_entity) <object>: Always instantiate the renaming object
5182         if it is constant and stems from a function call.
5183         (gnat_to_gnu_entity) <E_Record_Type>: Set packed to -2 if the alignment
5184         of the record is specified.  Adjust accordingly.
5185         (adjust_packed): New static function.
5186         (gnat_to_gnu_field): Use it to adjust the packedness setting.
5187         (components_to_record): Likewise.
5188         (gnat_to_gnu_entity) <object>: Do not test the renamed expression for
5189         side-effects if the object is deemed constant.
5190         (gnat_to_gnu_entity) <E_Array_Type>: Create a name for the fat pointer
5191         type instead of merely finalizing it.  Tidy.
5192         <E_Access_Subprogram_Type>: Retrieve the type from the TYPE_DECL.
5193         <E_Access_Type>: Likewise.
5194         (defer_debug_incomplete_list): Rename to defer_finalize_list.
5195         (defer_debug_level): Delete.
5196         (gnat_to_gnu_entity) <debug_deferred>: Likewise
5197         <E_Array_Type>: Call rest_of_record_type_compilation on the fat pointer
5198         type.
5199         <E_Record_Type>: Do not explicitly defer finalizing the type.
5200         Adjust for write_record_type_debug_info renaming.
5201         <E_Subprogram_Type>: Likewise.
5202         Finalize deferred types right after deferred incomplete types are
5203         expanded.
5204         (rest_of_type_decl_compilation): New global function.
5205         (components_to_record): Rename defer_debug parameter to do_not_finalize.
5206         (components_to_record): Propagate the packedness to the fields of the
5207         qualified union type if there is a variant part.
5208         (gnat_to_gnu_entity) <E_Array_Type>: Use new function
5209         instead of inline code to adjust the XUT field offsets.
5210         (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type.
5211         <E_Record_Subtype>: Do not let finish_record_type compute the sizes
5212         and write the debug info if the type derives from a discriminated one.
5213         (gnat_to_gnu_entity) <E_Array_Type>: Adjust call to create_index_type.
5214         <E_Array_Subtype>: Likewise.
5215         <E_String_Literal_Subtype>: Likewise.
5216         (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have
5217         an alignment clause.
5218         (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN
5219         before giving warning.
5220         (prepend_one_attribute_to): New function, helper to prepend an attribute
5221         to an attribute list.
5222         (gnat_to_gnu_entity) <E_Procedure>: Use it.
5223         (prepend_attributes): Likewise.
5224         (gnat_to_gnu_entity) <E_Variable>: Use constants of the proper type.
5225         <E_Array_Type>: Declare the padding type for the element type, if any.
5226         <E_Array_Subtype>: Likewise.
5227         (defer_limited_with): New variable.
5228         (Gigi_Equivalent_Type): New function.
5229         (gnat_to_gnu_entity): Use it at start and use result throughout.
5230         (gnat_to_gnu_entity, case E_Access_Type): Rework to use
5231         Gigi_Equivalent_Type, support Limited_With, allow two levels of
5232         indirection, precompute if unconstrained array to simplify logic, and
5233         use defer_limited_with to defer elaboration of some types from limited
5234         with.
5235         (finalize_from_with_types): New function.
5236
5237 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
5238             Eric Botcazou  <ebotcazou@adacore.com>
5239             Tristan Gingold  <gingold@adacore.com>
5240             Olivier Hainque  <hainque@adacore.com>
5241
5242         * trans.c (Identifier_to_gnu): Change test for deferred constant by
5243         adding guard that the entity is an E_Constant before testing presence
5244         of Full_view (and remove unnecessary test that entity is not a type).
5245         For a CONST_DECL used by reference, manually retrieve
5246         the DECL_INITIAL.  Do not invoke fold in the other DECL_P cases either.
5247         (struct language_function): Move from utils.c to here.
5248         (struct parm_attr): New structure.
5249         (parm_attr, parm_attr vector, parm_attr GC vector): New types.
5250         (f_parm_attr_cache): New macro.
5251         (Attribute_to_gnu) <Attr_Length>: When not optimizing, cache the
5252         expressions for the 'First, 'Last and 'Length attributes of the
5253         unconstrained array IN parameters.
5254         (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout.
5255         Allocate the information structure for the function earlier, as well
5256         as the language-specific part.
5257         If the parameter attributes cache has been populated, evaluate the
5258         cached expressions on entry.
5259         (takes_address): Add OPERAND_TYPE parameter.  Handle N_Function_Call,
5260         N_Procedure_Call_Statement and N_Indexed_Component.
5261         (Pragma_to_gnu): Translate inspection_point to an asm statement
5262         containaing a comment and a reference to the object (either its address
5263         for BLKmode or its value).
5264         (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide
5265         to go to DECL_INITIAL. Together with the size constraint relaxation
5266         in create_var_decl, enlarges the set of situations in which an
5267         identifier may be used as an initializer without implying elaboration
5268         code.
5269         (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set
5270         DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the
5271         node.
5272         (maybe_stabilize_reference): Remove lvalues_only parameter.
5273         (gnat_stabilize_reference): Adjust for above change.
5274         (gnat_to_gnu): Do not set location information on the result
5275         if it is a reference.
5276         (add_cleanup): Add gnat_node parameter and set the location of the
5277         cleanup to it.
5278         (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup.
5279         (Exception_Handler_to_gnu_zcx): Likewise.
5280         (gigi): Remove the cgraph node if the elaboration procedure is empty.
5281         (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit
5282         the former right after the latter.
5283         (start_stmt_group): Make global.
5284         (end_stmt_group): Likewise.
5285         (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New
5286         vars.
5287         (gnu_program_error_label_stack): Likewise.
5288         (gigi): Initialize them.
5289         (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise.
5290         (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label):
5291         New cases.
5292         (push_exception_label_stack): New function.
5293         (takes_address): New function.
5294
5295         * utils.c (struct language_function): Move to trans.c from here.
5296         (unchecked_convert): Do not wrap up integer constants in
5297         VIEW_CONVERT_EXPRs.
5298         (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent
5299         the latter for aggregate types, unexpected by later passes, and relax an
5300         arbitrary size constraint on the former.
5301         (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p
5302         to compare the sizes.
5303         (convert_vms_descriptor): When converting to a fat pointer type, be
5304         prepared for a S descriptor at runtime in spite of a SB specification.
5305         (shift_unc_components_for_thin_pointers): New function.
5306         (write_record_type_debug_info): For variable-sized fields, cap the
5307         alignment of the pointer to the computed alignment.
5308         (finish_record_type): Change HAS_REP parameter into REP_LEVEL.
5309         If REP_LEVEL is 2, do not compute the sizes.
5310         (build_vms_descriptor): Adjust for new prototype of finish_record_type.
5311         (build_unc_object_type): Likewise.
5312         (declare_debug_type): New function.
5313
5314         * ada-tree.def: USE_STMT: removed (not emitted anymore).
5315
5316         * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because
5317         no statement is expandable anymore.
5318         (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice.
5319         (gnat_handle_option): Only allow flag_eliminate_debug_types to be set
5320         when the user requested it explicitely.
5321         (gnat_post_options): By default, set flag_eliminate_unused_debug_types
5322         to 0 for Ada.
5323         (get_alias_set): Return alias set 0 for a type if
5324         TYPE_UNIVERSAL_ALIASING_P is set on its main variant.
5325
5326         * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro.
5327         (DECL_FUNCTION_STUB): New accessor macro.
5328         (SET_DECL_FUNCTION_STUB): New setter macro.
5329
5330         * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada.
5331
5332         * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New
5333         declarations.
5334
5335 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
5336
5337         * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal):
5338         Rename to Abort_Task_Interrupt to be able to keep the same interface
5339         as the rest of the targets.
5340
5341         * s-osinte-vxworks.ads s-osinte-vxworks.adb
5342         (To_VxWorks_Priority): Remove explicit "in" mode indicator
5343
5344         * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads:
5345         New files.
5346
5347 2007-06-06  Robert Dewar  <dewar@adacore.com>
5348
5349         * a-chahan.ads: Remove obsolescent pragmas
5350
5351         * a-chlat1.ads: Minor reformatting
5352
5353 2007-06-06  Robert Dewar  <dewar@adacore.com>
5354
5355         * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface
5356         for Errout
5357
5358         * errout.adb: New Finalize/Compilation_Errors/Output_Messages
5359         implementation
5360
5361         * errout.ads (Finalize): Changed interface
5362         (Output_Messages): New procedure
5363         (Compilation_Errors): New Interface
5364
5365         * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New
5366         Finalize/Output_Messages interface for Errout
5367         (Prepare_To_Preprocess): New Finalize/Output_Messages interface for
5368         Errout.
5369
5370 2007-06-06  Thomas Quinot  <quinot@adacore.com>
5371             Olivier Hainque  <hainque@adacore.com>
5372             Robert Dewar  <dewar@adacore.com>
5373
5374         * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18)
5375         check.
5376         (Raise_Current_Excep): Call Debug_Raise_Exception just before
5377         propagation starts, to let debuggers know about the event in a reliable
5378         fashion.
5379         (Local_Raise): Moved to System.Exceptions
5380         More convenient to have this as a separate unit
5381
5382         * s-except.adb, s-except.ads: New files.
5383
5384         * a-exextr.adb (Unhandled_Exception): Delete - replaced by
5385         Debug_Unhandled_Exception in System.Exceptions where it belongs
5386         together with a couple of other debug helpers.
5387         (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of
5388         the former Unhandled_Exception.
5389
5390         * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure
5391         (Warn_No_Exception_Propagation): New procedure
5392         (Warn_If_No_Propagation): Rewritten for new warning generation
5393         (Expand_Exception_Handlers): New warning generation
5394         (Expand_N_Raise_xxx_Error): Rewritten for new warnings
5395         (Add_Exception_Label): Use Special_Exception_Package_Used for test
5396         instead of Most_Recent_Exception_Used (accomodates Exception_Traces)
5397         (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap
5398         even if restriction is set (makes life easier in Check_Returns)
5399         (Expand_Local_Exception_Handlers): Follow renamed entity chain when
5400         checking exception identities.
5401         (Expand_Local_Exception_Handlers): Do not optimize when all others case
5402         (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated
5403         block for handler (used by Check_Returns)
5404         (Expand_Local_Exception_Handlers): Local_Raise now takes an address
5405         (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to
5406         remove all exception handlers when optimizing local raise statements.
5407         (Find_Local_Handler): Use Get_Renamed_Entity
5408         (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is
5409         marked analyzed after expanding exception handlers, do not generate
5410         redundant cleanup actions, because they have been constructed already.
5411
5412 2007-06-06  Thomas Quinot  <quinot@adacore.com>
5413
5414         * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The
5415         presence of this categorization pragma is mandated by the language.
5416         (Limited_Controlled): Add missing pragma Preelaborable_Initialization
5417         for this type.
5418
5419 2007-06-06  Vincent Celier  <celier@adacore.com>
5420             Robert Dewar  <dewar@adacore.com>
5421
5422         * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb, 
5423         butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads, 
5424         err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads, 
5425         fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads, 
5426         lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads, 
5427         makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb, 
5428         par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb, 
5429         prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads, 
5430         prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb, 
5431         sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb, 
5432         uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb,
5433         ali.ads, ali.adb: 
5434         Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to
5435         package Namet. Make File_Name_Type and Unit_Name_Type types derived from
5436         Mame_Id. Add new type Path_Name_Type, also derived from Name_Id.
5437         Use variables of types File_Name_Type and Unit_Name_Type in error
5438         messages.
5439         (Get_Name): Add parameter Ignore_Special, and set it reading file name
5440         (New_Copy): When debugging the compiler, call New_Node_Debugging_Output
5441         here.
5442         Define flags Flag217-Flag230 with associated subprograms
5443         (Flag_Word5): New record type.
5444         (Flag_Word5_Ptr): New access type.
5445         (To_Flag_Word5): New unchecked conversion.
5446         (To_Flag_Word5_Ptr): Likewise.
5447         (Flag216): New function.
5448         (Set_Flag216): New procedure.
5449
5450 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
5451
5452         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length
5453         instead of 'Size.
5454
5455         * a-stwifi.ads, a-stzfix.ads: Minor reformatting
5456
5457 2007-06-06  Javier Miranda  <miranda@adacore.com>
5458
5459         * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to
5460         the package.
5461         (Object_Specific_Data_Array): This is now internal to the package.
5462         (Object_Specific_Data): This is now internal to the package.
5463         (Select_Specific_Data_Element): This is now internal to the package.
5464         (Select_Specific_Data_Array): This is now internal to the package.
5465         (Select_Specific_Data): This is now internal to the package.
5466         (Offset_To_Top_Function_Ptr): This is now public.
5467         (To_Offset_To_Top_Function_Ptr): Removed.
5468         (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now
5469          local to subprogram Offset_To_Top.
5470         (Predefined_DT): Removed.
5471         (Typeinfo_Ptr): Removed.
5472         (OSD): This function is now internal to this package.
5473         (SSD): This function is now internal to this package.
5474         (DT): New function that displaces the pointer to the table of primitives
5475          to get access to the enclosing wrapper record.
5476         (IW_Membership): Code cleanup.
5477         (Offset_To_Top): Code cleanup.
5478         (Predefined_DT): Removed.
5479         (Register_Interface_Tag): Removed.
5480         (Set_Interface_Table): Removed.
5481         (Set_Offset_Index): Removed.
5482         (Set_Offset_To_Top): Code cleanup.
5483         (Set_OSD): Removed.
5484         (Set_Signature): Removed.
5485         (Set_SSD): Removed.
5486         (Set_Tagged_Kind): Removed.
5487         (Typeinfo_Ptr): Removed.
5488         (TSD): Removed.
5489         (Displace): Add missing check on null actual.
5490
5491         * exp_disp.ads, exp_disp.adb
5492         (Select_Expansion_Utilities): Removed.
5493         (Build_Common_Dispatching_Select_Statements): Moved to exp_atags.
5494         (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because
5495         the interface requires a new parameter.
5496         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
5497         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace
5498         calls to subprograms Build_T, Build_S, etc. by the corresponding code.
5499         Done to remove package Select_Expansion_Utilities.
5500         (Make_DT): New implementation for statically allocated dispatch tables.
5501         (Make_Secondary_DT): Moved to the scope of Make_DT.
5502         (Register_Primitive): Code cleanup plus incoporate the use of the new
5503         function DT_Address_Attribute.
5504         (Expand_Interface_Thunk): The profile of this subprogram has been
5505         changed to return the Thunk_Id and the corresponding code.
5506         (Fill_DT_Entry): Removed. Its functionality is now provided by
5507         subprogram Register_Primitive.
5508         (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by
5509         subprogram Register_Primitive.
5510         (Register_Primitive): New subprogram that incorporates the previous
5511         functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry.
5512         (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This
5513         was only required to call Make_DT_Access_Action, which is now removed.
5514         (Ada_Actions): Removed
5515         (Action_Is_Proc): Removed
5516         (Action_Nb_Arg): Removed
5517         Replace all the calls to Make_DT_Access_Action by direct calls to
5518         Make_Procedure_Call_Statement or Make_Function_Call.
5519         (Set_DTC_Entity_Value): New subprogram.
5520         (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value.
5521         (Expand_Interface_Thunk): Add missing support for primitives that are
5522         functions with a controlling result (case in which there is no need
5523         to generate the thunk).
5524
5525         * exp_atag.ads, exp_atag.adb
5526         (Build_DT): New subprogram that displaces the pointer to reference the
5527         base of the wrapper record.
5528         (Build_Typeinfo_Offset): Removed.
5529         (RTE_Tag_Node): Removed.
5530         (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp
5531         (Build_Get_RC_Offset): Removed.
5532         (Build_Inherit_Predefined_Prims): Removed.
5533         (Build_Inherit_TSD: Removed.
5534         (Build_New_TSD): Removed.
5535         (Build_Set_External_Tag): Removed.
5536         (Build_Set_Predefined_Prim_Op_Address): Add documentation.
5537         (Build_Set_Prim_Op_Address): Add documentation.
5538         (Build_Set_TSD): Removed.
5539
5540         * rtsfind.ads, rtsfind.adb
5541         (Load_Fail): If load fails and we are not in configurable run-time
5542         mode, then raise Unrecoverable_Error.
5543         (Text_IO_Kludge): Generate an error message if a run-time library is
5544         not available in a given run-time (ie. zfp run-time).
5545         (RTE_Record_Component): Add code to check that the component we search
5546         for is not found in two records in the given run-time package.
5547         (RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed
5548         (RE_DT_Predef_Prims_Offset): New entity
5549         (RE_Static_Offset_To_Top): New entity
5550         (RE_HT_Link): New entity.
5551         (System_Address_Image): Addition of this run-time package.
5552         (RE_Address_Image): New entity.
5553         (RE_Abstract_Interface): Removed.
5554         (RE_Default_Prim_Op_Count): Removed.
5555         (RE_DT_Entry_Size): Removed.
5556         (RE_DT_Min_Prologue_Size): Removed.
5557         (RE_DT_Prologue_Size): Removed.
5558         (RE_Ifaces_Table_Ptr): Removed.
5559         (RE_Interface_Data_Ptr): Removed.
5560         (RE_Type_Specific_Data): Removed.
5561         (RE_Primary_DT): Removed.
5562         (RE_Register_Interface_Tag): Removed.
5563         (RE_Set_Offset_Index): Removed.
5564         (RE_Set_OSD): Removed.
5565         (RE_Set_SSD): Removed.
5566         (RE_Set_Signature): Removed.
5567         (RE_Set_Tagged_Kind): Removed.
5568         (RE_Address_Array): New entity.
5569         (RE_DT): New entity.
5570         (RE_Iface_Tag): New entity.
5571         (RE_Interfaces_Table): New entity.
5572         (RE_No_Dispatch_Table): New entity.
5573         (RE_NDT_Prims_Ptr): New entity.
5574         (RE_NDT_TSD): New entity.
5575         (RE_Num_Prims): New entity.
5576         (RE_Offset_To_Top_Function_Ptr): New entity.
5577         (RE_OSD_Table): New entity.
5578         (RE_OSD_Num_Prims): New entity.
5579         (RE_Predef_Prims): New entity
5580         (RE_Predef_Prims_Table_Ptr): New entity.
5581         (RE_Primary_DT): New entity.
5582         (RE_Signature): New entity.
5583         (RE_SSD): New entity.
5584         (RE_TSD): New entity.
5585         (RE_Type_Specific_Data): New entity.
5586         (RE_Tag_Kind): New entity.
5587
5588 2007-06-06  Thomas Quinot  <quinot@adacore.com>
5589
5590         * a-textio.ads, a-textio.adb (Write): Add explicit size clause for the
5591         C imported variable.
5592         (Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set
5593         on entry.
5594
5595 2007-06-06  Robert Dewar  <dewar@adacore.com>
5596
5597         * a-tienio.adb (Get): Adjust buffer size to accomodate one extra
5598         character
5599
5600 2007-06-06  Vincent Celier  <celier@adacore.com>
5601
5602         * a-tifiio.adb (Put, internal): For negative numbers, check that there
5603         is room for at least one digit and the minus sign.
5604         (Put.Put_Character): Never put a character outside of the range of
5605         string To.
5606
5607 2007-06-06  Olivier Hainque  <hainque@adacore.com>
5608             Eric Botcazou  <ebotcazou@adacore.com>
5609
5610         * utils2.c (build_allocator): Provide the extra arguments to
5611         make_aligning_type for super-aligned objects allocated from the default
5612         pool. Leave enough room for a pointer before the aligning field, and
5613         store the system's allocator return value there.
5614         (build_call_alloc_dealloc): When releasing a super-aligned object,
5615         retrieve the system's allocator return value from where build_allocator
5616         has stored it, just ahead of the adjusted address we are passed.
5617         (build_call_raise): Handle properly the generation of line numbers when
5618         the node is marked No_Location.
5619         (compare_elmt_bitpos): Use tree_int_cst_compare.  Stabilize the sort
5620         by using DECL_UID on ties.
5621         (build_binary_op) <EQ_EXPR>: Accept fat pointer types with the same
5622         main variant.
5623         (build_call_raise): Handle converting exception into goto; support new
5624         argument KIND.
5625         (build_component_ref): Add new arg to build_call_raise.
5626
5627 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
5628
5629         * a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse
5630         "." in the case of nnn.xxx when nnn terminates with an underscore.
5631         Parse the remaining "#" or ":" in the case of nnn#.xxx#
5632
5633 2007-06-06  Robert Dewar  <dewar@adacore.com>
5634
5635         * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT
5636
5637 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
5638             Vincent Celier  <celier@adacore.com>
5639             Robert Dewar  <dewar@adacore.com>
5640
5641         * bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when
5642         needed.
5643         (Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute
5644         ((destructor)) for adafinal, even when switch -a is used.
5645         Do not issue pragma Linker_Destructor for adafinal when switch -a is
5646         used.
5647         (Gen_Object_Files_Options): Add formatting of Linker Options, when
5648         Output_Linker_Option_List is set. Suppress this formatting when
5649         Zero_Formatting is set.
5650         Add case for CLI_Target.
5651         (System_Restrictions_Used): New flag, used to avoid generating with of
5652         System_Restrictions and initialization of the data unless there is
5653         some use of System.Restrictions in the partition.
5654         (Check_System_Restrictions_Used): New procedure
5655
5656         * s-stalib.adb: Remove with of System.Restrictions. No longer needed
5657         since we only with this unit in the binder file if it is used elsewhere
5658         in the partition.
5659
5660 2007-06-06  Vincent Celier  <celier@adacore.com>
5661
5662         * bindusg.adb: Add line for @<response file>
5663         Add lines for new switches -R and -Z
5664
5665         * gnatbind.adb (Gnatbind): Do not include sources from the GNAT
5666         hierarchy in the list of files of the closure when -R is used
5667         (Gnatbind): Accept arguments starting with '@' to indicate response
5668         files and take the arguments from the response files.
5669         If List_Closure is set, display the referenced files
5670
5671 2007-06-06  Javier Miranda  <miranda@adacore.com>
5672             Robert Dewar  <dewar@adacore.com>
5673             Ed Schonberg  <schonberg@adacore.com>
5674
5675         * checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in
5676         which the address-clause is applied to in-mode actuals (allowed by
5677         13.1(22)).
5678         (Apply_Discriminant_Check): Do not generate a check if the type is
5679         constrained by a current instance.
5680         (Activate_Division_Check): New procedure
5681         (Activate_Overflow_Check): New procedure
5682         (Activate_Range_Check): New procedure
5683         Call these new Activate procedures instead of setting flags directly
5684         (Apply_Array_Size_Check): Removed, no longer needed.
5685         Code clean up: remove obsolete code related to GCC 2.
5686         (Get_E_Length): Protect against bomb in case scope is standard
5687         (Selected_Range_Checks): If the node to be checked is a conversion to
5688         an unconstrained array type, and the expression is a slice, use the
5689         bounds of the slice to construct the required constraint checks.
5690         Improve NOT NULL error messages
5691         (Apply_Constraint_Check): If the context is a null-excluding access
5692         type, diagnose properly the literal null.
5693
5694 2007-06-06  Pascal Obry  <obry@adacore.com>
5695
5696         * clean.adb (Clean_Archive): Use untouched casing for the archive name
5697         and the corresponding .deps file.
5698         (Clean_Interface_Copy_Directory): Use untouched casing for the library
5699         src directory. Minor code-clean-up. Use untouched casing for files
5700         read into the library src dir.
5701         (Clean_Library_Directory): Idem.
5702         (Parse_Cmd_Line): Accept new switch -aP
5703
5704 2007-06-06  Javier Miranda  <miranda@adacore.com>
5705             Ed Schonberg  <schonberg@adacore.com>
5706             Robert Dewar  <dewar@adacore.com>
5707             Eric Botcazou  <ebotcazou@adacore.com>
5708             Arnaud Charlet  <charlet@adacore.com>
5709
5710         * einfo.ads, einfo.adb (Available_View): New synthesized attribute
5711         applicable to types that have the With_Type flag set. Returns the
5712         non-limited view of the type, if available, otherwise the type itself.
5713         For class-wide types, there is no direct link in the tree, so we have
5714         to retrieve the class-wide type of the non-limited view of the Etype.
5715         New attributes Static_Initialization and Static_Elaboration_Desired.
5716         Remove the pragma Thread_Body, and the associated flag
5717         Is_Thread_Body in entities, and all related code.
5718         (Suppress_Value_Tracking_On_Call): New flag
5719         E_Exception has Esize and Alignment fields
5720         (Universal_Aliasing): New function.
5721         (Set_Universal_Aliasing): New procedure.
5722         (Write_Entity_Flags): Deal with Universal_Aliasing flag.
5723         (Check_Nested_Access): New procedure.
5724         (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
5725         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
5726         (Related_Interface): New attribute. Present in dispatch table pointer
5727         components of records. Set to point to the entity of the corresponding
5728         interface type.
5729         (Is_By_Reference_Type): Recurse on the full view of an incomplete type.
5730         (Original_Access_Type): Remove, not needed.
5731         (Root_Type): Handle properly subtypes of class-wide-types.
5732         Update comments.
5733
5734         * sem_ch4.adb (Analyze_Explicit_Dereference): Add support for
5735         class-wide types visible through limited-with clauses.
5736         (Try_Primitive_Operation): When examining all primitive operations of a
5737         tagged type, do not consider subprograms labeled as hidden unless they
5738         belong to a private generic type with a tagged parent.
5739         (Try_Object_Operation): Extensive rewriting, to handle properly various
5740         overloading cases, when several ancestors may have class-wide operations
5741         that are possible candidates, and when the overloaded functions return
5742         array types and have defaulted parameters so that the call may be
5743         interpreted as an indexing.
5744         (Analyze_Allocator): Remove Mark_Allocator and its invocation.
5745         (Process_Function_Call): use Next, rather than Next_Actual, to analyze
5746         successive actuals before analyzing the call itself.
5747         (Try_Primitive_Operation): A primitive operation is compatible with the
5748         prefix if the prefix has a synchronized type and the type of the formal
5749         is its corresponding record, as can be the case when the primitive
5750         operation is declared outside of the body of the type.
5751         (Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to
5752         perform homonym traversal, looking for class-wide operation matches
5753         (formerly done in statements of Try_Class_Wide_Operation). Matches on
5754         access parameters are now restricted to anonymous access types.
5755         (Mark_Allocator): An allocator with a discriminant association parent is
5756         a coextension.
5757         (Try_One_Prefix_Interpretation): If the type of the object is
5758         incomplete, as can be happen when it is a limited view obtained through
5759         a limited_with_clause, the selected component is not part of a prefixed
5760         call.
5761         (Complete_Object_Operation): Diagnose properly an object that is not
5762         aliased when the corresponding controlling formal is an access
5763         parameter.
5764         (Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly
5765         ambiguous calls in prefixed notation, where two primitives differ only
5766         in that the controlling argument of one is an access parameter.
5767
5768         * sem_ch6.adb (Has_Single_Return): Add guard in code that determines
5769         whether a function that returns an unconstrained type can be inlined.
5770         (Process_Formals): Diagnose properly the illegal use of an incomplete
5771         type in the profile of an access_to_subprogram declaration.
5772         (Check_Synchronized_Overriding): Nothing check for concurrent types, the
5773         operations are attached to the corresponding record.
5774         (Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ.
5775         When processing a primitive of a concurrent type which implements an
5776         interface change the type of all controlling formals to that of the
5777         corresponding record type.
5778         (Check_Synchronized_Overriding): Relax the conditional logic when trying
5779         to determine the tagged type to which a primitive belongs.
5780         (Check_Conventions): Capture condition to ignore a primitive operation
5781         (which is shared between the loop in Check_Conventions and the one in
5782         Check_Convention) in a new local function Skip_Check.
5783         (Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible
5784         confusion with Check_Conventions' own Prim_Op local variable.
5785         (Create_Extra_Formals): Test for a tagged result type rather than a
5786         controlling result when determining whether to add a BIP_Alloc_Form
5787         formal and a BIP_Final_List formal to the function.
5788         (Check_Conformance); For parameters that are anonymous access types,
5789         subtype conformance requires that the not null and the constant
5790         indicators must match
5791         (Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery
5792         to retrieve the appropriate type when processing a concurrent type
5793         declared within a generic. Minor comment reformatting. Change invocation
5794         of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri-
5795         mitive.
5796         (Analyze_Subprogram_Body): If the return type of a function is an
5797         anonymous access to the limited view of a class-wide type, and the
5798         non-limited view of the type is available, update the type of the
5799         function so that code can be generated.
5800         (Process_Formals): In case of access-subtype itype whose designated
5801         type is also an itype (situation that happens now with access to
5802         subprograms) we mark the access-type itype with the Has_Delayed_Freeze
5803         attribute to avoid backend problems.
5804         (Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in
5805         init of R_Stm_Type_Is_Anon_Access. Also check that base types of the
5806         anonymous types' designated types are same before testing
5807         Subtypes_Statically_Match.
5808         (Create_Extra_Formals): Test for a named access parameter that is a
5809         controlling formal as an additional condition for adding an
5810         accessibility level formal. This can occur in the subp type created for
5811         dispatching calls in Expand_Dispatching_Call, and allows calling
5812         Create_Extra_Formals from that procedure rather than special-casing the
5813         extra formals there.
5814         (Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals
5815         when the function has a controlling result.
5816         (Check_Returns): Add much more knowledge of the optimization of local
5817         raise statements to gotos, to retain proper warnings in this case.
5818         (Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label
5819         nodes when looking for last statement.
5820
5821         * sem_type.ads, sem_type.adb (Specific_Type): Add support for
5822         class-wide types visible through limited with clauses.
5823         (Add_One_Interp): If the operands are anonymous access types, the
5824         predefined operator on universal_access is immediately visibles
5825         (Find_Unique_Type): Handle anonymous access to subprogram types just as
5826         other anonymous access types.
5827         (Disambiguate): Take into account CIL convention.
5828         (Interface_Present_In_Ancestor): Add support for class-wide interfaces.
5829
5830 2007-06-06  Robert Dewar  <dewar@adacore.com>
5831
5832         * sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb,
5833         sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads,
5834         elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure.
5835         Fix lower bound of tables.
5836         Add rep clauses.
5837
5838         * nlists.adb: Ditto.
5839         (Prev_Node, Next_Node): Change index type to Int so that it properly
5840         covers the range First_Node_Id - 1 up.
5841
5842 2007-06-06  Javier Miranda  <miranda@adacore.com>
5843             Ed Schonberg  <schonberg@adacore.com>
5844             Bob Duff  <duff@adacore.com>
5845             Hristian Kirtchev  <kirtchev@adacore.com>
5846
5847         * exp_aggr.ads, exp_aggr.adb: 
5848         (Build_Record_Aggr_Code): Add missing initialization of secondary tags
5849         in extension aggregates.
5850         (Flatten): Other conditions being met, an aggregate is static if the
5851         low bound given by component associations is different from the low
5852         bound of the base index type.
5853         (Packed_Array_Aggregate_Handled): If the component type is itself a
5854         packed array or record, the front-end must expand into assignments.
5855         (Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to
5856         Init_Pr, instead of Ancestor_Is_Expression.
5857         (Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a
5858         coextension chain root, either generate a list controller or use the
5859         already existing one.
5860         (Static_Array_Aggregate): New procedure to construct a positional
5861         aggregate that can be handled by the backend, when all bounds and
5862         components are compile-time known constants.
5863         (Expand_Record_Aggregate): Force conversion of aggregates of tagged
5864         types covering interface types into assignments.
5865         (Replace_Type): move to Build_Record_Aggr_Code.
5866         (Expand_Record_Aggr_Code): if the target of the aggregate is an
5867         interface type, convert to the definite type of the aggregate itself,
5868         so that needed components are visible.
5869         (Convert_Aggr_In_Object_Decl): If the aggregate has controlled
5870         components and the context is an extended return statement do not
5871         create a transient block for it, to prevent premature finalization
5872         before the return is executed.
5873         (Gen_Assign): Do not generate a call to deep adjust routine if the
5874         component type is itself an array of controlled (sub)-components
5875         initialized with an inner aggregate.
5876         (Component_Check): New name for Static_Check. This name is now more
5877         appropriate, and documentation is added which was missing.
5878         (Component_Check): Add test for bit aligned component value
5879         (Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_
5880         Tagged_Comps, name is more appropriate given added function below.
5881         (Component_Not_OK_For_Backend): Check for bit aligned component ref.
5882
5883 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
5884             Javier Miranda  <miranda@adacore.com>
5885             Robert Dewar  <dewar@adacore.com>
5886
5887         * exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and
5888         Terminated: Add unchecked type conversion from System.Address to
5889         System.Tasking.Task_Id when calling the predefined primitive
5890         _disp_get_task_id.
5891         Disable new Ada 05 accessibility check for JVM.NET targets, which
5892         cannot be implemented in a practical way.
5893         (Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in
5894         the sources always references the tag of the actual object. Therefore,
5895         if 'Tag is applied in the sources to class-wide interface objects we
5896         generate code that displaces "this" to reference the base of the object.
5897         (Expand_N_Attribute_Reference, case Size): Return specified size if
5898         known to front end.
5899         (Expand_N_Attribute_Reference): The expansion of the 'Address attribute
5900         has code that displaces the pointer of the object to manage interface
5901         types. However this code must not be executed when the prefix is a
5902         subprogram. This bug caused the wrong expansion of the internally
5903         generated assignment that fills the dispatch table when the primitive
5904         is a function returning a class-wide interface type.
5905         (Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to
5906         Set_Attribute_Name for Name_Unaligned_Valid.
5907
5908 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
5909             Gary Dismukes  <dismukes@adacore.com>
5910
5911         * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address):
5912         If the initialization is the equivalent aggregate of the initialization
5913         procedure of the type, do not remove it.
5914         (Expand_N_Attribute_Definition_Clause): Exclude access variables
5915         initialized to null from having their expression reset to empty and
5916         note this exception in the comment.
5917
5918 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
5919             Robert Dewar  <dewar@adacore.com>
5920             Ed Schonberg  <schonberg@adacore.com>
5921             Gary Dismukes  <dismukes@adacore.com>
5922
5923         * exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames.
5924         Add "with" and "use" clauses for Sem_Attr.
5925         (Expand_Current_Value): Do not replace occurences of attribute
5926         references where the prefix must be a simple name.
5927
5928         * sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for
5929         Namet. Add new arrays Attribute_Name_Modifies_Prefix and
5930         Attribute_Requires_Simple_Name_Prefix.
5931         (Name_Modifies_Prefix): Body of new function.
5932         (Requires_Simple_Name_Prefix): Body of new function.
5933         (Resolve_Attribute, case Access): Improve error message for case of
5934         mismatched conventions.
5935         (Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an
5936         incomplete type.
5937         (Analyze_Attribute, case 'Access): If the type of the prefix is a
5938         constrained subtype for a nominal unconstrained type, use its base type
5939         to check for conformance with the context.
5940         (Resolve_Attribute): Remove test of the access type being associated
5941         with a return statement from condition for performing accessibility
5942         checks on access attributes, since this case is now captured by
5943         Is_Local_Anonymous_Access.
5944         (Analyze_Access_Attribute): Set Address_Taken on entity
5945         (Analyze_Attribute, case Address): Set Address_Taken on entity
5946         (OK_Self_Reference): Traverse tree to locate enclosing aggregate when
5947         validating an access attribute whose prefix is a current instance.
5948         (Resolve_Attribute): In case of attributes 'Code_Address and 'Address
5949         applied to dispatching operations, if freezing is required then we set
5950         the attribute Has_Delayed_Freeze in the prefix's entity.
5951         (Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in
5952         current scope if access of local subprogram taken
5953         (Analyze_Access_Attribute): Check legality of self-reference even if the
5954         expression comes from source, as when a single component association in
5955         an aggregate has a box association.
5956         (Resolve_Attribute, case 'Access): Do not apply accessibility checks to
5957         the prefix if it is a protected operation and the attribute is
5958         Unrestricted_Access.
5959         (Resolve_Attribute, case 'Access): Set the Etype of the attribute
5960         reference to the base type of the context, to force a constraint check
5961         when the context is an access subtype with an explicit constraint.
5962         (Analyze_Attribute, case 'Class): If the prefix is an interface and the
5963         node is rewritten as an interface conversion. leave unanalyzed after
5964         resolution, to ensure that type checking against the context will take
5965         place.
5966
5967 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
5968             Javier Miranda  <miranda@adacore.com>
5969             Robert Dewar  <dewar@adacore.com>
5970
5971         * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a
5972         wrapper when the full view of the controlling type of an inherited
5973         function that dispatches on result implements interfaces.
5974         (Expand_N_Object_Declaration): In cases where the type of the
5975         declaration is anonymous access, create finalization list for it.
5976         (Expand_N_Object_Declaration): Generate a persistent_bss directive only
5977         if the object has no explicit initialization, to match description of
5978         functionality of pragam Persistent_BSS.
5979         (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate):
5980         new function to build static aggregates, to replace initialization call
5981         when static initialization is desired.
5982         (Freeze_Type): Generate a list controller for an access type whenever
5983         its designated type has controlled anonymous access discriminants.
5984         (Build_Equivalent_Aggregate): New procedure to compute a static
5985         aggregate to be used as default initialization for composite types,
5986         instead of a generating a call to the initialization procedure for the
5987         type.
5988         (Build_Initialization_Call): When available, replace a call to the
5989         initialization procedure with a copy of the equivalent static aggregate
5990         for the type.
5991         (Expand_N_Object_Declaration):  Use New_Occurrence_Of in generated
5992         declarations for objects of a class-wide interface type, rather than
5993         just identifiers, to prevent visibility problems.
5994         (Expand_N_Object_Declaration): When expanding the declaration for an
5995         object of a class-wide interface type, preserve the homonym chain of
5996         the original entity before exchanging it with that of the generated
5997         renaming declaration.
5998         (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation
5999         active, because there is no way to handle the exception.
6000         (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT
6001         to do a minimum decoration of the Access_Disp_Table list.
6002         (Expand_Record_Controller): Avoid the addition of the controller between
6003         the component containing the tag of a secondary dispatch table and its
6004         adjacent component that stores the offset to the base of the object.
6005         This latter component is only generated when the parent type has
6006         discriminants ---documented in Add_Interface_Tag_Components).
6007         (Apply_Array_Size_Check): Removed, no longer needed.
6008         (Expand_N_Full_Type_Declaration): If the type has anonymous access
6009         components, create a Master_Entity for it only if it contains tasks.
6010         (Build_Init_Procedure): Suppress the tag assignment compiling under
6011         no run-time mode.
6012         (Freeze_Record_Type): Remove code associated with creation of dispatch
6013         table.
6014         (Init_Secondary_Tags): Update type of actuals when generating calls to
6015         Ada.Tags.Set_Offset_To_Top
6016         (Stream_Operation_OK): Disable use of streams compiling under no
6017         run-time mode
6018         (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization
6019         if Has_Init_Expression set.
6020         (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to
6021         Register_Primitive, which provides the same functionality.
6022         (Requires_Init_Proc): Return false in case of interface types.
6023         (Add_Secondary_Tables): Use the new attribute Related_Interface to
6024         cleanup the code.
6025         (Predefined_Primitive_Freeze): Do not assume that an internal entity
6026         is always associated with a predefined primitive because the internal
6027         entities associated with interface types are not predefined primitives.
6028         Therefore, the call to Is_Internal is replaced by a call to the
6029         function Is_Predefined_Dispatching_Operation.
6030         (Make_Eq_If): When generating the list of comparisons for the
6031         components of a given variant, omit the controller component that is
6032         present if the variant has controlled components.
6033
6034 2007-06-06  Javier Miranda  <miranda@adacore.com>
6035             Hristian Kirtchev  <kirtchev@adacore.com>
6036             Bob Duff  <duff@adacore.com>
6037
6038         * exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to
6039         handle the creation of finalization lists and calls for nested
6040         coextensions when the root of the chains is part of a return statement.
6041         (Inside_A_Return_Statement): New function inside Complete_Coextension_
6042         Finalization.
6043         (Expand_Record_Equality): Skip components that are interface types.
6044         (Displace_Allocator_Pointer): Add missing support for interface subtypes
6045         (Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant
6046         with Rewrite_Coextension. Change the condition for detecting coextension
6047         root nodes.
6048         (Is_Local_Access_Discriminant): Removed.
6049         (Rewrite_Coextension): New routine which rewrites a static coextension
6050         as a temporary and uses its unrestricted access in the construction of
6051         the outer object.
6052         (Complete_Coextension_Finalization): New routine. Generate finalization
6053         attachment calls to all delayed coextensions.
6054         (Expand_N_Allocator): Call Complete_Coextension_Finalization whenever
6055         the allocator is not a coextension itself and has delayed coextensions.
6056         If the current allocator is controlled, but also a coextension, delay
6057         the generation of the finalization attachment call.
6058         Rename local variable "Node" to "Nod" in order to avoid confusion with
6059         "Elists.Node".
6060         (Expand_Allocator_Expression): Call Adjust for initialized allocators of
6061         limited types that are not inherently limited. Such an allocator is
6062         illegal, but is generated by the expander for a return statement, to
6063         copy the result onto the secondary stack. This is the only case where a
6064         limited object can be copied. Generate code to displace the pointer
6065         to the object if the qualified expression is a class-wide interface
6066         object. Such displacement was missing and hence the copy of the object
6067         was wrong.
6068         (Apply_Accessibility_Check): Handle allocated objects initialized in
6069         place.
6070         (Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator
6071         and Expand_Allocator_Expression. Allocating class-wide interface objects
6072         this routine displaces the pointer to the allocated object to reference
6073         the component referencing the corresponding secondary dispatch table.
6074         Expand_Allocator_Expression): Add missing support to allocate class-wide
6075         interface objects initialized with a qualified expression.
6076         (Get_Allocator_Final_List): Test for an anonymous access type that is a
6077         function result type, and use the finalization list associated with the
6078         function scope in that case (such an anonymous type should not be
6079         treated like an access parameter's type).
6080
6081 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
6082             Gary Dismukes  <dismukes@adacore.com>
6083             Javier Miranda  <miranda@adacore.com>
6084
6085         * exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a
6086         controlled type, use Make_Handler_For_Ctrl_Operation to construct the
6087         required exception handler.
6088         (Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle
6089         properly the case of a function whose return type is a limited
6090         class-wide interface type. Modify the code of the accessibility
6091         check to handle class-wide interface objects. In this case we need to
6092         displace "this" to reference the primary dispatch table to get access
6093         to the TSD of the object (to evaluate its accessibility level).
6094         (Expand_N_Extended_Return_Statement): Test for a tagged result type
6095         rather than a controlling result as one of the conditions for
6096         generating tests of the implicit BIP_Alloc_Form formal. The
6097         initialization assignment is also handled according to whether the
6098         result is tagged instead of controlling.
6099         In the case where the init assignment is inserted in the "then" part of
6100         the allocation conditional, rewrite the target to be a dereference of
6101         the implicit BIP_Object_Access formal.
6102         If the returned value is unconstrained and created on the secondary
6103         stack, mark the enclosing block and function so that the secondary
6104         stack is not reclaimed on return.
6105         Treat returns from functions with controlling results similarly to
6106         returns from functions with unconstrained result subtypes.
6107         If the object returned is unconstrained, and an allocator must be
6108         created for it, analyze the allocator once the block for the extended
6109         return is installed, to ensure that finalizable components
6110         of the expression use the proper finalization list. Guard the call to
6111         Move_Final_List with a check that there is something to finalize.
6112         (Make_Tag_Ctrl_Assignment): Use "old" handling
6113         of controlled type assignment for virtual machines, since new code uses
6114         unsupported features (such as direct access to bytes in memory).
6115
6116 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
6117             Ed Schonberg  <schonberg@adacore.com>
6118
6119         * exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra
6120         accessibility actual, check for the case of an aliased object that has
6121         been rewritten as an Access attribute, and assign Prev to Prev_Orig so
6122         we fall into processing for the attribute rather than the name of the
6123         object.
6124         (Expand_Inline_Call): If an actual is a literal, and the corresponding
6125         formal has its address taken in the body, create a temporary to capture
6126         value.  If the return type is a limited interface, do not treat the
6127         return value as Controlled.
6128         (Is_In_Place_Function):  If the return type is a limited interface,
6129         treat as returning in place. The actual returned object may not always
6130         be limited, but the caller has to assume that it is returned in place.
6131         (Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the
6132         context of an allocator, use the correct finalization chain (that is,
6133         the chain belonging to the access type, rather than the chain belonging
6134         to the current scope).
6135         (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged
6136         result type rather than a controlling result as a precondition for
6137         adding an allocation form actual to a build-in-place call.
6138         (Add_Final_List_Actual_To_Build_In_Place_Call): Ditto.
6139         (Freeze_Subprogram): Code cleanup. Remove all the code that register the
6140         primitive in the dispatch tables. This work is now done by Make_DT when
6141         the type is frozen.
6142         (Register_Predefined_DT_Entry): Removed.
6143         (Add_Return): If end label is not present, use sloc of last statement
6144         for generated return statement in procedure, for better gdb behavior
6145         on expanded code.
6146         (Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the
6147         object address nodes to ensure proper processing by routines like
6148         Insert_After*.
6149         (Expand_Call): Fix generation of validity check for parameter
6150         (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing
6151         the allocation form parameter if the result subtype is constrained,
6152         except when the function has a controlling result.
6153         (Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type
6154         rather than Is_Controlled and Has_Controlled_Component, since we want to
6155         include class-wide result types in this treatment. Also test for a
6156         controlling result, since that also requires passing a finalization
6157         list.
6158         (Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_*
6159         even when the result subtype is constrained, to handle calls involving
6160         controlling results.
6161         (Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_*
6162         is now called even when the result subtype is constrained, to handle
6163         calls involving controlling results.
6164         (Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained
6165         on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure
6166         now performs the test).
6167         (Make_Build_In_Place_Call_In_Object_Declaration):
6168         Add_Alloc_Form_Actual_* is now called even when the result subtype is
6169         constrained, to handle calls involving controlling results.
6170         (Add_Return): Accomodate rewritten pattern from local raise to goto
6171         transformation, so that we still recognize an transfer statement
6172         and do the right thing here in that case.
6173         (Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start
6174         and end of subprogram code.
6175         (Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing
6176         support for primitives that are functions (without formals) with a
6177         controlling result.
6178         (Inherited_From_Formal): If the actual subtype has not generic parent
6179         type, it is not an actual for a formal derived type, and there is no
6180         operation to inherit from the formal.
6181
6182 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
6183             Thomas Quinot  <quinot@adacore.com>
6184
6185         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of
6186         inserted cleanup code appropriately for GDB use.
6187         (Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create
6188         exception handler for Deep_Adjust or Deep_Finalize.
6189         (Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity
6190         Raise_From_Controlled_Operation is available, use a call to that
6191         subprogram instead of a plain "raise Program_Error" node to raise
6192         Program_Error if an exception is propagated from an Adjust or Finalize
6193         operation.
6194         (Insert_Actions_In_Scope_Around): If the statement to be wrapped
6195         appears in the optional statement list of a triggering alternative, the
6196         scope actions can be inserted directly there, and not in the list that
6197         includes the asynchronous select itself.
6198
6199 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
6200             Robert Dewar  <dewar@adacore.com>
6201             Hristian Kirtchev  <kirtchev@adacore.com>
6202
6203         * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of
6204         generated exception handler appropriately when debugging generated code.
6205         Deal properly with No_Exception_Propagation restriction mode.
6206         (Expand_N_Abort_Statement): Add an unchecked type conversion from
6207         System.Address to System.Tasking.Task_Id when processing the result of
6208         the predefined primitive _disp_get_task_id.
6209         (Expand_N_Asynchronous_Select): Clarify comment.
6210         (Expand_N_Protected_Type_Declaration): Minor code cleanup.
6211         (Find_Parameter_Type): New routine inside Type_Conformant_Parameters.
6212         (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup.
6213         (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for
6214         privals and for generated call to Complete_Entry_Body, for better gdb
6215         behavior.
6216         (Copy_Result_Type): Utility to construct a parameter and result profile
6217         for protected functions whose return type is an anonymous access to
6218         subprogram.
6219         (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type):
6220         call the above.
6221         (Build_Task_Activation_Call): Insert Activate_Tasks call at proper
6222         point when the local-raise-to-goto transformation has taken place.
6223
6224 2007-06-06  Javier Miranda  <miranda@adacore.com>
6225             Nicolas Setton  <setton@adacore.com>
6226
6227         * exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its
6228         functionality when the backend is generating code.
6229         Otherwise any serious error
6230         reported by the backend calling the frontend routine Error_Msg
6231         changes the Compilation_Mode to Check_Semantics, disables the
6232         functionality of this routine and causes the generation of
6233         spureous additional errors.
6234
6235         * exp_dbug.ads (Pointers to Unconstrained Arrays): Document the
6236         debugging information now generated by the compiler for fat-pointer
6237         types.
6238         Document the contents of DW_AT_producer in the GNAT Vendor extensions to
6239         DWARF2/3.
6240         Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch.
6241
6242 2007-06-06  Thomas Quinot  <quinot@adacore.com>
6243
6244         * exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram
6245         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
6246         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
6247         For a remote call to a function with a classwide return type, apply an
6248         E.4(18) check to the returned value.
6249         (Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for
6250         stream attributes of the designated type of an RACW, as they are not
6251         dispatching primitive operations.
6252
6253 2007-06-06  Geert Bosch  <bosch@adacore.com>
6254
6255         * exp_fixd.adb (Integer_Literal): Add optional argument to construct a
6256         negative literal
6257         (Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always
6258         positive
6259         (Do_Divide_Fixed_Universal): Handle case of negative Frac.
6260         (Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always
6261         positive
6262         (Do_Multiply_Fixed_Universal): Handle case of negative Frac.
6263
6264 2007-06-06  Javier Miranda  <miranda@adacore.com>
6265
6266         * exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this
6267         attribute compiling package Ada.Tags under No_Run_Time_Mode.
6268
6269 2007-06-06  Javier Miranda  <miranda@adacore.com>
6270
6271         * exp_intr.adb (Expand_Unc_Deallocation): Add missing support for
6272         deallocation of class-wide interface objects.
6273         (Expand_Dispatching_Constructor_Call): Take into account that if the
6274         result of the dispatching constructor is an interface type, the
6275         function returns a class-wide interface type; otherwise the returned
6276         object would be actual. The frontend previously accepted returning
6277         interface types because Expand_Interface_Actuals silently performed
6278         the management of the returned type "as if" it were a class-wide
6279         interface type.
6280         (Expand_Dispatching_Constructor_Call): Replace call to
6281         Make_DT_Access_Action by direct call to Make_Function_Call.
6282
6283 2007-06-06  Robert Dewar  <dewar@adacore.com>
6284             Ed Schonberg  <schonberg@adacore.com>
6285
6286         * exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to
6287         compute masking constant, since we now set Esize properly to the
6288         underlying size.
6289         (Create_Packed_Array_Type): Set proper Esize value adjusted as required
6290         to match the alignment.
6291         (Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for
6292         packed arrays of 8 bits or less.
6293
6294         * freeze.adb (Freeze_Entity): When freezing the formals of a
6295         subprogram, freeze the designated type of a parameter of an access type
6296         only if it is an access parameter.
6297         Increase size of C convention enumeration object
6298         (Freeze_Entity, array type case): Make sure Esize value is properly
6299         adjusted for the alignment if it is known.
6300         (Freeze_Entity, array type case): When checking bit packed arrays for
6301         the size being incorrect, check RM_Size, not Esize.
6302         (Freeze_Record_Type): Check for bad discriminated record convention
6303         (In_Exp_Body): Return true if the body is generated for a subprogram
6304         renaming, either an attribute renaming or a renaming as body.
6305         (Check_Itype): If the designated type of an anonymous access component
6306         is a non-protected subprogram type, indicate that it is frozen, to
6307         prevent out-of-scope freeze node at some subsequent call.
6308         (Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism
6309         only if the subprogram is neither imported nor exported, as well as the
6310         NCA descriptor class if the subprogram is exported.
6311
6312 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
6313             Arnaud Charlet  <charlet@adacore.com>
6314             Robert Dewar  <dewar@adacore.com>
6315             Gary Dismukes  <dismukes@adacore.com>
6316
6317         * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a
6318         default initialization on an imported object, when there is no
6319         initialization call generated for it.
6320         (Expand_Pragma_Assert): Add handling of No_Exception_Propagation
6321         restriction
6322
6323         * snames.h, snames.ads, snames.adb, par-prag.adb: New pragma
6324         Static_Elaboration_Desired.
6325         Remove pragma Thread_Body.
6326         Implement a new pragma No_Body
6327         Removes the Explicit_Overriding pragma
6328         Remove Optional_Overriding pragma
6329         (Prag): Deal with Universal_Aliasing.
6330         (Name_CIL, Name_CIL_Constructor, Convention_CIL,
6331         Pragma_CIL_Constructor): New names.
6332
6333         * sem_cat.adb (Validate_Object_Declaration): An initialization that
6334         uses the equivalent aggregate of a type must be treated as an implicit
6335         initialization.
6336         (Get_Categorization): Check a unit for pragma Preelaborate only if it
6337         has none of the other categories.
6338         (Process_Import_Or_Interface_Pragma): Report an error for an attempt
6339         to apply Import to an object renaming declaration.
6340
6341         * sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported
6342         from a C++ class should be declared as limited and that it will be
6343         considererd limited.
6344         (Analyze_Pragma): Warn that a type specified with pragma CPP_Class
6345         should be declared as limited and that it will be considererd limited.
6346         (Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas
6347         (Analyze_Pragma, case Export): Diagnose export of enumeration literal
6348         (Analyze_Pragma): Deal with Universal_Aliasing.
6349         (Sig_Flags): Likewise.
6350         (Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP.
6351         (Overflow_Checks_Unsuppressed): New flag.
6352         (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
6353         (Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in
6354         case of JVM or .NET targets, and compiling user code.
6355         Add debugging convenience routine rv
6356
6357 2007-06-06  Robert Dewar  <dewar@adacore.com>
6358
6359         * exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that
6360         are interface type.
6361         (Build_Elementary_Input_Call): For floating-point use right type in the
6362         absence of strange size or stream size clauses.
6363         (Build_Elementary_Write_Call): Same fix
6364         (Has_Stream_Standard_Rep): Returns False if Stream_Size attribute
6365         set to value that does not match base type size.
6366
6367 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
6368
6369         * exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an
6370         object of a limited type can be initialized with a call to a function
6371         that returns in place. If the limited type has unknown discriminants,
6372         and the underlying type is a constrained composite type, build an actual
6373         subtype from the function call, as is done for private types.
6374         (Side_Effect_Free): An expression that is the renaming of an object or
6375         whose prefix is the renaming of a object, is not side-effect free
6376         because it may be assigned through the renaming and its value must be
6377         captured in a temporary.
6378         (Has_Controlled_Coextensions): New routine.
6379         (Expand_Subtype_From_Expr): Do nothing if type is a limited interface,
6380         as is done for other limited types.
6381         (Non_Limited_Designated_Type): new predicate.
6382         (Make_CW_Equivalent_Type): Modified to handle class-wide interface
6383         objects.
6384         Remove all handling of with_type clauses.
6385
6386         * par-ch10.adb: Remove all handling of with_type clauses.
6387
6388         * lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the
6389         checksum if the main source could not be parsed.
6390         (Loat_Unit): When processing a child unit, determine properly whether
6391         the parent unit is a renaming when the parent is itself a child unit.
6392         Remove handling of with_type clauses.
6393
6394         * sinfo.ads, sinfo.adb (Is_Static_Coextension): New function.
6395         (Set_Is_Static_Coextension): New procedure.
6396         (Has_Local_Raise): New function
6397         (Set_Has_Local_Raise): New procedure
6398         (Renaming_Exception): New field
6399         (Has_Init_Expression): New flag
6400         (Delay_Finalize_Attach): Remove because flag is obsolete.
6401         (Set_Delay_Finalize_Attach): Remove because flag is obsolete.
6402         Remove all handling of with_type clauses.
6403         (Exception_Junk): Can now be set in N_Block_Statement
6404
6405 2007-06-06  Vincent Celier  <celier@adacore.com>
6406             Robert Dewar  <dewar@adacore.com>
6407
6408         * frontend.adb (Frontend): Return immediately if the main source could
6409         not be parsed, because of preprocessing errors.
6410
6411         * gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully.
6412         (Gnat1drv): Exit with errors if the main source could not be parsed,
6413         because of preprocessing errors.
6414         (Check_Rep_Info): New procedure
6415
6416 2007-06-06  Robert Dewar  <dewar@adacore.com>
6417
6418         * g-hesorg.ads, g-heasor.ads,
6419         g-busorg.ads, g-bubsor.ads: Update documentation
6420         GNAT.Heap/Bubble_Sort_G is now pure
6421
6422 2007-06-06  Robert Dewar  <dewar@adacore.com>
6423
6424         * g-catiio.ads, g-catiio.adb (Image): Check for null picture string
6425
6426 2007-06-06  Robert Dewar  <dewar@adacore.com>
6427             Ed Schonberg  <schonberg@adacore.com>
6428
6429         * g-comlin.ads, g-comlin.adb: 
6430         Add new warning for renaming of function return objects
6431
6432         * opt.adb (Tree_Write, Tree_Read): Use proper expressions for size
6433         (Tree_Read): Use size of object instead of type'object_size, since the
6434         latter is incorrect for packed array types.
6435         (Tree_Write): Same fix
6436
6437         * opt.ads: Add new warning for renaming of function return objects
6438         (Generating_Code): New boolean variable used to indicate that the
6439         frontend as finished its work and has called the backend to process
6440         the tree and generate the object file.
6441         (GCC_Version): Is now private
6442         (Static_Dispatch_Tables): New constant declaration.
6443         (Overflow_Checks_Unsuppressed): New flag.
6444         (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
6445         (List_Closure): New flag for gnatbind (-R)
6446         Zero_Formatting: New flag for gnatbind (-Z)
6447         (Special_Exception_Package_Used): New flag.
6448         (Warn_On_Unrepped_Components): New flag.
6449
6450         * sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed
6451         unit is a compilation unit, rather than relying on its scope, so that
6452         Standard can be renamed.
6453         (Analyze_Object_Renaming): Add new warning for renaming of function
6454         return objects.
6455         Also reject attempt to rename function return object in Ada 83 mode.
6456         (Attribute_Renaming): In case of tagged types, add the body of the
6457         generated function to the freezing actions of the type.
6458         (Find_Type): A protected type is visible right after the reserved word
6459         "is" is encountered in its type declaration. Set the entity and type
6460         rather than emitting an error message.
6461         (New_Scope): Properly propagate Discard_Names to inner scopes
6462         (Check_Nested_Access): New procedure.
6463         (Has_Nested_Access, Set_Has_Nested_Access): New procedures.
6464         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
6465
6466         * sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning
6467         Add new warning for renaming of function return objects
6468         (Check_References): Suppress warnings for objects whose type or
6469         base type has Warnings suppressed.
6470         (Set_Dot_Warning_Switch): Add processing for -gnatw.c/C
6471         (Set_Warning_Switch): Include new -gnatwc in -gnatwa
6472
6473 2007-06-06  Vincent Celier  <celier@adacore.com>
6474             Emmanuel Briot  <briot@adacore.com>
6475             Olivier Hainque  <hainque@adacore.com>
6476
6477         * g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the
6478         absolute value of Header.Block_Size when displaying the freed physical
6479         memory in traces.
6480         (Allocate): Compute Storage_Address using Integer_Address, not
6481         Storage_Offset, because the range of Storage_Offset may not be large
6482         enough.
6483         (Configure): New parameter Low_Level_Traces
6484         (Allocate, Deallocation, Free_Physically): Added low-level traces
6485         (Configure): new parameter Errors_To_Stdout.
6486         (Output_File): new subprogram
6487         (Deallocate, Dereference): Send error messages to the proper stream
6488         (Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as
6489         documented. Previous code would send it to the current output file
6490         defined in GNAT.IO, which might not be stdout
6491         (Is_Valid): Adjust comment to mention that a positive reply means that
6492         Header_Of may be used to retrieve the allocation header associated with
6493         the subprogram Storage address argument. Return False early if this
6494         address argument is misaligned.
6495
6496 2007-06-06  Vincent Celier  <celier@adacore.com>
6497
6498         * gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept
6499         switch -P
6500         (ASIS_Main): New global variable
6501         (Get_Closure): New procedure
6502         (GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat
6503         check, metric or pretty. Call Get_Closure in this case.
6504         (Check_Files): For GNAT LIST, check all sources of all projects when
6505         All_Projects is True.
6506         (GNATCmd): Accept -U for GNAT LIST
6507
6508 2007-06-06  Vincent Celier  <celier@adacore.com>
6509
6510         * gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK=
6511         has been specified
6512         Correct error message when invocation of the linker fails
6513         Add explicit size clause for the C imported variables
6514         Object_List_File_Supported and Using_GNU_Linker to emphasize that
6515         we expect char size.
6516         Read target parameters earlier, since this is needed to set
6517         Target_VM properly. Also do not use -static/shared-libgcc for non GCC
6518         targets.
6519
6520 2007-06-06  Vincent Celier  <celier@adacore.com>
6521
6522         * gnatls.adb: 
6523         Add 3 spaces before the default project directory when displaying
6524         the project search path.
6525         Add new command line switch '-l' to display license information.
6526
6527 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
6528
6529         * gmem.c: Add support for timestamps on memory operations.
6530
6531         * memtrack.adb, gnatmem.adb: Add support for timestamps on memory
6532         operations (not used currently, just foundation for future
6533         enhancements). Add possibility to perform full dump of gmem.out file.
6534         (Print_Back_Traces): Declare accesses to root arrays constants since
6535         they aren't modified.
6536         (Print_Back_Traces): allocate root arrays on the heap rather than stack.
6537
6538 2007-06-06  Vincent Celier  <celier@adacore.com>
6539
6540         * gnatsym.adb: Update Copyright notice
6541         (Parse_Cmd_Line): Accept new switch -D
6542         (Gnatsym): In Direct policy (switch -D) copy reference file to symbol
6543          file.
6544
6545         * prj.ads (Policy): New policy Direct
6546         (Yes_No_Unknown): New enumeration type
6547         (Project_Data): New component Libgnarl_Needed
6548
6549         * prj-nmsc.adb (Check_For_Source): When recording a source file make
6550         use the untouched pathname casing.
6551         (Get_Directories): Ensure that the Display_Exec_Directory is using the
6552         proper casing on non case-sensitive platforms like Windows.
6553         (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s)
6554         on all platforms, as it is not possible to know which one is allowed
6555         before processing the project files.
6556         (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is
6557         specified when symbol policy is Direct. Check that when there is a
6558         symbol file defined (either by default or with attribute
6559         Library_Symbol_File) it is not the same as the reference symbol file.
6560         (Check_Stand_Alone_Library): Recognize new symbol policy Direct.
6561         (Look_For_Sources): Allow Locally_Removed_Files to be declare in non
6562         extending projects.
6563         (Record_Ada_Source): Record a source that has been locally removed in an
6564         imported project.
6565
6566         * symbols.ads (Policy): New policy Direct
6567
6568         * symbols-vms.adb (Initialize): Take new policy Direct in case
6569         statement
6570
6571 2007-06-06  Vincent Celier  <celier@adacore.com>
6572
6573         * g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory):
6574         Correct obvious bug (return Dir; instead of return Directory;).
6575         (Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last
6576
6577 2007-06-06  Thomas Quinot  <quinot@adacore.com>
6578
6579         * g-pehage.adb (Produce): Open output files in Binary mode, so that
6580         they have UNIX line endings (LF only) even on Windows, and thus pass
6581         all GNAT style checks.
6582
6583 2007-06-06  Emmanuel Briot  <briot@adacore.com>
6584
6585         * g-regpat.adb (Quote): Fix improper quoting of '.'
6586
6587 2007-06-06  Thomas Quinot  <quinot@adacore.com>
6588
6589         * g-soccon.ads: Add new constant Thread_Blocking_IO, always True by
6590         default, set False on a per-runtime basis.
6591         (Need_Netdb_Buffer): New constant.
6592
6593         * g-socket.ads, g-socket.adb: Import new package
6594         GNAT.Sockets.Thin.Task_Safe_NetDB.
6595         (Raise_Host_Error): Use Host_Error_Message from platform-specific thin
6596         binding to obtain proper message.
6597         (Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close.
6598         Replace various occurrences of Arry (Arry'First)'Address with the
6599         equivalent Arry'Address (GNAT always follows implementation advice from
6600         13.3(14)).
6601         (Get_Host_By_Address, Get_Host_By_Name,
6602         Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock;
6603         instead, rely on platform-specific task safe netdb operations provided
6604         by g-socthi.
6605
6606         * g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal
6607         parameter Process_Blocking_IO.
6608         (Host_Error_Messages): Add stub body.
6609         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
6610         (Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname,
6611         Safe_Getservbyport): Move functions into new child package
6612         Task_Safe_NetDB.
6613         (Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr,
6614         Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines.
6615         (In_Addr): Add alignment clause.
6616
6617 2007-06-06  Robert Dewar  <dewar@adacore.com>
6618
6619         * g-trasym.ads, g-traceb.ads: Update list of supported targets
6620         Add note about symbolic traceback
6621
6622 2007-06-06  Pascal Obry  <obry@adacore.com>
6623
6624         * hostparm.ads (Normalized_CWD): Use the host directory separator
6625         instead of the hardcoded forward slash which is not the proper
6626         character on Windows for example.
6627         (Java_VM): Removed.
6628
6629 2007-06-06  Vincent Celier  <celier@adacore.com>
6630             Arnaud Charlet  <charlet@adacore.com>
6631
6632         * a-clrefi.adb, a-clrefi.ads: New files
6633
6634         * impunit.adb: Add s-os_lib in the list of user visible units.
6635         (Non_Imp_File_Names_95): Add a-clrefi to this list
6636         Remove obsolete run-time entries.
6637         (Non_Imp_File_Names_05): Add Ada 2005 entries for:
6638          "a-exetim" -- Ada.Execution_Time
6639          "a-extiti" -- Ada.Execution_Time.Timers
6640
6641         * mlib-prj.ads, mlib-prj.adb
6642         (Build_Library): Use untouched object dir and library dir. At the
6643         same time makes sure that the checks are done using the canonical
6644         form. Removes hard-coded directory separator and use the proper host
6645         one instead.
6646         (Process_Project): Do not look in object directory to check if libgnarl
6647         is needed for a library, if there is no object directory.
6648         (Build_Library): Scan the ALI files to decide if libgnarl is needed for
6649         linking.
6650         (Build_Library): When invoking gnatbind, use a response file if the
6651         total size of the arguments is too large.
6652
6653         * Makefile.rtl: (g-sttsne): New object file.
6654         Add entry for a-clrefi, s-utf_32, System.Exceptions
6655
6656         * Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o.
6657         (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o.
6658         (GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o
6659         Change g-string to s-string, g-os_lib to s-os_lib
6660         Change all g-utf_32 references to s-utf_32
6661
6662 2007-06-06  Tristan Gingold  <gingold@adacore.com>
6663             Olivier Hainque  <hainque@adacore.com>
6664
6665         * init.c: Do not adjust IP of an imported VMS exception of ia64.
6666         LIB$STOP is called to raise an exception and the IP of the exception
6667         is the instruction right after the call.
6668         (__gnat_adjust_context_for_raise, AIX): Implement.
6669         (__gnat_error_handler, AIX): Accept SIGINFO related arguments and call
6670          adjust_context_for_raise before Raise_From_Signal_Hanler.
6671         (__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure
6672         siginfo is passed to the handler, necessary to let the zcx propagation
6673         engine unwind past it.
6674
6675 2007-06-06  Olivier Hainque  <hainque@adacore.com>
6676
6677         * initialize.c (__gnat_initialize for vxworks):  Update documentation
6678         on the ZCX support, using different sets of crtstuff objects than with
6679         GCC 3.4.
6680
6681 2007-06-06  Robert Dewar  <dewar@adacore.com>
6682
6683         * layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package
6684         spec from body
6685         (Layout_Type): Fix recomputation of size from alignment.
6686
6687 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
6688             Javier Miranda  <miranda@adacore.com>
6689
6690         * sem_ch12.adb (Analyze_Associations): Diagnose use of an others
6691         association in an instance.
6692         (Copy_Generic_Node): If the node is a string literal, no need to copy
6693         its descendants.
6694         (Is_Generic_Formal): For a formal subprogram, the declaration is the
6695         grandparent of the entity.
6696         (Analyze_Formal_Interface_Type): Transform into a full type declaration,
6697         to simplify handling of formal interfaces that derive from other formal
6698         interfaces.
6699         (Instantiate_Subprogram_Body): The defining unit name of the body of
6700         the instance should be a defining identifier.
6701         (Install_Formal_Packages): make global to the package, for use in
6702         instantiations of child units.
6703         (Analyze_Package_Instantiation): Do not attempt to set information on an
6704         enclosing master of an entry when expansion is disabled.
6705         (Instantiate_Type): If the actual is a tagged synchronized type and the
6706         generic ancestor is an interface, create a generic actual for the
6707         corresponding record.
6708         (Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type
6709         declaration, to ensure that the interface list is processed correctly.
6710         (Inline_Instance_Body): If enclosing scope is an instance body, remove
6711         its entities from visibiility as well.
6712         (Pre_Analyze_Actuals): if the actual is an allocator with  constraints
6713         given with a named association, analyze the expression only, not the
6714         discriminant association itself.
6715         (Reset_Entity): If the analysis of a selected component is transformed
6716         into an expanded name in the prefix of a call with parameters, do not
6717         transform the original node into an expanded name, to prevent visibility
6718         errors in the case of nested generics.
6719         (Check_Private_View): For an array type, check whether the index types
6720         may need exchanging.
6721
6722 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
6723             Vincent Celier  <celier@adacore.com>
6724
6725         * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java,
6726         since both are separated.
6727         Add support for imported CIL packages.
6728         Add further special handling of "value_type" for CIL.
6729         Add special handling of pragma Import for CIL.
6730
6731         * make.ads, make.adb: When switch -eS is used, direct all outputs to
6732         standard output instead of standard error, except errors.
6733         (Absolute_Path): Use untouched casing for the parent directory.
6734         (Add_Library_Search_Dir): Use the untouched directory name.
6735         (Add_Source_Search_Dir): Idem.
6736         (Change_To_Object_Directory): Update output to use proper casing.
6737         (Create_Binder_Mapping_File): Use the untouched filename to set
6738         ALI_Name.
6739         (Gnatmake): Use untouched library and executable directory names.
6740         (Insert_Project_Sources): Use untouched filename for spec and body.
6741         (Is_In_Object_Directory): Use untouched object directory.
6742         (Mark_Directory): Idem.
6743         (Collect_Arguments_And_Compile): Ensure that Full_Source_File always
6744         contains the non-canonical filename in all cases.
6745         (Change_To_Object_Directory): In verbose mode, display the name of the
6746         object directory we're changing to.
6747         (Compile_Sources): Make sure, when a project file is used, to compile
6748         the body of the unit, when there is one, even when only the spec is
6749         recorded in an ALI file.
6750         (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the
6751         spec to the body.
6752         (Report_Compilation_Failed): New procedure
6753         (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg):
6754         procedures moved from the spec to the body.
6755         (Extract_Failure): Removed, not used
6756         Replace explicit raises of exception Bind_Failed and Link_Failed with
6757         calls to Make_Failed with the proper message.
6758         Replace explicit raises of exception Compilation_Failed with calls to
6759         procedure Report_Compilation_Failed.
6760         (Initialize): Create mapping files unconditionally when using project
6761         files.
6762
6763         * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL,
6764         Pragma_CIL_Constructor): New names.
6765
6766         * targparm.ads, targparm.adb
6767         (Compiler_System_Version): Removed, no longer used.
6768         (Get_Target_Parameters): Relax checks on system.ads validity. Add
6769         handling of two new system flags: JVM and CLI.
6770
6771 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
6772             Arnaud Charlet  <charlet@adacore.com>
6773
6774         * Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run
6775         time, use the default s-interr body that provides interrupt support
6776         based on signals.
6777         (LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of
6778         a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b},
6779         g-soccon.ads, and s-taprop.adb for the marte run time.
6780         (EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and
6781         timers are supported on marte.
6782         (EH_MECHANISM for marte): Do not use ZCX.
6783         (THREADSLIB for marte): Use -lmarte.
6784         Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS
6785         Add mlib-tgt-specific.o to gnatmake objects
6786         mlib-tgt-<platforms>.adb is now the body of MLib.Tgt.Specific, no
6787         longer of MLib.Tgt.
6788         (LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks
6789         6, either kernel or rtp, use a specialized version of s-osinte.ads.
6790
6791 2007-06-06  Pascal Obry  <obry@adacore.com>
6792
6793         * mkdir.c (__gnat_mkdir): Add support for UTF-8.
6794
6795 2007-06-06  Vincent Celier  <celier@adacore.com>
6796
6797         * mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory
6798         separator, use instead the proper host directory separator.
6799         (Copy_ALI_Files): Make sure that an already existing ALI file in the
6800         ALI copy dir is writable, before doing the copy.
6801
6802         * mlib-utl.ads, mlib-utl.adb: 
6803         (Gcc): If length of command line is too long, put the list of object
6804         files in a response file, if this is supported by the platform.
6805         (Ar): If invocation of the archive builder is allowed to be done in
6806         chunks and building it in one shot would go above an OS dependent
6807         limit on the number of characters on the command line, build the archive
6808         in chunks.
6809
6810 2007-06-06  Vincent Celier  <celier@adacore.com>
6811
6812         * osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name
6813         of specified object file is not equal to base name of source.
6814
6815 2007-06-06  Javier Miranda  <miranda@adacore.com>
6816             Hristian Kirtchev  <kirtchev@adacore.com>
6817             Ed Schonberg  <schonberg@adacore.com>
6818
6819         * sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
6820         the full type declaration.
6821         (Analyze_Component_Declaration): Add local variable E to capture the
6822         initialization expression of the declaration. Replace the occurences of
6823         Expression (N) with E.
6824         (OK_For_Limited_Init_In_05): Allow initialization of class-wide
6825         limited interface object with a function call.
6826         (Array_Type_Declaration): If the declaration lacks subtype marks for
6827         indices, create a simple index list to prevent cascaded errors.
6828         (Is_Null_Extension): Ignore internal components created for secondary
6829         tags when checking whether a record extension is a null extension.
6830         (Check_Abstract_Interfaces): Add missing support for interface subtypes
6831         and generic formals.
6832         (Derived_Type_Declaration): Add missing support for interface subtypes
6833         and generic formals.
6834         (Analyze_Object_Declaration): If an initialization expression is
6835         present, traverse its subtree and mark all allocators as static
6836         coextensions.
6837         (Add_Interface_Tag_Component): When looking for components that may be
6838         secondary tags, ignore pragmas that can appear within a record
6839         declaration.
6840         (Check_Abstract_Overriding): an inherited function that dispatches on
6841         result does not need to be overriden if the controlling type is a null
6842         extension.
6843         (Mentions_T): Handle properly a 'class attribute in an anonymous access
6844         component declaration, when the prefix is an expanded name.
6845         (Inherit_Component): If the derivation is for a private extension,
6846         inherited components remain visible and their ekind should not be set
6847         to Void.
6848         (Find_Type_Of_Object): In the case of an access definition, always set
6849         Is_Local_Anonymous_Access. We were previously not marking the anonymous
6850         access type of a return object as a local anonymous type.
6851         (Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
6852         range with character literal bounds.
6853         (Constrain_Array): Initialize the Packed_Array_Type field to Empty.
6854         (Access_Subprogram_Declaration): Indicate that the type declaration
6855         depends on an incomplete type only if the incomplete type is declared
6856         in an open scope.
6857         (Analyze_Subtype_Declaration): Handle properly subtypes of
6858         synchronized types that are tagged, and that may appear as generic
6859         actuals.
6860         (Access_Subprogram_Declaration): An anonymous access to subprogram can
6861         appear as an access discriminant in a private type declaration.
6862         (Add_Interface_Tag_Components): Complete decoration of the component
6863         containing the tag of a secondary dispatch table and the component
6864         containing the offset to the base of the object (this latter component
6865         is only generated when the parent type has discriminants --as documented
6866         in this routine).
6867         (Inherit_Components): Use the new decoration of the tag components to
6868         improve the condition that avoids inheriting the components associated
6869         with secondary tags of the parent.
6870         (Build_Discriminanted_Subtype): Indicate to the backend that the
6871         size of record types associated with dispatch tables is known at
6872         compile time.
6873         (Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
6874         (Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
6875         to include task, protected, and synchronized interfaces as limited
6876         interfaces.
6877         (Process_Discriminants): Remove the setting of
6878         Is_Local_Anonymous_Access on the type of (anonymous) access
6879         discriminants of nonlimited types.
6880         (Analyze_Interface_Type_Declaration): Complete the decoration of the
6881         class-wide entity it is is already present. This situation occurs if
6882         the limited-view has been previously built.
6883         (Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
6884         field.
6885         (Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
6886         Related_Interface.
6887
6888 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
6889
6890         * sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components
6891         of the type that specify the position of interface tags when the type
6892         inherits discriminated array components from the parent type.
6893         If a component is initialized with a box, check for the presence of a
6894         default expression in its declaration before using its default
6895         initialization procedure.
6896         (Resolve_Record_Aggregate): If a component is box-initialized, and the
6897         component type has a discriminants, create a partial aggregate for it
6898         by copying the discriminants of the component subtype.
6899         Reject attempt to initialize a discriminant with a box.
6900         (Array_Aggr_Subtype): Indicate to the backend that the size of arrays
6901         associated with dispatch tables is known at compile time.
6902         (Get_Value): If an association in a record aggregate has a box
6903         association, and the corresponding record component has a default
6904         expression, always copy the default expression, even when the
6905         association has a single choice, in order to create a proper
6906         association for the expanded aggregate.
6907
6908 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
6909             Robert Dewar  <dewar@adacore.com>
6910
6911         * par-ch12.adb (P_Generic_Associations): The source position of an
6912         Others association is that of the others keyword, not that of the token
6913         that follows the box.
6914         (P_Formal_Type_Definition): Handle formal access types that carry a
6915         not null indicator.
6916
6917         * par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If
6918         multiple identifier are present, save Scan_State before scanning the
6919         colon, to ensure that separate trees are constructed for each
6920         declaration.
6921         (P_Identifier_Declarations): For object declaration, set new flag
6922         Has_Init_Expression if initialization expression present.
6923         (P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL
6924         Improve NOT NULL error messages
6925
6926 2007-06-06  Robert Dewar  <dewar@adacore.com>
6927
6928         * par-ch4.adb: (P_Name): Recover from literal used as name
6929
6930 2007-06-06  Vincent Celier  <celier@adacore.com>
6931
6932         * prep.ads, prep.adb (Expression): New Boolean parameter Complemented,
6933         defaulted to False.
6934         In the "not" case, recursive call with Complemented set to True.
6935         Do not allow "or" or "and" operators when Complemented is True.
6936
6937 2007-06-06  Vincent Celier  <celier@adacore.com>
6938
6939         * prj.adb (Project_Empty): Gives default value for new component
6940         Libgnarl_Needed
6941
6942         * prj-attr.ads: Minor reformatting
6943
6944         * prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object
6945         directory using the untouched casing.
6946         (For_All_Source_Dirs): Idem.
6947
6948         * prj-ext.ads, prj-ext.adb (Search_Directories): New table to record
6949         directories specified with switches -aP.
6950         (Add_Search_Project_Directory): New procedure
6951         (Initialize_Project_Path): Put the directories in table
6952         Search_Directories in the project search path.
6953         (Initialize_Project_Path): For VMS, transform into canonical form the
6954         project path.
6955
6956 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
6957
6958         * restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return
6959         true if configurable run-time or No_Run_Time is set.
6960         (Set_Restriction): Avoid setting restriction No_Elaboration_Code when
6961         processing an unit which is not the one being compiled.
6962
6963 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
6964
6965         * s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax.
6966         Replace UC by Ada.UC
6967
6968         * s-bitops.adb: Get rid of System.Pure_Exceptions.
6969         Replace UC by Ada.UC
6970
6971 2007-06-06  Robert Dewar  <dewar@adacore.com>
6972
6973         * scng.adb: (Check_End_Of_Line): Deal with very long lines
6974
6975 2007-06-06  Robert Dewar  <dewar@adacore.com>
6976
6977         * sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names
6978         Remove no longer used nodes.
6979
6980 2007-06-06  Javier Miranda  <miranda@adacore.com>
6981             Ed Schonberg  <schonberg@adacore.com>
6982             Robert Dewar  <dewar@adacore.com>
6983
6984         * sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check
6985         on obsolescent withed unit in case of limited-withed units.
6986         (Analyze_Compilation_Unit): Add guard to code that removed an
6987         instantiation from visibility, to prevent compiler aborts when
6988         instantiation is abandoned early on.
6989         (Install_Limited_Withed_Unit): Recognize a limited-with clause on the
6990         current unit being analyzed, and Distinguish local incomplete types
6991         from limited views of types declared elsewhere.
6992         (Build_Limited_Views.Decorate_Tagged_Type): Add documentation
6993         to state that the class-wide entity is shared by the limited-view
6994         and the full-view.
6995         (Analyze_With_Clause): Improve placement of flag for case of
6996         unimplemented unit.
6997         (Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a
6998         manner similar to GNAT.Current_Exception. This is a violation of
6999         restriction (No_Exception_Propagation), and also inhibits the
7000         optimization of local raise to goto.
7001         (Analyze_With_Clause): Check for Most_Recent_Exception being with'ed,
7002         and if so set Most_Recent_Exception_Used flag in Opt, and also check
7003         for violation of restriction No_Exception_Propagation.
7004
7005 2007-06-06  Javier Miranda  <miranda@adacore.com>
7006             Hristian Kirtchev  <kirtchev@adacore.com>
7007             Gary Dismukes  <dismukes@adacore.com>
7008
7009         * sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the
7010         use of entity Exception_Occurrence if it is not available in the
7011         target run-time.
7012
7013         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When
7014         concurrent types are declared within an Ada 2005 generic, build their
7015         corresponding record types since they are needed for overriding-related
7016         semantic checks.
7017         (Analyze_Protected_Type): Rearrange and simplify code for testing that a
7018         protected type does not implement a task interface or a nonlimited
7019         interface.
7020         (Analyze_Task_Type): Rearrange and simplify code for testing that a task
7021         type does not implement a protected interface or a nonlimited interface.
7022         (Single_Task_Declaration, Single_Protected_Declaration): use original
7023         entity for variable declaration, to ensure that debugging information
7024         is correcty generated.
7025         (Analyze_Protected_Type, Analyze_Task_Type): Do not call expander
7026         routines if the expander is not active.
7027         (Analyze_Task_Body): Mark all handlers to stop optimization of local
7028         raise, since special things happen for task exception handlers.
7029
7030         * sem_disp.adb (Check_Controlling_Formals): Add type retrieval for
7031         concurrent types declared within a generic.
7032         (Check_Dispatching_Operation): Do not emit warning about late interface
7033         operations in the context of an instance.
7034         (Check_Dispatching_Call): Remove restriction against calling a
7035         dispatching operation with a limited controlling result.
7036         (Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and
7037         Register_Interface_DT_Entry by calls to Register_Primitive.
7038         (Check_Dispatching_Formals): Handle properly a function with a
7039         controlling access result.
7040
7041 2007-06-06  Robert Dewar  <dewar@adacore.com>
7042             Arnaud Charlet  <charlet@adacore.com>
7043
7044         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size):
7045         Check for restriction No_Implementation_Attributes if in Ada 95 mode.
7046         (Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available
7047         (Analyze_Attribute_Definition_Clause [External_Tag]): Generate error
7048         message when using a VM, since this attribute is not supported.
7049         (Analyze_Record_Representation_Clause): Give unrepped component warnings
7050
7051         * usage.adb: Add new warning for renaming of function return objects
7052         Indicate that -gnatwp and -gnatwP concern front-end inlining
7053         Add line for -gnatyg
7054         Add usage information for -gnatw.c/C
7055
7056 2007-06-06  Robert Dewar  <dewar@adacore.com>
7057             Ed Schonberg  <schonberg@adacore.com>
7058
7059         * sem_ch5.adb
7060         (Find_Var): Do not consider function call in test for infinite loop
7061         warning if warnings set off for function entity.
7062         (One_Bound): Do not create a temporary for a loop bound if it is a
7063         character literal.
7064         (Analyze_Assignment): Traverse the right hand side of an assignment and
7065         mark all allocators as static coextensions.
7066         (Analyze_Assignment): Exempt assignments involving a dispatching call
7067         to a function with a controlling access result from the check requiring
7068         the target to be class-wide.
7069
7070 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
7071             Ed Schonberg  <schonberg@adacore.com>
7072             Robert Dewar  <dewar@adacore.com>
7073             Javier Miranda  <miranda@adacore.com>
7074
7075         * sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the
7076         chain of coextensions when an allocator serves as the root of such a
7077         chain.
7078         (Propagate_Coextensions): Remove the test for the root being an
7079         allocator.
7080         (Resolve_Allocator): Add condition to ensure that all future decoration
7081         occurs on an allocator node. Add processing and cleanup for static
7082         coextensions.
7083         (Valid_Conversion): If the operand type is the limited view of a
7084         class-wide type, use the non-limited view is available to determine
7085         legality of operation.
7086         (Ambiguous_Character): move to spec, for use elsewhere.
7087         (Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode
7088         (Resolve_Range): Diagnose properly an ambiguous range whose bounds are
7089         character literals.
7090         (Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting
7091         Do_Division_Check flag explicitly.
7092         (Resolve_Actuals): If the actual is of a synchronized type, and the
7093         formal is of the corresponding record type, this is a call to a
7094         primitive operation of the type, that is declared outside of the type;
7095         the actual must be unchecked-converted to the type of the actual
7096         (Resolve_Call): Kill all current values for any subprogram call if
7097         flag Suppress_Value_Tracking_On_Call is set.
7098         (Resolve_Type_Conversion): Generate error message the the operand
7099         or target of interface conversions come from a limited view.
7100         (Check_Infinite_Recursion): Ignore generated calls
7101         (Check_Allocator_Discrim_Accessibility): New procedure for checking
7102         that an expression that constrains an access discriminant in an
7103         allocator does not denote an object with a deeper level than the
7104         allocator's access type.
7105         (Resolve_Allocator): In the case of an allocator initialized by an
7106         aggregate of a discriminated type, check that associations for any
7107         access discriminants satisfy accessibility requirements by calling
7108         Check_Allocator_Discrim_Accessibility.
7109         (Resolve_Equality_Op): Handle comparisons of anonymous access to
7110         subprogram types in the same fashion as other anonymous access types.
7111         (Resolve_Concatenation_Arg): Remove initial character '\' in an error
7112         message that is not a continuation message.
7113         (Resolve_Type_Conversion): Add missing support for conversion to
7114         interface type.
7115         (Resolve_Actuals): Introduce a transient scope around the call if an
7116         actual is a call to a function returning a limited type, because the
7117         resulting value must be finalized after the call.
7118         (Resolve_Actuals): If the call was given in prefix notations, check
7119         whether an implicit 'Access reference or implicit dereference must be
7120         added to make the actual conform to the controlling formal.
7121
7122 2007-06-06  Robert Dewar  <dewar@adacore.com>
7123             Javier Miranda  <miranda@adacore.com>
7124
7125         * sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
7126         (Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit
7127         overriding of an inherited private subprogram now there is no need to
7128         inherit its dispatching slot and reduce the size of the dispatch table.
7129         Set_All_DT_Position now ensures that the same slot is now assigned to
7130         both entities. This is required to statically build the dispatch table.
7131         (Declare_Inherited_Private_Subprograms): Rewriten to avoid the need
7132         of calling Set_All_DT_Position to re-evaluate the position of the
7133         entries in the dispatch table. Such reevaluation is not desired if
7134         the tagged type is already frozen.
7135
7136 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
7137             Gary Dismukes  <dismukes@adacore.com>
7138             Robert Dewar  <dewar@adacore.com>
7139             Javier Miranda  <miranda@adacore.com>
7140
7141         * sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute
7142         reference acts as an lvalue when the attribute name modifies the prefix
7143         (Is_Coextension_Root): New routine.
7144         (Mark_Static_Coextensions): New routine.
7145         (Type_Access_Level): Revise code for checking the level of the
7146         anonymous access type of a return object.
7147         (Safe_To_Capture_Value): Not safe to capture if Address_Taken
7148         (Matches_Prefixed_View_Profile): Remove the no longer necessary
7149         retrieval of the corresponding controlling record type.
7150         (Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of
7151         concurrent types declared within a generic as well as class wide types.
7152         Emit a mode incompatibility error whenever a protected entry or routine
7153         override an interface routine whose first parameter is not of mode
7154         "out", "in out" or access to variable.
7155         (Overrides_Synchronized_Primitive): Rename to
7156         Find_Overridden_Synchronized_Primitive.
7157         (Collect_Interface_Components): New subprogram that collects all the
7158         components of a tagged record containing tags of secondary dispatch
7159         tables.
7160         (Add_Global_Declaration): New procedure
7161         (Abstract_Interface_List): Handle properly the case of a subtype of a
7162         private extension.
7163         (Type_Access_Level): In the case of a type whose parent scope is a
7164         return statement, call Type_Access_Level recursively on the enclosing
7165         function's result type to determine the level of the return object's
7166         type.
7167         (Build_Elaboration_Entity): Build name of elaboration entity from the
7168         scope chain of the entity, rather than the unit name of the file name.
7169         (Check_Nested_Access): New procedure.
7170         (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
7171         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
7172         (Get_Renamed_Entity): Utility routine for performing common operation
7173         of chasing the Renamed_Entity field of an entity.
7174
7175 2007-06-06  Robert Dewar  <dewar@adacore.com>
7176
7177         * sem_elab.adb (Check_A_Call): Specialize elaboration warnings on
7178         elaboration model
7179         (Check_A_Call): Add check for entry call which was causing blowup
7180
7181 2007-06-06  Olivier Hainque  <hainque@adacore.com>
7182
7183         * raise-gcc.c (__gnat_eh_personality): Tweak the signature and add
7184         special code on ia64-vms to handle major incompatibilities between the
7185         GCC unwinding ABI and the VMS Condition Handling Facility, both calling
7186         this routine with a very different set of arguments and expectations on
7187         the return value.
7188
7189 2007-06-06  Thomas Quinot  <quinot@adacore.com>
7190
7191         * socket.c (__gnat_close_signalling_fd): New function.
7192         (__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname,
7193         __gnat_safe_getservbyname, __gnat_safe_getservbyport):
7194         New supporting functions for task safe Netdb operations.
7195
7196 2007-06-06  Thomas Quinot  <quinot@adacore.com>
7197             Olivier Hainque  <hainque@adacore.com>
7198
7199         * a-except-2005.ads, a-except-2005.adb
7200         (Raise_From_Controlled_Operation): New procedure in
7201         (private part of) Ada.Exceptions (standard runtime version). Used to
7202         provide informational exception message when Program_Error is raised as
7203         a result of an Adjust or Finalize operation propagating an exception.
7204         (Rmsg_28): Fix description for E.4(18) check.
7205         (Raise_Current_Excep): Call Debug_Raise_Exception just before
7206         propagation starts, to let debuggers know about the event in a reliable
7207         fashion.
7208         Take the address of E and dereference to make sure it is homed on stack
7209         and prevent the stores from being deleted, necessary for proper
7210         debugger behavior on "break exception" hits.
7211         (Local_Raise): Moved to System.Exceptions
7212
7213         * s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate
7214         exception message from the current occurrence and raise Program_Error
7215         has been moved to Ada.Exceptions.Raise_From_Controlled_Operation.
7216
7217 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
7218             Arnaud Charlet  <charlet@adacore.com>
7219
7220         * s-taprob.adb (Unlock): Change the ceiling priority of the underlying
7221         lock, if needed.
7222
7223         * s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling
7224         priority associated to a lock.
7225
7226         * s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax
7227         assertion to take into account case of no abort restriction.
7228         (Initialize_Protection_Entries): Add initialization for the field
7229         New_Ceiling associated to the protected object.
7230         (Unlock_Entries): Change the ceiling priority of the underlying lock, if
7231         needed.
7232
7233         * s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
7234         since this function needs to be set consistently with Update_Exception.
7235
7236         * s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
7237         since this function needs to be set consistently with Update_Exception.
7238
7239         * s-taskin.ads: Update comments on
7240         Interrupt_Server_Blocked_On_Event_Flag.
7241         (Unbind_Handler): Fix handling of server_task wakeup
7242         (Server_Task): Set self's state so that Unbind_Handler can take
7243         appropriate actions.
7244         (Common_ATCB): Now use a constant from System.Parameters to determine
7245         the max size of the Task_Image field.
7246
7247         * s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the
7248         Initialize_Analyzer function.
7249         ([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to
7250         take into account case of no abort restriction.
7251         ([Vulnerable_]Complete_Master): Modify assertion.
7252
7253         * s-tataat.adb (Finalize): Use the nestable versions of
7254         Defer/Undefer_Abort.
7255
7256         * s-tpobop.adb (Protected_Entry_Call): Relax assertion.
7257
7258         * s-tpobop.ads: Update comments.
7259
7260         * s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead
7261         of locking the object manually, to avoid inconsistencies between
7262         Lock/Unlock_Entry assertions.
7263
7264         * s-interr.ads, s-interr.adb (Server_Task): Fix race condition when
7265         terminating
7266         application and System.Parameters.No_Abort is True.
7267         Update comments on Interrupt_Server_Blocked_On_Event_Flag.
7268         (Unbind_Handler): Fix handling of server_task wakeup
7269         (Server_Task): Set self's state so that Unbind_Handler can take
7270         appropriate actions.
7271
7272 2007-06-06  Thomas Quinot  <quinot@adacore.com>
7273
7274         * s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure
7275         declarations instead of an explicit null body, for conciseness.
7276
7277 2007-06-06  Robert Dewar  <dewar@adacore.com>
7278
7279         * sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an
7280         illegal aggregate and the type is still Any_Composite.
7281         (Subtypes_Statically_Match): Fix problem of empty discriminant list
7282
7283 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
7284
7285         * sem_smem.adb (Check_Shared_Var): Check explicitly for as task object,
7286         to prevent subsequent expansion.
7287
7288 2007-06-06  Robert Dewar  <dewar@adacore.com>
7289
7290         * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body
7291
7292 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
7293             Robert Dewar  <dewar@adacore.com>
7294
7295         * sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for
7296         exceptions.
7297         (Write_Itype): Handle case of string literal subtype, which
7298         comes up in this context.
7299         (Update_Itype): when debugging expanded code, update sloc of itypes
7300         associated with defining_identifiers and ranges, for gdb use.
7301         (Sprint_Node_Actual): Add static keyword to object or exception
7302         declaration output if Is_Statically_Allocated is True.
7303         (Sprint_End_Label): Set entity of end marker for a subprogram, package,
7304         or task body, so that the tree carries the proper Sloc information for
7305         debugging use.
7306         (Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes
7307
7308 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
7309
7310         * s-secsta.adb (Chunk): Ensure this object has a static size known at
7311         compile time, to avoid dynamic memory allocation
7312         (Elaboration code): Only use dynamic memory allocation when needed.
7313
7314 2007-06-06  Quentin Ochem  <ochem@adacore.com>
7315
7316         * s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter
7317         "Overflow_Guard".
7318         (Stack_Analyzer): Added field "Overflow_Guard"
7319         (Task_Result): Added field "Overflow_Guard".
7320         (Index_Str): New constant.
7321         (Task_Name_Str): New constant.
7322         (Actual_Size_Str): New constant.
7323         (Pattern_Array_Element_Size): New constant.
7324         (Get_Usage_Range): New subprogram.
7325         (Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len.
7326         Now align the output.
7327         Added comments.
7328         (Initialize): Added value for Overflow_Guard.
7329         (Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant.
7330         Update the value of the overflow guard according to the actual
7331         beginning of the pattern array.
7332         (Initialize_Analyzer): Added parameter Overflow_Guard.
7333         Take this parameter into accound when computing the max size.
7334         (Compute_Result): Use constant Pattern_Array_Elem_Size when relevant.
7335         (Report_Result): Removed extra useless procedure.
7336         Updated call to Output_Result.
7337         Moved full computation of the Task_Result here.
7338
7339 2007-06-06  Thomas Quinot  <quinot@adacore.com>
7340
7341         * g-soccon-darwin.ads, gen-soccon.c: Add new constant
7342         Thread_Blocking_IO, always True by default, set False on a per-runtime
7343         basis.
7344         Add Windows-specific constants
7345         Add new constant Need_Netdb_Buffer.
7346         Add new macros to indicate whether getXXXbyYYY is thread safe and, if
7347         not, whether to use getXXXbyYYY_r.
7348
7349         * gsocket.h: Add new constant Need_Netdb_Buffer.
7350         Add new macros to indicate whether getXXXbyYYY is thread safe and, if
7351         not, whether to use getXXXbyYYY_r.
7352
7353 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
7354
7355         * s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier
7356         than their first call.
7357         Add type Dummy_Communication_Block used in the generation of the pre-
7358         defined dispatching primitive _disp_asynchronous_select.
7359         (Storage_Element): Put Pragma Universal_Aliasing on it.
7360
7361 2007-06-06  Vincent Celier  <celier@adacore.com>
7362
7363         * a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean
7364         function.
7365
7366         * a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive
7367         letter if it is not followed by a '/' or a '\'.
7368         (Windows): New Boolean function
7369
7370         * a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma
7371         Ada 2005.
7372         (Containing_Directory): On Windows, keep at least one '/' or '\' after a
7373         drive letter.
7374         (Containing_Directory): Raise Use_Error when the directory is a root
7375         directory.
7376         (Extension): When returning the result, use a conversion to Result_Type,
7377         not a qualification.
7378
7379 2007-06-06  Robert Dewar  <dewar@adacore.com>
7380
7381         * stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure
7382         (Set_Style_Check_Options): Recognize new -gnatyg style switch
7383
7384         * switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set
7385         Warn_On_Non_Local_Exception to False, to turn off warnings for
7386         No_Exception_Propagation in ZFP runtime.
7387         (Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC
7388         back-ends.
7389         (Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks
7390
7391 2007-06-06  Vincent Celier  <celier@adacore.com>
7392
7393         * switch-b.adb (Scan_Binder_Switches): Add processing for new
7394         switches -R and -Z
7395
7396         * switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E
7397         (Scan_Make_Switches): Recognize new switch -aP
7398
7399 2007-06-06  Matthew Gingell  <gingell@adacore.com>
7400             Jose Ruiz  <ruiz@adacore.com>
7401
7402         * s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the
7403         VxWorks task descriptor in the Ada run time, call a C subprogram
7404         (__gnat_get_stack_info) that extracts the required information.
7405
7406         * sysdep.c: Back out temporary lynxos workaround.
7407         (__gnat_get_stack_info): Add this procedure that passes to the Ada run
7408         time the stack information associated to the currently executing task.
7409         Only VxWorks systems require this function.
7410
7411 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
7412
7413         * tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not
7414         add the stack bias if the offset is computed from a frame address.
7415         (__gnat_backtrace): Adjust for above change.
7416
7417 2007-06-06  Thomas Quinot  <quinot@adacore.com>
7418
7419         * types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to
7420         PE_Non_Transportable_Actual.
7421         (By_Descriptor_Last): New constant.
7422         (By_Copy_Return): Likewise.
7423
7424 2007-06-06  Vincent Celier  <celier@adacore.com>
7425
7426         * vms_conv.adb (Process_Argument): Keep arguments starting with '+' as
7427         is.
7428
7429         * vms_data.ads: Add entries for -gnatw.x and -gnatw.X
7430         /STYLE_CHECKS=GNAT: Change meaning to -gnatyg
7431         /GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg
7432         Add missing comment for /OPTIMIZE=SPACE
7433         Add entry for OPTIMIZE=SPACE
7434         Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST
7435         Add documentation for new qualifiers corresponding to -gnatw.c/.C
7436
7437 2007-06-06  Vincent Celier  <celier@adacore.com>
7438             Robert Dewar  <dewar@adacore.com>
7439
7440         * xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and
7441         -gnatw.C)
7442
7443         * gnat_ugn.texi: Fix ordering of -g switch for gnatmake
7444         Document gnatbind switch -a
7445         (case Constructions): Document that variables declarations are allowed
7446         for previously declared variables.
7447         Fix external lib project example
7448         -gnatg: Indicate new VMS qualifier /GNAT_INTERNAL
7449         Indicate that "#if not X or Y then" is not allowed in input files to
7450         gnatprep.
7451         Document gnatw.x and gnatw.X warning flags
7452         Mention -Winline switch to activate warnings when back-end inlining is
7453         ineffective.
7454         Add gnatcheck rule descriptions
7455         Describe how to use the GNAT driver to call a tool on a closure.
7456         Describe how to run project-wide checks or metrics.
7457         Document gnatbind's -R option
7458         Updated to account for Ada 2005 support
7459
7460         * gnat_rm.texi (Case Construction): Allow variable declarations for
7461         previously declared variables.
7462         (Representation Clauses and Pragmas): Lift restriction on alignment
7463         clauses for record types.
7464         (Ada.Characters.*): Fix typo in reference to A.3.3(27).
7465         Document No_Exception_Propagation restriction
7466         Document No_Body pragma
7467         Updated to account for Ada 2005 support; corrected some typos
7468         (Implementation Defined Pragmas): Document pragma Universal_Aliasing.
7469
7470         * gnat-style.texi: Make it clear that we never use mode IN for
7471         procedures or functions
7472
7473         * ug_words: Add entries for -gnatw.x and -gnatw.X
7474         Add entries for -gnatw.c/.C
7475
7476 2007-06-06  Pascal Obry  <obry@adacore.com>
7477             Vincent Celier  <celier@adacore.com>
7478
7479         * makegpr.adb (Add_Archive_Path): Use untouched object and library
7480         dirs and library name.
7481         (Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate
7482         comments.
7483         (Build_Library): Idem.
7484         (Compile_Individual_Sources): Idem.
7485         (Compile_Link_With_Gnatmake): Idem.
7486         (Compile_Sources): Idem.
7487         (Get_Imported_Directories): Idem.
7488         (Link_Executables): Idem. Same change for the executable dir.
7489         (Check_Compilation_Needed): C_Source_Path new variable containing
7490         the canonical form of Source_Path to check against the source names
7491         in the dependency file.
7492         (Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In
7493         verbose mode, display the name of the object directory we're changing
7494         to.
7495         (Saved_Switches): New name of table X_Switches
7496         (Scan_Arg): Recognize new switch -aP and save in table Saved_Switches
7497         (Usage): New line for switch -aP
7498         (Get_Imported_Directories.Add): Make sure that Add_Arg is True before
7499         testing if a directory should be added to the search path.
7500
7501 2007-06-06  Javier Miranda  <miranda@adacore.com>
7502
7503         * a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads, 
7504         a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object
7505         declaration after freezing point of all its associated tagged types;
7506         otherwise such types are frozen too early.
7507
7508 2007-06-06  Robert Dewar  <dewar@adacore.com>
7509
7510         * a-reatim.adb: Documentation addition
7511
7512         * g-cgideb.adb: Minor code reorganization
7513
7514         * tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb,
7515         mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads,
7516         s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting.
7517
7518         * debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete
7519         function.  Change name New_Scope to Push_Scope
7520         (Get_Debug_Flag_K): Remove unused obsolete function.
7521
7522         * exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to
7523         Push_Scope.
7524
7525         * makeusg.adb: Update Copyright notice
7526         Add line for switch -aP
7527
7528         * makeusg.adb: Fix wording of some usage messages
7529
7530         * s-assert.adb (Raise_Assert_Failure): Add call to
7531         Debug_Raise_Assert_Failure.
7532
7533         * s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min
7534         (2, Standard'Alignment) for compatibility with AAMP (where alignment
7535         is restricted to 1).
7536
7537         * s-wchjis.adb: Remove use of System.Pure_Exceptions
7538
7539         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the
7540         node location to No_Location when we're not debugging the expanded
7541         code.
7542
7543 2007-05-22  Alexandre Oliva  <aoliva@redhat.com>
7544
7545         * misc.c (enumerate_modes): Consider log2_b to always be one.
7546
7547 2007-05-14  Rafael Avila de Espindola  <espindola@google.com>
7548
7549         * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
7550
7551 2007-05-02  Pascal Obry  <obry@adacore.com>
7552
7553         * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
7554         to use Stream_IO.File_Type. This is needed to make use of the UTF-8
7555         encoding support of Stream_IO.
7556         (Write_Unit): Idem.
7557
7558         * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
7559         filename and corresponding encoding to match the OS requirement.
7560         (__gnat_file_exists): Do not call __gnat_stat() on Windows as this
7561         routine will fail on specific devices like CON: AUX: ...
7562
7563         PR ada/29856: Add missing braces
7564
7565 2007-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7566
7567         PR ada/31660
7568         * ada-tree.h (lang_tree_node): Fix typo in chain_next.
7569
7570 2007-04-21  Jan Hubicka  <jh@suse.cz>
7571
7572         * misc.c (gnat_expand_body): Don't call target for destructors,
7573         avoid redundant check on syntax errors.
7574
7575 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7576
7577         * ada-tree.h (lang_tree_node): Use GENERIC_NEXT
7578         instead of checking GIMPLE_STMT_P in chain_next.
7579
7580 2007-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
7581
7582         PR ada/31576
7583         * system-linux-alpha.ads: Disable constant condition warning for the
7584         Default_Bit_Order variable.
7585         * system-linux-s390.ads: Likewise.
7586         * system-linux-s390x.ads: Likewise.
7587         * system-linux-sparc.ads: Likewise.
7588
7589 2007-04-06  Javier Miranda  <miranda@adacore.com>
7590             Matt Heaney  <heaney@adacore.com>
7591             Robert Dewar  <dewar@adacore.com>
7592
7593         a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
7594         a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
7595         a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
7596         a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
7597         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
7598         a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
7599         a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
7600         a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
7601         a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
7602         a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
7603         a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
7604         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
7605         a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
7606         a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
7607         a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
7608         a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
7609         a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
7610         i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
7611         unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
7612         a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
7613         a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
7614         a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
7615         expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
7616         s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
7617         s-taprop-tru64.adb, s-taprop-irix.adb,
7618         s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
7619         s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
7620         s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
7621         s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb, 
7622         s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads, 
7623         a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb, 
7624         a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads, 
7625         g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads, 
7626         s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb, 
7627         s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads, 
7628         s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb, 
7629         s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, 
7630         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb, 
7631         s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb, 
7632         a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads, 
7633         a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads, 
7634         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb, 
7635         a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
7636         a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads, 
7637         a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
7638         access types.
7639         Update documentation.
7640         Minor rewording.
7641
7642 2007-04-06  Robert Dewar  <dewar@adacore.com>
7643
7644         * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
7645         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
7646         system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads,
7647         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
7648         system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads,
7649         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
7650         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
7651         system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
7652         system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
7653         system-hpux-ia64.ads, targparm.adb,
7654         targparm.ads (Functions_Return_By_DSP_On_Target): Removed
7655
7656         * system.ads: Move Functions_Return_By_DSP to obsolete section,
7657         kept for bootstrap purposes only.
7658
7659 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
7660
7661         * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
7662         s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads,
7663         s-taprop-posix.adb (Create_Task): Fix handling of Task_Info.
7664         (PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants.
7665
7666 2007-04-06  Robert Dewar  <dewar@adacore.com>
7667
7668         * a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb
7669         (Local_Raise): New dummy procedure called when a raise is converted
7670         to a local goto. Used for debugger to detect that the exception
7671         is raised.
7672
7673         * debug.adb: Document new d.g flag (expand local raise statements to
7674         gotos even if pragma Restriction (No_Exception_Propagation) is not set)
7675
7676         * exp_sel.adb: Use Make_Implicit_Exception_Handler
7677
7678         * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to
7679         suppress warnings for unused handlers.
7680         (Warn_If_No_Propagation):  Use new flag -gnatw.x to suppress
7681         warnings for raise statements not handled locally.
7682         (Get_RT_Exception_Entity): New function
7683         (Get_Local_Call_Entity): New function
7684         (Find_Local_Handler): New function
7685         (Warn_If_No_Propagation): New procedure
7686         (Expand_At_End_Handler): Call Make_Implicit_Handler
7687         (Expand_Exception_Handlers): Major additions to deal with local handlers
7688         (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error,
7689         Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling
7690         for local raise
7691
7692         * exp_ch11.ads (Get_RT_Exception_Entity): New function
7693         (Get_Local_Call_Entity): New function
7694
7695         * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list
7696         of restrictions that the binder will never suggest adding.
7697
7698         * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field
7699         to No_Elist.
7700
7701         * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not
7702         be with'ed in the presence of pragma Restriction
7703         (No_Exception_Propagation).
7704
7705         * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes
7706
7707         * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
7708         parameter, then the handler is not a suitable target for a local raise,
7709         and this is a violation of restriction No_Exception_Propagation.
7710         (Analyze_Handled_Statements): Analyze choice parameters in exception
7711         handlers before analyzing statement sequence (needed for proper
7712         detection of local raise statements).
7713         (Analyze_Raise_Statement): Reraise statement is a violation of the
7714         No_Exception_Propagation restriction.
7715
7716         * s-rident.ads: Add new restriction No_Exception_Propagation
7717
7718         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
7719         function, like Make_Exception_Handler but sets Local_Raise_Statements
7720         to No_List.
7721         (Add_Unique_Serial_Number): Deal with case where this is called during
7722         processing of configuration pragmas.
7723
7724 2007-04-06  Thomas Quinot  <quinot@adacore.com>
7725             Pat Rogers  <rogers@adacore.com>
7726             Pascal Obry  <obry@adacore.com>
7727
7728         * g-stsifd-sockets.adb: New file.
7729
7730         * g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
7731         g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
7732         g-socthi-vms.adb: Move signalling
7733         fd management to a nested package, so that they can conveniently be
7734         moved to a subunit that is shared across Windows, VMS, and VxWorks
7735         (Ada implementation) or completed with imported bodies from socket.c
7736         (UNIX case).
7737         (Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
7738         subprograms.
7739         (Check_Selector): Use Read_Signalling_Fd to read and discard data from
7740         the signalling file descriptor.
7741         (Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
7742         signalling file descriptor.
7743         (Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
7744         instead of creating a pair of sockets for signalling here.
7745
7746         * g-socthi.adb: Ditto.
7747         Set the runtime process to ignore SIGPIPEs on platforms that support
7748         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
7749
7750         * g-socthi-mingw.adb: Ditto.
7751         (WS_Version): Use Windows 2.2.
7752         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
7753
7754         * g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
7755         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
7756
7757         * Makefile.in: New libgnat pair g-stsifd.adb<g-stsifd-sockets.adb.
7758         added GNAT byte swapping facility
7759         Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.
7760
7761         * g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.
7762
7763         * socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
7764         New subprograms.
7765         (__gnat_create_signalling_fds): New subprogram.
7766         Set the runtime process to ignore SIGPIPEs on platforms that support
7767         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
7768
7769 2007-04-06  Hristian Kirtchev  <kirtchev@adacore.com>
7770             Vincent Celier  <celier@adacore.com>
7771
7772         * a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
7773         New version of Ada.Calendar which supports the new upper bound of Ada
7774         time (2399-12-31 86_399.999999999).
7775         The following modifications have been made to the package:
7776          - New representation of time as count of nanoseconds since the start of
7777            Ada time (1901-1-1 0.0).
7778          - Target independent Split and Time_Of routines which service both
7779            Ada 95 and Ada 2005 code.
7780          - Target independent interface to the Ada 2005 children of Calendar.
7781          - Integrated leap seconds into Ada 95 and Ada 2005 mode.
7782          - Handling of non-leap centenial years.
7783          - Updated clock function.
7784          - Updated arithmetic and comparison operators.
7785
7786         * a-caldel.adb (To_Duration): Add call to target independent routine in
7787         Ada.Calendar to handle the conversion of time to duration.
7788
7789         * sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
7790         (UTC Offset).
7791         If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
7792         set off to 0.
7793         (__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
7794         targets do not have a natural time zone, GMT is used as a default.
7795         (__gnat_get_task_options): New.
7796
7797         * a-direct.adb (Modification_Time): Add with and use clauses for
7798         Ada.Calendar and Ada.
7799         Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
7800         since it is no longer needed.
7801         (Duration_To_Time): Removed.
7802         (OS_Time_To_Long_Integer): Removed.
7803         (Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
7804         Formatting Time_Of routines which automatically handle time zones,
7805         buffer periods and leap seconds.
7806
7807         * a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
7808         target independent routines in Ada.Calendar.
7809
7810         * a-calfor.ads, a-calfor.adb: 
7811         Code cleanup and addition of validity checks in various routines.
7812         (Day_Of_Week, Split, Time_Of): Add call to target independent routine in
7813         Ada.Calendar.
7814
7815         * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
7816         independent routine in Ada.Calendar.
7817
7818 2007-04-06  Olivier Hainque  <hainque@adacore.com>
7819
7820         * adaint.c: 
7821         (convert_addresses): Adjust prototype and dummy definition to expect an
7822          extra file_name argument.
7823
7824         * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
7825         filling the now expected file_name argument with the appropriate
7826         argv[0] expansion.
7827         (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
7828         (tracebk): Array of void * instead of char *, corresponding to what
7829          convert_addresses expects.
7830         (exename): New static global, to hold the executable file name to be
7831         used in all convert_addresses invocations.
7832         (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
7833         change.
7834         (__gnat_gmem_a2l_initialize): Resolve exename.
7835         (__gnat_convert_addresses): Use exename as the convert_addresses
7836         file_name argument.
7837
7838         * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
7839         "convert_addresses", now expecting a filename argument. Import the
7840         necessary entities to compute the filename to use and pass it to
7841         convert_addresses.
7842
7843 2007-04-06  Matt Gingell  <gingell@adacore.com>
7844
7845         * system-aix.ads: Back out previous change.
7846         (Functions_Return_By_DSP): Removed
7847
7848 2007-04-06  Pascal Obry  <obry@adacore.com>
7849
7850         * s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
7851         or the monotonic used by Ada.Real_Time) to compute the sleep duration
7852         on Windows.
7853
7854 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
7855
7856         * s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
7857         function. Its value changes in different VxWorks versions, and it is
7858         now handled by the function __gnat_get_task_options.
7859
7860         * s-taprop-vxworks.adb (Create_Task): Call the function
7861         __gnat_get_task_options to get the required options for creating a task.
7862
7863 2007-04-06  Pascal Obry  <obry@adacore.com>
7864             Thomas Quinot  <quinot@adacore.com>
7865
7866         * adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
7867         dealing with filename.
7868         (__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
7869         filename from a standard string to a wide-string depending on the
7870         encoding value.
7871         (__gnat_freopen): Idem.
7872         (__gnat_current_time): New function (wrapper for time(3) standard C
7873         function).
7874
7875         * g-os_lib.ads (Current_Time): New function. Returns the current
7876         system time as an OS_Time value.
7877
7878         * s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
7879         (Monotonic_Clock): Same.
7880
7881 2007-04-06  Quentin Ochem  <ochem@adacore.com>
7882
7883         * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
7884         not on a natural.
7885         (Scan_ALI): Cancel the xref line if there has been a reading ALI error.
7886
7887 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
7888
7889         * a-retide.adb: Add elaboration code to ensure that the tasking run
7890         time is initialized when using delay operations even when no task is
7891         created.
7892
7893 2007-04-06  Javier Miranda  <miranda@adacore.com>
7894
7895         * a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
7896         component Num_Prim_Ops.
7897         (Set_Num_Prim_Ops): Removed.
7898         Remove all the assertions because all the routines of this
7899         package are inline always.
7900         (Get_Offset_Index): Add support to primary dispatch tables.
7901         Move the documentation about the dispatch table to a-tags.ads
7902         (Set_External_Tag): Removed
7903         (Inherit_TSD): Removed.
7904         (Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
7905         moved to a-tags.ads
7906         (Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
7907         Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
7908         of the TSD field "Table" because this field has been renamed to
7909         "Ifaces_Table".
7910         (Inherit_CPP_DT): Removed.
7911         (K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
7912         Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
7913         declarations have been moved to a-tags.ads
7914         (Check_Size): Removed.
7915         (Expanded_Name): Updated to get access to the new field of TSD
7916         containing the address of the expanded name.
7917         (Get_Access_Level/Set_Access_Level): Removed.
7918         (Get_Predefined_Prim_Op_Address): Removed.
7919         (Set_Predefined_Prim_Op_Address): Removed.
7920         (Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
7921         (Get_Remotely_Callable/Set_Remotely_Callable): Removed.
7922         (Set_Expanded_Name): Removed.
7923         (Inherit_DT): Removed.
7924         (Inherit_CPP_DT): Removed.
7925         (Set_RC_Offset): Removed.
7926         (Set_TSD): Removed.
7927         (Base_Address): New function that displaces "this" to point to the base
7928         of the object (that is, to point to the primary tag of the object).
7929
7930 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
7931             Javier Miranda  <miranda@adacore.com>
7932
7933         * exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
7934         anonymous access component, do not create a master_id if type already
7935         has one, as may happen if the type is a subcomponent of a packed array
7936         type.
7937         (Build_Init_Procedure, Component_Needs_Simple_Initialization,
7938         Initialize_Tag): Remove code associated with the old CPP pragmas.
7939         CPP_Virtual and CPP_Vtable are no longer supported.
7940         (Build_Offset_To_Top_Internal): Add support for concurrent record types
7941         (Build_Offset_To_Top_Functions): Add support for concurrent record types
7942         (Freeze_Record_Type): Remove call to
7943         Init_Predefined_Interface_Primitives.
7944         (Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
7945         code required to initialize the tags of the secondary dispatch tables.
7946         This leaves the algoritm more clear.
7947         (Init_Secondary_Tags): Add support for concurrent record types
7948         (Make_Predefined_Primitive_Specs): Code cleanup.
7949         (Predefined_Primitive_Bodies): Code cleanup.
7950         (Build_Master_Renaming): New local subprogram.
7951         (Expand_N_Full_Type_Declaration): Build the master_id associated with
7952         anonymous access to task type components.
7953         (Expand_N_Subtype_Indication): The bounds of a range constraint in a
7954         subtype indication are resolved during analysis, and must not be done
7955         here.
7956         (Stream_Operation_OK): Check Restriction_Active before RTE_Available.
7957
7958 2007-04-06  Geert Bosch  <bosch@adacore.com>
7959             Ed Schonberg  <schonberg@adacore.com>
7960             Javier Miranda  <miranda@adacore.com>
7961             Bob Duff  <duff@adacore.com>
7962
7963         * exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
7964         for conversion of a Float_Type'Truncation to integer.
7965
7966         * exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to
7967         check if a node is an attribute that can be handled directly by the
7968         back end.
7969         (Expand_N_Attribute_Reference): Suppress expansion of floating-point
7970         attributes that can be handled directly by the back end.
7971         (Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access):
7972         use new predicate Is_Access_Protected_Subprogram_Type.
7973         (Expand_N_Attribute_Reference, case 'Write): The reference is legal for
7974         and Unchecked_Union if it is generated as part of the default  Output
7975         procedure for a type with default discriminants.
7976         (Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
7977         if we are compiling under restriction No_Dispatching_Calls.
7978         (Constrained): Use Underlying_Type, in case the type is private without
7979         discriminants, but the full type has discriminants.
7980         (Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
7981         call to Build_Get_Access_Level.
7982         (Expand_N_Attribute_Reference): The use of 'Address with class-wide
7983         interface objects requires a call to the run-time subprogram that
7984         returns the base address of the object.
7985         (Valid_Conversion): Improve error message on illegal attempt to store
7986         an anonymous access to subprogram value into a record component.
7987
7988         * sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access =
7989         null".
7990         (Simplify_Type_Conversion): New procedure that performs simplification
7991         of Int_Type (Float_Type'Truncation (X)).
7992         (Resolve_Type_Conversion): Call above procedure after resolving operand
7993         and before performing checks. This replaces the existing ineffective
7994         code in Exp_Ch4.
7995         (Set_String_Literal_Subtype): When creating the internal static lower
7996         bound subtype for a string literal, use a newly created copy of the
7997         subtree representing the lower bound.
7998         (Resolve_Call): Exclude build-in-place function calls from transient
7999         scope treatment. Update comments to describe this exception.
8000         (Resolve_Equality_Op): In case of dispatching call check violation of
8001         restriction No_Dispatching_Calls.
8002         (Resolve_Call): If the call returns an array, the context imposes the
8003         component type of the array, and the function has one non-defaulted
8004         parameter, rewrite the call as the indexing of a call with a single
8005         parameter, to handle an Ada 2005 syntactic ambiguity for calls written
8006         in prefix form.
8007         (Resolve_Actuals): If an actual is an allocator for an access parameter,
8008         the master of the created object is the innermost enclosing statement.
8009         (Remove_Conversions): For a binary operator, check if type of second
8010         formal is numeric, to check if an abstract interpretation is present
8011         in the case of exponentiation as well.
8012
8013 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
8014             Bob Duff  <duff@adacore.com>
8015
8016         * atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
8017         copying a parameter list in a call, set properly the First_Named_Formal
8018         and Next_Named_Formal fields in the new list and in the enclosing call.
8019         (Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
8020         names, to ease typing in the debugger. Improve comments.
8021         (Watch_Node): New variable, intended to be set in the debugger.
8022         (New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
8023         called when the watched node is created.
8024         (New_Node_Debugging_Output): Combined version of local procedures
8025         New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
8026         with a parameter so that conditional breakpoints like "if Node = 12345"
8027         work.
8028         (New_Node, New_Entity): Call the global New_Node_Debugging_Output.
8029         Add Elist1 function
8030
8031 2007-04-06  Thomas Quinot  <quinot@adacore.com>
8032             Ed Schonberg  <schonberg@adacore.com>
8033             Gary Dismukes  <dismukes@adacore.com>
8034
8035         * checks.ads, checks.adb (Selected_Range_Checks): No range check is
8036         required for a conversion between two access-to-unconstrained-array
8037         types.
8038         (Expr_Known_Valid): Validity checks do not apply to discriminants, but
8039         to discriminant constraints on discriminant objects. This rule must
8040         apply as well to discriminants of protected types in private components.
8041         (Null_Exclusion_Static_Checks): If No_Initialization is set on an
8042         object of a null-excluding access type then don't require the
8043         the object declaration to have an expression and don't emit a
8044         run-time check.
8045
8046 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
8047             Eric Botcazou <botcazou@adacore.com>
8048
8049         * gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
8050         and made constant.
8051
8052         * comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
8053         Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't
8054         carry any.
8055
8056         * fe.h (Compiler_Abort): Add third parameter.
8057
8058         * misc.c (internal_error_function): Build third argument from current
8059         input location and pass it to Compiler_Abort.
8060
8061 2007-04-06  Gary Dismukes  <dismukes@adacore.com>
8062
8063         * cstand.adb (Create_Standard): When the target's storage unit size is
8064         greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
8065         Standard_String.
8066
8067 2007-04-06  Nicolas Roche  <roche@adacore.com>
8068
8069         * cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
8070         absolute path can have the following form: device:/a/b. In this case
8071         '/' should be inserted between the path and the filename.
8072
8073 2007-04-06  Olivier Hainque  <hainque@adacore.com>
8074             Eric Botcazou <botcazou@adacore.com>
8075
8076         * decl.c (gnat_to_gnu_entity) <E_Constant>: Associate an external
8077         VAR_DECL to a CONST_DECL we make for a public constant when we know the
8078         corresponding definition has created the so made visible variable.
8079         Handle anonymous access to protected subprogram.
8080         (gnat_to_gnu_entity) <E_Variable>: Do not make the underlying type of an
8081         object with an address clause volatile.  Re-enable original fix.
8082         <E_Subprogram_Type>: Set TYPE_REF_CAN_ALIAS_ALL on the reference type
8083         too.
8084         (gnat_to_gnu_entity) <E_Class_Wide_Type>: Retrieve the TYPE_DECL
8085         associated with either the Equivalent or Root type, instead of the
8086         naked type node.
8087         (gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
8088         subtree for every field of a global record type.
8089         (gnat_to_gnu_entity) <E_Record_Subtype>: If the subtype has
8090         discriminants, invoke again variable_size on its newly computed sizes.
8091
8092 2007-04-06  Robert Dewar  <dewar@adacore.com>
8093             Thomas Quinot  <quinot@adacore.com>
8094             Ed Schonberg  <schonberg@adacore.com>
8095             Bob Duff  <duff@adacore.com>
8096
8097         * einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
8098         (Next_Component_Or_Discriminant): New function and procedure
8099         (First_Index, First_Literal, Master_Id,
8100         Set_First_Index, Set_First_Literal, Set_Master_Id):
8101         Add missing Ekind assertions.
8102         (Is_Access_Protected_Subprogram_Type): New predicate.
8103         (Has_RACW): New entity flag, set on package entities to indicate that
8104         the package contains the declaration of a remote accecss-to-classwide
8105         type.
8106         (E_Return_Statement): This node type has the Finalization_Chain_Entity
8107         attribute, in case the result type has controlled parts.
8108         (Requires_Overriding): Add this new flag, because "requires
8109         overriding" is subtly different from "is abstract" (see AI-228).
8110         (Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
8111         Is_Abstract_Type. Make sure these are called only when appropriate.
8112         (Has_Pragma_Unreferenced_Objects): New flag
8113
8114         * exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
8115         class-wide, the tag of the right-hand side must be an exact match, not
8116         an ancestor of that of the object on left-hand side.
8117         (Move_Activation_Chain): New procedure to create the call to
8118         System.Tasking.Stages.Move_Activation_Chain.
8119         (Expand_N_Extended_Return_Statement): Generate code to call
8120         System.Finalization_Implementation.Move_Final_List at the end of a
8121         return statement if the function's result type has controlled parts.
8122         Move asserts to Build_In_Place_Formal.
8123         (Move_Final_List): New function to create the call statement.
8124         (Expand_N_Assignment_Statement): In case of assignment to a class-wide
8125         tagged type, replace generation of call to the run-time subprogram
8126         CW_Membership by call to Build_CW_Membership.
8127         (Expand_N_Return_Statement): Replace generation of call to the run-time
8128         subprogram Get_Access_Level by call to Build_Get_Access_Level.
8129         (Expand_N_Simple_Function_Return): Replace generation of call to the
8130         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
8131
8132         * exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate
8133         Is_Access_Protected_Subprogram_Type, to handle both named and anonymous
8134         access to protected operations.
8135         (Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the
8136         master and chain actual parameters to a build-in-place function call
8137         involving tasks.
8138         (BIP_Formal_Suffix): Add new enumeration literals to complete the case
8139         statement.
8140         (Make_Build_In_Place_Call_In_Allocator,
8141         Make_Build_In_Place_Call_In_Anonymous_Context,
8142         Make_Build_In_Place_Call_In_Assignment,
8143         Make_Build_In_Place_Call_In_Object_Declaration): Call
8144         Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master.
8145         (Expand_Inlined_Call): If the subprogram is a null procedure, or a
8146         stubbed procedure with a null body, replace the call with a null
8147         statement without using the full inlining machinery, for efficiency
8148         and to avoid invalid values in source file table entries.
8149
8150         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for
8151         renamings of calls to build-in-place functions.
8152
8153         * rtsfind.adb (RTE_Record_Component_Available): New subprogram that
8154         provides the functionality of RTE_Available to record components.
8155         (RTU_Entity): The function Entity has been renamed to RTU_Entity
8156         to avoid undesired overloading.
8157         (Entity): New subprogram that returns the entity for the referened
8158         unit. If this unit has not been loaded, it returns Empty.
8159         (RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities.
8160         Remove no longer used entities.
8161         (RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities.
8162         (RE_Type_Specific_Data): New entity.
8163         (RE_Move_Any_Value): New entity.
8164         (RE_TA_A, RE_Get_Any_Type): New entities.
8165         (RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count,
8166          RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable,
8167          RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added.
8168         (Entity): New subprogram that returns the entity for the referened
8169         unit. If this unit has not been loaded, it returns Empty.
8170         (RTE): Addition of a new formal that extends the search to the scopes
8171         of the record types found in the chain of the package.
8172
8173         * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print
8174         "abstract subprograms must be visible" message, whether or not the type
8175         is an interface; that is, remove the special case for interface types.
8176         (Analyze_Function_Return): Remove error message "return of task objects
8177         is not yet implemented" because this is now implemented.
8178         (Create_Extra_Formals): Add the extra master and activation chain
8179         formals in case the result type has tasks.
8180         Remove error message "return of limited controlled objects is not yet
8181         implemented".
8182         (Create_Extra_Formals): Add the extra caller's finalization list formal
8183         in case the result type has controlled parts.
8184         (Process_Formals): In case of access formal types there is no need
8185         to continue with the analysis of the formals if we already notified
8186         errors.
8187         (Check_Overriding_Indicator): Add code to check overriding of predefined
8188         operators.
8189         (Create_Extra_Formals): Prevent creation of useless Extra_Constrained
8190         flags for formals that do not require them,.
8191         (Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
8192         hidden entity is use visible or directly visible.
8193         (Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
8194         Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
8195         Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
8196         New_Overloaded_Entity): Split Is_Abstract flag into
8197         Is_Abstract_Subprogram and Is_Abstract_Type.
8198
8199         * s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
8200         a return statement's finalization list to the caller's list, used for
8201         build-in-place functions with result type with controlled parts.
8202         Remove no longer used entities.
8203
8204         * s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
8205         longer needed, because the full type is now limited, and therefore a
8206         pass-by-reference type.
8207         (Foreign_Task_Level): New constant.
8208
8209         * s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
8210         move tasks from the activation chain belonging to a return statement to
8211         the one passed in by the caller, and update the master to the one
8212         passed in by the caller.
8213         (Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
8214         of unactivated tasks, so we don't kill the ones that are being returned
8215         by a build-in-place function.
8216         (Create_Task): Ignore AI-280 for foreign threads.
8217
8218 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
8219             Robert Dewar  <dewar@adacore.com>
8220             Bob Duff  <duff@adacore.com>
8221             Gary Dismukes  <dismukes@adacore.com>
8222
8223         * errout.adb (Unwind_Internal_Type): Use predicate
8224         Is_Access__Protected_Subprogram_Type.
8225
8226         * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant
8227         (Freeze_Entity, packed array case): Do not override explicitly set
8228         alignment and size clauses.
8229         (Freeze_Entity):  An entity declared in an outer scope can be frozen if
8230         the enclosing subprogram is a child unit body that acts as a spec.
8231         (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type.
8232         (Freeze_Record_Type): New Ada 2005 processing for reverse bit order
8233         Remove all code for DSP option
8234
8235         * layout.adb (Layout_Record_Type): Use First/
8236         Next_Component_Or_Discriminant
8237         (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type,
8238         to handle properly the anonymous access case.
8239
8240         * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type
8241         for all access attributes, because overload resolution should work the
8242         same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This
8243         causes the error message for the ambiguous "X'Access = Y'Access" and
8244         "X'Unrestricted_Access = Y'Access" and so forth to match.
8245         (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type,
8246         now that anonymous access to protected operations have their own kind.
8247         (Resolve_Attribute): In case of dispatching call check the violation of
8248         restriction No_Dispatching_Calls.
8249         (Check_Array_Type): Check new -gnatyA array index style option
8250
8251         * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an
8252         attempt to derive from a synchronized tagged type.
8253         (Analyze_Type_Declaration): If there is a incomplete tagged view of the
8254         type, inherit the class-wide type already created, because it may
8255         already have been used in a self-referential anonymous access component.
8256         (Mentions_T): Recognize self-referential anonymous access components
8257         that use (a subtype of) the class-wide type of the enclosing type.
8258         (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass
8259         Derived_Type for Prev formal on call to
8260         Check_Anonymous_Access_Components rather than Empty.
8261         (Make_Incomplete_Type_Declaration): Add test for case where the type has
8262         a record extension in deciding whether to create a class-wide type,
8263         rather than just checking Tagged_Present.
8264         (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies
8265         to stand-alone object declarations as well as component declarations.
8266         (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to
8267         prevent accidental overwriting when enclosing package appears in
8268         a limited_with_clause.
8269         (Array_Type_Declaration): If the component type is an anonymous access,
8270         the associated_node for the itype is the type declaration itself.
8271         (Add_Interface_Tag_Components): Modified to support concurrent
8272         types with abstract interfaces.
8273         (Check_Abstract_Interfaces): New subprogram that verifies the ARM
8274         rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2).
8275         (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration
8276         to complete the decoration of synchronized interface types. Add also
8277         a call to Check_Abstract_Interfaces to verify the ARM rules.
8278         (Derive_Interface_Subprograms): Modified to support concurrent types
8279         with abstract interfaces.
8280         (Analyze_Subtype_Indication): Resolve the range with the given subtype
8281         mark, rather than delaying the full resolution depending on context.
8282         (Analyze_Component_Declaration,Analyze_Interface_Declaration,
8283         Analyze_Object_Declaration,Analyze_Subtype_Declaration,
8284         Array_Type_Declaration,Build_Derived_Record_Type,
8285         Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion,
8286         Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type,
8287         Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into
8288         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
8289         called only when appropriate.
8290         (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type
8291         to private type.
8292         (Analyze_Subtype_Declaration): For an access subtype declaration, create
8293         an itype reference for the anonymous designated subtype, to prevent
8294         scope anonmalies in gigi.
8295         (Build_Itype_Reference): New utility, to simplify construction of such
8296         references.
8297
8298 2007-04-06  Vincent Celier  <celier@adacore.com>
8299
8300         * errutil.adb (Initialize): Initialize warnings table, if all warnings
8301         are suppressed, supply an initial dummy entry covering all possible
8302         source locations.
8303
8304         * make.adb (Scan_Make_Arg): Reject options that should start with "--"
8305         and start with only one, such as "-RTS=none".
8306         (Collect_Arguments): Do not check for sources outside of projects.
8307         Do not collect arguments if project is externally built.
8308         (Compile_Sources): Do nothing, not even check if the source is up to
8309         date, if its project is externally built.
8310         (Compile): When compiling a predefined source, add -gnatpg
8311         as the second switch, after -c.
8312         (Compile_Sources): Allow compilation of Annex J renames without -a
8313         (Is_In_Object_Directory): Check if the ALI file is in the object
8314         even if there is no project extension.
8315         (Create_Binder_Mapping_File): Only put a unit in the mapping file for
8316         gnatbind if the ALI file effectively exists.
8317         (Initialize): Add the directory where gnatmake is invoked in front of
8318         the path if it is invoked from a bin directory, even without directory
8319         information, so that the correct GNAT tools will be used when spawned
8320         without directory information.
8321
8322         * makeusg.adb: Change switch -S to -eS
8323         Add lines for new switches -we, -wn and -ws
8324         Add line for new switch -p
8325
8326         * prj-proc.adb (Process): Set Success to False when Warning_Mode is
8327         Treat_As_Error and there are warnings.
8328
8329         * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip
8330         -gnatww Change gnatmake switch -S to -eS
8331         (Scan_Make_Switches): Code reorganisation. Process separately multi
8332         character switches and single character switches.
8333         (Scan_Make_Switches): New Boolean out parameter Success. Set Success to
8334         False when switch is not recognized by gnatmake.
8335         (Scan_Make_Switches): Set Setup_Projects True when -p or
8336         --create-missing-dirs is specified.
8337
8338         * fname.adb (Is_Predefined_File_Name): Return True for annex J
8339         renamings Calendar, Machine_Code, Unchecked_Conversion and
8340         Unchecked_Deallocation only when Renamings_Included is True.
8341
8342         * par.adb: Allow library units Calendar, Machine_Code,
8343         Unchecked_Conversion and Unchecked_Deallocation to be recompiled even
8344         when -gnatg is not specified.
8345         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
8346         there is no need to generate always a record_definition_node in case
8347         of synchronized interface types.
8348         (SIS_Entry_Active): Initialize global variable to False
8349         (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to
8350         indicate cases where AI-447 says "not null" is legal.
8351
8352         * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function
8353
8354         * makegpr.adb (Check_Compilation_Needed): Take into account dependency
8355         files with with several lines starting with the object fileb name.
8356         (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs
8357         is specified.
8358         (Initialize): Add the directory where gprmake is invoked in front of the
8359         path, if it is invoked from a bin directory or with directory
8360         information, so that the correct GNAT tools will be used when invoked
8361         directly.
8362         (Check_Compilation_Needed): Process correctly backslashes on Windows.
8363
8364         * vms_data.ads: Update switches/qualifiers
8365
8366 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
8367             Thomas Quinot  <quinot@adacore.com>
8368
8369         * exp_aggr.adb:
8370         If the array component is a discriminated record, the array aggregate
8371         is non-static even if the component is given by an aggregate with
8372         static components.
8373         (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
8374         (Convert_Aggr_In_Allocator): If the allocator is for an access
8375         discriminant and the type is controlled. do not place on a finalization
8376         list at this point. The proper list will be determined from the
8377         enclosing object.
8378         (Build_Record_Aggr_Code): If aggregate has box-initialized components,
8379         initialize record controller if needed, before the components, to ensure
8380         that they are properly finalized.
8381         (Build_Record_Aggr_Code): For the case of an array component that has a
8382         corresponding array aggregate in the record aggregate, perform sliding
8383         if required.
8384
8385 2007-04-06  Javier Miranda  <miranda@adacore.com>
8386             Gary Dismukes  <dismukes@adacore.com>
8387             Ed Schonberg  <schonberg@adacore.com>
8388
8389         * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the
8390         run-time subprogram Set_External_Tag by call to Build_Set_External_Tag.
8391
8392         * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time
8393         accessibility on class-wide allocators if the allocator occurs at the
8394         same scope level as the allocator's type. The check is guaranteed to
8395         succeed in that case, even when the expression originates from a
8396         parameter of the containing subprogram.
8397         (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling
8398         under No_Dispatching_Calls restriction. During the semantic analysis
8399         we already notified such violation.
8400         (Tagged_Membership): Constant folding. There is no need to check
8401         the tag at run-time if the type of the right operand is non
8402         class-wide abstract.
8403         Replace call to Is_Ancestor by call to Is_Parent
8404         to support concurrent types with interface types.
8405         (Expand_N_Allocator): Add an assertion associated with the generation
8406         of the master_id.
8407         (Expand_N_Slice): Do not enable range check to nodes associated
8408         with the frontend expansion of the dispatch table.
8409         (Is_Local_Access_Discriminant): Subsidiary function to
8410         Expand_N_Allocator.
8411         (Tagged_Membership): Replace generation of call to the run-time
8412         subprogram CW_Membership by call to Build_CW_Membership.
8413         (Expand_Allocator_Expression): Replace generation of call to the
8414         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
8415
8416         * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to
8417         initialize most the TSD components by means of an aggregate.
8418         Modify the declaration of the object containing the TSD
8419         because we now expand code that has a higher level of abstraction.
8420         The TSD has a discriminant containing the Inheritance Depth Level,
8421         value that is used in the membership test but also to fix the size
8422         of the table of ancestors.
8423         (Expand_Interface_Conversion): Insert function body at the closest place
8424         to the conversion expression, to prevent access-before-elaboration
8425         errors in the backend.
8426         Code improved to reduce the size of the dispatch table if
8427         compiling under restriction No_Dispatching_Calls plus code cleanup.
8428         Code reorganization plus removal of calls to Set_Num_Prim_Ops
8429         (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops.
8430         (Expand_Dispatching_Call): Minor code reorganization plus addition of
8431         code to return immediately if compiling under No_Dispatching_Calls
8432         restriction.
8433         (Set_All_DT_Position): Remove code associated with the old CPP pragmas.
8434         CPP_Virtual and CPP_Vtable are no longer supported.
8435         (Expand_Interface_Conversion): Add missing support for interface type
8436         derivations.
8437         (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to
8438         Is_Parent to support concurrent types with interfaces.
8439         (Init_Predefined_Interface_Primitives): Removed.
8440         (Make_Secondary_DT): Modified to support concurrent record types.
8441         (Set_All_DT_Position): Modified to support concurrent record types.
8442         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
8443         with Get_External_Tag, Inherit_TSD, Set_External_Tag.
8444         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated
8445         with CW_Membership.
8446         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
8447         with Get_Access_Level, Get_Predefined_Prim_Op_Address,
8448         Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT,
8449         Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address,
8450         Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD.
8451         (Expand_Dispatching_Call): Replace generation of call to the run-time
8452         subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by
8453         calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_
8454         Address.
8455         (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to
8456         the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_
8457         Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and
8458         Build_Set_Prim_Op_Address.
8459         (Get_Remotely_Callable): Subprogram removed.
8460         (Init_Predefined_Interface_Primitives): Replace generation of call to
8461         the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_
8462         Prims.
8463
8464         * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to
8465         First (Parameter_Associations ()) with the call to First_Actual that
8466         returns an actual parameter expression for both named and positional
8467         associations.
8468
8469         * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call
8470         check violation of restriction No_Dispatching_Calls.
8471         (Check_Controlling_Type): A formal of a tagged incomplete type is a
8472         controlling argument.
8473
8474         * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use
8475         First/Next_Component_Or_Discriminant
8476         (Insert_Actions): Add entries for new N_Push and N_Pop nodes
8477         (Find_Implemented_Interface): Removed. All the calls to this subprogram
8478         specify Any_Limited_Interface, and this functionality is already
8479         provided by the function Has_Abstract_Interfaces.
8480         (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to
8481         support concurrent types implementing interfaces.
8482         (Find_Implemented_Interface): Removed. All the calls to this subprogram
8483         specify kind Any_Limited_Interface, and this functionality is already
8484         provided by the function Has_Abstract_Interfaces.
8485         (Remove_Side_Effects): replace Controlled_Type by
8486         CW_Or_Controlled_Type whenever the issue is related to
8487         using or not the secondary stack.
8488
8489         * par-ch12.adb (P_Formal_Type_Definition): Update calls to
8490         P_Interface_Type_Definition to fulfill the new interface (the formal
8491         Is_Synchronized is no longer required).
8492
8493         * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o
8494         Update dependencies.
8495
8496         * exp_atag.ads, exp_atag.adb: New file
8497
8498 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
8499             Bob Duff  <duff@adacore.com>
8500             Cyrille Comar  <comar@adacore.com>
8501
8502         * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is
8503         anonymous, use finalization list of enclosing dynamic scope.
8504         (Expand_N_Package_Declaration): For a library package declaration
8505         without a corresponding body, generate RACW subprogram bodies in the
8506         spec (just as we do for the task activation call).
8507         (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and
8508         Is_Abstract_Type. Make sure these are called only when appropriate.
8509         Remove all code for DSP option
8510         (CW_Or_Controlled_Type): new subprogram.
8511
8512 2007-04-06  Eric Botcazou <botcazou@adacore.com>
8513             Ed Schonberg  <schonberg@adacore.com>
8514             Gary Dismukes  <dismukes@adacore.com>
8515
8516         * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
8517         parameter. If it is set to true, return a result capped according to
8518         the global upper bound for the index of an entry family.
8519         (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
8520         (Build_Find_Body_Index): Adjust for above change.
8521         (Entry_Index_Expression): Likewise.
8522         (Is_Potentially_Large_Family): New function extracted from...
8523         (Collect_Entry_Families): ...here. Call it to detect whether the family
8524         is potentially large.
8525         (Build_Entry_Count_Expression): If the family is potentially large, call
8526         Family_Size with 'Cap' set to true.
8527         (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
8528         a protected version of an operation declared in the private part of
8529         a protected object, because they may be invoked through a callback.
8530         (Set_Privals): If the type of a private component is an anonymous access
8531         type, do not create a new itype for each protected body.
8532         If the body of a protected operation creates
8533         controlled types (including allocators for class-widetypes), the
8534         body of the corresponding protected subprogram must include a
8535         finalization list.
8536         (Build_Activation_Chain_Entity): Build the chain entity for extended
8537         return statements.
8538         (Type_Conformant_Parameters): Use common predicate Conforming_Types
8539         to determine whether operation overrides an inherited primitive.
8540         (Build_Wrapper_Spec): Add code to examine the parents while looking
8541         for a possible overriding candidate.
8542         (Build_Simple_Entry_Call): Set No_Initialization on the object used to
8543         hold an actual parameter value since its initialization is separated
8544         from the the declaration. Prevents errors on null-excluding access
8545         formals.
8546
8547 2007-04-06  Thomas Quinot  <quinot@adacore.com>
8548
8549         * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call):
8550         Do an Unchecked_Conversion to handle the passage from the Underlying
8551         Type to the Base Type when calling Build_To_Any_Call and
8552         Build_From_Any_Call.
8553         (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or
8554         E_Constant, depending upon Variable formal.
8555         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
8556         PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
8557         parameter that requires an extra constrained parameter, declare
8558         temporary for actual as a variable, not a constant.
8559         (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
8560         the unit being compiled is the one that contains the stub type.
8561         Change primitive operation name for the RACW associated with a RAS
8562         from Call to _Call so it cannot clash with any legal identifier.
8563         (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
8564         Is_RAS.
8565         (Append_RACW_Bodies): New subprogram.
8566         (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to
8567         Add_Receiving_Stubs_To_Declarations functions.
8568         When expanding a package body, this list correspond to the
8569         statements in the HSS at the end of the pacakge.
8570         When expanding a package spec, this list correspond to the
8571         spec declarations.
8572         (Add_Receiving_Stubs_To_Declarations): Append the function
8573         registering the receiving stubs at the end of the 'Stmts' list.
8574         (RCI_Package_Locator): Pass the new Version generic formal when
8575         instantiating a RCI_Locator package.
8576         (Build_From_Any_Function): To compute the High bound for an
8577         unconstrained array actual, we add the Low bound with the length.
8578         Thus we must convert the low bound and the length to an appropriate
8579         type before doing the sum.
8580         (Build_Subprogram_Receiving_Stubs, PolyORB):
8581          * Retrieve the extra formals parameters at the
8582            end of the parameter stream.
8583          * Use Move_Any_Value to write back out parameters
8584            after executing the request as it is more efficient
8585            than Copy_Any_Value.
8586          * Build the any containing Extra Formals with the
8587            appropriate typecode.
8588         (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
8589         empty Component_List.
8590         (Build_Actual_Object_Declaration): New subprogram. Build and insert into
8591         the tree the declaration for an object that serves as actual parameter
8592         in server-side stubs.
8593         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
8594         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
8595         Use Build_Actual_Object_Declaration to prepare the actuals.
8596         (Add_Parameter_To_NVList): Set the parameter mode to In for
8597         Extra Constrained Parameters.
8598         (Build_General_Calling_Stubs): Set the parameter type to boolean for
8599         Extra Constrained parameters.
8600         (Build_To_Any_Function, Build_From_Any_Function,
8601         Built_TypeCode_Function): When Typ is implicit, call the correct
8602         function with the first not implicit parent type.
8603         (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
8604         (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
8605         typecode from the Etype. Therefore we retrieve the correct typecode
8606         with a call to Get_Any_Type.
8607         (Copy_Specification): Do controlling formal type substitution based on
8608         Is_Controlling_Formal flag, instead of caller-provided object type.
8609         (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
8610         a RACW primitive operation, we might get a subprogram declaration for an
8611         ancestor of the RACW designated type (not for the designated type
8612         itself), in the case where this operation is inherited. In this case we
8613         have no easy means of determining the original tagged type for which
8614         the primitive was declared, so instead we now rely on
8615         Copy_Specification to use the Is_Controlling_Formal flag to determine
8616         which formals require type substitution.
8617
8618 2007-04-06  Robert Dewar  <dewar@adacore.com>
8619             Ed Schonberg  <schonberg@adacore.com>
8620
8621         * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
8622         GNAT.Current_Exception are not allowed if pragma Restrictions
8623         (No_Exception_Propagation) is set and in any case make the associated
8624         handler unsuitable as a target for a local raise statement.
8625         (Expand_Dispatching_Constructor_Call): Replace generation of call to the
8626         run-time subprogram CW_Membership by call to Build_CW_Membership.
8627         (Expand_Dispatching_Constructor_Call): If the dispatching tag is given
8628         by a function call, a temporary must be created before expanding the
8629         Constructor_Call itself, to prevent out-of-order elaboration in the
8630         back-end when stack checking is enabled..
8631
8632 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
8633
8634         * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
8635         result are the bounds of the left operand, not the right.
8636
8637 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
8638
8639         * exp_strm.adb
8640         (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
8641          discriminant defaults.
8642         (Build_Record_Or_Elementary_Output_Procedure): Ditto.
8643         (Make_Component_List_Attributes): Ditto.
8644
8645 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
8646             Bob Duff  <duff@adacore.com>
8647
8648         * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
8649         an association with a box as providing a value even though the
8650         initialization procedure for the type is not available.
8651         (Resolve_Record_Aggregate): Check that a choice of an association with a
8652         box corresponds to a component of the type.
8653         (Resolve_Record_Aggregate): Split Is_Abstract flag into
8654         Is_Abstract_Subprogram and Is_Abstract_Type.
8655
8656         * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
8657         assert.
8658
8659         * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
8660         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
8661         called only when appropriate.
8662
8663 2007-04-06  Olivier Hainque  <hainque@adacore.com>
8664
8665         * g-alleve.ads (Low Level Vector type definitions): Map each to the
8666         associated vector view instead of all to the unsigned char view.
8667
8668         * g-altcon.adb (Generic_Conversions): New internal generic package,
8669         offering facilities for all the Vector/View conversion routines
8670         implemented by this unit.
8671         (To_View/To_Vector - all versions): Reimplemented in a systematic
8672         manner, using the internal Generic_Conversions facilities.
8673
8674 2007-04-06  Pascal Obry  <obry@adacore.com>
8675
8676         * g-arrspl.adb (Free) [Element_Access]: New routine to free the source
8677         string.
8678         (Create): Free the source string before storing the new one.
8679
8680 2007-04-06  Vincent Celier  <celier@adacore.com>
8681
8682         * g-debpoo.adb (Validity): New package with a complete new
8683         implementation of subprograms Is_Valid and Set_Valid.
8684         (Is_Valid): Move to local package Validity
8685         (Set_Valid): Move to local package Validity
8686
8687 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
8688
8689         * g-expect.adb (Get_Command_Output): When expanding the output buffer
8690         we must ensure that there is enough place for the new data we are going
8691         to copy in.
8692
8693 2007-04-06  Thomas Quinot  <quinot@adacore.com>
8694
8695         * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
8696         computation.
8697
8698 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
8699             Vincent Celier  <celier@adacore.com>
8700
8701         * gnatcmd.adb (B_Start): Add prefix of binder generated file.
8702         (Stack_String): Add this String that contains the name of the Stack
8703         package in the project file.
8704         (Packages_To_Check_By_Stack): Add this list that contains the packages
8705         to be checked by gnatstack, which are the naming and the stack packages.
8706         (Check_Files): If no .ci files were specified for gnatstack we add all
8707         the .ci files belonging to the projects, including binder generated
8708         files.
8709         (Non_VMS_Usage): Document that gnatstack accept project file switches.
8710         (GNATCmd): Update the B_Start variable if we are in a VMS environment.
8711         Add gnatstack to the list of commands that use project file related
8712         switches, and get the single attribute Switches from the stack package
8713         in a project file when calling gnatstack. Parse the -U flag for
8714         processing files belonging to all projects in the project tree.
8715         Remove all processing for command Setup
8716
8717         * prj-attr.adb: Add new package Stack with single attribute Switches
8718
8719         * vms_conv.ads (Command_Type): Add command Stack.
8720         Move to body declarations that are only used in the body: types Item_Id,
8721         Translation_Type, Item_Ptr, Item and its subtypes.
8722
8723         * vms_conv.adb: (Initialize): Add data for new command Stack.
8724         Add declarations moved from the spec: types Item_Id, Translation_Type,
8725         Item_Ptr, Item and its subtypes.
8726         (Cargs_Buffer): New table
8727         (Cargs): New Boolean global variable
8728         (Process_Buffer): New procedure to create arguments
8729         (Place): Put character in table Buffer or Cargs_Buffer depending on the
8730          value of Cargs.
8731         (Process_Argument): Set Cargs when processing qualifiers for GNAT
8732         COMPILE
8733         (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
8734         empty, for table Cargs_Buffer.
8735         (Initialize): Remove component Setup in Command_List
8736
8737 2007-04-06  Vincent Celier  <celier@adacore.com>
8738
8739         * gprep.adb (Process_Files.Process_One_File): Use full file name when
8740         issuing pragma Source_Reference.
8741
8742 2007-04-06  Emmanuel Briot  <briot@adacore.com>
8743
8744         * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
8745         [[:xdigit:]] character class.
8746         Also raise an exception when an invalid character class is used.
8747
8748 2007-04-06  Pascal Obry  <obry@adacore.com>
8749
8750         * i-cstrea.ads: (fopen): Add encoding parameter.
8751         (freopen): Idem.
8752         Change reference from a-sysdep.c to sysdep.c in comment.
8753         Update copyright notice.
8754         This set of patch add support for the encoding form parameter.
8755
8756         * mingw32.h (S2WSU): New macro to convert from a string to a
8757         wide-string using the UTF-8 encoding. The S2WS macro supports now only
8758         standard 8bits encoding.
8759         (WS2SU): As above but converting from wide-sring to string.
8760         This is needed as it is necessary to have access to both versions in the
8761         runtime for the form parameter encoding support.
8762         This set of patch add support for the encoding form parameter.
8763         (S2WS): Improve implementation to handle cases where the filename is not
8764         UTF-8 encoded. In this case we default to using the current code page
8765         for the conversion.
8766
8767         * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
8768         type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
8769         the constants defined in adaint.h.
8770         (fopen): Add encoding parameter.
8771         (freopen): Idem.
8772
8773         * s-ficobl.ads (AFCB): Add Encoding field to record the filename
8774         encoding. This is needed for the Reset routine (freopen low level-call).
8775
8776         * s-fileio.adb (Open): Decode encoding form parameter and set the
8777         corresponding encoding value into AFCB structure.
8778         (Reset): Pass the encoding value to freopen.
8779         (Close): Move the call to Lock_Task to the beginning of the procedure.
8780
8781 2007-04-06  Geert Bosch  <bosch@adacore.com>
8782             Robert Dewar  <dewar@adacore.com>
8783
8784         * i-fortra.ads: Add Double_Complex type.
8785
8786         * impunit.adb: (Is_Known_Unit): New function
8787         Add Gnat.Byte_Swapping
8788         Add GNAT.SHA1
8789         Add new Ada 2005 units
8790         Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
8791         Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
8792         Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
8793         Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
8794
8795         * impunit.ads (Is_Known_Unit): New function
8796
8797         * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
8798         a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
8799         a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
8800         g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
8801         s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
8802         s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
8803         New files.
8804
8805         * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
8806
8807         * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
8808
8809 2007-04-06  Eric Botcazou <botcazou@adacore.com>
8810             Arnaud Charlet  <charlet@adacore.com>
8811
8812         * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
8813         __gnat_adjust_context_for_raise.
8814         (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
8815         implementation of floating point operations as native x86 targets.
8816         So the FPU should be initialized in the same way using finit. Fix
8817         floating point operations accuracy issues.
8818         (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
8819         member in struct sigaction, so as to avoid warning for incompatible
8820         pointer types.
8821
8822 2007-04-06 Serguei Rybin <rybin@adacore.com>
8823
8824         * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
8825         switches from previously loaded tree
8826
8827 2007-04-06  Thomas Quinot  <quinot@adacore.com>
8828
8829         * lib-writ.adb (Write_With_Lines): Factor duplicated code between the
8830         cases where a given dependency has a body or not.
8831         (Write_With_File_Names): New subprogram, common code for the two cases
8832         above.
8833
8834 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
8835             Javier Miranda  <miranda@adacore.com>
8836
8837         * lib-xref.ads, lib-xref.adb: 
8838         Modify the loop that collects type references, to include interface
8839         types that the type implements. List each of these interfaces when
8840         building the entry for the type.
8841         (Generate_Definition): Initialize component Def and Typ of new entry
8842         in table Xrefs, to avoid to have these components unitialized.
8843         (Output_References): Split Is_Abstract flag into
8844         Is_Abstract_Subprogram and Is_Abstract_Type.
8845         (Generate_Reference): Add barrier to do not generate the warning
8846         associated with Ada 2005 entities with entities generated by the
8847         expander.
8848
8849 2007-04-06  Robert Dewar  <dewar@adacore.com>
8850             Arnaud Charlet  <charlet@adacore.com>
8851             Vincent Celier  <celier@adacore.com>
8852
8853         * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
8854         Update 'Exception Handling Control' chapter which was outdated.
8855         Minor fix to documentation of -gnatwq
8856         Remove section "Adapting the Run Time to a New C++ Compiler" because
8857         it is now obsolete.
8858         Add passage on need of -nostart-files in some non-ada-main cases.
8859         Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
8860         Update documentation about Interfacing with C++
8861         Add documentation for new gnatmake switch -p
8862         Add missing protocol part in URLs.
8863         Document -gnatyA
8864         Document pragma Compile_Time_Error
8865         Add documentation for Object_Size indicating that stand alone
8866         objects can have a larger size in some cases.
8867         Add node for GNAT.Byte_Swapping, GNAT.SHA1
8868         Update reference to the Ravenscar profile.
8869         Document pragma Unreferenced_Objects
8870
8871         * gnat-style.texi: Fix typo
8872
8873 2007-04-06  Vincent Celier  <celier@adacore.com>
8874
8875         * mlib.adb (Building_Library): Only output "building a library..." in
8876         verbose mode
8877
8878         * mlib-prj.adb (Build_Library): Only output lists of object and ALI
8879         files in verbose mode.
8880
8881         * mlib-utl.adb (Ar): Only output the first object files when not in
8882         verbose mode.
8883         (Gcc): Do not display all the object files if not in verbose mode, only
8884         the first one.
8885
8886 2007-04-06  Robert Dewar  <dewar@adacore.com>
8887
8888         * namet.ads, namet.adb (wn): Improve this debugging routine. Calling
8889         it no longer destroys the contents of Name_Buffer or Name_Len and
8890         non-standard and invalid names are handled better.
8891         (Get_Decoded_Name_String): Improve performance by using
8892         Name_Has_No_Encodings flag in the name table.
8893         (Is_Valid_Name): New function to determine whether a Name_Id is valid.
8894         Used for debugging printouts.
8895
8896 2007-04-06  Robert Dewar  <dewar@adacore.com>
8897             Javier Miranda  <miranda@adacore.com>
8898             Bob Duff  <duff@adacore.com>
8899
8900         * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
8901         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
8902         there is no need to generate always a record_definition_node in case
8903         of synchronized interface types.
8904         (P_Type_Declaration): Update calls to P_Interface_Type_Definition.
8905         (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
8906         illegal in Ada 95, in cases where it is legal. Change the warnings to
8907         errors in other cases. Don't give the error unless the "not null"
8908         parses properly. Correct the source position at which the error occurs.
8909         (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
8910         P_Null_Exclusion, to suppress "not null" warnings.
8911         (P_Identifier_Declarations): Code cleanup. Removed unrequired label and
8912         associated goto statements.
8913
8914         * par-endh.adb (Pop_End_Context): Allow more flexibility in placement
8915         of END RECORD
8916
8917         * scans.ads (Type_Token_Location): New flag
8918
8919         * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
8920         (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
8921         P_Null_Exclusion, to suppress "not null" warnings.
8922
8923 2007-04-06  Robert Dewar  <dewar@adacore.com>
8924             Javier Miranda  <miranda@adacore.com>
8925             Bob Duff  <duff@adacore.com>
8926             Vincent Celier  <celier@adacore.com>
8927
8928         * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
8929         (Extensions_Allowed): No longer sets Ada_Version
8930         Entry for pragma Unreferenced_Objects
8931
8932         * sem_prag.adb (Analyze_Pragma, case Priority): Force with of
8933         system.tasking if pragma priority used in a procedure
8934         (Analyze_Pragma, case Warning): Handle dot warning switches
8935         (Process_Compile_Time_Warning_Or_Error): New procedure
8936         (Analyze_Pragma): Add processing for Compile_Time_Error
8937         Add support for extra arguments External_Name and Link_Name.
8938         Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
8939         (Process_Import_Or_Interface): Add support for the use of pragma Import
8940         with tagged types.
8941         (Extensions_Allowed): No longer affects Ada_Version
8942         (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
8943         Is_Abstract_Type. Make sure these are called only when appropriate.
8944         Add processing for pragma Unreferenced_Objects
8945
8946         * snames.h, snames.ads, snames.adb: Add entry for pragma
8947         Compile_Time_Error
8948         Add new standard name Minimum_Binder_Options for new gprmake
8949         Add new standard names for gprmake: Archive_Suffix,
8950         Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
8951         Library_Support, Library_Version_Options,
8952         Shared_Library_Minimum_Options,
8953         Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
8954         Change Name_Call to Name_uCall so that it cannot clash with a legal
8955         subprogram name.
8956         Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
8957         Append C_Plus_Plus to convention identifiers as synonym for CPP
8958         Add new standard names Stack and Builder_Switches
8959         Add new standard names: Compiler_Minimum_Options, Global_Config_File,
8960         Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
8961         Run_Path_Option, Toolchain_Version.
8962         Entry for pragma Unreferenced_Objects
8963
8964         * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
8965         switches, without repetition of "eD". Make sure that last character of
8966         -gnatep= switch is not taken as -gnat switch character.
8967         Complete rewrite of circuit for handling saving compilation options
8968         Occasioned by need to support dot switchs for -gnatw, but cleans up
8969         things in general.
8970         -gnatX does not affect Ada_Version
8971         Include -gnatyA in -gnatg style switches
8972
8973         * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
8974         warnings on return objects.
8975         (Warn_On_Useless_Assignment): Exclude warnings on return objects
8976         (Set_Dot_Warning_Switch): New procedure
8977         (Check_References): Add missing case of test for
8978         Has_Pragma_Unreferenced_Objects
8979         (Output_Unreferenced_Messages): Implement effect of new pragma
8980         Unreferenced_Objects, remove special casing of limited controlled
8981         variables.
8982
8983 2007-04-06  Vincent Celier  <celier@adacore.com>
8984
8985         * prj-ext.adb (Initialize_Project_Path): New procedure that initialize
8986         the default project path, initially done during elaboration of the
8987         package.
8988         If the prefix returned by Sdefault is null, get the prefix from a call
8989         to Executable_Prefix_Path.
8990         (Project_Path): Call Initialize_Project_Path if Current_Project_Path is
8991         null.
8992
8993         * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
8994         canonical directory name to open the directory from which files are
8995         retrieved.
8996         (Record_Other_Sources): Idem.
8997         (Locate_Directory): Add the possibility to create automatically missing
8998         directories when Setup_Projects is True.
8999         Call Locate_Directory so that the directory will be created when
9000         Setup_Projects is True, for object dir, library dir, library ALI dir,
9001         library source copy dir and exec dir.
9002
9003         * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
9004         versions of GNAT.
9005
9006 2007-04-06  Robert Dewar  <dewar@adacore.com>
9007
9008         * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
9009         Use First/Next_Component_Or_Discriminant
9010         (Analyze_Record_Representation_Clause):
9011         Use First/Next_Component_Or_Discriminant
9012         (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
9013         (Analyze_Attribute_Definition_Clause, case Value_Size): Reject
9014         definition if type is unconstrained.
9015         (Adjust_Record_For_Reverse_Bit_Order): New procedure
9016         (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
9017         Is_Abstract_Subprogram and Is_Abstract_Type.
9018         (Adjust_Record_For_Reverse_Bit_Order): New procedure
9019
9020         * repinfo.adb (List_Record_Info): Use First/
9021         Next_Component_Or_Discriminant.
9022
9023         * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
9024         New procedure.
9025
9026         * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
9027         Include -gnatyA in default switches
9028
9029         * opt.ads: (Warn_On_Non_Local_Exception): New flag
9030         (Warn_On_Reverse_Bit_Order): New flag
9031         (Extensions_Allowed): Update the documentation.
9032         (Warn_On_Questionable_Missing_Parens): Now on by default
9033
9034         * usage.adb: Add documentation of -gnatw.x/X switches
9035         Document new -gnatyA style switch
9036         -gnatq warnings are on by default
9037
9038 2007-04-06  Ed Falis  <falis@adacore.com>
9039
9040         * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
9041         full word is no longer compared twice.
9042
9043 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9044
9045         * sem_ch10.adb (Install_Limited_Context_Clauses.
9046         Expand_Limited_With_Clause): Use a new copy of selector name in the
9047         call to Make_With_Clause. This fixes the tree structure for ASIS
9048         purposes. Nothing is changed in the compiler behaviour.
9049         (Process_Body_Clauses): Handle properly use clauses whose prefix is
9050         a package renaming.
9051         (Install_Limited_With_Clauses): Do not install non-limited view when it
9052         is still incomplete.
9053
9054 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9055             Gary Dismukes  <dismukes@adacore.com>
9056
9057         * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
9058         when capturing size information, instead of base type, which for a
9059         formal array type will be the unconstrained type.
9060         (Analyze_Formal_Object_Declaration): Add check for illegal default
9061         expressions for a formal in object of a limited type.
9062         (Instantiate_Object): Ditto.
9063         (Check_Formal_Package_Instance): Skip entities that are formal objects,
9064         because they were defaulted in the formal package and no check applies
9065         to them.
9066         (Check_Formal_Package_Instance): Extend conformance check to other
9067         discrete types beyond Integer.
9068         (Process_Default): Copy directly the unmatched formal. A generic copy
9069         has already been performed in Analyze_Formal_Package.
9070         (Analyze_Associations): If a formal subprogram has no match, check for
9071         partial parametrization before looking for a default, to prevent
9072         spurious errors.
9073         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
9074         not set the instantiation environment before analyzing the actuals.
9075         Fixes regression on 8515-003 with implementation of AI-133.
9076         Set_Instance_Env checks whether the generic unit is a predefined
9077         unit, in which case the instance must be analyzed with the latest Ada
9078         mode. This setting must take place after analysis of the actuals,
9079         because the actuals must be analyzed and frozen in the Ada mode extant
9080         outside of the current instantiation.
9081         (Save_Env, Restore_Env): Preserve and restore the configuration
9082         parameters so that predefined units can be compiled in the proper Ada
9083         mode.
9084         (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
9085         Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
9086         and Is_Abstract_Type.
9087         (Analyze_Formal_Package): For better error recovery, Add exception
9088         handler to catch Instantion_Error, which can be raised in
9089         Analyze_Associations
9090
9091 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9092             Bob Duff  <duff@adacore.com>
9093             Gary Dismukes  <dismukes@adacore.com>
9094
9095         * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
9096         prefix type is a discriminated subtype of the type of the formal.
9097         (Analyze_Allocator): Collect all coextensions regardless of the context.
9098         Whether they can be allocated statically is determined in exp_ch4.
9099         (Analyze_Selected_Component): If the prefix is a limited view and the
9100         non-limited view is available, use the non-limited one.
9101         (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
9102         therefore illegal), suggest a qualified expression rather than a type
9103         conversion, because a type conversion would be illegal in this context.
9104         (Anayze_Allocator): Trace recursively all nested allocators so that all
9105         coextensions are on the corresponding list for the root. Do no mark
9106         coextensions if the root allocator is within a declaration for a stack-
9107         allocated object, because the access discriminants will be allocated on
9108         the stack as well.
9109         (Analyze_Call): Remove restriction on calls to limited functions for the
9110         cases of generic actuals for formal objects, defaults for formal objects
9111         and defaults for record components.
9112         (Analyze_Allocator): Before analysis, chain coextensions on the proper
9113         element list. Their expansion is delayed until the enclosing allocator
9114         is processed and its finalization list constructed.
9115         (Try_Primitive_Operation): If the prefix is a concurrent type, looks
9116         for an operation with the given name among the primitive operations of
9117         the corresponding record type.
9118         (Analyze_Selected_Component): If the prefix is a task type that
9119         implements an interface, and there is no entry with the given name,
9120         check whether there is another primitive operation (e.g. a function)
9121         with that name.
9122         (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
9123         properly the indexing of a function call written in prefix form, where
9124         the function returns an array type, and all parameters of the function
9125         except the first have defaults.
9126         (Analyze_Equality_Op): If this is a call to an implicit inequality, keep
9127         the original operands, rather than relocating them, for efficiency and
9128         to work properly when an operand is overloaded.
9129         (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
9130         Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
9131         (Analyze_Selected_Component): If the prefix is a private extension, only
9132         scan the visible components, not those of the full view.
9133         (Try_Primitive_Operation): If the operation is a procedure, collect all
9134         possible interpretations, as for a function, because in the presence of
9135         classwide parameters several primitive operations of the type can match
9136         the given arguments.
9137
9138 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9139             Robert Dewar  <dewar@adacore.com>
9140
9141         * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
9142         tag-indeterminate call to an abstract function, when the left-hand side
9143         is not classwide.
9144         (Analyze_Loop_Statement): Improve detection of infinite loops
9145
9146 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9147             Thomas Quinot  <quinot@adacore.com>
9148
9149         * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
9150         out of Analyze_Package_Declaration, because processing must be applied
9151         to package bodies as well, for deferred constants completed by pragmas.
9152         (Analyze_Package_Declaration): When the package declaration being
9153         analyzed does not require an explicit body, call Check_Completion.
9154         (May_Need_Implicit_Body): An implicit body is required when a package
9155         spec contains the declaration of a remote access-to-classwide type.
9156         (Analyze_Package_Body): If the package contains RACWs, append the
9157         pending subprogram bodies generated by exp_dist at the end of the body.
9158         (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
9159         Is_Abstract_Subprogram and Is_Abstract_Type.
9160         (Preserve_Full_Attributes): The full entity list is not an attribute
9161         that must be preserved from full to partial view.
9162
9163         * sem_dist.adb (Add_RAS_Dereference_TSS):
9164         Change primitive name to _Call so it cannot clash with any legal
9165         identifier, and be special-cased in Check_Completion.
9166         Mark the full view of the designated type for the RACW associated with
9167         a RAS as Comes_From_Source to get proper view switching when installing
9168         private declarations.
9169         Provite a placeholder nested package body along with the nested spec
9170         to have a place for Append_RACW_Bodies to generate the calling stubs
9171         and stream attributes.
9172
9173 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9174             Robert Dewar  <dewar@adacore.com>
9175
9176         * sem_ch8.adb (Has_Components): If the argument is an incomplete type
9177         that is a limited view, check the non-limited view if available.
9178         (Undefined): Refine error message for missing with of Text_IO
9179         (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
9180         to distinguish real missing with cases.
9181         Fix format of all missing with messages
9182         (Analyze_Subprogram_Renaming): Emit proper error message on illegal
9183         renaming as body when renamed entity is abstract.
9184
9185 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9186             Javier Miranda  <miranda@adacore.com>
9187
9188         * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
9189         predicate recursive, to handle complex expressions on literals whose
9190         spurious ambiguity comes from the abstract interpretation of some
9191         subexpression.
9192         (Interface_Present_In_Ancestor): Add support to concurrent record
9193         types.
9194         (Add_One_Interp,Disambiguate): Split Is_Abstract flag into
9195         Is_Abstract_Subprogram and Is_Abstract_Type.
9196
9197 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9198             Javier Miranda  <miranda@adacore.com>
9199
9200         * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
9201         dereference of a local object R created as a reference to another
9202         object O, use the access level of O.
9203         (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
9204         rather than local Same_Formal_Type, to check whether protected operation
9205         overrides an inherited one.
9206         (Same_Formal_Type): New predicate, used when matching signatures of
9207         overriding synchronized operations, to handle the case when a formal
9208         has a type that is a generic actual.
9209         (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
9210         predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
9211         (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
9212         syntactic ambiguities involving indexing of function calls that return
9213         arrays.
9214         (Abstract_Interface_List): New subprogram that returns the list of
9215         abstract interfaces associated with a concurrent type or a
9216         concurrent record type.
9217         (Interface_Present_In_Parent): New subprogram used to check if a
9218         given type or some of its parents implement a given interface.
9219         (Collect_Abstract_Interfaces): Add support for concurrent types
9220         with interface types.
9221         (Has_Abstract_Interfaces): Add support for concurrent types with
9222         interface types.
9223         (Is_Parent): New subprogram that determines whether E1 is a parent
9224         of E2. For a concurrent type its parent is the first element of its
9225         list of interface types; for other types this function provides the
9226         same result than Is_Ancestor.
9227         (Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
9228         (Collect_Synchronized_Interfaces): Removed because the subprogram
9229         Collect_Abstract_Interfaces provides this functionality.
9230         (Collect_Abstract_Interfaces): Minor update to give support to
9231         concurrent types and thus avoid undesired code duplication.
9232         (Get_Subprogram_Entity): Handle entry calls.
9233         (May_Be_Lvalue): Include actuals that appear as in-out parameters in
9234         entry calls.
9235         (Enter_Name): Do not give -gnatwh hiding warning for record component
9236         entities, they never result in hiding.
9237
9238 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
9239             Robert Dewar  <dewar@adacore.com>
9240
9241         * sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
9242         to chain nested components that are allocators for access discriminants
9243         of the enclosing object.
9244         Add N_Push and N_Pop nodes
9245         New field Exception_Label added
9246         (Local_Raise_Statements): New field in N_Exception_Handler_Node
9247         (Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
9248         (Is_Coextension): New flag for allocators, to mark allocators that
9249         correspond to access discriminants of dynamically allocated objects.
9250         (N_Block_Statement): Document the fact that the corresponding entity
9251         can be an E_Return_Statement.
9252         (Is_Coextension): New flag for allocators.
9253         Remove all code for DSP option
9254
9255         * sprint.ads, sprint.adb: Display basic information for class_wide
9256         subtypes. Add handling of N_Push and N_Pop nodes
9257
9258 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
9259
9260         * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
9261         before propagating exception.
9262
9263 2007-04-06  Olivier Hainque  <hainque@adacore.com>
9264
9265         * tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
9266         an address always within the call instruction from a return address.
9267
9268 2007-04-06  Olivier Hainque  <hainque@adacore.com>
9269             Eric Botcazou <botcazou@adacore.com>
9270
9271         * trans.c (call_to_gnu) <TYPE_RETURNS_BY_TARGET_PTR_P>: Return an
9272         expression with a COMPOUND_EXPR including the call instead of emitting
9273         the call directly here.
9274         (gnat_to_gnu) <N_Slice>: Do not return a non-constant low bound if the
9275         high bound is constant and the slice is empty.  Tidy.
9276         (tree_transform, case N_Op_Not): Handle properly the case where the
9277         operation applies to a private type whose full view is a modular type.
9278         (Case_Statement_To_gnu): If an alternative is an E_Constant with an
9279         Address_Clause, use the associated Expression as the GNAT tree
9280         representing the choice value to ensure the corresponding GCC tree is
9281         of the proper kind.
9282         (maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
9283         instead of just the operands, as the base GCC stabilize_reference does.
9284         <CALL_EXPR>: New case. Directly stabilize the call if an lvalue is not
9285         requested; otherwise fail.
9286         (addressable_p) <COMPONENT_REF>: Do not test DECL_NONADDRESSABLE_P.
9287
9288 2007-04-06  Thomas Quinot  <quinot@adacore.com>
9289
9290         * uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
9291         implementation of UI_Div.
9292         (UI_Div): Reimplement as a call to UI_Div_Rem.
9293         (UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
9294         remainder, avoiding the cost of a multiplication and a subtraction.
9295         (UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
9296         provides both quotient and remainder in a single computation.
9297         (UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
9298         functions for uint.
9299         (UI_Modular_Inverse): Add a note that the behaviour of this subprogram
9300         is undefined if the given n is not inversible.
9301
9302 2007-04-06  Olivier Hainque  <hainque@adacore.com>
9303
9304         * utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
9305         BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
9306         opcodes.
9307
9308 2007-04-06  Eric Botcazou <botcazou@adacore.com>
9309             Olivier Hainque  <hainque@adacore.com>
9310
9311         * utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs
9312         when updating the contents of the old pointer to an unconstrained array.
9313         (end_subprog_body): Set error_gnat_node to Empty.
9314         (write_record_type_debug_info): Do not be unduly sparing with our bytes.
9315         (unchecked_convert): For subtype to base type conversions, require that
9316         the source be a subtype if it is an integer type.
9317         (builtin_decls): New global, vector of available builtin functions.
9318         (gnat_pushdecl): Add global builtin function declaration nodes to the
9319         builtin_decls list.
9320         (gnat_install_builtins): Adjust comments.
9321         (builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before
9322         calling gnat_pushdecl, so that it knows when it handed a builtin
9323         function declaration node.
9324         (builtin_decl_for): Search the builtin_decls list.
9325
9326 2007-04-06  Eric Botcazou <botcazou@adacore.com>
9327
9328         * s-stchop-vxworks.adb: 
9329         (Stack_Check): Raise Storage_Error if the argument has wrapped around.
9330
9331 2007-04-06  Robert Dewar  <dewar@adacore.com>
9332             Arnaud Charlet  <charlet@adacore.com>
9333
9334         * a-diroro.ads: Inserted the pragma Unimplemented_Unit
9335
9336         * bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
9337         of files
9338         Add mention of -Sev (set initialize_scalars option from environment
9339         variable at run time) in gnatbind usage message.
9340
9341         * elists.ads, elists.adb: (Append_Unique_Elmt): New procedure
9342
9343         * fname-uf.ads: Minor comment fix
9344
9345         * osint.ads: Change pragma Elaborate to Elaborate_All
9346
9347         * par-load.adb: Add documentation.
9348
9349         * sem_cat.ads, sem_cat.adb: Minor code reorganization
9350
9351         * s-parint.ads (RCI_Locator) : Add 'Version' generic formal
9352
9353         * s-secsta.ads: Extra comments
9354
9355         * s-soflin.ads: Minor comment fixes
9356
9357         * s-stratt.ads (Block_Stream_Ops_OK): Removed.
9358
9359         * s-wchcon.ads: Minor comment addition
9360
9361         * treepr.adb: Minor change in message
9362         (Print_Name,Print_Node): Make these debug printouts more robust: print
9363         "no such..." instead of crashing on bad input.
9364
9365 2007-03-30  Rafael Avila de Espindola  <espindola@google.com>
9366
9367         * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
9368         instead of gnat_signed_or_unsigned_type.
9369         * utils.c (gnat_signed_or_unsigned_type): Remove.
9370         * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
9371         * gigi.h (gnat_signed_or_unsigned_type): Remove
9372
9373 2007-03-09  Roger Sayle  <roger@eyesopen.com>
9374
9375         * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
9376         fold with the result of buildN.
9377         * decl.c (gnat_to_gnu_entity): Likewise.
9378         * trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
9379         * utils.c (finish_record_type, merge_sizes, max_size, convert):
9380         Likewise.
9381         * utils2.c (gnat_truthvalue_conversion, compare_arrays,
9382         nonbinary_modular_operation, build_binary_op, build_unary_op,
9383         build_cond_expr): Likewise.
9384
9385         * utils.c (convert): Use fold_build1 when casting values to void.
9386         * utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
9387         fold_convert instead of convert when appropriate.
9388
9389 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
9390
9391         * Make-lang.in: Add install-pdf target as copied from
9392         automake v1.10 rules.
9393
9394 2007-02-28  Andreas Schwab  <schwab@suse.de>
9395
9396         * Make-lang.in (doc/gnat_ugn_unw.texi): Depend on
9397         $(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi.
9398         (doc/gnat-style.info): Likewise.
9399
9400 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
9401
9402         * gnat-style.texi: Standardize title page.
9403         * gnat_rm.texi: Likewise.
9404         * gnat_ugn.texi: Likewise.
9405
9406 2007-02-25  Mark Mitchell  <mark@codesourcery.com>
9407
9408         * decl.c (annotate_value): Adjust for refactoring of tree_map
9409         hierarchy.
9410
9411 2007-02-24  Mark Mitchell  <mark@codesourcery.com>
9412
9413         * decl.c (annotate_value): Adjust for refactoring of tree_map
9414         hierarchy.
9415
9416 2007-02-21  Ed Schonberg  <schonberg@adacore.com>
9417
9418         PR ada/18819
9419         * sem_ch3.adb (Create_Constrained_Components): for a subtype of an
9420         untagged derived type, add hidden components to keep discriminant
9421         layout consistent, when a given discriminant of the derived type
9422         constraints several discriminants of the parent type.
9423
9424 2007-02-16  Eric Botcazou  <ebotcazou@adacore.com>
9425             Sandra Loosemore  <sandra@codesourcery.com>
9426
9427         * trans.c (call_to_gnu):  Use build_call_list instead of build3 to
9428         build the call expression.
9429         (gnat_stabilize_reference_1): Handle tcc_vl_exp.
9430         * utils.c (max_size) <tcc_exceptional>: Delete.
9431         <tcc_vl_exp>: New case.
9432         <tcc_expression>: Delete CALL_EXPR subcase.
9433         (build_global_cdtor): Use build_call_nary instead of build3.
9434         * utils2.c (build_call_1_expr): Likewise.
9435         (build_call_2_expr): Likewise.
9436         (build_call_0_expr): Likewise.
9437         (build_call_alloc_dealloc): Likewise.
9438
9439 2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
9440
9441         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
9442         get_action_description_for): Replace _Unwind_Word with _uleb128_t 
9443         and _Unwind_SWord with _sleb128_t.
9444
9445 2007-02-06  Paolo Bonzini  <bonzini@gnu.org>
9446
9447         * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
9448         * decl.c: Include gt-ada-decl.h.
9449         (annotate_value_cache): New.
9450         (annotate_value): Use it instead of TREE_COMPLEXITY.
9451
9452 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
9453
9454         * misc.c, utils2.c: Fix comment typos.
9455
9456 2007-01-24  Roger Sayle  <roger@eyesopen.com>
9457
9458         * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
9459         TREE_CONSTANT_OVERFLOW.
9460         (allocatable_size_p, annotate_value): Likewise.
9461         * trans.c (gnat_to_gnu): Likewise.
9462         * utils.c (unchecked_convert): Likewise.
9463         * utils2.c (build_simple_component_ref): Likewise.
9464
9465 2007-01-23  Richard Guenther  <rguenther@suse.de>
9466
9467         PR bootstrap/30541
9468         * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
9469         (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
9470         (gnatboot3): Likewise.
9471         (GNATBIND): Do not define.
9472         * Makefile.in (GNATBIND): Do not define.
9473
9474 2007-01-08  Richard Guenther  <rguenther@suse.de>
9475
9476         * cuintp.c (build_cst_from_int): Use built_int_cst_type.
9477         * trans.c (gnat_to_gnu): Likewise.
9478
9479 2006-12-07  Geoffrey Keating  <geoffk@apple.com>
9480
9481         * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
9482         * adaint.c: Likewise.
9483
9484 2006-12-05  Aldy Hernandez  <aldyh@redhat.com>
9485
9486         Merge from gimple-tuples-branch:
9487         2006-11-02  Aldy Hernandez  <aldyh@redhat.com>
9488
9489         * ada-tree.h (lang_tree_node): Handle gimple tuples.
9490         * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
9491         GIMPLE_MODIFY_STMT.
9492
9493 2006-12-02  Kazu Hirata  <kazu@codesourcery.com>
9494
9495         * Makefile.in, mingw32.h, trans.c: Fix comment typos.
9496         * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
9497         Fix typos.
9498
9499 2006-11-17  Eric Botcazou  <ebotcazou@adacore.com>
9500
9501         PR ada/27936
9502         * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
9503         if the initializer takes into account the padding.
9504
9505 2006-11-11  Richard Guenther  <rguenther@suse.de>
9506
9507         * trans.c (maybe_stabilize_reference): Remove handling of
9508         FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
9509
9510 2006-11-05  Arnaud Charlet  <charlet@adacore.com>
9511
9512         PR ada/29707
9513         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
9514         (To_Target_Priority): New function.
9515
9516 2006-10-31  Robert Dewar  <dewar@adacore.com>
9517
9518         * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
9519         a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
9520         s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
9521         a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
9522         a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
9523         a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
9524         a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
9525         a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
9526         a-szbzha.adb: Minor reformatting. Fix header.
9527
9528         * a-numaux-x86.adb: Add parentheses for use of unary minus
9529         * a-ngcefu.adb: Supply missing parentheses for unary minus
9530         * a-ngcoty.adb: Add parens for use of unary minus
9531         * a-ngelfu.adb: Add missing parens for unary minus
9532         * a-tifiio.adb: Add parentheses for uses of unary minus
9533
9534 2006-10-31  Robert Dewar  <dewar@adacore.com>
9535             Bob Duff  <duff@adacore.com>
9536             Ed Schonberg  <schonberg@adacore.com>
9537
9538         * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
9539         with multiplying operator.
9540         (Expected_Type_Is_Any_Real): New function to determine from the Parent
9541         pointer whether the context expects "any real type".
9542         (Resolve_Arithmetic_Op): Do not give an error on calls to the
9543         universal_fixed "*" and "/" operators when they are used in a context
9544         that expects any real type. Also set the type of the node to
9545         Universal_Real in this case, because downstream processing requires it
9546         (mainly static expression evaluation).
9547         Reword some continuation messages
9548         Add some \\ sequences to continuation messages
9549         (Resolve_Call): Refine infinite recursion case. The test has been
9550         sharpened to eliminate some false positives.
9551         Check for Current_Task usage now includes entry barrier, and is now a
9552         warning, not an error.
9553         (Resolve): If the call is ambiguous, indicate whether an interpretation
9554         is an inherited operation.
9555         (Check_Aggr): When resolving aggregates, skip associations with a box,
9556         which are priori correct, and will be replaced by an actual default
9557         expression in the course of expansion.
9558         (Resolve_Type_Conversion): Add missing support for conversion from
9559         a class-wide interface to a tagged type. Minor code cleanup.
9560         (Valid_Tagged_Converion): Add support for abstact interface type
9561         conversions.
9562         (Resolve_Selected_Component): Call Generate_Reference here rather than
9563         during analysis, and use May_Be_Lvalue to distinguish read/write.
9564         (Valid_Array_Conversion): New procedure, abstracted from
9565         Valid_Conversion, to incorporate accessibility checks for arrays of
9566         anonymous access types.
9567         (Valid_Conversion): For a conversion to a numeric type occurring in an
9568         instance or inlined body, no need to check that the operand type is
9569         numeric, since this has been checked during analysis of the template.
9570         Remove legacy test for scope name Unchecked_Conversion.
9571
9572         * sem_res.ads: Minor reformatting
9573
9574         * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
9575         (PE_Current_Task_In_Entry_Body): New exception code
9576         (SE_Restriction_Violation): Removed, not used
9577
9578         * a-except.ads:  Update comments.
9579
9580         * types.h, types.ads: Add definition for Validity_Check
9581         (PE_Current_Task_In_Entry_Body): New exception code
9582         (SE_Restriction_Violation): Removed, not used
9583
9584 2006-10-31  Thomas Quinot  <quinot@adacore.com>
9585
9586         * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
9587         error status.
9588
9589 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
9590             Jose Ruiz  <ruiz@adacore.com>
9591
9592         * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
9593         part of Ada.Calendar: all subprogram raise Unimplemented.
9594         (Split_W_Offset): Temp function body, raising Unimplemented
9595
9596         * a-calend.ads, a-calend-vms.ads: 
9597         Add imported variable Invalid_TZ_Offset used to designate targets unable
9598         to support time zones.
9599         (Unimplemented): Temporary function raised by the body of new
9600         subprograms below.
9601         (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
9602         unit provides handling of leap seconds and is used by the new Ada 2005
9603         packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
9604         (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
9605         version returns an extra value which is the offset to UTC.
9606
9607         * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
9608         (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
9609         (Split_W_Offset): New function body.
9610         (Time_Of): When a date is close to UNIX epoch, compute the time for
9611         that date plus one day (that amount is later substracted after
9612         executing mktime) so there are no problems with time zone adjustments.
9613
9614         * a-calend-mingw.adb: Remove Windows specific version no longer needed.
9615
9616         * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
9617         a-catizo.ads, a-catizo.adb: New files.
9618
9619         * impunit.adb: Add new Ada 2005 entries
9620
9621         * sysdep.c: Add external variable __gnat_invalid_tz_offset.
9622         Rename all occurences of "__gnat_localtime_r" to
9623         "__gnat_localtime_tzoff".
9624         (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
9625         zone data and calculate the GMT offset.
9626         (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
9627         Use the field "tm_gmtoff" to extract the GMT offset.
9628         (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
9629         the external variable "timezone" to calculate the GMT offset.
9630
9631 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
9632             Jose Ruiz  <ruiz@adacore.com>
9633
9634         * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb, 
9635         s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads, 
9636         s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
9637         s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
9638         System.Any_Priority to a POSIX priority on the target.
9639
9640         * system-linux-ia64.ads: 
9641         Extend range of Priority types on Linux to use the whole range made
9642         available by the system.
9643
9644         * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
9645         function maps from System.Any_Priority to a POSIX priority on the
9646         target.
9647         (PTHREAD_PRIO_PROTECT): Set real value.
9648         (PTHREAD_PRIO_INHERIT): Now a function.
9649         (SIGCPUFAIL): New signal.
9650         (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
9651         are documented as reserved by the OS.
9652
9653         * system-aix.ads: Use the full range of priorities provided by the
9654         system on AIX.
9655
9656         * s-taprop-posix.adb: Call new function To_Target_Priority.
9657         (Set_Priority): Take into account Task_Dispatching_Policy and
9658         Priority_Specific_Dispatching pragmas when determining if Round Robin
9659         must be used for scheduling the task.
9660
9661         * system-linux-x86_64.ads, system-linux-x86.ads, 
9662         system-linux-ppc.ads: Extend range of Priority types on Linux to use
9663         the whole range made available by the system.
9664
9665         * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb, 
9666         s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb, 
9667         s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
9668         when deallocating the TCB in order to avoid potential references to
9669         deallocated data.
9670         (Set_Priority): Take into account Task_Dispatching_Policy and
9671         Priority_Specific_Dispatching pragmas when determining if Round Robin
9672         or FIFO within priorities must be used for scheduling the task.
9673
9674         * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
9675         the Thread field (to be used internally by the run-time system) and the
9676         kernel-level task id in the LWP field (to be used by the debugger).
9677         (Create_Task): Reorganize to unify the calls to taskSpawn into a single
9678         instance, and propagate the current task options to the spawned task.
9679         (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
9680         (Initialize): Set Round Robin dispatching when the corresponding pragma
9681         is in effect.
9682
9683 2006-10-31  Robert Dewar  <dewar@adacore.com>
9684
9685         * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, 
9686         system-linux-hppa.ads, system-hpux-ia64.ads, 
9687         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads, 
9688         system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
9689         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, 
9690         system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads, 
9691         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, 
9692         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, 
9693         system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
9694         Default_Bit_Order) to kill constant condition warnings for references
9695         to this switch.
9696
9697 2006-10-31  Vincent Celier  <celier@adacore.com>
9698             Eric Botcazou  <ebotcazou@adacore.com>
9699
9700         * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
9701         mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
9702         mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
9703         Ext_To, when building the library file name
9704
9705         * mlib-tgt-vxworks.adb: ditto.
9706         (Get_Target_Suffix): Add support for x86 targets.
9707
9708         * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
9709
9710         * mlib-tgt-darwin.adb: 
9711         Use Append_To, instead of Ext_To, when building the library file name
9712         (Flat_Namespace): New global variable.
9713         (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
9714         (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
9715         (Link_Shared_Libgcc): Delete.
9716         (Build_Dynamic_Library): Adjust for above changes.
9717         Use Opt package.
9718         (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
9719
9720 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
9721
9722         * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
9723         (Initialize): Add type conversions required by above change.
9724
9725 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
9726
9727         * s-osinte-vxworks.ads, s-osinte-vxworks.adb: 
9728         (getpid): New body for this function that uses the underlying taskIdSelf
9729         function for VxWorks 5 and VxWorks 6 in kernel mode.
9730         (unsigned_int): New type, modular to allow logical bit operations.
9731         (taskOptionsGet): New imported function.
9732
9733         * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
9734         field to be compliant with the type used by the corresponding operating
9735         system primitive.
9736
9737 2006-10-31  Pascal Obry  <obry@adacore.com>
9738             Eric Botcazou  <ebotcazou@adacore.com>
9739             Vincent Celier  <celier@adacore.com>
9740
9741         * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
9742         ASCII version of the registry API. This is needed as the GNAT runtime
9743         is now UNICODE by default.
9744         Include version.h.
9745         (get_gcc_version): Do not hardcode the return value.
9746         (__gnat_file_time_name): On Windows properly set the default returned
9747         value to -1 which corresponds to Invalid_Time.
9748         (__gnat_fopen): New routine. A simple wrapper on all plateforms
9749          except on Windows where it does conversion for unicode support.
9750         (__gnat_freopen): Idem.
9751         (__gnat_locate_exec_on_path): If environment variable PATH does not
9752         exist, return a NULL pointer
9753
9754         * adaint.h: (__gnat_fopen): Declare.
9755         (__gnat_freopen): Likewise.
9756
9757         * mingw32.h (_tfreopen): Define this macro here for older MingW
9758         version.
9759         Activate the unicode support on platforms using a MingW runtime
9760         version 3.9 or newer.
9761
9762         * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
9763         This is needed for proper unicode support on Windows.
9764         (freopen): Idem.
9765
9766 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
9767             Nicolas Setton  <setton@adacore.com>
9768             Olivier Hainque  <hainque@adacore.com>
9769             Gary Dismukes  <dismukes@adacore.com>
9770
9771         * gigi.h: (tree_code_for_record_type): Declare.
9772         (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
9773         (get_global_renaming_pointers): Rename to
9774         invalidate_global_renaming_pointers.
9775         (static_ctors): Delete.
9776         (static_dtors): Likewise.
9777         (gnat_write_global_declarations): Declare.
9778         (create_var_decl): Adjust descriptive comment to indicate that the
9779         subprogram may return a CONST_DECL node.
9780         (create_true_var_decl): Declare new function, similar to
9781         create_var_decl but forcing the creation of a VAR_DECL node.
9782         (get_global_renaming_pointers): Declare.
9783         (add_global_renaming_pointer): Likewise.
9784
9785         * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
9786
9787         * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
9788         tree before setting TREE_ADDRESSABLE for by-reference return mechanism
9789         processing.
9790         (gnat_to_gnu_entity): Remove From_With_Type from computation for
9791         imported_p.
9792         <E_Access_Type>: Use the Non_Limited_View as the full view of the
9793         designated type if the pointer comes from a limited_with clause.  Make
9794         incomplete designated type if it is in the main unit and has a freeze
9795         node.
9796         <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
9797         Underlying_Full_View similarly.  Return earlier if the full view already
9798         has an associated tree.
9799         (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
9800         (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
9801         (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
9802         reference type built for objects with an address clause.
9803         Use create_true_var_decl with const_flag set for
9804         DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
9805         TREE_READONLY set.
9806         (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
9807         for Character and Wide_Character types. This info is read by the
9808         dwarf-2 writer, and is needed to be able to use the command "ptype
9809         character" in the debugger.
9810         (gnat_to_gnu_entity): When generating a type representing
9811         a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
9812         so that debug writers can distinguish it from ordinary integers.
9813         (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
9814         addition to TREE_READONLY to assert the constantness of variables for
9815         elaboration purposes.
9816         (gnat_to_gnu_entity, subprogram cases): Change loops on formal
9817         parameters to call new Einfo function First_Formal_With_Extras.
9818         (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
9819         protected type with its corresponding discriminant, to obtain a usable
9820         declaration
9821         (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
9822         for a multiple elaboration of the "equivalent" type.
9823         (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
9824         into record_global_renaming_pointer.
9825         (gnat_to_gnu_entity) <E_Array_Type>: Do not force
9826         TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
9827         <E_Array_Subtype>: Likewise.
9828         (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
9829         incomplete subtypes and incomplete subtypes of incomplete types visible
9830         through a limited with clause.
9831         (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
9832         the base index type for the maximum size of the array only if they are
9833         constant.
9834         (gnat_to_gnu_entity, renaming object case): Do not wrap up the
9835         expression into a SAVE_EXPR if stabilization failed.
9836
9837         * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
9838         a result decl into DECL_BY_REFERENCE on this decl, now what is expected
9839         by lower level compilation passes.
9840         (gnat_genericize): New function, lowering a function body to GENERIC.
9841         Turn the type of RESULT_DECL into a real reference type if the decl
9842         has been marked DECL_BY_REFERENCE, and adjust references to the latter
9843         accordingly.
9844         (gnat_genericize_r): New function. Tree walking callback for
9845         gnat_genericize.
9846         (convert_from_reference, is_byref_result): New functions. Helpers for
9847         gnat_genericize_r.
9848         (create_type_decl): Call gnat_pushdecl before calling
9849         rest_of_decl_compilation, to make sure that field TYPE_NAME of
9850         type_decl is properly set before calling the debug information writers.
9851         (write_record_type_debug_info): The heuristics which compute the
9852         alignment of a field in a variant record might not be accurate. Add a
9853         safety test to make sure no alignment is set to a smaller value than
9854         the alignment of the field type.
9855         (make_dummy_type): Use the Non_Limited_View as the underlying type if
9856         the type comes from a limited_with clause. Do not loop on the full view.
9857         (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
9858         (dummy_node_table): New global variable, moved from decl.c.
9859         (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
9860         (save_gnu_tree): Use above macros.
9861         (get_gnu_tree): Likewise.
9862         (present_gnu_tree): Likewise.
9863         (init_dummy_type): New function, moved from decl.c. Use above macros.
9864         (make_dummy_type): Likewise.
9865         (tree_code_for_record_type): New function extracted from make_dummy_type
9866         (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
9867         (static_ctors): Change it to a vector, make static.
9868         (static_dtors): Likewise.
9869         (end_subprog_body): Adjust for above change.
9870         (build_global_cdtor): Moved from trans.c.
9871         (gnat_write_global_declarations): Emit global constructor and
9872         destructor, and call cgraph_optimize before emitting debug info for
9873         global declarations.
9874         (global_decls): New global variable.
9875         (gnat_pushdecl): Store the global declarations in global_decls, for
9876         later use.
9877         (gnat_write_global_declarations): Emit debug information for global
9878          declarations.
9879         (create_var_decl_1): Former create_var_decl, with an extra argument to
9880          state whether the creation of a CONST_DECL is allowed.
9881         (create_var_decl): Behavior unchanged. Now a wrapper around
9882         create_var_decl_1 allowing CONST_DECL creation.
9883         (create_true_var_decl): New function, similar to create_var_decl but
9884         forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
9885         (create_field_decl): Do not always mark the field as addressable
9886         if its type is an aggregate.
9887         (global_renaming_pointers): New static variable.
9888         (add_global_renaming_pointer): New function.
9889         (get_global_renaming_pointers): Likewise.
9890
9891         * misc.c (gnat_dwarf_name): New function.
9892         (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
9893         (gnat_post_options): Add comment about structural alias analysis.
9894         (gnat_parse_file): Do not call cgraph_optimize here.
9895         (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
9896
9897         * trans.c (process_freeze_entity): Don't abort if we already have a
9898         non dummy GCC tree for a Concurrent_Record_Type, as it might
9899         legitimately have been elaborated while processing the associated
9900         Concurrent_Type prior to this explicit freeze node.
9901         (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
9902         exception handler volatile if it is of variable size.
9903         (process_type): Remove bypass for types coming from a limited_with
9904         clause.
9905         (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
9906         actual, convert the corresponding gnu_actual to the real destination
9907         type when necessary.
9908         (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
9909         originally TREE_READONLY but whose elaboration cannot be performed
9910         statically.
9911         Part of fix for F504-021.
9912         (tree_transform, subprogram cases): Change loops on formal parameters to
9913         call new Einfo function First_Formal_With_Extras.
9914         (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
9915         stemming from type conversion for the lhs.
9916         (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
9917         number of bits per unit for components of records.
9918         (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
9919         (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
9920         with At_End_Proc after the SJLJ EH cleanup.
9921         (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
9922         compilation unit.
9923         (elaborate_all_entities): Do not retest type_annotate_only.
9924         (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
9925         result type of an abstract subprogram, which may be an itype associated
9926         with an anonymous access result (related to AI-318-02).
9927         (build_global_cdtor): Move to utils.c.
9928         (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
9929         this choice is not a null tree nor an integer constant.
9930         (gigi): Run unshare_save_expr via walk_tree_without_duplicates
9931         on the body of elaboration routines instead of mark_unvisited.
9932         (add_stmt): Do not mark the tree.
9933         (add_decl_expr): Tweak comment.
9934         (mark_unvisited): Delete.
9935         (unshare_save_expr): New static function.
9936         (call_to_gnu): Issue an error when making a temporary around a
9937         procedure call because of non-addressable actual parameter if the
9938         type of the formal is by_reference.
9939         (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
9940         after building the elaboration routine.
9941
9942 2006-10-31  Bob Duff  <duff@adacore.com>
9943
9944         * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
9945         as finalization-started, so we can raise Program_Error on 'new'.
9946
9947         * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
9948         collection has already started.
9949
9950         * s-finimp.ads (Collection_Finalization_Started): Added new special
9951         flag value for indicating that a collection's finalization has started.
9952
9953         * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
9954         create a task whose master has already waited for dependent tasks.
9955
9956 2006-10-31  Robert Dewar  <dewar@adacore.com>
9957
9958         * lib.adb, lib.ads: (In_Predefined_Unit): New functions
9959
9960         * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads, 
9961         a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads, 
9962         a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads, 
9963         a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads, 
9964         a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads, 
9965         a-except-2005.ads: Add pragma Preelaborable_Warning
9966
9967 2006-10-31  Robert Dewar  <dewar@adacore.com>
9968             Jose Ruiz  <ruiz@adacore.com>
9969
9970         * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
9971
9972         * ali.adb (Get_Name): Properly handle scanning of wide character names
9973         encoded with brackets notation.
9974         (Known_ALI_Lines): Add S lines to this list.
9975         (Scan_ALI): Acquire S (priority specific dispatching) lines.
9976         New flag Elaborate_All_Desirable in unit table
9977
9978         * ali.ads (Priority_Specific_Dispatching): Add this range of
9979         identifiers to be used for Priority_Specific_Dispatching table entries.
9980         (ALIs_Record): Add First_Specific_Dispatching and
9981         Last_Specific_Dispatching that point to the first and last entries
9982         respectively in the priority specific dispatching table for this unit.
9983         (Specific_Dispatching): Add this table for storing each S (priority
9984         specific dispatching) line encountered in the input ALI file.
9985         New flag Elaborate_All_Desirable in unit table
9986
9987         * bcheck.adb: (Check_Configuration_Consistency): Add call to
9988         Check_Consistent_Dispatching_Policy.
9989         (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
9990         verifying that the use of Priority_Specific_Dispatching,
9991         Task_Dispatching_Policy, and Locking_Policy is consistent across the
9992         partition.
9993
9994         * bindgen.adb: (Public_Version_Warning): function removed.
9995         (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
9996         required information from ALI files in order to initialize the table
9997         containing the specific dispatching policy.
9998         (Gen_Adainit_Ada): Generate the variables required for priority specific
9999         dispatching entries (__gl_priority_specific_dispatching and
10000         __gl_num_specific_dispatching).
10001         (Gen_Adainit_C): Generate the variables required for priority specific
10002         dispatching entries (__gl_priority_specific_dispatching and
10003         __gl_num_specific_dispatching).
10004         (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
10005         pragma entries.
10006         (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
10007         (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
10008         (Tab_To): Removed.
10009         (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
10010         a call to gnat_set_globals.
10011         Generate a string containing settings from
10012         Priority_Specific_Dispatching pragma entries.
10013         (Gen_Object_Files_Options): Do not include the runtime libraries when
10014         pragma No_Run_Time is specified.
10015
10016         * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
10017         consistency with s-intman-posix.adb.
10018         (__gnat_error_handler, case FreeBSD): Account for the fact that the
10019         handler is installed with SA_SIGINFO.
10020         (__gnat_adjust_context_for_raise, FreeBSD case): New function for
10021         FreeBSD ZCX support, copied from Linux version.
10022         Add MaRTE-specific definitions for the linux target. Redefine sigaction,
10023         sigfillset, and sigemptyset so the routines defined by MaRTE.
10024         (__gl_priority_specific_dispatching): Add this variable that stores the
10025         string containing priority specific dispatching policies in the
10026         partition.
10027         (__gl_num_specific_dispatching): Add this variable that indicates the
10028         highest priority for which a priority specific dispatching pragma
10029         applies.
10030         (__gnat_get_specific_dispatching): Add this routine that returns the
10031         priority specific dispatching policy, as set by a
10032         Priority_Specific_Dispatching pragma appearing anywhere in the current
10033         partition. The input argument is the priority number, and the result
10034         is the upper case first character of the policy name.
10035         (__gnat_set_globals): Now a dummy function.
10036         (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
10037         mechargs instead of sigargs, as the latter can be retrieved from the
10038         former and sigargs is not what we want on ia64.
10039         (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
10040         mechargs argument.
10041         (__gnat_adjust_context_for_raise, ia64-vms): New function.
10042         (tasking_error): Remove unused symbol.
10043         (_abort_signal): Move this symbol to the IRIX specific part since this
10044         is the only target that uses this definition.
10045         (Check_Abort_Status): Move this symbol to the IRIX specific part since
10046         this is the only target that uses this definition.
10047         (Lock_Task): Remove unused symbol.
10048         (Unlock_Task): Remove unused symbol.
10049
10050         * lib-writ.adb (Write_ALI): Output new S lines for
10051         Priority_Specific_Dispatching pragmas.
10052         Implement new flag BD for elaborate body desirable
10053
10054         * lib-writ.ads: Document S lines for Priority Specific Dispatching.
10055         (Specific_Dispatching): Add this table for storing the entries
10056         corresponding to Priority_Specific_Dispatching pragmas.
10057         Document new BD flag for elaborate body desirable
10058
10059         * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
10060         of known pragmas.
10061
10062 2006-10-31  Javier Miranda  <miranda@adacore.com>
10063
10064         * a-tags.ads, a-tags.adb: 
10065         (Predefined_DT): New function that improves readability of the code.
10066         (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
10067         Inherit_DT): Use the new function Predefined_DT to improve code
10068         readability.
10069         (Register_Interface_Tag): Update assertion.
10070         (Set_Interface_Table): Update assertion.
10071         (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
10072         determining progenitor interfaces in Tags.
10073         (Inherit_CPP_DT): New subprogram.
10074
10075         * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
10076         analysis of the thunk code.
10077         (Expand_Interface_Conversion): Handle run-time conversion of
10078         access to class wide types.
10079         (Expand_Dispatching_Call): When generating the profile for the
10080         subprogram itype for a dispatching operation, properly terminate the
10081         formal parameters chaind list (set the Next_Entity of the last formal
10082         to Empty).
10083         (Collect_All_Interfaces): Removed. This routine has been moved to
10084         sem_util and renamed as Collect_All_Abstract_Interfaces.
10085         (Set_All_DT_Position): Hidden entities associated with abstract
10086         interface primitives are not taken into account in the check for
10087         3.9.3(10); this check is done with the aliased entity.
10088         (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
10089         interfacing with CPP by default.
10090         (Expand_Interface_Conversion): Add missing support for static conversion
10091         from an interface to a tagged type.
10092         (Collect_All_Interfaces): Add new out formal containing the list of
10093         abstract interface types to cleanup the subprogram Make_DT.
10094         (Make_DT): Update the code to generate the table of interfaces in case
10095         of abstract interface types.
10096         (Is_Predefined_Dispatching_Alias): New function that returns true if
10097         a primitive is not a predefined dispatching primitive but it is an
10098         alias of a predefined dispatching primitive.
10099         (Make_DT): If the ancestor of the type is a CPP_Class and we are
10100         compiling under full ABI compatibility mode we avoid the generation of
10101         calls to run-time services that fill the dispatch tables because under
10102         this mode we currently inherit the dispatch tables in the IP subprogram.
10103         (Write_DT): Emit an "is null" indication for a null procedure primitive.
10104         (Expand_Interface_Conversion): Use an address as the type of the formal
10105         of the internally built function that handles the case in which the
10106         target type is an access type.
10107
10108 2006-10-31  Robert Dewar  <dewar@adacore.com>
10109
10110         * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
10111
10112 2006-10-31  Robert Dewar  <dewar@adacore.com>
10113
10114         * bindusg.ads, bindusg.adb:
10115         Change to package and rename procedure as Display, which
10116         now ensures that it only outputs usage information once.
10117
10118 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
10119
10120         * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
10121         using RTPs.
10122
10123         * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
10124         when using RTPs.
10125
10126 2006-10-31  Robert Dewar  <dewar@adacore.com>
10127             Ed Schonberg  <schonberg@adacore.com>
10128
10129         * treepr.adb: Use new subtype N_Membership_Test
10130
10131         * checks.ads, checks.adb: Add definition for Validity_Check
10132         (Range_Or_Validity_Checks_Suppressed): New function
10133         (Ensure_Valid): Test Validity_Check suppressed
10134         (Insert_Valid_Check): Test Validity_Check suppressed
10135         (Insert_Valid_Check): Preserve Do_Range_Check flag
10136         (Validity_Check_Range): New procedure
10137         (Expr_Known_Valid): Result of membership test is always valid
10138         (Selected_Range_Checks): Range checks cannot be applied to discriminants
10139         by themselves. Disabling those checks must also be done for task types,
10140         where discriminants may be used for the bounds of entry families.
10141         (Apply_Address_Clause_Check): Remove side-effects if address expression
10142         is non-static and is not the name of a declared constant.
10143         (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
10144         Code cleanup and new error messages.
10145         (Enable_Range_Check): Test for some cases of suppressed checks
10146         (Generate_Index_Checks): Suppress index checks if index checks are
10147         suppressed for array object or array type.
10148         (Apply_Selected_Length_Checks): Give warning for compile-time detected
10149         length check failure, even if checks are off.
10150         (Ensure_Valid): Do not generate a check on an indexed component whose
10151         prefix is a packed boolean array.
10152         * checks.adb: (Alignment_Checks_Suppressed): New function
10153         (Apply_Address_Clause_Check): New procedure, this is a completely
10154         rewritten replacement for Apply_Alignment_Check
10155         (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
10156         we request a discriminal value only in case of discriminants.
10157         (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
10158         assignments where the target subtype is unconstrained and the target
10159         object is a parameter or dereference (other aliased cases are known
10160         to be unconstrained).
10161
10162 2006-10-31  Robert Dewar  <dewar@adacore.com>
10163
10164         * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
10165         prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
10166         vms_conv.adb: Fix bad table increment values (much too small)
10167
10168         * table.adb (Realloc): Make sure we get at least some new elements
10169         Defends against silly small values for table increment
10170
10171 2006-10-31  Robert Dewar  <dewar@adacore.com>
10172             Ed Schonberg  <schonberg@adacore.com>
10173             Bob Duff  <duff@adacore.com>
10174
10175         * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
10176         entities. Move other fields around to make this possible
10177         (Is_Derived_Type): Add missing call to Is_Type.
10178         (Extra_Formals): New function for subprograms, entries, subprogram
10179         types.
10180         (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
10181         (First_Formal_With_Extras): New function for subprogs, entries, subp
10182         types.
10183         (Write_Field28_Name): New procedure for node display of "Extra_Formals".
10184         Add node information for E_Return_Statement.
10185         (Elaborate_Body_Desirable): New flag
10186         (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
10187         to be Is_Inherently_Limited_Type, because return-by-reference has
10188         no meaning in Ada 2005.
10189         (E_Return_Statement): New entity kind.
10190         (Return_Applies_To): Field of E_Return_Statement.
10191         (Is_Return_Object): New flag in object entities.
10192         (Is_Dynamic_Scope): Make it True for E_Return_Statement.
10193         (Must_Have_Preelab_Init): New flag
10194         (Known_To_Have_Preelab_Init): New flag
10195         (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
10196         (Is_Visible_Formal): New flag on entities in formal packages.
10197         (Low_Bound_Known): New flag
10198         (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
10199         Incomplete_Kind.
10200         (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
10201         output when Id is an incomplete subtype.
10202
10203 2006-10-31  Robert Dewar  <dewar@adacore.com>
10204
10205         * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
10206         Avoid abbreviation Creat
10207         (Finalize): List all sources in extended mail source if -gnatl
10208         switch is active.
10209         Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
10210         (Finalize): Implement new -gnatl=xxx switch to output listing to file
10211         (Set_Specific_Warning_On): New procedure
10212         (Set_Specific_Warning_Off): New procedure
10213         Add implementation of new insertion \\
10214         (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
10215         (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
10216         types.
10217         (Error_Msg_Internal): Make sure that we set Last_Killed to
10218         True when a message from another package is suppressed.
10219         Implement insertion character ~ (insert string)
10220         (First_Node): Minor adjustments to get better placement.
10221
10222         * frontend.adb: 
10223         Implement new -gnatl=xxx switch to output listing to file
10224
10225         * gnat1drv.adb: 
10226         Implement new -gnatl=xxx switch to output listing to file
10227
10228         * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
10229         (Commands_To_Stdout): New flag
10230         Implement new -gnatl=xxx switch to output listing to file
10231         New switch Dump_Source_Text
10232         (Warn_On_Deleted_Code): New warning flag for -gnatwt
10233         Define Error_Msg_Line_Length
10234         (Warn_On_Assumed_Low_Bound): New switch
10235
10236         * osint.ads, osint.adb
10237         (Normalize_Directory_Name): Fix bug.
10238         Implement new -gnatl=xxx switch to output listing to file
10239         (Concat): Removed, replaced by real concatenation
10240         Make use of concatenation now allowed in compiler
10241         (Executable_Prefix.Get_Install_Dir): First get the full path, so that
10242         we find the 'lib' or 'bin' directory even when the tool has been
10243         invoked with a relative path.
10244         (Executable_Name): New function taking string parameters.
10245
10246         * osint-c.ads, osint-c.adb: 
10247         Implement new -gnatl=xxx switch to output listing to file
10248
10249         * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
10250
10251         * switch-c.adb: 
10252         Implement new -gnatl=xxx switch to output listing to file
10253         Recognize new -gnatL switch
10254         (no longer keep in old warning about old style usage)
10255         Use concatenation to simplify code
10256         Recognize -gnatjnn switch
10257         (Scan_Front_End_Switches): Clean up handling of -gnatW
10258         (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
10259
10260 2006-10-31  Robert Dewar  <dewar@adacore.com>
10261
10262         * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
10263         (Set_Specific_Warning_Off): New procedure
10264         (Warning_Specifically_Suppressed): New function
10265         (Validate_Specific_Warnings): New procedure
10266         (Output_Msg_Text): Complete rewrite to support -gnatjnn
10267
10268         * err_vars.ads: Implement insertion character ~ (insert string)
10269
10270 2006-10-31  Bob Duff  <duff@adacore.com>
10271             Ed Schonberg  <schonberg@adacore.com>
10272
10273         * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
10274         the parent part is a build-in-place function call, generate assignments.
10275         (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
10276         are build-in-place function calls.
10277         (Replace_Self_Reference): New subsidiary of
10278         Make_OK_Assignment_Statement, to replace an access attribute that is a
10279         self-reference into an access to the appropriate component of the
10280         target object. Generalizes previous mechanism to handle self-references
10281         nested at any level.
10282         (Is_Self_Referential_Init): Remove, not needed.
10283         (Is_Self_Referential_Init): New predicate to simplify handling of self
10284         referential components in record aggregates.
10285         (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
10286         check for presence of entity before checking for self-reference.
10287         (Has_Default_Init_Comps): Return True if a component association is a
10288         self-reference to the enclosing type, which can only come from a
10289         default initialization.
10290         (Make_OK_Assignment_Statement): If the expression is of the form
10291         Typ'Acc, where Acc is an access attribute, the expression comes from a
10292         default initialized self-referential component.
10293         (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
10294         that has been derived from several abstract interfaces we must also
10295         initialize the tags of the secondary dispatch tables.
10296
10297 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
10298             Thomas Quinot  <quinot@adacore.com>
10299             Javier Miranda  <miranda@adacore.com>
10300             Robert Dewar  <dewar@adacore.com>
10301
10302         * exp_attr.adb: 
10303         (Expand_Access_To_Protected_Op): If the context indicates that an access
10304         to a local operation may be transfered outside of the object, create an
10305         access to the wrapper operation that must be used in an external call.
10306         (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
10307         target, pass the Valid attribute applied to a floating-point prefix on
10308         to the back end without expansion.
10309         (Storage_Size): Use the new run-time function Storage_Size to retrieve
10310         the allocated storage when it is specified by a per-object expression.
10311         (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
10312         Nothing to do here, the attribute has been rewritten during semantic
10313         analysis.
10314         (Expand_Attribute_Reference): Handle expansion of the new Priority
10315         attribute
10316         (Find_Fat_Info): Handle case of universal real
10317         (Expand_Access_To_Protected_Op): Fix use of access to protected
10318         subprogram from inside the body of a protected entry.
10319         (Expand_Access_To_Protected_Op): Common procedure for the expansion of
10320         'Access and 'Unrestricted_Access, to transform the attribute reference
10321         into a fat pointer.
10322         (Is_Constrained_Aliased_View): New predicate to help determine whether a
10323         subcomponent's enclosing variable is aliased with a constrained subtype.
10324         (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
10325         test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
10326         an aliased prefix must be known to be constrained in order to use True
10327         for the attribute value, and now it's possible for some aliased views
10328         to be unconstrained.
10329
10330 2006-10-31  Robert Dewar  <dewar@adacore.com>
10331
10332         * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
10333         (Expand_Entity_Reference): Correct error of not handling subprogram
10334         formals in current_value processing.
10335
10336 2006-10-31  Javier Miranda  <miranda@adacore.com>
10337             Robert Dewar  <dewar@adacore.com>
10338             Ed Schonberg  <schonberg@adacore.com>
10339             Gary Dismukes  <dismukes@adacore.com>
10340
10341         * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
10342         register in the final list objects containing class-wide interfaces;
10343         otherwise we incorrectly register the tag of the interface in the final
10344         list.
10345         (Make_Controlling_Function_Wrappers): Add missing barrier to do not
10346         generate the wrapper if the parent primitive is abstract. This is
10347         required to report the correct error message.
10348         (Expand_N_Subtype_Indication): Do validity checks on range
10349         (Clean_Task_Names): If an initialization procedure includes a call to
10350         initialize a task (sub)component, indicate that the procedure will use
10351         the secondary stack.
10352         (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
10353         compatibility for interfacing with CPP by default.
10354         (Expand_N_Object_Declaration): Only build an Adjust call when the
10355         object's type is a nonlimited controlled type.
10356         * exp_ch3.adb: Add with and use of Exp_Ch6.
10357         (Expand_N_Object_Declaration): Check for object initialization that is a
10358         call to build-in-place function and apply Make_Build_In_Place_Call_In_
10359         Object_Declaration to the call.
10360         (Freeze_Type): When the designated type of an RACW was not frozen at the
10361         point where the RACW was declared, validate the primitive operations
10362         with respect to E.2.2(14) when it finally is frozen.
10363         (Build_Initialization_Call,Expand_Record_Controller): Rename
10364         Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
10365         return-by-reference has no meaning in Ada 2005.
10366         (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
10367         to register tag of the immediate ancestor interfaces in the
10368         run-time structure.
10369         (Init_Secondary_Tags): Moved to the specification to allow the
10370         initialization of extension aggregates with abstract interfaces.
10371         (Build_Master_Renaming): Make public, for use by function declarations
10372         whose return type is an anonymous access type.
10373         (Freeze_Record_Type): Replace call to Insert_List_Before by call to
10374         Insert_List_Before_And_Analyze after the generation of the specs
10375         associated with null procedures.
10376         (Expand_Tagged_Root): Update documentation in its specification.
10377         (Init_Secondary_Tags): Update documentation.
10378         (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
10379         tibility mode and the immediate ancestor is a CPP_Pragma tagged type
10380         then generate code to inherit the contents of the dispatch table
10381         directly from the ancestor.
10382         (Expand_Record_Controller): Insert controller component after tags of
10383         implemented interfaces.
10384         (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
10385         create null procedure overridings when null procedures are inherited
10386         from interfaces.
10387         (Make_Null_Procedure_Specs): New procedure to generate null procedure
10388         declarations for overriding null primitives inherited from interfaces.
10389         (Is_Null_Interface_Procedure): New function in
10390         Make_Null_Procedure_Specs.
10391         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
10392         immediate ancestor of a tagged type is an abstract interface type we
10393         must generate the specification of the predefined primitives associated
10394         with controlled types (because the dispatch table of the ancestor is
10395         null and hence these entries cannot be inherited). This is required to
10396         elaborate well the dispatch table.
10397
10398 2006-10-31  Javier Miranda  <miranda@adacore.com>
10399             Ed Schonberg  <schonberg@adacore.com>
10400             Bob Duff  <duff@adacore.com>
10401             Gary Dismukes  <dismukes@adacore.com>
10402             Robert Dewar  <dewar@adacore.com>
10403
10404         * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
10405         conversion.
10406         (Expand_N_In): Do validity checks on range
10407         (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
10408         (Expand_N_Allocator): For "new T", if the object is constrained by
10409         discriminant defaults, allocate the right amount of memory, rather than
10410         the maximum for type T.
10411         (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
10412         when the allocator is initialized by a build-in-place call, since the
10413         allocator is already rewritten as a reference to the function result,
10414         and this prevents an unwanted duplication of the function call.
10415         Add with and use of Exp_Ch6.
10416         (Expand_Allocator_Expresssion): Check for an allocator whose expression
10417         is a call to build-in-place function and apply
10418         Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
10419         untagged designated types).
10420         (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
10421         optimization if source or target is biased.
10422         (Expand_N_Allocator): Add comments for case of an allocator within a
10423         function that returns an anonymous access type designating tasks.
10424         (Expand_N_Allocator): apply discriminant checks for access
10425         discriminants of anonymous access types (AI-402, AI-416)
10426
10427 2006-10-31  Bob Duff  <duff@adacore.com>
10428             Robert Dewar  <dewar@adacore.com>
10429             Gary Dismukes  <dismukes@adacore.com>
10430             Ed Schonberg  <schonberg@adacore.com>
10431
10432         * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
10433
10434         * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
10435         (Expand_N_Assignment_Statement): Call
10436         Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
10437         build-in-place function call. Currently, this can happen only for
10438         assignments that come from aggregates.
10439         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
10440         in order to alleviate the upward compatibility introduced by AI-318.
10441         (Expand_N_Extended_Return_Statement): Add support for handling the
10442         return object as a build-in-place result.
10443         (Expand_Non_Function_Return): Implement simple return statements nested
10444         within an extended return.
10445         (Enable_New_Return_Processing): Turn on the new processing of return
10446         statements.
10447         (Expand_Non_Function_Return): For a return within an extended return,
10448         don't raise Program_Error, because Sem_Ch6 now gives a warning.
10449         (Expand_N_Extended_Return_Statement): Implement AI-318
10450         (Expand_Simple_Function_Return): Ditto.
10451         (Expand_N_If_Statement): Handle new -gnatwt warning
10452         (Expand_N_Case_Statement): Handle new -gnatwt warning
10453         (Expand_N_Assignment): Handle assignment to the Priority attribute of
10454         a protected object.
10455         (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
10456         validity checking of assignments to elementary record components.
10457         (Expand_N_Return_Statement): return Class Wide types on the secondary
10458         stack independantly of their controlled status since with HIE runtimes,
10459         class wide types are not potentially controlled anymore.
10460
10461         * expander.adb (Expand): Add case for new N_Extended_Return_Statement
10462         node kind.
10463
10464         * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
10465         Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
10466         it expects a block, procedure, or task. The return statement will get
10467         turned into a block, and Expand_Cleanup_Actions will happen then.
10468
10469 2006-10-31  Robert Dewar  <dewar@adacore.com>
10470             Ed Schonberg  <schonberg@adacore.com>
10471             Bob Duff  <duff@adacore.com>
10472             Gary Dismukes  <dismukes@adacore.com>
10473
10474         * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
10475         capability.
10476         (Expand_Inlined_Call): Tagged types are by-reference types, and
10477         therefore should be replaced by a renaming declaration in the expanded
10478         body, as is done for limited types.
10479         (Expand_Call): If this is a call to a function with dispatching access
10480         result, propagate tag from context.
10481         (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
10482         CPP by default.
10483         (Make_Build_In_Place_Call_In_Assignment): New procedure to do
10484         build-in-place when the right-hand side of an assignment is a
10485         build-in-place function call.
10486         (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
10487         of the explicit dereference of the allocator to the result subtype of
10488         the build-in-place function. This is needed to satisfy type checking
10489         in cases where the caller's return object is created by an allocator for
10490         a class-wide access type and the type named in the allocator is a
10491         specific type.
10492         (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
10493         conversion of the reference to the declared object to the result subtype
10494         of the build-in-place function. This is needed to satisfy type checking
10495         in cases where the declared object has a class-wide type. Also, in the
10496         class-wide case, change the type of the object entity to the specific
10497         result subtype of the function, to avoid passing a class-wide object
10498         without explicit initialization to the back end.
10499         (Register_Interface_DT_Entry): Moved outside the body of
10500         Freeze_Subprogram because this routine is now public; it is called from
10501         Check_Dispatching_Overriding to handle late overriding of abstract
10502         interface primitives.
10503         (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
10504         adding an implicit access actual on a call to a build-in-place function.
10505         (Expand_Actuals): Test for an actual parameter that is a call to a
10506         build-in-place function and apply
10507         Make_Build_In_Place_Call_In_Anonymous_Context to the call.
10508         (Is_Build_In_Place_Function): New function to determine whether an
10509         entity is a function whose calls should be handled as build-in-place.
10510         (Is_Build_In_Place_Function_Call): New function to determine whether an
10511         expression is a function call that should handled as build-in-place.
10512         (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
10513         calls to build-in-place functions as the initialization of an allocator.
10514         (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
10515         handling calls to build-in-place functions in contexts that do not
10516         involve init of a separate object (for example, actuals of subprogram
10517         calls).
10518         (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
10519         handling calls to build-in-place functions as the initialization of an
10520         object declaration.
10521         (Detect_Infinite_Recursion): Add explicit parameter Process to
10522         instantiation of Traverse_Body to avoid unreferenced warning.
10523         (Check_Overriding_Inherited_Interfaces): Removed.
10524         (Register_Interface_DT_Entry): Code cleanup.
10525         (Register_Predefined_DT_Entry): Code cleanup.
10526         (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
10527         inlined statements if within a transient scope.
10528         (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
10529         formal parameters with occurrences of actuals in inlined body, establish
10530         visibility on the proper view of the actual's subtype for the body's
10531         context.
10532         (Freeze_Subprogram): Do nothing if we are compiling under full ABI
10533         compatibility mode and we have an imported CPP subprogram because
10534         for now we assume that imported CPP primitives correspond with
10535         objects whose constructor is in the CPP side (and therefore we
10536         don't need to generate code to register them in the dispatch table).
10537         (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
10538         aligned selected component.
10539         (Add_Call_By_Copy_Node): Add missing code to handle the case in which
10540         the actual of an in-mode parameter is a type conversion.
10541         (Expand_Actuals): If the call does not come from source and the actual
10542         is potentially misaligned, let gigi handle it rather than rejecting the
10543         (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
10544         Class Wide types as returning by reference independantly of their
10545         controlled status since with HIE runtimes class wide types are not
10546         potentially controlled anymore.
10547
10548 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
10549
10550         * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
10551         references that are private components of the protected object.
10552         (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
10553         (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
10554         instantiation to deal with warnings.
10555         (Initialize_Protection): If expression for priority is non-static, use
10556         System_Priority as its expected type, in case the expression has not
10557         been analyzed yet.
10558
10559 2006-10-31  Robert Dewar  <dewar@adacore.com>
10560
10561         * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
10562         initialization of Homonym_Len.
10563         (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
10564         names from fully qualified name. Fixes problem of duplicate
10565         external names differing only in the presence of such a block name.
10566
10567 2006-10-31  Thomas Quinot  <quinot@adacore.com>
10568             Pablo Oliveira  <oliveira@adacore.com>
10569
10570         * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
10571         subprogram Ids, even if they are not yet assigned.
10572         (Build_Subprogram_Id): It is now this function that will take care of
10573         calling Assign_Subprogram_Ids if necessary.
10574         (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
10575         should be done only once they are assigned.
10576         (Build_From_Any_Function, case of tagged types): Add missing call to
10577         Allocate_Buffer.
10578         (Corresponding_Stub_Type): New subprogram. Returns the associated stub
10579         type for an RACW type.
10580         (Add_RACW_Features): When processing an RACW declaration for which the
10581         designated type is already frozen, enforce E.2.2(14) rules immediately.
10582         (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
10583         special reordering of controlling formals.
10584
10585         * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
10586         associated stub type for an RACW type.
10587
10588 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
10589
10590         * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
10591         fixed-point operations in an integer context, i.e. as operands of a
10592         conversion to an integer type, indicate that result must be rounded.
10593
10594 2006-10-31  Robert Dewar  <dewar@adacore.com>
10595
10596         * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
10597         cases, pass the encoding method, since it is now required by the run
10598         time.
10599
10600         * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
10601         assumption that Str'First = 1.
10602         (Value_Wide_Character): Takes EM (encoding method) parameter and passes
10603         it on to the Value_Wide_Wide_Character call.
10604         (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
10605         properly handles a string of the form quote-encoded_wide_char-quote.
10606
10607         * s-wchcnv.adb: Minor reformatting
10608
10609 2006-10-31  Javier Miranda  <miranda@adacore.com>
10610
10611         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
10612         run-time membership test to ensure that the constructed object
10613         implements the target abstract interface.
10614
10615 2006-10-31  Robert Dewar  <dewar@adacore.com>
10616
10617         * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
10618         Machine_Attribute pragma internally to implement the user pragma.
10619         Add processing for pragma Interface so that it is now completely
10620         equivalent to pragma Import.
10621
10622         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
10623         so that it can be applied to all entities, including record components
10624         and enumeration literals.
10625         (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
10626         priority ranges are correct, verify compatibility against task
10627         dispatching and locking policies, and if everything is correct an entry
10628         is added to the table containing priority specific dispatching entries
10629         for this compilation unit.
10630         (Delay_Config_Pragma_Analyze): Delay processing
10631         Priority_Specific_Dispatching pragmas because when processing the
10632         pragma we need to access run-time data, such as the range of
10633         System.Any_Priority.
10634         (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
10635         Allow pragma Unreferenced as a context item
10636         Add pragma Preelaborable_Initialization
10637         (Analyze_Pragma, case Interface): Interface is extended so that it is
10638         now syntactically and semantically equivalent to Import.
10639         (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
10640         insertion characters.
10641         Add handling for Pragma_Wide_Character_Encoding
10642         (Process_Restrictions_Restriction_Warnings): Ensure that a warning
10643         never supercedes a real restriction, and that a real restriction
10644         always supercedes a warning.
10645         (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
10646         appropriate form.
10647
10648 2006-10-31  Bob Duff  <duff@adacore.com>
10649             Ed Schonberg  <schonberg@adacore.com>
10650             Robert Dewar  <dewar@adacore.com>
10651
10652         * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
10653         Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
10654         Is_Inherently_Limited_Type, because return-by-reference has no meaning
10655         in Ada 2005.
10656         (Find_Node_To_Be_Wrapped): Use new method of determining the result
10657         type of the function containing a return statement, because the
10658         Return_Type field was removed. We now use the Return_Applies_To field.
10659
10660         * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
10661         (Build_Task_Image_Decl): If procedure is not called from an
10662         initialization procedure, indicate that function that builds task name
10663         uses the sec. stack. Otherwise the enclosing initialization procedure
10664         will carry the indication.
10665         (Insert_Actions): Remove N_Return_Object_Declaration. We now use
10666         N_Object_Declaration instead.
10667         (Kill_Dead_Code): New interface to implement -gnatwt warning for
10668         conditional dead code killed, and change implementation accordingly.
10669         (Insert_Actions): Add N_Return_Object_Declaration case.
10670         Correct comment to mention N_Extension_Aggregate node.
10671         (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
10672         attempts to save information for global variables which cannot be
10673         safely tracked.
10674         (Get_Current_Value_Condition): Handle conditions the other way round
10675         (constant on left). Also handle right operand of AND and AND THEN
10676         (Set_Current_Value_Condition): Corresponding changes
10677         (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
10678         (Get_Current_Value_Condition): Handle simple boolean operands
10679         (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
10680         (Get_Current_Value_Condition): If the variable reference is within an
10681         if-statement, does not appear in the list of then_statments, and does
10682         not come from source, treat it as being at unknown location.
10683         (Get_Current_Value_Condition): Enhance to allow while statements to be
10684         processed as well as if statements.
10685         (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
10686         come from source.
10687         (OK_To_Do_Constant_Replacement): Allow constant replacement within body
10688         of loop. This is safe now that we fixed Kill_Current_Values.
10689         (OK_To_Do_Constant_Replacement): Check whether current scope is
10690         Standard, before examining outer scopes.
10691
10692 2006-10-31  Vincent Celier  <celier@adacore.com>
10693
10694         * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
10695         When True, apply VMS treatment to children of packages A, G, I and S.
10696         For F320-016
10697
10698         * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
10699
10700 2006-10-31  Robert Dewar  <dewar@adacore.com>
10701             Ed Schonberg  <schonberg@adacore.com>
10702
10703         * freeze.adb: Add handling of Last_Assignment field
10704         (Warn_Overlay): Supply missing continuation marks in error msgs
10705         (Freeze_Entity): Add check for Preelaborable_Initialization
10706
10707         * g-comlin.adb: Add Warnings (Off) to prevent new warning
10708
10709         * g-expect.adb: Add Warnings (Off) to prevent new warning
10710
10711         * lib-xref.adb: Add handling of Last_Assignment field
10712         (Generate_Reference): Centralize handling of pragma Obsolescent here
10713         (Generate_Reference): Accept an implicit reference generated for a
10714         default in an instance.
10715         (Generate_Reference): Accept a reference for a node that is not in the
10716         main unit, if it is the generic body corresponding to an subprogram
10717         instantiation.
10718
10719         * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
10720
10721         * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
10722         -gnatwq/Q.
10723         (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
10724         exception handler.
10725         (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
10726         use clauses, to avoid messages on packages used to qualify, and also
10727         to avoid messages from obsolescent units.
10728         (Warn_On_Useless_Assignments): Don't generate messages for imported
10729         and exported variables.
10730         (Warn_On_Useless_Assignments): New procedure
10731         (Output_Obsolescent_Entity_Warnings): New procedure
10732         (Check_Code_Statement): New procedure
10733
10734         * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
10735         Change name Is_Ada_2005 to Is_Ada_2005_Only
10736         (Last_Assignment): New field for useless assignment warning
10737
10738 2006-10-31  Olivier Hainque  <hainque@adacore.com>
10739
10740         * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
10741         closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
10742
10743 2006-10-31  Bob Duff  <duff@adacore.com>
10744             Robert Dewar  <dewar@adacore.com>
10745             Ed Schonberg  <schonberg@adacore.com>
10746
10747         * g-awk.adb (Default_Session, Current_Session): Compile this file in
10748         Ada 95 mode, because it violates the new rules for AI-318.
10749
10750         * g-awk.ads: Use overloaded subprograms in every case where we used to
10751         have a default of Current_Session. This makes the code closer to be
10752         correct for both Ada 95 and 2005.
10753
10754         * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
10755         code, relying on the fact that the compiler generates a warning
10756         instead of an error in -gnatg mode.
10757
10758         * lib-xref.ads (Xref_Entity_Letters): Add entry for new
10759         E_Return_Statement entity kind.
10760         Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
10761
10762         * par.adb (P_Interface_Type_Definition): Addition of one formal to
10763         report an error if the reserved word abstract has been previously found.
10764         (SS_End_Type): Add E_Return for new extended_return_statement syntax.
10765
10766         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
10767         parenthesized range attribute usage
10768         (P_Expression_No_Right_Paren): Add missing comment about error recovery.
10769
10770         * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
10771         in the syntax for extended_return_statement. This is not in the latest
10772         RM, but the ARG is expected to issue an AI allowing this.
10773         (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
10774         N_Return_Object_Declaration. We now use N_Object_Declaration instead.
10775         (P_Return_Object_Declaration, P_Return_Subtype_Indication,
10776         P_Return_Statement): Parse the new syntax for extended_return_statement.
10777
10778         * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
10779         Output_End_Missing): Add error-recovery code for the new
10780         extended_return_statement syntax; that is, the new E_Return entry on
10781         the scope stack.
10782
10783         * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
10784         limited to nonlimited, because otherwise we violate the new Ada 2005
10785         rules about returning limited types in function Create_AST_Handler in
10786         s-asthan.adb.
10787
10788         * sem.adb (Analyze): Add cases for new node kinds
10789         N_Extended_Return_Statement and N_Return_Object_Declaration.
10790
10791         * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
10792         type is in the same category as type of context before applying check,
10793         to prevent anomalies in instantiations.
10794         (Resolve_Aggregate): Remove test for limited components in aggregates.
10795         It's unnecessary in Ada 95, because if it has limited components, then
10796         it must be limited. It's wrong in Ada 2005, because limited aggregates
10797         are now allowed.
10798         (Resolve_Record_Aggregate): Move check for limited types later, because
10799         OK_For_Limited_Init requires its argument to have been resolved.
10800         (Get_Value): When copying the component default expression for a
10801         defaulted association in an aggregate, use the sloc of the aggregate
10802         and not that of the original expression, to prevent spurious
10803         elaboration errors, when the expression includes function calls.
10804         (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
10805         were missing. We also didn't handle qualified expressions. Now also
10806         allow function calls. Use new common routine OK_For_Limited_Init.
10807         (Resolve_Extension_Aggregate): Minor fix to bad error message (started
10808         with space can upper case letter).
10809
10810         * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
10811         Has_Static_Discriminants flag
10812         (Record_Type_Declaration): Diagnose an attempt to declare an interface
10813         type with discriminants.
10814         (Process_Range_Expr_In_Decl): Do validity checks on range
10815         (Build_Discriminant_Constraints): Use updated form of
10816         Denotes_Discriminant.
10817         (Process_Subtype): If the subtype is a private subtype whose full view
10818         is a concurrent subtype, introduce an itype reference to prevent scope
10819         anomalies in gigi.
10820         (Build_Derived_Record_Type, Collect_Interface_Primitives,
10821         Record_Type_Declaration):  The functionality of the subprograms
10822         Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
10823         is now performed by a single routine.
10824         (Build_Derived_Record_Type): If the type definition includes an explicit
10825         indication of limitedness, then the type must be marked as limited here
10826         to ensure that any access discriminants will not be treated as having
10827         a local anonymous access type.
10828         (Check_Abstract_Overriding): Issue a detailed error message when an
10829         abstract subprogram was not overridden due to incorrect mode of its
10830         first parameter.
10831         (Analyze_Private_Extension_Declaration): Add support for the analysis of
10832         synchronized private extension declarations. Verify that the ancestor is
10833         a limited or synchronized interface or in the generic case, the ancestor
10834         is a tagged limited type or synchronized interface and all progenitors
10835         are either limited or synchronized interfaces.
10836         Derived_Type_Declaration): Check for presence of private extension when
10837         dealing with synchronized formal derived types.
10838         Process_Full_View): Enchance the check done on the usage of "limited" by
10839         testing whether the private view is synchronized.
10840         Verify that a synchronized private view is completed by a protected or
10841         task type.
10842         (OK_For_Limited_Init_In_05): New function.
10843         (Analyze_Object_Declaration): Move check for limited types later,
10844         because OK_For_Limited_Init requires its argument to have been resolved.
10845         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
10846         in order to alleviate the upward compatibility introduced by AI-318.
10847         (Constrain_Corresponding_Record): If the constraint is for a component
10848         subtype, mark the itype as frozen, to avoid out-of-scope references to
10849         discriminants in the back-end.
10850         (Collect_Implemented_Interfaces): Protect the recursive algorithm of
10851         this subprogram against wrong sources.
10852         (Get_Discr_Value, Is_Discriminant): Handle properly references to a
10853         discriminant of limited type completed with a protected type, when the
10854         discriminant is used to constrain a private component of the type, and
10855         expansion is disabled.
10856         (Find_Type_Of_Object): Do not treat a return subtype that is an
10857         anonymous subtype as a local_anonymous_type, because its accessibility
10858         level is the return type of the enclosing function.
10859         (Check_Initialization): In -gnatg mode, turn the error "cannot
10860         initialize entities of limited type" into a warning.
10861         (OK_For_Limited_Init): Return true for generated nodes, since it
10862         sometimes violates the legality rules.
10863         (Make_Incomplete_Declaration): If the type for which an incomplete
10864         declaration is created happens to be the currently visible entity,
10865         preserve the homonym chain when removing it from visibility.
10866         (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
10867         inherited subprograms.
10868         (Access_Definition): If this is an access to function that is the return
10869         type of an access_to_function definition, context is a type declaration
10870         and the scope of the anonymous type is the current one.
10871         (Analyze_Subtype_Declaration): Add the defining identifier of a regular
10872         incomplete subtype to the set of private dependents of the original
10873         incomplete type.
10874         (Constrain_Discriminated_Type): Emit an error message whenever an
10875         incomplete subtype is being constrained.
10876         (Process_Incomplete_Dependents): Transform an incomplete subtype into a
10877         corresponding subtype of the full view of the original incomplete type.
10878         (Check_Incomplete): Properly detect invalid usage of incomplete types
10879         and subtypes.
10880
10881 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
10882
10883         * g-catiio.ads, g-catiio.adb (Value): New function.
10884         Given an input String, try and parse a valid Time value.
10885
10886 2006-10-31  Vincent Celier  <celier@adacore.com>
10887
10888         * g-debpoo.adb (Is_Valid): Correctly compute Offset using
10889         Integer_Address arithmetic, as in Set_Valid.
10890
10891 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
10892             Robert Dewar  <dewar@adacore.com>
10893
10894         * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
10895         handling executable extension manually and duplicating code.
10896
10897         * make.adb: Implement new -S switch
10898         (Gnatmake): Use new function Osint.Executable_Name instead
10899         of handling executable extension manually.
10900
10901         * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
10902         is specified, the executable name ends with this suffix.
10903         Take advantage of Osint.Executable_Name instead of duplicating code.
10904
10905         * switch-m.adb: Recognize new gnatmake -S switch
10906
10907         * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
10908         variable.
10909         (Get_Target_Parameters): Set Executable_Extension_On_Target if
10910         available.
10911
10912         * makeusg.adb: Add line for gnatmake -S switch
10913
10914 2006-10-31  Vincent Celier  <celier@adacore.com>
10915
10916         * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
10917         call it with -static-libgcc, as there are some platforms, such as
10918         Darwin, where one of these two switches is compulsory to link.
10919
10920 2006-10-31  Vincent Celier  <celier@adacore.com>
10921
10922         * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
10923         instead of ADA_PROJECT_PATH, for the project path.
10924         (Gnatls): When displaying the project path directories, use host dir
10925         specs.
10926
10927         * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
10928         names in the project path, as absolute paths may correspond to
10929         multi-valued VMS logical names.
10930
10931 2006-10-31  Vincent Celier  <celier@adacore.com>
10932
10933         * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
10934         absolute path name.
10935         (Locate_Regular_File): Ditto
10936         (Change_Dir): Remove, no longer used
10937         (Normalize_Pathname): Do not use Change_Dir to get the drive letter
10938         on Windows. Get it calling Get_Current_Dir.
10939         (OpenVMS): Remove imported boolean, no longer needed.
10940         (Normalize_Pathname)[VMS]: Do not resolve directory names.
10941         (Pid_To_Integer): New function to convert a Process_Id to  Integer
10942
10943 2006-10-31  Thomas Quinot  <quinot@adacore.com>
10944
10945         * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
10946         sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
10947         to No_Socket.
10948         (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
10949         W_Sig_Socket.
10950
10951 2006-10-31  Robert Dewar  <dewar@adacore.com>
10952
10953         * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
10954         initial letter o as a zero.
10955
10956 2006-10-31  Robert Dewar  <dewar@adacore.com>
10957
10958         * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
10959
10960 2006-10-31  Robert Dewar  <dewar@adacore.com>
10961
10962         * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
10963         variant records
10964         (Layout_Variant_Record): Retrieve the discriminants from the entity
10965         rather than from the type definition, because in the case of a full
10966         type for a private type we need to take the discriminants from the
10967         partial view.
10968         (Layout_Component_List): When applying the Max operator to variants with
10969         a nonstatic size, check whether either operand is static and scale that
10970         operand from bits to storage units before applying Max.
10971         (Layout_Type): In VMS, if a C-convention access type has no explicit
10972         size clause (and does not inherit one in the case of a derived type),
10973         then the size is reset to 32 from 64.
10974
10975 2006-10-31  Vincent Celier  <celier@adacore.com>
10976
10977         * lib-load.adb (Load_Unit): Skip the test for a unit not found when
10978         its file has already been loaded, according to the unit being loaded,
10979         not to the current value of Multiple_Unit_Index.
10980
10981 2006-10-31  Thomas Quinot  <quinot@adacore.com>
10982             Eric Botcazou  <ebotcazou@adacore.com>
10983             Arnaud Charlet  <charlet@adacore.com>
10984
10985         * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
10986         (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
10987         possible.
10988         (a-except.o): Pass it to the compiler.
10989         (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
10990         (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
10991         a-calend-mingw.adb version.
10992
10993         * Makefile.rtl: Added s-dsaser.
10994         Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
10995         (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
10996         Ada.Dispatching.Round_Robin.
10997         Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
10998
10999         * Make-lang.in: Remove all references to gt-ada-decl.h.
11000         Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
11001         sources.
11002         Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
11003         Update dependencies.
11004
11005         * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
11006
11007 2006-10-31  Vincent Celier  <celier@adacore.com>
11008
11009         * mlib-utl.adb (Initialized): Remove, no longer used
11010         (Initialize): Remove, no longer used
11011         (Ar): If Ar_Exec is null, get the location of the archive builder and,
11012         if there is one, the archive indexer. Fail if the archive builder cannot
11013         be found.
11014         (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
11015         be found.
11016
11017 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
11018
11019         * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
11020         Process_Body_Clauses): If the context of a body includes a use clause
11021         for P.Q then a with_clause for P in the same body is not redundant,
11022         even if the spec also has a with_clause on P.
11023         Add missing continuation mark to error msg
11024         (Build_Limited_Views): A limited view of a type is tagged if its
11025         declaration includes a record extension.
11026         (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
11027         node, even if the subunit has errors. This avoids malfunction by
11028         Lib.Check_Same_Extended_Unit in the presence of syntax errors.
11029         (Analyze_Compilation_Unit): Add circuit to make sure we get proper
11030         generation of obsolescent messages for with statements (cannot do
11031         this too early, or we cannot implement avoiding the messages in the
11032         case of obsolescent units withing obsolescent units).
11033         (Install_Siblings): If the with_clause is on a remote descendant of
11034         an ancestor of the current compilation unit, find whether there is
11035         a sibling child unit that is immediately visible.
11036         (Remove_Private_With_Clauses): New procedure, invoked after completing
11037         the analysis of the private part of a nested package, to remove from
11038         visibility the private with_clauses of the enclosing package
11039         declaration.
11040         (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
11041         now centralized in Generate_Reference.
11042         (Install_Limited_Context_Clauses): Remove superfluous error
11043         message associated with unlimited view visible through use
11044         and renamings. In addition, at the point in which the error
11045         is reported, we add the backslash to the text of the error
11046         to ensure that it is reported as a single error message.
11047         Use new // insertion for some continuation messages
11048         (Expand_Limited_With_Clause): Use copy of name rather than name itself,
11049         to create implicit with_clause for parent unit mentioned in original
11050         limited_with_clause.
11051         (Install_Limited_With_Unit): Set entity of parent identifiers if the
11052         unit is a child unit. For ASIS queries.
11053         (Analyze_Subunit): If the subunit appears within a child unit, make all
11054         ancestor child units directly visible again.
11055
11056 2006-10-31  Robert Dewar  <dewar@adacore.com>
11057
11058         * par-ch10.adb (P_Context_Clause): Minor error message fix
11059
11060 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
11061             Javier Miranda  <miranda@adacore.com>
11062
11063         * par-ch12.adb: Grammar update and cleanup.
11064         (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
11065         support for synchronized derived type definitions.
11066         Add the new actual Abstract_Present to every call to
11067         P_Interface_Type_Definition.
11068         (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
11069         a formal object declaration with an access definition or a subtype mark
11070         with a null exclusion.
11071         (P_Generic_Association): Handle association with box, and others_choice
11072         with box, to support Ada 2005 partially parametrized formal packages.
11073
11074 2006-10-31  Robert Dewar  <dewar@adacore.com>
11075             Javier Miranda  <miranda@adacore.com>
11076
11077         * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
11078         (P_Type_Declaration): Remove barrier against the reserved word "limited"
11079         after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
11080         (P_Type_Declaration): Minor code cleanup. Add support for synchronized
11081         private extensions.
11082         (P_Type_Declaration): Add the new actual Abstract_Present to every call
11083         to P_Interface_Type_Definition.
11084         (P_Interface_Type_Definition): Addition of one formal to report an error
11085         if the reserved word abstract has been previously found.
11086         (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
11087         object renaming declaration with an access definition or subtype mark
11088         with a possible null exclusion.
11089
11090         * par-ch9.adb: Minor error msg fix
11091
11092         * par-load.adb: Add missing continuation mark to error msg
11093
11094         * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
11095
11096 2006-10-31  Vincent Celier  <celier@adacore.com>
11097
11098         * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
11099         unknown attribute in unknown package or in package that does not need
11100         to be checked.
11101         (Parse_Package_Declaration): Do not issue warning for unknown package in
11102         quiet output.
11103
11104 2006-10-31  Vincent Celier  <celier@adacore.com>
11105
11106         * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
11107         (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
11108         Packages_To_Check.
11109
11110 2006-10-31  Vincent Celier  <celier@adacore.com>
11111
11112         * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
11113         on VMS, change "__" to '.' before checking the name.
11114         (Record_Ada_Source): Always add the source file name in the list of
11115         of sources, even if it is not the first time, as it is for another
11116         source index.
11117         (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
11118         dot, instead of replacing only the first '_'.
11119
11120         * prj-part.adb (Parse): Convert project file path to canonical form
11121
11122         * prj-proc.adb (Recursive_Process): Make sure that, when a project is
11123         extended, the project id of the project extending it is recorded in its
11124         data, even when it has already been processed as an imported project.
11125
11126 2006-10-31  Robert Dewar  <dewar@adacore.com>
11127
11128         * repinfo.adb (List_Entities): Don't list entities from renaming
11129         declarations.
11130
11131 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
11132             Robert Dewar  <dewar@adacore.com>
11133
11134         * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
11135         only a restriction warning is active for the given restriction. This is
11136         desirable because we do not want to modify code in the case where only
11137         a warning is set.
11138         (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
11139         causes overriding of real restrictions.
11140         Take advantage of new No_Restrictions constant.
11141
11142         * raise.h: (__gnat_set_globals): Change profile.
11143
11144 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
11145
11146         * rtsfind.adb: Remove s-polint from comment as it exists no more.
11147
11148         * rtsfind.ads: 
11149         Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
11150         Move all the entities in obsolete package System.PolyORB_Interface to
11151         System.Partition_Interface.
11152         (RE_Storage_Size): New function in System.Tasking.
11153         (RE_Get_Ceiling): New entity.
11154         (RE_Set_Ceiling): New entity.
11155         (RO_PE_Get_Ceiling): New entity.
11156         (RO_RE_Set_Ceiling): New entity.
11157         (Inherit_CPP_DT): New entity
11158
11159 2006-10-31  Robert Dewar  <dewar@adacore.com>
11160
11161         * scng.adb (Scan, case of numeric literal): Better msg for identifier
11162         starting with a digit.
11163
11164 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
11165             Thomas Quinot  <quinot@adacore.com>
11166             Javier Miranda  <miranda@adacore.com>
11167             Gary Dismukes  <dismukes@adacore.com>
11168
11169         * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
11170         properly an attempt to apply Unchecked_Access to a protected operation.
11171         (OK_Self_Reference): New subprogram to check the legality of an access
11172         attribute whose prefix is the type of an enclosing aggregate.
11173         Generalizes previous mechanism to handle attribute references nested
11174         arbitrarily deep within the aggregate.
11175         (Analyze_Access_Attribute): An access attribute whose prefix is a type
11176         can appear in an aggregate if this is a default-initialized aggregate
11177         for a self-referential type.
11178         (Resolve_Attribute, case Access): Ditto.
11179         Add support for new implementation defined attribute Stub_Type.
11180         (Eval_Attribute, case Attribute_Stub_Type): New case.
11181         (Analyze_Attribute, case Attribute_Stub_Type): New case.
11182         (Stream_Attribute_Available): Implement using new subprogram from
11183         sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
11184         Has_Specified_Stream_Attribute flag.
11185         Disallow Storage_Size and Storage_Pool for access to subprogram
11186         (Resolve_Attribute, case 'Access et al): Take into account anonymous
11187         access types of return subtypes in extended return statements. Remove
11188         accessibility checks on anonymous access types when Unchecked_Access is
11189         used.
11190         (Analyze_Attribute): Add support for the use of 'Class to convert
11191         a class-wide interface to a tagged type.
11192         Add support for the attribute Priority.
11193         (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
11194         whether the designated type is discriminated with a constrained partial
11195         view and require static matching in that case.
11196         Add local variable Des_Btyp. The Designated_Type
11197         of an access to incomplete subtype is either its non-limited view if
11198         coming from a limited with or its etype if regular incomplete subtype.
11199
11200         * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
11201         Fix predicate to identify and allow cases of (expander-generated)
11202         references to tag of designated object of a RACW.
11203         (Validate_Static_Object_Name): In Ada 2005, a formal object is
11204         non-static, and therefore cannot appear as a primary in a preelaborable
11205         package.
11206         (Has_Stream_Attribute_Definition): New subprogram, abstracted from
11207         Has_Read_Write_Attributes.
11208         (Has_Read_Write_Attributes): Reimplement in termes of
11209         Has_Stream_Attribute_Definition.
11210         (Missing_Read_Write_Attributes): When checking component types in a
11211         record, unconditionally call Missing_Read_Write_Attributes recursively
11212         (remove guard checking for Is_Record_Type / Is_Access_Type).
11213
11214 2006-10-31  Robert Dewar  <dewar@adacore.com>
11215
11216         * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
11217         useless assignments here and conditionalize it on absence of exception
11218         handlers.
11219         (Analyze_Exception_Handlers): Small code reorganization of error
11220         detection code, for new handling of formal packages.
11221
11222 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
11223             Hristian Kirtchev  <kirtchev@adacore.com>
11224
11225         * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
11226         that has been constant-folded, preserve information of original tree,
11227         for ASIS uses.
11228         (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
11229         generated private extension declaration if the formal derived type is
11230         synchronized. Carry synchronized present over to the generated private
11231         extension.
11232         (Validate_Derived_Type_Instance): Ensure that the actual of a
11233         synchronized formal derived type is a synchronized tagged type.
11234         (Instantiate_Formal_Package): When creating the instantiation used to
11235         validate the actual package of a formal declared without a box, check
11236         whether the formal itself depends on a prior actual.
11237         (Instantiate_Formal_Subprogram): Create new entities for the defining
11238         identifiers of the formals in the renaming declaration, for ASIS use.
11239         (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
11240         a renaming declaration or a subtype declaration for an actual in an
11241         instance, capture location information of declaration in generic, for
11242         ASIS use.
11243         (Instantiate_Formal_Package): Add comments on needed additional tests.
11244         AI-317 (partial parametrization) is fully implemented.
11245         (Validate_Private_Type_Instance): Add check for actual which
11246         must have preelaborable initialization
11247         Use new // insertion for some continuation messages
11248         (Analyze_Formal_Object_Declaration): Change usage of Expression to
11249         Default_Expression. Add type retrieval when the declaration has an
11250         access definition. Update premature usage of incomplete type check.
11251         (Check_Access_Definition): New subsidiary routine. Check whether the
11252         current compilation version is Ada 05 and the supplied node has an
11253         access definition.
11254         (Instantiate object): Alphabetize local variables. Handle the creation
11255         of new renaming declarations with respect to the kind of definition
11256         used - either an access definition or a subtype mark. Guard against
11257         unnecessary error message in the context of anonymous access types after
11258         they have been resolved. Add check for required null exclusion in a
11259         formal object declaration.
11260         (Switch_View): A private subtype of a non-private type needs to be
11261         switched (the base type can have been switched without its private
11262         dependents because of the last branch of Check_Private_View.
11263         (Check_Private_View): Do not recompute Base_Type (T), instead use cached
11264         value from BT.
11265         (Instantiate_Type): Emit an error message whenever a class-wide type of
11266         a tagged incomplete type is used as a generic actual.
11267         (Find_Actual_Type): Extend routine to handle a component type in a child
11268         unit that is imported from a formal package in a parent.
11269         (Validate_Derived_Type_Instance): Check that analyzed formal and actual
11270         agree on constrainedness, rather than checking against ultimate ancestor
11271         (Instantiate_Subprogram_Body): Create a cross-reference link to the
11272         generic body, for navigation purposes.
11273
11274 2006-10-31  Robert Dewar  <dewar@adacore.com>
11275             Thomas Quinot  <quinot@adacore.com>
11276
11277         * sem_ch13.adb: Storage pool cannot be given for access to subprogram
11278         type.
11279         (New_Stream_Subprogram): When processing an attribute definition clause
11280         for a stream-oriented subprogram, record an entity node occurring at
11281         the point of clause to use for checking the visibility of the clause,
11282         as defined by 8.3(23) as amended by AI-195.
11283         (New_Stream_Subprogram): New procedure, factoring behaviour from both
11284          New_Stream_Function and New_Stream_Procedure.
11285         (New_Stream_Function, New_Stream_Procedure): Removed.
11286         (Analyze_Attribute_Definition_Clause, case Address): Check new
11287         Alignment_Check check
11288
11289 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
11290             Javier Miranda  <miranda@adacore.com>
11291             Robert Dewar  <dewar@adacore.com>
11292
11293         * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
11294         generate the same errors compiling under -gnatc.
11295         (Try_Object_Operation): If no candidate interpretation succeeds, but
11296         there is at least one primitive operation with the right name, report
11297         error in call rather than on a malformed selected component.
11298         (Analyze_Selected_Component): If the prefix is an incomplete type from
11299         a limited view, and the full view is available, use the full view to
11300         determine whether this is a prefixed call to a primitive operation.
11301         (Operator_Check): Verify that a candidate interpretation is a binary
11302         operation before checking the type of its second formal.
11303         (Analyze_Call): Add additional warnings for function call contexts not
11304         yet supported.
11305         (Analyze_Allocator): Move the check for "initialization not allowed for
11306         limited types" after analyzing the expression. This is necessary,
11307         because OK_For_Limited_Init looks at the structure of the expression.
11308         Before analysis, we don't necessarily know what sort of expression it
11309         is. For example, we don't know whether F(X) is a function call or an
11310         indexed component; the former is legal in Ada 2005; the latter is not.
11311         (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
11312         were missing. We also didn't handle qualified expressions. Now also
11313         allow function calls. Use new common routine OK_For_Limited_Init.
11314         (Analyze_Type_Conversion): Do not perform some legality checks in an
11315         instance, because the error message will be redundant or spurious.
11316         (Analyze_Overloaded_Selected_Component): Do not do style check when
11317         setting an entity, since we do not know it is the right entity yet.
11318         (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
11319         (Analyze_Overloaded_Selected_Component): Same change
11320         (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
11321         since regular incomplete subtypes are transformed into corresponding
11322         subtypes of their full views.
11323         (Complete_Object_Operation): Treat name of transformed subprogram call
11324         as coming from source, for browsing purposes.
11325         (Try_Primitive_Operation): If formal is an access parameter, compare
11326         with base type of object to determine whether it is a primitive
11327         operation.
11328         (Operator_Check): If no interpretation of the operator matches, check
11329         whether a use clause on any candidate might make the operation legal.
11330         (Try_Class_Wide_Operation): Check whether the first parameter is an
11331         access type whose designated type is class-wide.
11332
11333 2006-10-31  Robert Dewar  <dewar@adacore.com>
11334             Ed Schonberg  <schonberg@adacore.com>
11335             Gary Dismukes  <dismukes@adacore.com>
11336
11337         * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
11338         warn on infinite loops.
11339         Add \\ to some continuation messages
11340         (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
11341         (Process_Bounds): If the bounds are integer literals that result from
11342         constant-folding, and they carry a user-defined type, preserve that type
11343         rather than treating this as an integer range.
11344         (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
11345         (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
11346         (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
11347         left hand side of assignment.
11348         (Analyze_Assignment): Add suport to manage assigments to the attribute
11349         priority of a protected object.
11350         (Check_Possible_Current_Value_Condition): Allow fully qualified names
11351         not just identifiers.
11352         (Check_Possible_Current_Value_Condition): Acquire left operand of AND
11353         or AND THEN for possible tracking.
11354         (Analyze_Iteration_Scheme): Check for setting Current_Value for the
11355         case of while loops so we can track values in the loop body.
11356
11357 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
11358             Hristian Kirtchev  <kirtchev@adacore.com>
11359             Bob Duff  <duff@adacore.com>
11360
11361         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
11362         procedure cannot be a protected operation (it is a basic_declaration,
11363         not a subprogram_declaration).
11364         (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
11365         Subp. Add logic for entry processing.
11366         (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
11367         Determine whether an entry or subprogram of a protected or task type
11368         override an inherited primitive of an implemented interface.
11369         (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
11370         Update the actual used in calls to Check_Overriding_Indicator.
11371         (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
11372         generate the proper reference to the parent unit, for cross-reference.
11373         (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
11374         Is_Formal.
11375         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
11376         (Add_Extra_Formal): Revise procedure to allow passing in associated
11377         entity, scope, and name suffix, and handle setting of the new
11378         Extra_Formals field.
11379         (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
11380         pass new parameters. Add support for adding the new extra access formal
11381         for functions whose calls are treated as build-in-place.
11382         (Analyze_A_Return_Statement): Correct casing in error message.
11383         Move Pop_Scope to after Analyze_Function_Return, because an extended
11384         return statement really is a full-fledged scope. Otherwise, visibility
11385         doesn't work right. Correct use of "\" for continuation messages.
11386         (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
11387         evilly trying to call Analyze_Object_Declaration directly. Otherwise,
11388         the node doesn't get properly marked as analyzed.
11389         (Analyze_Subprogram_Body): If subprogram is a function that returns
11390         an anonymous access type that denotes a task, build a Master Entity
11391         for it.
11392         (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
11393         proper usage of null exclusion in a result definition.
11394         (Process_Formals): Code cleanup and new error message.
11395         (Process_Formals): Detect incorrect application of null exclusion to
11396         non-access types.
11397         (Conforming_Types): Handle conformance between [sub]types and itypes
11398          generated for entities that have null exclusions applied to them.
11399         (Maybe_Primitive_Operation): Add an additional type retrieval when the
11400          base type is an access subtype. This case arrises with null exclusions.
11401         (New_Overloaded_Entity): Do not remove the overriden entity from the
11402         homonym chain if it corresponds with an abstract interface primitive.
11403         (Process_Formals): Replace membership test agains Incomplete_Kind with a
11404         call to the synthesized predicate Is_Incomplete_Type.
11405         (Analyze_Subprogram_Body): Check wrong placement of abstract interface
11406         primitives.
11407         (Analyze_Subprogram_Declaration): Check that abstract interface
11408         primitives are abstract or null.
11409         (Analyze_Subprogram_Specification): Remove previous check for abstract
11410         interfaces because it was not complete.
11411         (Has_Interface_Formals): Removed.
11412
11413 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
11414             Javier Miranda  <miranda@adacore.com>
11415
11416         * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
11417         of Analyze_Package_Body, to create Itype references for anonymous
11418         access types created in the package declaration, whose designated types
11419         may have only a limited view.
11420         (Analyze_Package_Specification): For the private part of a nested
11421         package, install private_with_clauses of enclosing compilation unit if
11422         we are in its visible part.
11423         (Declare_Inherited_Private_Subprograms): Complete barrier
11424         to ensure that the primitive operation has an alias to some parent
11425         primitive. This is now required because, after the changes done for the
11426         implementation of abstract interfaces, the contents of the list of
11427         primitives has entities whose alias attribute references entities of
11428         such list of primitives.
11429         (Analyze_Package_Specification): Simplify code that handles parent units
11430         of instances and formal packages.
11431         (Uninstall_Declarations): Check the convention consistency among
11432         primitive overriding operations of a tagged record type.
11433
11434 2006-10-31  Robert Dewar  <dewar@adacore.com>
11435             Hristian Kirtchev  <kirtchev@adacore.com>
11436             Javier Miranda  <miranda@adacore.com>
11437             Ed Schonberg  <schonberg@adacore.com>
11438
11439         * sem_ch8.adb: Minor error msg rewording
11440         (Undefined): When checking for misspellings, invert arguments (to get
11441         expected and found set right)
11442         (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
11443         (Analyze_Generic_Renaming): Same fix
11444         (Use_One_Package): Do not take into account the internal entities of
11445         abstract interfaces during the analysis of entities that are marked
11446         as potentially use-visible.
11447         (Find_Type): Handle the case of an attribute reference for
11448         implementation defined attribute Stub_Type (simply let the analysis of
11449         the attribute reference rewrite it).
11450         (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
11451         type that appears in a Use_Type clause.
11452         (Analyze_Object_Renaming): Add support for renaming of the Priority
11453         attribute.
11454         (Find_Type): In Ada 2005, a task type can be used within its own body,
11455         when it appears in an access definition.
11456         (Analyze_Object_Renaming): Remove warning on null_exclusion.
11457         (Analyze_Object_Renaming): Introduce checks for required null exclusion
11458          in a formal object declaration or in a subtype declaration.
11459         (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
11460         (Check_Null_Exclusion): New local routine to
11461         Analyze_Subprogram_Renaming. Check whether the formals and return
11462         profile of a renamed subprogram have required null exclusions when
11463         their counterparts of the renaming already impose them.
11464         (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
11465         Determine whether an entity is inside a generic scope.
11466         (In_Open_Scope): First pass of documentation update.
11467         (Find_Expanded_Name): Add support for shadow entities associated with
11468         limited withed packages. This is required to handle nested packages.
11469         (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
11470         that makes a renaming of a limited withed package illegal.
11471
11472 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
11473             Ed Schonberg  <schonberg@adacore.com>
11474
11475         * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
11476         Check_Overriding_Indicator.
11477         (Analyze_Task_Definition): Ditto.
11478         (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
11479         (Check_Overriding_Indicator): To find overridden interface operation,
11480         examine only homonyms that have an explicit subprogram declaration, not
11481         inherited operations created by an unrelated type derivation.
11482         (Check_Overriding_Indicator): When checking for the presence of "null"
11483         in a procedure, ensure that the queried node is a procedure
11484         specification.
11485         (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
11486         type when the formal is an access to variable.
11487         (Analyze_Protected_Type): Add check for Preelaborable_Initialization
11488         (Analyze_Task_Type): Same addition
11489         (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
11490         provide navigation capabilities for entries.
11491
11492 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
11493             Ed Schonberg  <schonberg@adacore.com>
11494             Javier Miranda  <miranda@adacore.com>
11495             Gary Dismukes  <dismukes@adacore.com>
11496
11497         * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
11498         inherited from an interface ancestor by another interface in the
11499         context of an instance as 'late'.
11500         (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
11501         of a call to a function that dispatches on access result.
11502         (Check_Dispatching_Operation): In case of late overriding of a primitive
11503         that covers abstract interface subprograms we register it in all the
11504         secondary dispatch tables associated with abstract interfaces.
11505         (Check_Dispatching_Call): Add check that a dispatching call is not made
11506         to a function with a controlling result of a limited type. This is a
11507         current implementation restriction.
11508         (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
11509         (Check_Dispatching_Operation): Do no emit a warning if the controlling
11510         argument is an interface type that is a generic formal.
11511         (Is_Interface_Subprogram): Removed.
11512         (Check_Dispatching_Operation): If the subprogram is not a dispatching
11513         operation, check the formals to handle the case in which it is
11514         associated with an abstract interface type.
11515
11516 2006-10-31  Robert Dewar  <dewar@adacore.com>
11517             Ed Schonberg  <schonberg@adacore.com>
11518
11519         * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
11520         Add new calls to this procedure during traversal
11521         (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
11522         another unit if expansion is disabled.
11523
11524 2006-10-31  Robert Dewar  <dewar@adacore.com>
11525
11526         * sem_eval.adb (Compile_Time_Compare): Make use of information from
11527         Current_Value in the conditional case, to evaluate additional
11528         comparisons at compile time.
11529
11530 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
11531             Hristian Kirtchev  <kirtchev@adacore.com>
11532             Javier Miranda  <miranda@adacore.com>
11533
11534         * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
11535         subprogram type to provide better diagnostics in case of ambiguity.
11536         (Covers): Handle coverage of formal and actual anonymous access types in
11537         the context of generic instantiation.
11538         (Covers/Interface_Present_In_Ancestors): Use the base type to manage
11539         abstract interface types; this is required to handle concurrent types
11540         with discriminants and abstract interface types.
11541         (Covers): Include type coverage of both regular incomplete subtypes and
11542         incomplete subtypes of incomplete type visibles through a limited with
11543         clause.
11544
11545 2006-10-31  Robert Dewar  <dewar@adacore.com>
11546             Hristian Kirtchev  <kirtchev@adacore.com>
11547             Ed Schonberg  <schonberg@adacore.com>
11548
11549         * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
11550         messages for entities in packages which are not used.
11551         (Collect_Synchronized_Interfaces): New procedure.
11552         (Overrides_Synchronized_Primitive): New function.
11553         (Denotes_Discriminant): Extend predicate to apply to task types.
11554         Add missing continuation marks in error msgs
11555         (Unqualify): New function for removing zero or more levels of
11556         qualification from an expression. There are numerous places where this
11557         ought to be used, but we currently only deal properly with zero or one
11558         level.
11559         (In_Instance); The analysis of the actuals in the instantiation of a
11560         child unit is not within an instantiation, even though the parent
11561         instance is on the scope stack.
11562         (Safe_To_Capture_Value): Exclude the case of variables that are
11563         renamings.
11564         (Check_Obsolescent): Removed
11565         (Is_Aliased_View): A reference to an enclosing instance in an aggregate
11566         is an aliased view, even when rewritten as a reference to the target
11567         object in an assignment.
11568         (Get_Subprogram_Entity): New function
11569         (Known_To_Be_Assigned): New function
11570         (Type_Access_Level): Compute properly the access level of a return
11571         subtype that is an anonymous access type.
11572         (Explain_Limited_Type): Correct use of "\" for continuation messages.
11573         (Is_Transfer): The new extended_return_statement causes a transfer of
11574         control.
11575         (Has_Preelaborable_Initialization): New function
11576         (Has_Null_Exclusion): New function. Given a node N, determine whether it
11577         has a null exclusion depending on its Nkind.
11578         Change Is_Lvalue to May_Be_Lvalue
11579         (May_Be_Lvalue): Extensive additional code to deal with subprogram
11580         arguments (IN parameters are not Lvalues, IN OUT parameters are).
11581         (Safe_To_Capture_Value): Extend functionality so it can be used for
11582         the current value condition case.
11583         (Has_Compatible_Alignment): New function
11584         (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
11585         objects to handle the Ada 2005 case, where aliasedness no longer implies
11586         that the object is constrained. In particular, for dereferenced names,
11587         the designated object must be assumed to be unconstrained.
11588         (Kill_Current_Values): Properly deal with the case where we encounter
11589         a loop in the scope chain.
11590         (Safe_To_Capture_Value): Do not let a loop stop us from capturing
11591         a value.
11592         (Compile_Time_Constraint_Error): Improve error message in error case
11593
11594         * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
11595         associated with entities of abstract interface primitives.
11596         Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
11597
11598 2006-10-31  Robert Dewar  <dewar@adacore.com>
11599
11600         * s-osinte-tru64.adb: 
11601         Mark Asm statements Volatile to prevent warnings (seems a
11602         reasonable change anyway)
11603         Fixes new warnings
11604
11605         * s-mastop-irix.adb: Add Volatile to Asm statements
11606         Suppresses warning, and seems appropriate in any case
11607
11608         * s-osinte-vms.adb: Add Volatile to Asm statement
11609
11610         * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
11611
11612         * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
11613         returned.
11614         Add call to Check_Code_Statement
11615
11616 2006-10-31  Robert Dewar  <dewar@adacore.com>
11617             Ed Schonberg  <schonberg@adacore.com>
11618             Bob Duff  <duff@adacore.com>
11619
11620         * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
11621         Synchronized_Present): Add Formal_Derived_Type_Definition and
11622         Private_Extension_Declaration to the list of assertions.
11623         (Is_Entry_Barrier_Function): New flag
11624         (Has_Self_Reference): New flag on aggregates, to indicate that they
11625         contain a reference to the enclosing type, inserted through a default
11626         initialization.
11627         (Next_Rep_Item): Move from Node4 to Node5.
11628         (Entity): Add this field for N_Attribute_Definition_Clause.
11629         (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
11630         (N_Return_Object_Declaration): Remove this node kind. We now use
11631         N_Object_Declaration instead.
11632         (Actual_Designated_Subtype): Move to a different place to make room in
11633         N_Extended_Return_Statement.
11634         (Procedure_To_Call): Move to a different place to make room in
11635         N_Extended_Return_Statement.
11636         (Return_Type): Removed this field to make room in return statements
11637         (both kinds).
11638         (Return_Statement_Entity): New field in return statements, in part to
11639         replace Return_Type, and in part to support the fact that return
11640         statements are now pushed on the scope stack during semantic analysis.
11641         (Return_Object_Declarations): New field to support extended return
11642         statements.
11643         (N_Extended_Return_Statement): New node for extended_return_statement
11644         nonterminal.
11645         (N_Return_Object_Declaration): New node for part of
11646         extended_return_statement nonterminal. Needed because all the necessary
11647         fields won't fit in N_Extended_Return_Statement.
11648         Generic_associations now carry the Box_Present flag, to indicate a
11649         default for an actual in a partially parametrized formal package.
11650
11651         * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
11652         (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
11653         and for the new predefined dispatching policies: EDF_Across_Priorities,
11654         Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
11655         Introduce new name Stub_Type for implementation defined attribute.
11656         Add pragma Preelaborable_Initialization
11657         Add entry for Priority attribute.
11658         Add Pragma_Wide_Character_Encoding
11659         (Get_Convention_Name): Given a convention id, this function returns the
11660         corresponding name id from the names table.
11661
11662 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
11663             Robert Dewar  <dewar@adacore.com>
11664             Bob Duff  <duff@adacore.com>
11665
11666         * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
11667         print null exclusion twice in the case of an access definition,
11668         Implement new -gnatL switch
11669         Remove N_Return_Object_Declaration. We now use
11670         N_Object_Declaration instead. Implement the case for
11671         N_Extended_Return_Statement. Alphabetize the cases.
11672         Add cases for new nodes N_Extended_Return_Statement and
11673         N_Return_Object_Declaration. The code is not yet written.
11674         Update the output for N_Formal_Object_Declaration
11675         and N_Object_Renaming_Declaration.
11676         (Write_Itype): Account for the case of a modular integer subtype whose
11677         base type is private.
11678
11679 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
11680
11681         * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
11682         Remove elaboration code, now done in the binder.
11683
11684         * s-rident.ads: Make this unit Preelaborate.
11685         (No_Restrictions): New constant used to clean up code and follow
11686         preelaborate constraints.
11687
11688         * s-stalib.adb: 
11689         Add System.Restrictions dependence, referenced directly from the
11690         binder generated file.
11691
11692 2006-10-31  Gary Dismukes  <dismukes@adacore.com>
11693
11694         * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
11695         True when AAMP extended floating-point is in use (48-bit). Change type
11696         ByteLF to ByteLLF, add new array type ByteLF and condition the size of
11697         the two byte array types on AFloat. Change type of IV_Ilf overlay
11698         variable from Byte8 to ByteLF. Add appropriate initializations of
11699         floating-point overlays for AAMP cases.
11700
11701 2006-10-31  Javier Miranda  <miranda@adacore.com>
11702
11703         * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
11704         (Get_Ceiling): New subprogram that returns
11705         the ceiling priority of the protected object.
11706         (Set_Ceiling): New subprogram that sets the new ceiling priority of
11707         the protected object.
11708
11709         * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
11710
11711         * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
11712
11713 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
11714
11715         * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
11716         requeuing to the same protected object to give higher priority tasks
11717         the opportunity to execute.
11718
11719 2006-10-31  Robert Dewar  <dewar@adacore.com>
11720
11721         * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
11722         add more precise check for the character sequence that follows '[' to
11723         avoid possible confusion in case if '[' is the last character of a
11724         string literals.
11725         (Scan_Wide): Always allow brackets encoding
11726
11727 2006-10-31  Olivier Hainque  <hainque@adacore.com>
11728
11729         * s-stchop.ads: make this unit preelaborate. This is desirable in
11730         general and made mandatory by the use of this unit by s-taprop which
11731         is itself preelaborate.
11732
11733         * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
11734         Td_Events component.
11735
11736 2006-10-31  Vincent Celier  <celier@adacore.com>
11737
11738         * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
11739         in file names.
11740
11741 2006-10-31  Vincent Celier  <celier@adacore.com>
11742
11743         * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
11744
11745 2006-10-31  Vincent Celier  <celier@adacore.com>
11746
11747         * makegpr.adb (Check_Compilation_Needed): Take into account path names
11748         with spaces.
11749         (Check_Compilation_Needed): When checking a C or C++ source, do not
11750         resolve symbolic links.
11751         (Display_Command): New Boolean parameter Ellipse, defaulted to False.
11752         When not in verbose mode and Ellipse is True, display "..." for the
11753         first argument with Display set to False.
11754         (Build_Global_Archive): Always set Display True for the first object
11755         file. Call Display_Command with Ellipse set to True.
11756
11757 2006-10-31  Matt Heaney  <heaney@adacore.com>
11758
11759         * a-crbtgo.ads: Commented each subprogram
11760
11761         * a-crbtgo.adb: Added reference to book from which algorithms were
11762         adapted.
11763
11764         * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
11765         indicate which child.
11766         (Generic_Conditional_Insert): changed parameter name from "Success" to
11767         "Inserted".
11768         (Generic_Unconditional_Insert_With_Hint): improved algorithm
11769
11770         * a-coorse.adb (Replace_Element): changed parameter name in call to
11771         conditional insert operation.
11772
11773         * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
11774
11775         * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
11776         Generic_Iteration
11777
11778         * a-ciorse.adb (Replace_Element): changed parameter name in call to
11779         conditional insert operation.
11780
11781         * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
11782         Generic_Iteration.
11783
11784         * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
11785         instead of mode inout.
11786
11787         * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
11788         draft
11789         (Generic_Read): preserve existing buckets array if possible
11790         (Generic_Write): don't send buckets array length anymore
11791
11792         * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
11793         instead of mode inout.
11794
11795         * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
11796         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
11797
11798         * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
11799         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
11800         (Replace_Element): local operation is now an instantiation
11801
11802         * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
11803         check current length.
11804         (Generic_Replace_Element): new operation
11805
11806 2006-10-31  Doug Rupp  <rupp@adacore.com>
11807
11808         * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
11809         Call TBK$SYMBOLIZE without omitting parameters.
11810
11811 2006-10-31  Vincent Celier  <celier@adacore.com>
11812
11813         * symbols-processing-vms-ia64.adb,
11814         symbols-processing-vms-alpha.adb (Process): Do not include symbols
11815         that come from generic instantiations in bodies.
11816
11817 2006-10-31  Pat Rogers  <rogers@adacore.com>
11818
11819         * a-rttiev.ads, a-rttiev.adb: 
11820         This is a significant redesign primarily for the sake of automatic
11821         timer task termination but also to fix a design flaw.
11822         Therefore we are now using an RTS lock, instead of a protected
11823         object, to provide mutual exclusion to the queue of pending events
11824         and the type Timing_Event is no longer a protected type.
11825
11826 2006-10-31  Robert Dewar  <dewar@adacore.com>
11827             Cyrille Comar  <comar@adacore.com>
11828             Ben Brosgol  <brosgol@adacore.com>
11829
11830         * debug.adb:  Update flags documentation
11831
11832         * gnat_ugn.texi: Add documentation for new -gnatwq switch
11833         Clean up documentation for several other warning switches
11834         Clarify how task stack size can be specified with various
11835         versions of Windows.
11836         Add note that -gnatVo includes ranges including loops
11837         Add documentation for -gnatL switch
11838         Add note on elaboration warning for initializing variables
11839         Add documentation for new -gnatwt warning switch
11840         Document new form of pragma Warnings (On|Off, string)
11841         Add comment on use of pragma Warnings to control warnings
11842         Add documentation for -gnatjnn switch
11843         Modify section on interfacing with C for VMS 64-bit.
11844         Add doc for -gnatVe/E
11845         Add documentation of new warning flags -gnatww/-gnatwW
11846         Add warnings about address clause overlays to list of warnings
11847         (Exception Handling Control): Document that the option --RTS must be
11848         used consistently for gcc and gnatbind.
11849         Clarify that inlining is not always possible
11850         Update documentation on pragma Unchecked_Union.
11851
11852         * gnat_rm.texi: 
11853         Add documentation for new extended version of pragma Obsolescent
11854         Add documentation for implementation defined attribute 'Stub_Type.
11855         Add note on use of Volatile in asm statements
11856         Add documentation on use of pragma Unreferenced in context clause
11857         Document new form of pragma Warnings (On|Off, pattern)
11858         Document pragma Wide_Character_Encoding
11859         Add note that pragma Restrictions (No_Elaboration_Code) is only fully
11860         enforced if code generation is active.
11861         Add section on pragma Suppress to document GNAT specific check
11862         Alignment_Check
11863         Clarify difference between No_Dispatching_Calls & No_Dispatch.
11864         Add documentation for pragma Restrictions (No_Elaboration_Code)
11865
11866         * gnat-style.texi: 
11867         Add comments on layout of subprogram local variables in the
11868         presence of nested subprograms.
11869
11870         * ug_words: Resync.
11871
11872         * elists.ads: Minor reformatting
11873         Node returns Node_Or_Entity_Id (doc change only)
11874
11875         * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
11876
11877         * g-arrspl.ads (Create): Update comments.
11878
11879         * sem.ads: Add details on the handling of the scope stack.
11880
11881         * usage.adb: Update documentation.
11882
11883         * validsw.ads, validsw.adb: 
11884         Add definition of Validity_Check_Components and implement -gnatVe/E
11885
11886         * vms_data.ads: Add missing VMS qualifiers.
11887
11888         * s-addope.ads: Add documentation on overflow and divide by zero
11889
11890 2006-10-31  Robert Dewar  <dewar@adacore.com>
11891             Thomas Quinot  <quinot@adacore.com>
11892             Arnaud Charlet  <charlet@adacore.com>
11893
11894         * fmap.adb: Put routines in alpha order
11895
11896         * g-boumai.ads: Remove redundant 'in' keywords
11897
11898         * g-cgi.adb: Minor reformatting
11899
11900         * g-cgi.ads: Remove redundant 'in' keywords
11901
11902         * get_targ.adb: Put routines in alpha order
11903
11904         * prj-attr.ads: Minor reformatting
11905
11906         * s-atacco.ads: Minor reformatting
11907
11908         * scn.adb: Put routines in alpha order
11909
11910         * sinput-l.adb: Minor comment fix
11911
11912         * sinput-p.adb: Minor comment fix
11913
11914         * s-maccod.ads: Minor reformatting
11915
11916         * s-memory.adb: Minor reformatting
11917
11918         * s-htable.adb: Fix typo in comment.
11919
11920         * s-secsta.adb: Minor comment update.
11921
11922         * s-soflin.adb: Minor reformatting
11923
11924         * s-stoele.ads: 
11925         Add comment about odd qualification in Storage_Offset declaration
11926
11927         * s-strxdr.adb: 
11928         Remove unnecessary 'in' keywords for formal parameters.
11929
11930         * treeprs.adt: Minor reformatting
11931
11932         * urealp.adb: Put routines in alpha order
11933
11934         * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
11935         taking string.
11936
11937         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
11938
11939         * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
11940
11941         * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
11942         workaround as on other platforms.
11943
11944         * g-eacodu-vms.adb: Remove redundant 'in' keywords
11945         * g-expect-vms.adb: Remove redundant 'in' keywords
11946
11947         * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
11948         clear error message if the list-of-files file cannot be opened.
11949
11950         * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
11951         equality operator is always visible.
11952
11953         * lang.opt: Woverlength-strings: New option.
11954
11955         * nmake.adt: 
11956         Update copyright, since nmake.ads and nmake.adb have changed.
11957
11958         * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
11959         (Binder_Output_Time_Stamps_Set): removed.
11960         (Old_Binder_Output_Time_Stamp): idem.
11961         (New_Binder_Output_Time_Stamp): idem.
11962         (Recording_Time_From_Last_Bind): idem.
11963         (Recording_Time_From_Last_Bind): Make constant.
11964
11965         * output.ads, output.adb (Write_Str): Allow LF characters
11966         (Write_Spaces): New procedure
11967
11968         * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
11969
11970         * inline.adb: Minor reformatting
11971
11972         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
11973
11974         * s-mastop-vms.adb: Remove redundant 'in' keywords
11975
11976         * s-osprim-vms.adb: Remove redundant 'in' keywords
11977
11978         * s-trafor-default.adb: Remove redundant 'in' keywords
11979
11980         * 9drpc.adb: Remove redundant 'in' keywords
11981
11982         * s-osinte-mingw.ads: Minor reformatting
11983
11984         * s-inmaop-posix.adb: Minor reformatting
11985
11986         * a-direio.ads: Remove quotes from Compile_Time_Warning message
11987
11988         * a-exexda.adb: Minor code reorganization
11989
11990         * a-filico.adb: Minor reformatting
11991
11992         * a-finali.adb: Minor reformatting
11993
11994         * a-nudira.ads: Remove quote from Compile_Time_Warning message
11995
11996         * a-numeri.ads: Minor reformatting
11997
11998         * a-sequio.ads: Remove quotes from Compile_Time_Warning message
11999
12000         * exp_pakd.ads: Fix obsolete comment
12001
12002         * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
12003         a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
12004         Probably not a bug, but certainly neater and more efficient.
12005
12006         * a-tienio.adb: Minor reformatting
12007
12008         * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
12009         Avoid assuming low bound of string is 1.
12010
12011         * gnatbind.adb: Change Bindusg to package and rename procedure as
12012         Display, which now ensures that it only outputs usage information once.
12013         (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
12014
12015         * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
12016         Table'First.
12017
12018         * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
12019         warning.
12020         (Match): Add pragma Assert to ensure that Matches'First is zero
12021
12022         * g-regpat.ads (Match): Document that Matches lower bound must be zero
12023
12024         * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
12025         documented preconditions (also kills warnings about bad indexes).
12026
12027         * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
12028         is 1.
12029         (Build_Import_Library): Ditto;
12030
12031         * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
12032
12033         * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
12034
12035         * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
12036         lower bound of choice table is 1.
12037
12038         * sem_case.ads (Analyze_Choices): Document that lower bound of
12039         Choice_Table is 1.
12040
12041         * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
12042         string is 1.
12043
12044         * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
12045         and add appropriate Assert pragma to suppress warnings.
12046
12047         * atree.h, atree.ads, atree.adb
12048         Change Elist24 to Elist25
12049         Add definitions of Field28 and Node28
12050         (Traverse_Field): Use new syntactic parent table in sinfo.
12051
12052         * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
12053
12054         * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
12055
12056         * exp_tss.adb: Put routines in alpha order
12057
12058         * fe.h: Remove redundant declarations.
12059
12060 2006-10-23 Rafael Avila de Espindola  <rafael.espindola@gmail.com>
12061
12062         * utils.c (builtin_function): Rename to gnat_builtin_function.
12063         Move common code to add_builtin_function.
12064         * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
12065         gnat_builtin_function.
12066         * gigi.h (builtin_function): Rename to gnat_builtin_function.
12067         Change the signature.
12068
12069 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
12070
12071         * Makefile.in: Add TEXI2PDF definition.
12072         * Make-lang.in: Add "ada.pdf" target.
12073
12074 2006-10-03  Kazu Hirata  <kazu@codesourcery.com>
12075
12076         * decl.c, utils.c: Fix comment typos.
12077         * utils.c: Fix a typo.
12078
12079 2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>
12080
12081         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
12082         on "pure" Ada subprograms if SJLJ exceptions are used.
12083         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
12084         on the declaration node of JMPBUF_SAVE.
12085         * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
12086         of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
12087         * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
12088
12089 2006-08-20  Laurent GUERBY  <laurent@guerby.net>
12090
12091         PR ada/28716
12092         g-socket.adb (Bind_Socket): Call Set_Address.
12093
12094 2006-09-15  Eric Botcazou  <ebotcazou@adacore.com>
12095
12096         PR ada/15802
12097         * decl.c (same_discriminant_p): New static function.
12098         (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
12099         subtype and we have discriminants, fix up the COMPONENT_REFs
12100         for the discriminants to make them reference the corresponding
12101         fields of the parent subtype after it has been built.
12102
12103 2006-09-15  Roger Sayle  <roger@eyesopen.com>
12104
12105         PR ada/18817
12106         * utils.c (max_size): Perform constant folding of (A ? B : C) - D
12107         into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
12108
12109 2006-09-13  Olivier Hainque  <hainque@adacore.com>
12110
12111         PR ada/29025
12112         * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
12113         of a SAVE_EXPR, just make the operand addressable/not-readonly and
12114         let the common gimplifier code make and propagate a temporary copy.
12115         (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
12116         out/in-out actuals and defer setting the addressable/readonly bits
12117         to the gimplifier.
12118
12119 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
12120
12121         PR ada/28591
12122         * decl.c (components_to_record): Defer emitting debug info for the
12123         record type associated with the variant until after we are sure to
12124         actually use it.
12125
12126 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
12127
12128         PR ada/21952
12129         * gigi.h (gnat_internal_attribute_table): Declare.
12130         * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
12131         * utils.c (gnat_internal_attribute_table): New global variable.
12132         (builtin_function): Always call decl_attributes on the builtin.
12133         (handle_const_attribute): New static function.
12134         (handle_nothrow_attribute): Likewise.
12135
12136 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
12137
12138         * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
12139
12140 2006-06-23  Olivier Hainque  <hainque@adacore.com>
12141
12142         * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
12143         not been able to get a constant upper bound from TYPE_SIZE_UNIT.
12144
12145 2006-06-20  James A. Morrison  <phython@gcc.gnu.org>
12146             Eric Botcazou  <ebotcazou@adacore.com>
12147
12148         PR ada/18692
12149         * Make-lang.in: Add check-gnat to lang_checks.  Rename existing
12150         check-gnat into check-acats.
12151
12152 2006-06-17  Karl Berry  <karl@gnu.org>
12153
12154         * gnat-style.texi (@dircategory): Use "Software development"
12155         instead of "Programming", following the Free Software Directory.
12156
12157 2006-06-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12158
12159         PR ada/27944
12160         * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
12161
12162 2006-06-06  Laurent GUERBY  <laurent@guerby.net>
12163
12164         PR ada/27769
12165         mlib-utl.adb: Use Program_Name.
12166
12167 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
12168
12169         * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
12170         sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
12171         trans.c, utils.c: Fix comment typos.  Follow spelling
12172         conventions.
12173         * gnat_rm.texi, gnat_ugn.texi, : Fix typos.  Follow spelling
12174         conventions.
12175
12176 2006-05-19  Nicolas Setton  <setton@adacore.com>
12177
12178         * misc.c (gnat_dwarf_name): New function.
12179         (LANG_HOOKS_DWARF_NAME): Define to it.
12180
12181 2006-05-14  H.J. Lu  <hongjiu.lu@intel.com>
12182
12183         * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
12184         (ada/misc.o): Likewise.
12185         (ada/utils.o): Likewise.
12186
12187 2006-04-08  Aurelien Jarno  <aurel32@debian.org>
12188
12189         * Makefile.in: Add Ada support for GNU/kFreeBSD.
12190         * s-osinte-kfreebsd-gnu.ads: New file.
12191
12192 2006-03-29  Carlos O'Donell  <carlos@codesourcery.com>
12193
12194         * Make-lang.in: Rename docdir to gcc_docdir.
12195
12196 2006-03-04  Eric Botcazou  <ebotcazou@adacore.com>
12197
12198         * gigi.h (get_ada_base_type): Delete.
12199         * utils2.c (get_ada_base_type): Likewise.
12200         * trans.c (convert_with_check): Operate in the real base type.
12201
12202 2006-03-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12203
12204         * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
12205
12206 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
12207
12208         * utils.c (create_var_decl): Use have_global_bss_p when deciding
12209         whether to make the decl common.
12210
12211 2006-02-20  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
12212
12213         * Make-lang.in (Ada): Remove.
12214         (.PHONY): Remove Ada
12215
12216 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
12217
12218         * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
12219         aggregate, check the interpretations of the other operand to find one
12220         that may be a boolean array.
12221
12222         (Analyze_Selected_Component): Fix flow-of-control typo in case where
12223         the prefix is a private extension.
12224
12225 2006-02-17  Eric Botcazou  <botcazou@adacore.com>
12226
12227         PR ada/26315
12228         * utils2.c (find_common_type): If both input types are BLKmode and
12229         have the same constant size, keep using the first one.
12230
12231         * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
12232
12233         * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
12234
12235         * misc.c (gnat_handle_option): New case for -Woverlength-strings.
12236
12237 2006-02-17  Jose Ruiz  <ruiz@adacore.com>
12238
12239         * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb, 
12240         s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 
12241         s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb, 
12242         s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
12243         Abort_Defer/Undefer pairs to avoid the possibility of a task being
12244         aborted while owning a lock.
12245
12246 2006-02-17  Javier Miranda  <miranda@adacore.com>
12247             Robert Dewar  <dewar@adacore.com>
12248
12249         * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
12250         through an access to class-wide interface we force the displacement of
12251         the pointer to the allocated object to reference the corresponding
12252         secondary dispatch table.
12253         (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
12254         if Long_Shifts are supported on the target, even if 64 bit divides
12255         are not supported (configurable run time mode).
12256         (Expand_N_Type_Conversion): Do validity check if validity checks on
12257         operands are enabled.
12258         (Expand_N_Qualified_Expression): Do validity check if validity checks
12259         on operands are enabled.
12260
12261 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
12262
12263         * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
12264         must be materialized when the renamed expression is an explicit
12265         dereference.
12266
12267 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
12268
12269         * freeze.adb (Statically_Discriminated_Components): Return false if
12270         the bounds of the type of the discriminant are not static expressions.
12271
12272         * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
12273         the bounds of the discriminant type are not static.
12274
12275 2006-02-17  Robert Dewar  <dewar@adacore.com>
12276
12277         * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
12278         then we close To if it is valid.
12279
12280 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
12281
12282         * init.c (facility_resignal_table): new array
12283         (__gnat_default_resignal_p): enhance default predicate to resignal if
12284         VMS condition has one of the predefined facility codes.
12285
12286 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
12287
12288         * Makefile.in: Use VMS64 specialized versions of several units in
12289         Interfaces.C hierarchy to be compatible with HP C default size choices.
12290         Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
12291
12292 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
12293
12294         * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
12295         instantiation, the corresponding entity is the related_instance of the
12296         wrapper package created for the instance.
12297
12298 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
12299
12300         * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
12301         the current instance is nested within another instance in a child unit.
12302
12303 2006-02-17  Javier Miranda  <miranda@adacore.com>
12304             Ed Schonberg  <schonberg@adacore.com>
12305
12306         * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
12307         type we cannot inherit the primitive operations; we inherit the
12308         Corresponding_Record_Type (which has the list of primitive operations).
12309         (Check_Anonymous_Access_Types): When creating anonymous access types for
12310         access components, use Rewrite in order to preserve the tree structure,
12311         for ASIS use.
12312         (Analyze_Object_Declaration): For limited types with access
12313         discriminants with defaults initialized by an aggregate, obtain
12314         subtype from aggregate as for other mutable types.
12315         (Derived_Type_Declaration): If the derived type is a limited interface,
12316         set the corresponding flag (Is_Limited_Record is not sufficient).
12317
12318 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
12319
12320         * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
12321         to inline a function that returns an unconstrained type, the return
12322         expression must be the first variable declared in the body of the
12323         function.
12324
12325 2006-02-17  Javier Miranda  <miranda@adacore.com>
12326
12327         * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
12328         abstract interface type, the static analysis is not enough to know if
12329         the interface is implemented or not by the source tagged type. Hence
12330         we must pass the work to the expander to generate the required code to
12331         evaluate the conversion at run-time.
12332         (Resolve_Equality_Op): Do not apply previous
12333         transformation if expansion is disasbled, to prevent anomalies when
12334         locating global references in a generic unit.
12335
12336 2006-02-17  Vincent Celier  <celier@adacore.com>
12337
12338         * snames.ads, snames.adb: New standard names for new project attributes:
12339         archive_builder, archive_indexer, compiler_pic_option,
12340         config_body_file_name, config_body_file_name_pattern,
12341         config_file_switches, config_file_unique, config_spec_file_name,
12342         config_spec_file_name_pattern, default_builder_switches,
12343         default_global_compiler_switches, default_language,
12344         dependency_file_kind, global_compiler_switches, include_path,
12345         include_path_file, language_kind, linker_executable_option,
12346         linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
12347         roots, runtime_project.
12348
12349 2006-02-17  Matthew Heaney  <heaney@adacore.com>
12350
12351         * a-convec.ads, a-convec.adb: 
12352         (operator "&"): handle potential overflow for large index types
12353         (Insert): removed Contraint_Error when using large index types
12354         (Insert_Space): removed Constraint_Error for large index types
12355         (Length): moved constraint check from Length to Insert
12356
12357         * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
12358         as not null access.
12359         Explicit raise statements now include an exception message.
12360         (operator "&"): handle potential overflow for large index types
12361         (Insert): removed Contraint_Error when using large index types
12362         (Insert_Space): removed Constraint_Error for large index types
12363         (Length): moved constraint check from Length to Insert
12364
12365 2006-02-17  Robert Dewar  <dewar@adacore.com>
12366
12367         * s-wchcnv.adb: Document handling of [ on output (we do not change
12368         this to ["5B"] and the new comments say why not.
12369
12370         * gnat_ugn.texi: 
12371         Add note for -gnatVo that this now includes the cases of type
12372         conversions and qualified expressions.
12373         Add comments on handling of brackets encoding for Text_IO
12374
12375 2006-02-17  Ramon Fernandez  <fernandez@adacore.com>
12376             Thomas Quinot  <quinot@adacore.com>
12377             Robert Dewar  <dewar@adacore.com>
12378             Javier Miranda  <miranda@adacore.com>
12379
12380         * expander.adb: Fix typo in comment
12381
12382         * exp_pakd.adb: Fix typo
12383         Minor comment reformatting.
12384
12385         * g-dyntab.adb: Minor reformatting
12386
12387         * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
12388         aliased subprograms to look for the abstract interface subprogram.
12389
12390 2006-02-16  Eric Botcazou  <ebotcazou@adacore.com>
12391
12392         * env.c (__gnat_setenv): Use size_t.
12393         (__gnat_unsetenv): Likewise.
12394         (__gnat_clearenv): Likewise.
12395
12396 2006-02-16  Arnaud Charlet  <charlet@adacore.com>
12397
12398         * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
12399
12400 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
12401
12402         * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
12403         g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
12404         i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
12405         s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
12406         s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
12407         s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
12408         s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
12409         s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
12410         s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
12411         no longer used.
12412
12413 2006-02-13  Jose Ruiz  <ruiz@adacore.com>
12414
12415         * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
12416         protection against race conditions is not needed.
12417         (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
12418         fallback handler.
12419         (Set_Specific_Handler): Add mutual exclusive access to the specific
12420         handler.
12421         (Specific_Handler): Add mutual exclusive access for retrieving the
12422         specific handler.
12423
12424         * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
12425         back handler.
12426
12427         * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
12428         Fall_Back_Handler and Specific_Handler.
12429
12430         * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
12431         termination handlers.
12432         Set two different owerflow depending on the maximal stack size.
12433
12434         * s-solita.adb (Task_Termination_Handler_T): Document why explicit
12435         protection against race conditions is not needed when executing the
12436         task termination handler.
12437
12438 2006-02-13  Robert Dewar  <dewar@adacore.com>
12439
12440         * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
12441         a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
12442         a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
12443         a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
12444         a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
12445         a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
12446         a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
12447         a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
12448         a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
12449         a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
12450         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
12451         a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
12452         a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
12453         a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
12454         a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
12455         a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
12456         a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
12457         a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
12458         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
12459         a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
12460         g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
12461         g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
12462         mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
12463         prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
12464         s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
12465         s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
12466         s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
12467         s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
12468         s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
12469         s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
12470         a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
12471         fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
12472         par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
12473         system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
12474         reformatting.
12475
12476 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
12477
12478         * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
12479         s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
12480         s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
12481         s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
12482         a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
12483         s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
12484         a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
12485         s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
12486         s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
12487
12488 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
12489
12490         * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads, 
12491         s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads, 
12492         s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads, 
12493         s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads, 
12494         s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads, 
12495         s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
12496         replaced by anonymous access type.
12497         (pthread_sigmask): Now take an access sigset_t
12498
12499         * s-osinte-hpux.ads:  Ditto.
12500         (pthread_mutex_t, pthread_cond_t): Update definitions to support
12501         properly 32 and 64 bit ABIs.
12502
12503 2006-02-13  Pascal Obry  <obry@adacore.com>
12504
12505         * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb, 
12506         s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb, 
12507         s-taprop-linux.adb, s-taprop-solaris.adb,
12508         s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
12509         adjustement is already done when calling this routine.
12510
12511 2006-02-13  Pascal Obry  <obry@adacore.com>
12512
12513         * system-mingw.ads (Underlying_Priorities): Update the priority mapping
12514         table to take advantage of the 16 priority levels available on Windows
12515         2000 and XP. On NT4 there are only 7 priority levels, this is properly
12516         supported by this new mapping.
12517
12518 2006-02-13  Nicolas Setton  <setton@adacore.com>
12519
12520         * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
12521         (get_encoding): New subprogram. Extracts the encodings from an encoded
12522         Ada name.
12523
12524 2006-02-13  Pascal Obry  <obry@adacore.com>
12525             Nicolas Roche  <roche@adacore.com>
12526             Arnaud Charlet  <charlet@adacore.com>
12527
12528         * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
12529         support.
12530         (__gnat_try_lock): Add unicode support by using a specific section on
12531         Windows.
12532         (__gnat_get_current_dir): Idem.
12533         (__gnat_open_read): Idem.
12534         (__gnat_open_rw): Idem.
12535         (__gnat_open_create): Idem.
12536         (__gnat_create_output_file): Idem.
12537         (__gnat_open_append): Idem.
12538         (__gnat_open_new): Idem.
12539         (__gnat_file_time_name): Idem.
12540         (__gnat_set_file_time_name): Idem.
12541         (__gnat_stat): Idem.
12542         (win32_no_block_spawn): Idem.
12543         (__gnat_locate_exec_on_path): Idem.
12544         (__gnat_opendir): New routine.
12545         (__gnat_closedir): Idem.
12546         (__gnat_readdir): Add new parameter length (pointer to int). Update
12547         implementation to use it and add specific Win32 code for Unicode
12548         support.
12549         (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
12550         (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
12551         (convert_addresses): Do not define this dummy routine on VMS.
12552
12553         * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
12554         runtime Unicode support will be activated.
12555         (S2WS): String to Wide-String conversion. This version just copy a
12556         string in non Unicode version.
12557         (WS2S): Wide-String to String conversion. This version just copy a
12558         string in non Unicode version.
12559
12560         * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
12561         (Open): Now import __gnat_opendir from adaint.c.
12562         (Read): Change the implementation to support unicode characters. It is
12563         not possible to use strlen() on Windows as this version supports only
12564         standard ASCII characters. So the length of the directory entry is now
12565         returned from the imported __gnat_readdir routine.
12566         Update copyright notice.
12567
12568         * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
12569         (opendir): Moved to adaint.c.
12570
12571         * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
12572         (Get_Directory): Fix wrong indexing.
12573         (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
12574         __gnat_getenv from env.c
12575         (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
12576         from env.c
12577
12578         * env.h, env.c: New file.
12579
12580         * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
12581         adaint.c by __gnat_getenv from env.c
12582
12583         * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
12584         adaint.c by __gnat_getenv from env.c
12585
12586         * Make-lang.in: Add env.o in the list of C object needed by gnat1
12587         and gnatbind.
12588         Update dependencies.
12589
12590 2006-02-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12591             Olivier Hainque  <hainque@adacore.com>
12592             Eric Botcazou  <ebotcazou@adacore.com>
12593
12594         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
12595         
12596         * gigi.h (value_factor_p): Add prototype and description, now public.
12597
12598         * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
12599         promotion for field with rep clause if the associated size was proven
12600         to be in error.
12601         Expand comments describing attempts to use a packable type.
12602         (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
12603         E_Floating_Point_Subtype>: Inherit alias set of what we are making a
12604         subtype of to ensure conflicts amongst all subtypes in a hierarchy,
12605         necessary since these are not different types and pointers may
12606         actually designate any subtype in this hierarchy.
12607         (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
12608         discriminants but put them into record only if not Unchecked_Union;
12609         pass flag to components_to_record showing Unchecked_Union.
12610         (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
12611         components before variants; don't set TYPE_UNCHECKED_UNION_P.
12612         (components_to_record): New argument UNCHECKED_UNION.
12613         Remove special case code for Unchecked_Union and instead use main code
12614         with small changes.
12615
12616         PR ada/26096
12617         (gnat_to_gnu_entity) <E_Variable>: Do not initialize the aligning
12618         variable with the expression being built, only its inner field.
12619
12620         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
12621         emit_sequence_entry_statements.
12622         (emit_sequence_entry_statements, body_with_handlers_p): Delete.
12623         (establish_gnat_vms_condition_handler): Move before
12624         Subprogram_Body_to_gnu.
12625         (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
12626         for a subprogram if it has a foreign convention or is exported.
12627         (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
12628         substituted for a CONST_DECL.
12629         (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
12630         Etype to assoc_to_constructor.
12631         (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
12632         discriminants of Unchecked_Union.
12633         (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
12634         don't need cluttering preprocessor directives.
12635         (establish_gnat_vms_condition_handler): New function. Establish the GNAT
12636         condition handler as current in the compiled function.
12637         (body_with_handlers_p): New function. Tell whether a given sequence of
12638         statements node is attached to a package or subprogram body and involves
12639         exception handlers possibly nested within inner block statements.
12640         (emit_sequence_entry_statements): New function, to emit special
12641         statements on entry of sequences when necessary. Establish GNAT
12642         condition handler in the proper cases for VMS.
12643         (Handled_Sequence_Of_Statements_to_gnu): Start block code with
12644         emit_sequence_entry_statements.
12645
12646         * utils2.c (find_common_type): If both input types are BLKmode and
12647         have a constant size, use the smaller one.
12648         (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
12649         the same.
12650
12651         * utils.c (value_factor_p): Make public, to allow uses from other gigi
12652         units.
12653         (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
12654         (convert, case UNION_TYPE): Remove special treatment for unchecked
12655         unions.
12656
12657         PR ada/18659
12658         (update_pointer_to): Update variants of pointer types to unconstrained
12659         arrays by attaching the list of fields of the main variant.
12660
12661 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
12662             Robert Dewar  <dewar@adacore.com>
12663
12664         * a-exexpr.adb, a-exexpr-gcc.adb
12665         (Process_Raise_Exception): Removed, merged with Propagate_Exception.
12666         (Propagate_Exception): Now take extra From_Signal_Handler parameter.
12667         Remove code unused for exception propagation for the compiler itself
12668         from a-except.adb and update to still share separate packages.
12669
12670         * a-except.ads, a-except.adb: Ditto.
12671         Add comments that this version is now used only by the compiler and
12672         other basic tools. The full version that includes the Ada 2005 stuff
12673         is in separate files a-except-2005.ads/adb. The reason is that we do
12674         not want to cause bootstrap problems with compilers not recognizing
12675         Wide_Wide_String.
12676         Add exception reason code PE_Implicit_Return
12677         Add new exception reason code (Null Exception_Id)
12678
12679         * a-except-2005.adb, a-except-2005.ads: New files.
12680
12681         * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
12682
12683         * s-wchcon.adb: New file.
12684
12685         * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
12686         (traceback.o deps): Likewise.
12687         (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
12688         Activate build of GMEM instrumentation library on VMS targets.
12689         (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
12690         Use a-except-2005.ads/adb for all run-time library builds unless
12691         specified otherwise.
12692         [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
12693         s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
12694         Use s-parame.adb on all native platforms.
12695         Use s-parame-vxworks.adb on all vxworks platforms.
12696         Add env.c env.h in LIBGNAT_SRCS
12697         Add env.o in LIBGNAT_OBJS
12698         (GNATMAKE_OBJS): Remove ctrl_c.o object.
12699         (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
12700         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
12701         supports VxWorks 6 RTPs.
12702         (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
12703         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
12704
12705         * types.h, types.ads (Terminate_Program): New exception
12706         Add comment on modifying multiple versions of a-except.adb when the
12707         table of exception reasons is modified.
12708         Add exception reason code PE_Implicit_Return
12709         Add new exception reason code (Null Exception_Id)
12710
12711         * clean.adb (Initialize): Get the target parameters before checking
12712         if target is OpenVMS. Move the OpenVMS specific code here from package
12713         body elaboration code.
12714
12715 2006-02-13  Thomas Quinot  <quinot@adacore.com>
12716             Vincent Celier  <celier@adacore.com>
12717             Robert Dewar  <dewar@adacore.com>
12718
12719         * ali-util.adb (Get_File_Checksum): Update to account for change in
12720         profile of Initialize_Scanner.
12721
12722         * gprep.adb (Gnatprep): Update to account for change in profile of
12723         Initialize_Scanner.
12724         (Process_One_File): Same.
12725
12726         * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
12727         common code between Get_Code_Unit and Get_Source_Unit. Reimplement
12728         that behaviour using the new Unit information recorded in the source
12729         files table, rather than going through all units every time.
12730         (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
12731         (Get_Source_Unit): Same.
12732
12733         * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
12734         change in profile of Initialize_Scanner.
12735         (Prepare_To_Preprocess): Same.
12736
12737         * lib.ads: Fix typo in comment (templace -> template).
12738
12739         * prj-part.adb (Parse_Single_Project): Update to account for change in
12740         profile of Initialize_Scanner.
12741
12742         * scn.adb (Initialize_Scanner): Account for change in profile of
12743         Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
12744         Also record the association of the given Source_File_Index to the
12745         corresponding Unit_Number_Type.
12746
12747         * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
12748         procedure.
12749         (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
12750         Remove Unit formal for generic scanner: this formal
12751         is only relevant to Scn (the scanner instance used to parse Ada source
12752         files), not to other instances. Update comment accordingly.
12753         (Scan): Use new function Snames.Is_Keyword_Name.
12754
12755         * sinfo-cn.adb: Fix typo in comment.
12756
12757         * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
12758         Unit.
12759
12760         * sinput.ads (Source_File_Record): New component Unit, used to capture
12761         the unit identifier (if any) associated to a source file.
12762
12763         * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
12764         Unit in Source_File_Record.
12765
12766         * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
12767         in profile of Initialize_Scanner.
12768
12769         * scans.adb (Initialize_Ada_Keywords): New procedure
12770
12771         * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
12772         Ada keywords in the Namet table, without the need to call
12773         Initialize_Scanner.
12774
12775         * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
12776         (Is_Keyword_Name): New function
12777
12778         * snames.ads: Add subtype Configuration_Pragma_Names
12779         Add pragma Ada_2005 (synonym for Ada_05)
12780         (Is_Keyword_Name): New function
12781
12782         * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
12783
12784 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
12785
12786         * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
12787         index.
12788
12789         * a-stwima.adb (To_Set): Add extra check when N = 0.
12790
12791         * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
12792
12793 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
12794
12795         * s-parame-mingw.adb, s-parame-linux.adb,
12796         s-parame-solaris.adb: Removed, replaced by s-parame.adb
12797
12798         * s-parame-vxworks.ads: Fix typo.
12799
12800         * s-parame-vxworks.adb: New file.
12801
12802         * s-parame.adb: Version now used by all native platforms.
12803         (Default_Stack_Size): Use 2 megs for default stack size and use
12804         __gl_default_stack_size when available.
12805         (Minimum_Stack_Size): Use 12K.
12806
12807         * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
12808         (Create_Task): Refine implementation taking advantage of the XP stack
12809         size support. On XP, we now create the thread using the flag
12810         STACK_SIZE_PARAM_IS_A_RESERVATION.
12811
12812         * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
12813
12814         * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
12815         XP and 0 on older Windows versions.
12816
12817         * interfac-vms.ads: Removed, no longer used.
12818
12819 2006-02-13  Matthew Heaney  <heaney@adacore.com>
12820
12821         * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb, 
12822         a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb, 
12823         a-cohase.adb: All explicit raise statements now include an exception
12824         message.
12825
12826         * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
12827         (Update_Element_Preserving_Key): renamed op to just Update_Element.
12828         Explicit raise statements now include an exception message
12829
12830         * a-cihase.ads, a-cohase.ads: Removed comment.
12831
12832         * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
12833         a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
12834         a-szbzha.adb, a-szfzha.ads: New files.
12835
12836 2006-02-13  Matthew Heaney  <heaney@adacore.com>
12837
12838         * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
12839         quicksort.
12840
12841 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
12842
12843         * lang.opt: Wvariadic-macros: New option.
12844         Wold-style-definition: Likewise.
12845         Wmissing-format-attribute: Likewise.
12846
12847         * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
12848         -Wold-style-definition and -Wmissing-format-attribute.
12849
12850 2006-02-13  Robert Dewar  <dewar@adacore.com>
12851
12852         * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
12853
12854         * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
12855
12856 2006-02-13  Nicolas Roche  <roche@adacore.com>
12857
12858         * a-envvar.adb, a-envvar.ads: New files.
12859
12860 2006-02-13  Douglas Rupp  <rupp@adacore.com>
12861
12862         * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
12863
12864         * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
12865
12866 2006-02-13  Pat Rogers  <rogers@adacore.com>
12867
12868         * a-rttiev.adb, a-rttiev.ads: New files.
12869
12870 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
12871
12872         * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
12873         a-wwboio.ads, a-zzboio.adb, a-zzboio.ads:  New files.
12874
12875         * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
12876
12877 2006-02-13  Robert Dewar  <dewar@adacore.com>
12878
12879         * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb, 
12880         sem_case.adb: Minor code reorganization (not Present should be No)
12881
12882 2006-02-13  Geert Bosch  <bosch@adacore.com>
12883             Gary Dismukes  <dismukes@adacore.com>
12884
12885         * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
12886         0, since the lower bound of the actual string may be greater than one.
12887
12888         PR ada/20753
12889         * a-tifiio.adb (Put): Fix condition to raise Layout_Error when invalid
12890         layout is requested.
12891
12892 2006-02-13  Vincent Celier  <celier@adacore.com>
12893
12894         * back_end.adb (Scan_Compiler_Arguments): Check if
12895         Search_Directory_Present is True and, if it is, add the argument in
12896         the source search directory path.
12897
12898         * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
12899         Search_Directory_Present to True.
12900
12901 2006-02-13  Joel Brobecker  <brobecke@adacore.com>
12902
12903         * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
12904         volatile, to tell the compiler to preserve this variable at any level
12905         of optimization.
12906         (Gen_Versions_Ada): Temporarily work around codegen bug.
12907
12908 2006-02-13  Vincent Celier  <celier@adacore.com>
12909
12910         * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
12911         gcc to link with option -shared-libgcc.
12912         (Gnatlink): Remove duplicate switches -shared-libgcc
12913
12914 2006-02-13  Robert Dewar  <dewar@adacore.com>
12915
12916         * gnatvsn.ads (Current_Year): New constant, used to easily update
12917         copyright on all GNAT tools.
12918
12919         * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
12920         copyright notice.
12921
12922 2006-02-13  Robert Dewar  <dewar@adacore.com>
12923
12924         * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
12925         after hyphen (small aesthetic change useful for a range of numbers
12926         using ^-^.
12927         Suppress range checks for a couple of assignments which otherwise
12928         cause validity checks with validity checking turned on.
12929
12930         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
12931         Improvement in error message for object.
12932         (Rep_Item_Too_Late): Remove '!' in warning message.
12933
12934 2006-02-13  Robert Dewar  <dewar@adacore.com>
12935             Eric Botcazou  <ebotcazou@adacore.com>
12936
12937         * err_vars.ads: Suppress range checks for a couple of assignments
12938         which otherwise cause validity checks with validity checking turned on.
12939         Update comments.
12940
12941         * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
12942         Make message unconditional if it is a warning.
12943         (Error_Msg_NEL): Always output warning messages.
12944         Suppress range checks for a couple of assignments which otherwise
12945         cause validity checks with validity checking turned on.
12946
12947         * errout.ads (Message Insertion Characters): Document that '!' is
12948         implied by '?' in error messages.
12949
12950         * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
12951         (Gnat1drv): Use a goto to end of main subprogram instead of
12952         Exit_Program (E_Success) so that finalization can occur normally.
12953
12954 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
12955
12956         * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
12957         wrapped around.
12958
12959 2006-02-13  Vincent Celier  <celier@adacore.com>
12960
12961         * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
12962         Unchecked_Conversion functions.
12963         (Modification_Time): Use direct conversion of OS_Time to Calendar time
12964         when OpenVMS returns False.
12965
12966         * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
12967         a-dirval.adb (OpenVMS): New Boolean function
12968
12969 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
12970             Thomas Quinot  <quinot@adacore.com>
12971
12972         * checks.adb (Build_Discriminant_Checks): If the expression being
12973         checks is an aggregate retrieve the values of its discriminants to
12974         generate the check, rather than creating a temporary and a reference
12975         to it.
12976         (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
12977         (Install_Null_Excluding_Check): Ditto
12978         (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
12979         not for the renamed object, so that the actual itype is attached in the
12980         proper context.
12981
12982 2006-02-13  Robert Dewar  <dewar@adacore.com>
12983             Vincent Celier  <celier@adacore.com>
12984
12985         * debug.adb: Eliminate numeric switches for binder/gnatmake
12986
12987         * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
12988         switches for the compiler.
12989         (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
12990         (Scan_Make_Switches): When failing with an illegal switch, output an
12991         error message with the full switch.
12992         Eliminate numeric switches for binder/gnatmake
12993
12994         * switch.ads, switch.adb (Bad_Switch): New procedure
12995
12996         * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
12997         Remove 0-9 as debug flag character possibilities
12998         -d is now controlling the primary stack size when its value is a
12999         positive. Also add checks against invalid values, and support for kb,
13000         mb. Ditto for -D switch.
13001
13002 2006-02-13  Robert Dewar  <dewar@adacore.com>
13003             Serguei Rybin  <rybin@adacore.com>
13004
13005         * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
13006         save/restore routines.
13007         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
13008         were not always properly handled previously.
13009         Since we are changing the tree format anyway, also get rid of the
13010         junk obsolete Immediate_Errors flag.
13011         (Tree_Read): Change the way of reading Tree_Version_String - now we
13012         read the version string from the tree even if its length is not the
13013         same as the length of the version string computed from Gnatvsn.
13014         (Search_Directory_Present): New Boolean flag for the compiler.
13015         Define Tree_Version_String as a dynamic string.
13016         (Default_Stack_Size): new variable, used to handle switch -d.
13017
13018         * par-prag.adb: 
13019         For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
13020         only for main unit.
13021         Add pragma Ada_2005 (synonym for Ada_05)
13022         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
13023         were not always properly handled previously.
13024
13025         * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
13026         explicit Ada_95 to Ada_2005.
13027
13028 2006-02-13  Javier Miranda  <miranda@adacore.com>
13029             Robert Dewar  <dewar@adacore.com>
13030             Ed Schonberg  <schonberg@adacore.com>
13031
13032         * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
13033         against errors in the source program: a private types for which the
13034         corresponding full type declaration is missing and pragma CPP_Virtual
13035         is used.
13036         (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
13037         (Is_Known_Null): New flag
13038         (Has_Pragma_Pure): New flag
13039         (No_Return): Present in all entities, set only for procedures
13040         (Is_Limited_Type): A type whose ancestor is an interface is limited if
13041         explicitly declared limited.
13042         (DT_Offset_To_Top_Func): New attribute that is present in E_Component
13043         entities. Only used for component marked Is_Tag. If present it stores
13044         the Offset_To_Top function used to provide this value in tagged types
13045         whose ancestor has discriminants.
13046
13047         * exp_ch2.adb: Update status of new Is_Known_Null flag
13048
13049         * sem_ch7.adb: Maintain status of new Is_Known_Null flag
13050
13051         * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
13052         the categorization sense if Is_Pure was set by pragma Pure_Function.
13053
13054 2006-02-13  Quentin Ochem  <ochem@adacore.com>
13055             Olivier Hainque  <hainque@adacore.com>
13056
13057         * bindusg.adb: Updated documentation for -d and -D switches.
13058
13059         * raise.h (__gnat_set_globals): added new parameter for
13060         Default_Stack_Size.
13061
13062         * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
13063         (__gnat_handle_vms_condition): Adjust context before raise.
13064         (__gnat_install_handler): Restore the global vector setup for GCC
13065         versions before 3.4, as the frame based circtuitry is not available
13066         in this case.
13067         (__gnat_set_globals): added a parameter default_stack_size
13068         (__gl_default_stack_size): new variable.
13069
13070 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13071
13072         * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
13073         "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
13074         does not exist in the Ada RM.
13075         (Compatible_Int_Bounds): Determine whether two integer range bounds
13076         are of equal length and have the same start and end values.
13077         (Is_Int_Range_Bounds): Determine whether a node is an integer range.
13078         (Build_Record_Aggr_Code): Perform proper sliding of a nested array
13079         aggregate when it is part of an object declaration.
13080         (Build_Record_Aggr_Code)  If the aggregate ttype is a derived type that
13081         constrains discriminants of its parent, add explicitly the discriminant
13082         constraints of the ancestor by retrieving them from the
13083         stored_constraint of the parent.
13084
13085 2006-02-13  Robert Dewar  <dewar@adacore.com>
13086
13087         * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
13088         attribute Mechanism_Code is applied to renamed subprogram, modify
13089         prefix to point to base subprogram.
13090         Max/Min attributes now violate Restriction No_Implicit_Conditionals
13091
13092         * sinfo.ads: Document that Mechanism_Code cannot be applied to
13093         renamed subprograms so that the front-end must replace the prefix
13094         appropriately.
13095
13096 2006-02-13  Javier Miranda  <miranda@adacore.com>
13097             Gary Dismukes  <dismukes@adacore.com>
13098
13099         * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
13100         availability of RE_Interface_Tag.
13101         (Build_Initialization_Call): Fix wrong access to the discriminant value.
13102         (Freeze_Record_Type): Do not generate the tables associated with
13103         timed and conditional dispatching calls through synchronized
13104         interfaces if compiling under No_Dispatching_Calls restriction.
13105         When compiling for Ada 2005, for a nonabstract
13106         type with a null extension, call Make_Controlling_Function_Wrappers
13107         and insert the wrapper function declarations and bodies (the latter
13108         being appended as freeze actions).
13109         (Predefined_Primitive_Bodies): Do not generate the bodies of the
13110         predefined primitives associated with timed and conditional
13111         dispatching calls through synchronized interfaces if we are
13112         compiling under No_Dispatching_Calls.
13113         (Build_Init_Procedure):  Use RTE_Available to check if a run-time
13114         service is available before generating a call.
13115         (Make_Controlling_Function_Wrappers): New procedure.
13116         (Expand_N_Full_Type_Declaration): Create a class-wide master for
13117         access-to-limited-interfaces because they can be used to reference
13118         tasks that implement such limited interface.
13119         (Build_Offset_To_Top_Functions): Build the tree corresponding to the
13120         procedure spec and body of the Offset_To_Top function that is generated
13121         when the parent of a type with discriminants has secondary dispatch
13122         tables.
13123         (Init_Secondary_Tags): Handle the case in which the parent of the type
13124         containing secondary dispatch tables has discriminants to generate the
13125         correct arguments to call Set_Offset_To_Top.
13126         (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
13127
13128         * a-tags.ads, a-tags.adb: (Check_Index): Removed.
13129         Add Wide_[Wide_]Expanded_Name.
13130         (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
13131         the same functionality of Get_Prim_Op_Address but applied to predefined
13132         primitive operations because the pointers to the predefined primitives
13133         are now saved in a separate table.
13134         (Parent_Size): Modified to get access to the separate table of primitive
13135         operations or the parent type.
13136         (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
13137         functionality of Set_Prim_Op_Address but applied to predefined primitive
13138         operations.
13139         (Set_Signature): New subprogram used to store the signature of a DT.
13140         (Displace): If the Offset_To_Top value is not static then call the
13141         function generated by the expander to get such value; otherwise use
13142         the value stored in the table of interfaces.
13143         (Offset_To_Top): The type of the actual has been changed to Address to
13144         give the correct support to tagged types with discriminants. In this
13145         case this value is stored just immediately after the tag field.
13146         (Set_Offset_To_Top): Two new formals have been added to indicate if the
13147         offset_to_top value is static and hence pass this value to the run-time
13148         to store it in the table of interfaces, or else if this value is dynamic
13149         and then pass to the run-time the address of a function that is
13150         generated by the expander to provide this value for each object of the
13151         type.
13152
13153         * rtsfind.ads (Default_Prin_Op_Count): Removed.
13154         (Default_Prim_Op_Count): New entity
13155         (Get_Predefined_Prim_Op_Address): New entity
13156         (Set_Predefined_Prim_Op_Address): New entity
13157         (RE_Set_Signature): New entity
13158
13159 2006-02-13  Thomas Quinot  <quinot@adacore.com>
13160             Ed Schonberg  <schonberg@adacore.com>
13161
13162         * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
13163         Make_Adjust_Call done for a newly-allocated object.
13164
13165         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
13166         in a subprogram are wrapped in a cleanup block, indicate that the
13167         subprogram contains an inner block with an exception handler.
13168         (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
13169         Adjust call is for a newly-allocated object. In that case we must not
13170         assume that the finalization list chain pointers are correct (since they
13171         come from a bit-for-bit copy of the original object's pointers) so if
13172         the attach level would otherwise be zero (no change), we set it to 4
13173         instead to cause the pointers to be reset to null.
13174
13175         * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
13176         reset chain pointers to null.
13177
13178 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13179
13180         * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
13181         string, and the context requires a loop for the assignment (e.g.
13182         because the left-hand side is packed), generate a unique name for the
13183         temporary that holds the string, to prevent spurious name clashes.
13184
13185 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13186             Javier Miranda  <miranda@adacore.com>
13187             Robert Dewar  <dewar@adacore.com>
13188             Gary Dismukes  <dismukes@adacore.com>
13189
13190         * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
13191         return unconstrained arrays.
13192         Update comments.
13193         (Expand_Call):  An indirect call through an access parameter of a
13194         protected operation is not a protected call.
13195         Add circuit to raise CE in Ada 2005 mode following call
13196         to Raise_Exception.
13197         (Register_DT_Entry): Do nothing if
13198         the run-time does not give support to abstract interfaces.
13199         (Freeze_Subprogram): In case of dispatching operations, do not generate
13200         code to register the operation in the dispatch table if the source
13201         is compiled with No_Dispatching_Calls.
13202         (Register_Predefined_DT_Entry): Generate code that calls the new
13203         run-time subprogram Set_Predefined_Prim_Op_Address instead of
13204         Set_Prim_Op_Address.
13205
13206         * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
13207         on array assignments if the right-hand side is a function call that has
13208         been inlined. Check is performed on the assignment in the block.
13209         (Process_Bounds): If bounds and range are overloaded, apply preference
13210         rule for root operations to disambiguate, and diagnose true ambiguity.
13211         (Analyze_Assignment): Propagate the tag for a class-wide assignment with
13212         a tag-indeterminate right-hand side even when Expander_Active is True.
13213         Needed to ensure that dispatching calls to T'Input are allowed and
13214         get the tag of the target class-wide object.
13215
13216         * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
13217         an inherited primitive operation that already overrides several
13218         abstract interface primitives. For transitivity, the new entity must
13219         also override all the abstract interface primitives covered by the
13220         inherited overriden primitive.
13221         Emit warning if new entity differs from homograph in same scope only in
13222         that one has an access parameter and the other one has a parameter of
13223         a general access type with the same designated type, at the same
13224         position in the signature.
13225         (Make_Inequality_Operator): Use source locations of parameters and
13226         subtype marks from corresponding equality operator when creating the
13227         tree structure for the implicit declaration of "/=". This does not
13228         change anything in behaviour except that the decoration of the
13229         components of the subtree created for "/=" allows ASIS to get the
13230         string images of the corresponding identifiers.
13231         (Analyze_Return_Statement): Remove '!' in warning message.
13232         (Check_Statement_Sequence): Likewise.
13233         (Analyze_Subprogram_Body): For an access parameter whose designated type
13234         is an incomplete type imported through a limited_with clause, use the
13235         type of the corresponding formal in the body.
13236         (Check_Returns): Implicit return in No_Return procedure now raises
13237         Program_Error with a compile time warning, instead of beging illegal.
13238         (Has_Single_Return):  Function returning unconstrained type cannot be
13239         inlined if expression in unique return statement is not an identifier.
13240         (Build_Body_To_Inline): It is possible to inline a function call that
13241         returns an unconstrained type if all return statements in the function
13242         return the same local variable. Subsidiary procedure Has_Single_Return
13243         verifies that the body conforms to this restriction.
13244
13245         * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
13246         same type, and  one of them is of an anonymous access type, convert
13247         the other operand to it, so that this is a valid binary operation for
13248         gigi.
13249         (Resolve_Type_Conversion): Handle subtypes of protected types and
13250         task types when accessing to the corresponding record type.
13251         (Resolve_Allocator): Add '\' in 2-line warning message.
13252         Remove '!' in warning message.
13253         (Resolve_Call): Add '\' in 2-line warning message.
13254         (Valid_Conversion): Likewise.
13255         (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
13256         resulting type may be an access type with an implicit dereference.
13257         Obtain the proper component from the designated type.
13258         (Make_Call_Into_Operator): Handle properly a call to predefined equality
13259         given by an expanded name with prefix Standard, when the operands are
13260         of an anonymous access type.
13261         (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
13262         Explicit_Dereference and Resolve_Selected_Component, to verify that the
13263         prefix of the expression is not of an incomplete type. Allows full
13264         diagnoses of all semantic errors.
13265         (Resolve_Actuals): If the actual is an allocator whose directly
13266         designated type is a class-wide interface we build an anonymous
13267         access type to use it as the type of the allocator. Later, when
13268         the subprogram call is expanded, if the interface has a secondary
13269         dispatch table the expander will add a type conversion to force
13270         the displacement of the pointer.
13271         (Resolve_Call): If a function that returns an unconstrained type is
13272         marked Inlined_Always and inlined, the call will be inlined and does
13273         not require the creation of a transient scope.
13274         (Check_Direct_Boolean_Op): Removed
13275         (Resolve_Comparison_Op): Remove call to above
13276         (Resolve_Equality_Op): Remove call to above
13277         (Resolve_Logical_Op): Inline above, since this is only call.
13278         (Valid_Conversion): Handle properly conversions between arrays of
13279         convertible anonymous access types.
13280
13281         PR ada/25885
13282         (Set_Literal_String_Subtype): If the lower bound is not static, wrap
13283         the literal in an unchecked conversion, because GCC 4.x needs a static
13284         value for a string bound.
13285
13286 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13287             Hristian Kirtchev  <kirtchev@adacore.com>
13288
13289         * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
13290         components of the corresponding record, take into account component
13291         definitions that are access definitions.
13292         (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
13293         procedure is not considered a dispatching call and will be expanded
13294         properly.
13295
13296 2006-02-13  Javier Miranda  <miranda@adacore.com>
13297
13298         * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
13299         controlling argument of the dispatching call is an abstract interface
13300         class-wide type then we use it directly.
13301         Check No_Dispatching_Calls restriction.
13302         (Default_Prim_Op_Position): Remove the code that looks for the last
13303         entity in the list of aliased subprograms. This code was wrong in
13304         case of renamings.
13305         (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
13306         when the source is compiled with the No_Dispatching_Calls restriction.
13307         (Init_Predefined_Interface_Primitives): No need to inherit primitives
13308         if we are compiling with restriction No_Dispatching_Calls.
13309         (Make_Disp_XXX): Addition of assertion to avoid the use of all these
13310         subprograms if we are compiling under No_Dispatching_Calls restriction.
13311         (Make_DT): Generate a dispatch table with a single dummy entry if
13312         we are compiling with the No_Dispatching_Calls restriction. In
13313         addition, in this case we don't generate code that calls to the
13314         following run-time subprograms: Set_Type_Kind, Inherit_DT.
13315         (Make_Select_Specific_Data_Table): Add assertion to avoid the use
13316         of this subprogram if compiling with the No_Dispatching_Calls
13317         restriction.
13318         (Expand_Type_Conversion): Instead of using the actual parameter,
13319         the argument passed as parameter to the conversion function was
13320         erroneously referenced by the expander.
13321         (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
13322         Set_Predefined_Primitive_Op_Address and Set_Signature.
13323         (Expand_Dispatching_Call): Generate call to
13324         Get_Predefined_Prim_Op_Address for predefined primitives.
13325         (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
13326         predefined primitives.
13327         (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
13328         primitives we reserve one dummy entry to ensure that the tag does not
13329         point to some memory that is associated with some other object. In
13330         addition, remove all the old code that generated the assignments
13331         associated with the signature of the dispatch table and replace them
13332         by a call to the new subprogram Set_Signature.
13333         (Set_All_DT_Position): Change the algorithm because now we have a
13334         separate dispatch table associated with predefined primitive operations.
13335         (Expand_Interface_Conversion): In case of non-static offset_to_top
13336         add explicit dereference to get access to the object after the call
13337         to displace the pointer to the object.
13338         (Expand_Interface_Thunk): Modify the generation of the actual used
13339         in the calls to the run-time function Offset_To_Top to fulfil its
13340         new interface.
13341         (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
13342
13343 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13344
13345         * exp_dist.adb (Copy_Specification): For access parameters, copy
13346         Null_Exclusion flag, which will have been set for stream subprograms
13347         in Ada2005 mode.
13348
13349 2006-02-13  Pascal Obry  <obry@adacore.com>
13350
13351         * expect.c (__gnat_expect_portable_execvp): New implementation. The
13352         previous implementation was using the C runtime spawnve routine but
13353         the corresponding wait was using directly the Win32 API. This was
13354         causing some times a lock when waiting for an event using
13355         WaitForSingleObject in __gnat_waitpid. This new implementation uses
13356         the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
13357         API fixes this problem.
13358
13359 2006-02-13  Robert Dewar  <dewar@adacore.com>
13360
13361         * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
13362         call.
13363
13364 2006-02-13  Thomas Quinot  <quinot@adacore.com>
13365
13366         * exp_pakd.ads: Fix typos in comments.
13367
13368         * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
13369         array reference that is an explicit dereference, mark the converted
13370         (packed) array reference as analyzed to prevent a forthcoming
13371         reanalysis from resetting its type to the original (non-packed) array
13372         type.
13373
13374 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13375             Javier Miranda  <miranda@adacore.com>
13376             Eric Botcazou  <ebotcazou@adacore.com>
13377
13378         * exp_util.ads, exp_util.adb (Find_Prim_Op,
13379         Is_Predefined_Primitive_Operation): When
13380         searching for the predefined equality operator, verify that operands
13381         have the same type.
13382         (Is_Predefined_Dispatching_Operation): Remove the code that looks
13383         for the last entity in the list of aliased subprograms. This code
13384         was wrong in case of renamings.
13385         (Set_Renamed_Subprogram): New procedure
13386         (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
13387         Exp_Type constant computed when entering this subprogram.
13388         (Known_Null): New function
13389         (OK_To_Do_Constant_Replacement): New function
13390         (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
13391         (Side_Effect_Free): An attribute reference 'Input is not free of
13392         side effect, unlike other attributes that are functions. (from code
13393         reading).
13394         (Remove_Side_Effects): Expressions that involve packed arrays or records
13395         are copied at the point of reference, and therefore must be marked as
13396         renamings of objects.
13397         (Is_Predefined_Dispatching_Operation): Return false if the operation is
13398         not a dispatching operation.
13399
13400         PR ada/18819
13401         (Remove_Side_Effects): Lift enclosing type conversion nodes for
13402         elementary types in all cases.
13403
13404 2006-02-13  Javier Miranda  <miranda@adacore.com>
13405
13406         * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
13407         task types when accessing to the corresponding record type.
13408         Remove '!' in warning message.
13409
13410 2006-02-13  Olivier Hainque  <hainque@adacore.com>
13411
13412         * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
13413         to avoid useless and space inefficient overalignments on targets where
13414         Max_Alignment is larger than 16.
13415
13416 2006-02-13  Pascal Obry  <obry@adacore.com>
13417
13418         * g-catiio.adb (Sec_Number): New type used to compute the number of
13419         seconds since 1-1-1970.
13420         (Image) [Natural]: The parameter was an Integer, as we can't deal with
13421         negative numbers (years, months...) it is better to have a Natural here.
13422         Code clean-up.
13423         (Image) [Number]: Change parameter from Long_Integer to Number.
13424         (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
13425         overflow for dates past year 2038.
13426
13427 2006-02-13  Matthew Heaney  <heaney@adacore.com>
13428
13429         *  g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
13430         Constraint_Error.
13431
13432 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
13433
13434         * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
13435         native platforms.
13436         (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
13437         finalization can occur normally.
13438
13439 2006-02-13  Vincent Celier  <celier@adacore.com>
13440
13441         * gnatcmd.adb (Rules_Switches): New table
13442         (Add_To_Rules_Switches): New procedure
13443         (GNATCmd): For command CHECK, put all options following "-rules" in the
13444         Rules_Switches table. Append these -rules switches after the -cargs
13445         switches.
13446
13447 2006-02-13  Robert Dewar  <dewar@adacore.com>
13448
13449         * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
13450         These two cases were generating incorrect output, and if this unit
13451         was built with checks on, generated a discriminant mismatch constraint
13452         error.
13453
13454 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13455             Robert Dewar  <dewar@adacore.com>
13456
13457         * lib-xref.adb (Get_Type_Reference): For a private type whose full
13458         view is an array type, indicate the component type as well, for
13459         navigation purposes.
13460         (Generate_Reference): Don't consider array ref on LHS to be a case
13461         of violating pragma Unreferenced.
13462         Do not give Ada 2005 warning except on real reference.
13463
13464 2006-02-13  Vincent Celier  <celier@adacore.com>
13465
13466         * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
13467         main source, add switch -mdebug-main=_ada_ so that the executable can
13468         be debugged by the standard VMS debugger.
13469         (Gnatmake): Set No_Main_Subprogram to True when there is no main
13470         subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
13471         Exit the Multi_Main_Loop when Unique_Compile is True after compilation
13472         of the last source, as the binding and linking phases are never
13473         performed.
13474         Set all executable obsolete when rebuilding a library.
13475
13476         * makeutl.adb (Linker_Options_Switches): Do not process empty linker
13477         options.
13478
13479 2006-02-13  Javier Miranda  <miranda@adacore.com>
13480
13481         PR ada/23973
13482         * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
13483         code to improve the error message reported when the program has
13484         declarations of abstract interface types and it is not compiled with
13485         the -gnat05 switch.
13486         (P_Access_Definition): Reorganize the code to improve the error
13487         message reported when the new Ada 2005 syntax for anonymous
13488         access types is used and the program is not compiled with the
13489         -gnat05 switch.
13490
13491 2006-02-13  Robert Dewar  <dewar@adacore.com>
13492
13493         * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
13494         stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
13495         (MODE_IN)
13496
13497 2006-02-13  Javier Miranda  <miranda@adacore.com>
13498
13499         * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
13500         against source containing syntax errors.
13501
13502 2006-02-13  Vincent Celier  <celier@adacore.com>
13503
13504         * prj.adb (Reset): Initialize the first element of table Namings with
13505         the standard naming data.
13506
13507 2006-02-13  Vincent Celier  <celier@adacore.com>
13508
13509         * prj.ads (Error_Warning): New enumeration type
13510
13511         * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
13512         unknown, use the location of the project to report the error.
13513         (When_No_Sources): New global variable
13514         (Report_No_Ada_Sources): New procedure
13515         (Check): New parameter When_No_Sources. Set value of global variable
13516         When_No_Sources,
13517         (Find_Sources): Call Report_No_Ada_Sources when appropriate
13518         (Get_Sources_From_File): Ditto
13519         (Warn_If_Not_Sources): Better warning messages indicating the unit name
13520         and the file name.
13521
13522         * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
13523         Call Prj.Proc.Process with parameter When_No_Sources.
13524
13525         * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
13526         Call Recursive_Check with parameter When_No_Sources.
13527         (Recursive_Check): New parameter When_No_Sources. Call itself and
13528         Prj.Nmsc.Check with parameter When_No_Sources.
13529         (Process): New parameter When_No_Sources. Call Check with parameter
13530         When_No_Sources.
13531         (Copy_Package_Declarations): New procedure to copy renamed parameters
13532         and setting the location of the declared attributes to the location
13533         of the renamed package.
13534         (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
13535         packages.
13536
13537 2006-02-13  Vincent Celier  <celier@adacore.com>
13538
13539         * prj-makr.adb (Make): Preserve the comments from the original project
13540         file.
13541         When removing nodes (attributes Source_Dirs, Source_Files,
13542         Source_List_File and package Naming), save the comments and attach the
13543         saved comments to the newly created nodes.
13544         Do not add a with clause for the naming package if one already exists.
13545
13546 2006-02-13  Javier Miranda  <miranda@adacore.com>
13547             Gary Dismukes  <dismukes@adacore.com>
13548             Robert Dewar  <dewar@adacore.com>
13549
13550         * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
13551
13552         * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
13553         aliased entities to look for the overriden abstract interface
13554         subprogram.
13555         (Is_Interface_Subprogram): Complete documentation.
13556         (Check_Dispatching_Operation): Do not generate code to register the
13557         operation in the dispatch table if the source is compiled with
13558         restriction No_Dispatching_Calls.
13559         (Override_Dispatching_Operation): Check for illegal attempt to override
13560         No_Return procedure with procedure that is not No_Return
13561         (Check_Dispatching_Call): Suppress the check for an abstract operation
13562         when the original node of an actual is a tag-indeterminate attribute
13563         call, since the attribute, which must be 'Input, can never be abstract.
13564         (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
13565         call to the Input attribute (even when rewritten).
13566         (Propagate_Tag): Augment comment to indicate the possibility of a call
13567         to an Input attribute.
13568
13569         * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
13570         calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
13571
13572         * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
13573         No_Wide_Characters is no longer partition-wide
13574         No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
13575         rather than GNAT
13576
13577 2006-02-13  Douglas Rupp  <rupp@adacore.com>
13578
13579         * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
13580
13581 2006-02-13  Javier Miranda  <miranda@adacore.com>
13582
13583         * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
13584         handles default-initialized components to keep separate the management
13585         of this feature but also avoid the unrequired resolution and
13586         expansion of components that do not have partially initialized
13587         values.
13588         (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
13589         (Check_Bounds): Likewise.
13590         (Check_Length): Likewise.
13591
13592 2006-02-13  Javier Miranda  <miranda@adacore.com>
13593             Ed Schonberg  <schonberg@adacore.com>
13594
13595         * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
13596         abstract interface type call analyze_and_resolve to expand the type
13597         conversion into the corresponding displacement of the
13598         reference to the base of the object.
13599         (Eval_Attribute, case Width): For systems where IEEE extended precision
13600         is supported, the maximum exponent occupies 4 decimal digits.
13601         (Accessibility_Message): Add '\' in 2-line warning message.
13602         (Resolve_Attribute): Likewise.
13603         (case Attribute_Access): Significantly revise checks
13604         for illegal access-to-subprogram Access attributes to properly enforce
13605         the rules of 3.10.2(32/2).
13606         Diagnose use of current instance with an illegal attribute.
13607
13608         * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
13609         to a Node_Id.
13610         (Enclosing_Generic_Unit): New function to return a node's innermost
13611         enclosing generic declaration node.
13612         (Compile_Time_Constraint_Error): Remove '!' in warning messages.
13613         (Type_Access_Level): The accessibility level of anonymous acccess types
13614         associated with discriminants is that of the current instance of the
13615         type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
13616         (Compile_Time_Constraint_Error): Handle case of conditional expression.
13617         (Kill_Current_Values_For_Entity): New function
13618         (Enter_Name): Change formal type to Entity_Id
13619
13620 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
13621             Ed Schonberg  <schonberg@adacore.com>
13622             Gary Dismukes  <dismukes@adacore.com>
13623
13624         * sem_ch10.adb (Check_Redundant_Withs): New procedure in
13625         Analyze_Compilation_Unit.
13626         Detect and warn on redundant with clauses detected in a package spec
13627         and/or body when -gnatwr is used.
13628         (Analyze_Context): Analyze config pragmas before other items
13629         (Install_Context_Items): Don't analyze config pragmas here
13630         (Install_Limited_Withed_Unit): Set limited entity of package in
13631         with_clause so that cross-reference information or warning messages on
13632         unused packages can be properly generated
13633         (Is_Visible_Through_Renamings): Return false if the limited_with_clause
13634         has Error_Posted set. Prevent infinite loops in illegal programs.
13635         (Check_Private_Child_Unit): Move test for a nonprivate with clause down
13636         to the point of the error test requiring the current unit to be private.
13637         This ensures that private with clauses are not exempted from the basic
13638         checking for being a descendant of the same library unit parent as a
13639         withed private descendant unit.
13640         (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
13641         handle private with clauses properly, as well as to account for cases
13642         where the withed unit is a public descendant of a private ancestor
13643         (in which case the current unit must be a descendant of the private
13644         ancestor's parent). The spec comments were updated accordingly. Also,
13645         the old error message in this subprogram was replaced with error
13646         messages that mirror the errors tested and reported by
13647         Check_Private_Child_Unit.
13648         Parameter and variable names improved for readability.
13649         (Install_Limited_Context_Clauses): Remove test for a withed unit being
13650         private as the precondition for calling
13651         Check_Private_Limited_Withed_Unit since that subprogram has been
13652         revised to test public units as well as private units.
13653
13654 2006-02-13  Thomas Quinot  <quinot@adacore.com>
13655             Robert Dewar  <dewar@adacore.com>
13656             Ed Schonberg  <schonberg@adacore.com>
13657             Javier Miranda  <miranda@adacore.com>
13658
13659         * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
13660         that Scope_Stack.First = 1.
13661         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
13662         were not always properly handled previously.
13663         (Formal_Entity): Complete rewrite, to handle properly some complex case
13664         with multiple levels of parametrization by formal packages.
13665         (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
13666         to the corresponding derived type declaration for proper semantics.
13667
13668         * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
13669         (Check_Component): Enforce restriction on components of
13670         unchecked_unions: a component in a variant cannot contain tasks or
13671         controlled types.
13672         (Unchecked_Union): Allow nested variants and multiple discriminants, to
13673         conform to AI-216.
13674         Add pragma Ada_2005 (synonym for Ada_05)
13675         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
13676         were not always properly handled previously.
13677         Document that pragma Propagate_Exceptions has no effect
13678         (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
13679         (Set_Convention_From_Pragma): Check that if a convention is
13680         specified for a dispatching operation, then it must be
13681         consistent with the existing convention for the operation.
13682         (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
13683         longer required to specify an vtable-ptr component in the record. For
13684         compatibility reasons we leave the support for the previous definition.
13685         (Analyze_Pragma, case No_Return): Allow multiple arguments
13686
13687         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
13688         non-overrideen inherited operation with a controlling result as
13689         illegal only its implicit declaration comes from the derived type
13690         declaration of its result's type.
13691         (Check_Possible_Deferred_Completion): Relocate the object definition
13692         node of the subtype indication of a deferred constant completion rather
13693         than directly analyzing it. The analysis of the generated subtype will
13694         correctly decorate the GNAT tree.
13695         (Record_Type_Declaration): Check whether this is a declaration for a
13696         limited derived record before analyzing components.
13697         (Analyze_Component_Declaration): Diagnose record types  not explicitly
13698         declared limited when a component has a limited type.
13699         (Build_Derived_Record_Type): Code reorganization to check if some of
13700         the inherited subprograms of a tagged type cover interface primitives.
13701         This check was missing in case of a full-type associated with a private
13702         type declaration.
13703         (Constant_Redeclaration): Check that the subtypes of the partial and the
13704         full view of a constrained deferred constant statically match.
13705         (Mentions_T): A reference to the current type in an anonymous access
13706         component declaration  must be an entity name.
13707         (Make_Incomplete_Type_Declaration): If type is tagged, set type of
13708         class_wide type to refer to full type, not to the incomplete one.
13709         (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
13710         available. Required to give support to the certified run-time.
13711         (Analyze_Component_Declaration): In case of anonymous access components
13712         perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
13713         (Process_Discriminants): For an access discriminant, use the
13714         discriminant specification as the associated_node_for_itype, to
13715         simplify accessibility checks.
13716
13717 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13718             Javier Miranda  <miranda@adacore.com>
13719
13720         * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
13721         abstract interpretations on an operator, remove interpretations that
13722         yield Address or a type derived from it, if one of the operands is an
13723         integer literal.
13724         (Try_Object_Operation.Try_Primitive_Operation,
13725         Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
13726         location when creating the new reference to a primitive or class-wide
13727         operation as a part of rewriting a subprogram call.
13728         (Try_Primitive_Operations): If context requires a function, collect all
13729         interpretations after the first match, because there may be primitive
13730         operations of the same type with the same profile and different return
13731         types. From code reading.
13732         (Try_Primitive_Operation): Use the node kind to choose the proper
13733         operation when a function and a procedure have the same parameter
13734         profile.
13735         (Complete_Object_Operation): If formal is an access parameter and prefix
13736         is an object, rewrite as an Access reference, to match signature of
13737         primitive operation.
13738         (Find_Equality_Type, Find_One_Interp): Handle properly equality given
13739         by an expanded name with prefix Standard, when the operands are of an
13740         anonymous access type.
13741         (Remove_Abstract_Operations): If the operation is abstract because it is
13742         inherited by a user-defined type derived from Address, remove it as
13743         well from the set of candidate interpretations of an overloaded node.
13744         (Analyze_Membership_Op): Membership test not applicable to cpp-class
13745         types.
13746
13747 2006-02-13  Bob Duff  <duff@adacore.com>
13748
13749         * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
13750         redundant use clauses.
13751         In particular, if the scope of two use clauses overlaps, but one is not
13752         entirely included in the other, we should not warn.  This can happen
13753         with nested packages.
13754         (Analyze_Subprogram_Renaming): Protect the compiler against previously
13755         reported errors. The bug was reported when the compiler was built
13756         with assertions enabled.
13757         (Find_Type): If the node is a 'Class reference and the prefix is a
13758         synchronized type without a corresponding record, return the type
13759         itself.
13760
13761 2006-02-13  Javier Miranda  <miranda@adacore.com>
13762
13763         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
13764         if this is the full-declaration associated with a private declaration
13765         that implement interfaces, then the private type declaration must be
13766         limited.
13767         (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
13768         as aliased. The use of the 'access attribute is not available for such
13769         object (for this purpose the object should be explicitly marked as
13770         aliased, but being an anonymous type this is not possible).
13771
13772 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13773             Robert Dewar  <dewar@adacore.com>
13774
13775         * sem_elab.adb (Same_Elaboration_Scope): A package that is a
13776         compilation unit is an elaboration scope.
13777         (Add_Task_Proc): Add '\' in 2-line warning message.
13778         (Activate_All_Desirable): Deal with case of unit with'ed by parent
13779
13780 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13781             Javier Miranda  <miranda@adacore.com>
13782
13783         * sem_type.adb (Write_Overloads): Improve display of candidate
13784         interpretations.
13785         (Add_One_Interp): Do not add to the list of interpretations aliased
13786         entities corresponding with an abstract interface type that is an
13787         immediate ancestor of a tagged type; otherwise we have a dummy
13788         conflict between this entity and the aliased entity.
13789         (Disambiguate): The predefined equality on universal_access is not
13790         usable if there is a user-defined equality with the proper signature,
13791         declared in the same declarative part as the designated type.
13792         (Find_Unique_Type): The universal_access equality operator defined under
13793         AI-230 does not cover pool specific access types.
13794         (Covers): If one of the types is a generic actual subtype, check whether
13795         it matches the partial view of the other type.
13796
13797 2006-02-13  Thomas Quinot  <quinot@adacore.com>
13798
13799         * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
13800         line. This is necessary to allow In_Extended_Main_Unit to provide
13801         correct results for itypes while writing out expanded source.
13802         (Close_File): No need to update the source_index_table here since it's
13803         now done for each line.
13804
13805 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
13806             Robert Dewar  <dewar@adacore.com>
13807
13808         * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
13809         preserve the source unit where the itype is declared, and prevent a
13810         backend abort.
13811         (Note_Implicit_Run_Time_Call): New procedure
13812         (Write_Itype): Handle missing cases (E_Class_Wide_Type and
13813         E_Subprogram_Type)
13814
13815         * sprint.ads: Document use of $ for implicit run time routine call
13816
13817 2006-02-13  Quentin Ochem  <ochem@adacore.com>
13818
13819         * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
13820         task name.
13821
13822 2006-02-13  Bob Duff  <duff@adacore.com>
13823
13824         * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
13825         Scan_Unsigned, so we do not scan leading blanks and sign twice.
13826         Integer'Value("- 5") and Integer'Value("-+5") now correctly
13827         raise Constraint_Error.
13828
13829         * s-vallli.adb (Scan_Long_Long_Integer): Call
13830         Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
13831         do not scan leading blanks and sign twice.
13832         Integer'Value("- 5") and Integer'Value("-+5") now correctly
13833         raise Constraint_Error.
13834
13835         * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
13836         Scan_Long_Long_Unsigned): Split out most of the processing from
13837         Scan_Long_Long_Unsigned out into
13838         Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
13839         This prevents scanning leading blanks and sign twice.
13840         Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
13841         See RM-3.5(44).
13842
13843         * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
13844         out most of the processing from Scan_Unsigned out into
13845         Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
13846         This prevents scanning leading blanks and sign twice.
13847
13848         * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
13849         use with Modular'Value attribute.
13850         (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
13851         attribute.
13852
13853 2006-02-13  Robert Dewar  <dewar@adacore.com>
13854
13855         * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
13856
13857 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
13858
13859         * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
13860         (PPC VxWorks): Likewise.
13861         (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
13862         (forced_callee): Make non-inlinable and non-pure.
13863         (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
13864
13865 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
13866             Ben Brosgol  <brosgol@adacore.com>
13867             Robert Dewar  <dewar@adacore.com>
13868
13869         * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
13870         support.
13871         Document that gnatbind -M option is for cross environments only.
13872         Added description of using gnatmem to trace gnat rtl allocs and deallocs
13873         Add note on use of $ to label implicit run time calls
13874         Add documentation for -gnatyI (check mode IN)
13875         Updated chapter on compatibility with HP Ada
13876         VMS-oriented edits.
13877         Ran spell and corrected errors
13878         Add documentation for gnatbind -d and rework documentation of -D
13879         at the same time.
13880         Add subprogram/data elimination section.
13881         Minor editing of annex A.
13882         Add section for gnatcheck.
13883         Add documentation for restriction No_Dispatching_Calls
13884         Add documentation for pragma Ada_2005
13885         Remove mention of obsolete pragma Propagate_Exceptions
13886         Document that pragma Unreferenced can appear after DO in ACCEPT
13887         Clarify Pure_Function for library level units
13888         Mention Max/Min in connection with No_Implicit_Conditionals
13889         No_Wide_Characters restriction is no longer partition-wide
13890         Add a nice example for Universal_Literal_String attribute
13891         Document that pragma No_Return can take multiple arguments
13892
13893         * ug_words: Added entry for gnatcheck
13894
13895         * g-ctrl_c.ads (Install_Handler): Enhance comments
13896
13897         * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
13898
13899         * g-trasym.ads: Add documentation on how to do off line symbolic
13900         traceback computation.
13901
13902         * s-fatgen.adb: Add comments for Unaligned_Valid
13903
13904         * stand.ads: Fix typo in comment
13905
13906 2006-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13907
13908         * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
13909
13910 2006-02-06  Roger Sayle  <roger@eyesopen.com>
13911
13912         * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
13913
13914 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13915
13916         PR target/25926
13917         * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
13918         implementation that calls __main.
13919
13920 2006-01-25  Peter O'Gorman  <peter@pogma.com>
13921
13922         PR bootstrap/25859
13923         * Makefile.in (GCC_LINK): Remove quotes.
13924         (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
13925         or $(GCC_LINK).
13926
13927         (powerpc-darwin): Pass -shared-libgcc when building shared library.
13928
13929 2006-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13930
13931         PR ada/24533
13932         * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
13933
13934 2005-12-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13935
13936         * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
13937
13938 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
13939
13940         * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
13941         needed.
13942
13943 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
13944
13945         * Make-lang.in: Update dependencies
13946
13947 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
13948
13949         * Make-lang.in: Add rule for ada/exp_sel.o
13950
13951 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
13952
13953         * Makefile.in (mingw section): Remove EH_MECHANISM setting.
13954
13955 2005-12-09  Arnaud Charlet  <charlet@adacore.com>
13956
13957         * gnatvsn.ads (Library_Version): Bump to version 4.2
13958         (ASIS_Version_Number): Bumped.
13959
13960 2005-12-09  Doug Rupp  <rupp@adacore.com>
13961
13962         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
13963         Ada bind file prefix on VMS from b$ to b__.
13964         (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
13965         __init.
13966
13967         * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
13968         Targparm.OpenVMS_On_Target.
13969         (Object_Suffix): Initialize with target object suffix.
13970         (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
13971
13972         * butil.adb: Change some Hostparm.OpenVMS checks to
13973         Targparm.OpenVMS_On_Target.
13974
13975         * clean.adb: Change some Hostparm.OpenVMS checks to
13976         Targparm.OpenVMS_On_Target.
13977         (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
13978         ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
13979         Ada bind file prefix on VMS from b$ to b__.
13980
13981         * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
13982         --GCC so that Get_Target_Parameters can find system.ads.
13983         (Gnatlink): Call Get_Target_Parameters in mainline.
13984         Initialize standard packages for Targparm.
13985         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
13986         (Process_Args): Also Check for object files with target object
13987         extension.
13988         (Make_Binder_File_Names): Create with target object extension.
13989         (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
13990         to b__.
13991
13992         * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
13993         Targparm.OpenVMS_On_Target.
13994         ({declaration},Build_Library,Check_Library): Change Ada bind file
13995         prefix on VMS from b$ to b__.
13996
13997         * osint-b.adb: Change some Hostparm.OpenVMS checks to
13998         Targparm.OpenVMS_On_Target.
13999         (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
14000         b__.
14001
14002         * targext.c: New file.
14003
14004         * Makefile.in: add support for vxworks653 builds
14005         (../../vxaddr2line): gnatlink with targext.o.
14006         (TOOLS_LIBS): Move targext.o to precede libgnat.
14007         (init.o, initialize.o): Minor clean up in dependencies.
14008         (GNATLINK_OBJS): Add targparm.o, snames.o
14009         Add rules fo building targext.o and linking it explicitly with all
14010         tools.
14011         Also add targext.o to gnatlib.
14012
14013         * Make-lang.in: Add rules for building targext.o and linking it in
14014         with gnat1 and gnatbind.
14015         Add entry for exp_sel.o.
14016
14017         * osint.adb Change some Hostparm.OpenVMS checks to
14018         Targparm.OpenVMS_On_Target.
14019         (Object_File_Name): Use target object suffix.
14020
14021         * osint.ads (Object_Suffix): Remove, no longer used.
14022         (Target_Object_Suffix): Initialize with target object suffix.
14023
14024         * rident.ads: Add special exception to license.
14025
14026         * targparm.adb (Get_Target_Parameters): Set the value of
14027         Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
14028         value.
14029         (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
14030         
14031         * targparm.ads: Add special exception to license.
14032
14033         * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
14034         function.
14035         (Copy_File): Make sure from file is closed if error on to file
14036         (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
14037
14038         * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
14039         (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
14040
14041         * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
14042         target object suffix.
14043
14044 2005-12-09  Jose Ruiz  <ruiz@adacore.com>
14045             Quentin Ochem  <ochem@adacore.com>
14046             Florian Villoing  <villoing@adacore.com>
14047
14048         * a-taster.ads, a-taster.adb: New files.
14049
14050         * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
14051         link to the version that does nothing. This way the task termination
14052         routine is not executed twice for the environment task when finishing
14053         because of an unhandled exception.
14054
14055         * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
14056         handler because of an unhandled exception.
14057
14058         * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
14059         System.Tasking.Utilities instead of that in System.Tasking.Stages.
14060
14061         * s-finimp.adb (initialization code): Modify the soft link for the
14062         finalization of the global list instead of Adafinal.
14063
14064         * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
14065         non-tasking version of the soft link for task termination. We do
14066         nothing since if we are using the non-tasking version it
14067         means that the task termination functionality is not used.
14068         (Null_Finalize_Global_List): Add this null version for the procedure
14069         in charge of finalizing the global list for controlled objects.
14070         (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
14071         instead for handling run-time termination in a more flexible way.
14072         (Adafinal_NT): This new procedure will take care of finalizing the
14073         global list for controlled objects if needed, but no tasking
14074         finalization.
14075
14076         * s-tarest.adb (Task_Lock): Do not try to lock again the
14077         Global_Task_Lock if we already own it. Otherwise, we get blocked in
14078         some run-time operations.
14079         (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
14080         until all nested locks have been released.
14081         (Task_Wrapper): Call the fall-back task termination handler. It
14082         applies to all tasks but the environment task.
14083         (Finalize_Global_Tasks): Add the call for the task termination
14084         procedure for the environment task.
14085         (Task_Wrapper): suppress warnings around declaration of
14086         Secondary_Stack_Address.
14087
14088         * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
14089         moved to the Common_ATCB record.
14090         (Task_Lock): Global_Task_Lock_Nesting has been moved to the
14091         Common_ATCB record.
14092         (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
14093         Common_ATCB record.
14094
14095         * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
14096         Fall_Back_Handler, and Specific_Handler.
14097
14098         * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
14099         defined in Ada.Task_Termination, to avoid circular dependencies.
14100         (Termination_Handler): Redefine this type here, alredy defined in
14101         Ada.Task_Termination, for avoiding circular dependencies.
14102         (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
14103         for storing task termination handlers. In addition,
14104         Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
14105         Common_ATCB because it is used by both the regular and the restricted
14106         run times.
14107         (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
14108         Common_ATCB because it is used by both the regular and the restricted
14109         run times.
14110         (Common_ATCB): Added a dynamic task analyzer field.
14111
14112         * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
14113         potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
14114         (Task_Wrapper): Call the task termination handler. It applies to all
14115         tasks but the environment task.
14116         (Finalize_Global_Tasks): Call the task termination procedure for the
14117         environment task. The call to Finalize_Global_List is now performed
14118         using the soft links mechanism.
14119         (Task_Wrapper): added dynamic stack analysis.
14120
14121         * s-tasuti.adb (Abort_Tasks): The code in charge of checking
14122         potentially blocking operations has been moved from
14123         System.Tasking.Stages.Abort_Tasks to this procedure. There can be
14124         direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
14125         through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
14126         this run-time check.
14127
14128         * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
14129         of task termination procedure.
14130         (Init_Tasking_Soft_Links): Install the task-safe version of the soft
14131         link for the task termination procedure.
14132
14133         * bindusg.adb: (Bindusg): Added documentation for -u option.
14134
14135         * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
14136         (Get_Main_C): Add handling of dynamic stack analysis.
14137         (Gen_Output_File_C): Add external functions for dynamic stack analysis.
14138
14139         * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
14140         (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
14141         (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
14142
14143         * opt.ads: Added flags used by dynamic stack measurement.
14144         (Max_Line_Length): Remove (not used anymore)
14145
14146         * s-io.ads, s-io.adb (Standard_Error): new subprogram
14147         (Standart_Output): new subprogram
14148         (Set_Output): new subprogram
14149         (Put): now uses the value of Current_Out to know if the output has to be
14150         send to stderr or stdout.
14151         
14152         * s-stausa.ads: Complete implementation.
14153
14154         * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
14155         
14156         * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
14157         list of Ada 05 files.
14158         (GNAT Library Units): Add AltiVec files.
14159
14160         * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
14161         g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
14162         g-alvety.ads, g-alvevi.ads: New files providing altivec API.
14163
14164 2005-12-09  Nicolas Setton  <setton@adacore.com>
14165
14166         * adaint.c (__gnat_locate_regular_file): Return immediately if
14167         file_name is empty.
14168
14169 2005-12-09  Javier Miranda  <miranda@adacore.com>
14170             Hristian Kirtchev  <kirtchev@adacore.com>
14171
14172         * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
14173         to the specification because the frontend generates code that uses this
14174         subprogram.
14175         (Set_Interface_Table): Add missing assertion.
14176         Update documentation describing the run-time structure.
14177         (Displace): New subprogram that displaces the pointer to the object
14178         to reference one of its secondary dispatch tables.
14179         (IW_Membership): Modified to use the new table of interfaces.
14180         (Inherit_TSD): Modified to use the new table of interfaces.
14181         (Register_Interface_Tag): Use the additional formal to fill the
14182         contents of the new table of interfaces.
14183         (Set_Interface_Table): New subprogram that stores in the TSD the
14184         pointer to the table of interfaces.
14185         (Set_Offset_To_Top): Use the additional formal to save copy of
14186         the offset value in the table of interfaces.
14187         Update structure of GNAT Primary and Secondary dispatch table diagram.
14188         Add comment section on GNAT dispatch table prologue.
14189         (Offset_To_Signature): Update the constant value of the Signature field.
14190         (Dispatch_Table): Update comment on hidden fields in the prologue.
14191         (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
14192         Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
14193         the type of formal parameter T to Tag, introduce additional assertions.
14194         (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
14195         conversion.
14196         (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
14197
14198         * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
14199         in all the calls to Expand_Interface_Thunk. Instead of referencing the
14200         record component containing the tag of the secondary dispatch table we
14201         have to use the Offset_To_Top run-time function to get this information;
14202         otherwise if the pointer to the base of the object has been displace
14203         we get a wrong value if we use the 'position attribute.
14204
14205         * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
14206         all the calls to Expand_Interface_Thunk.
14207         (Make_Secondary_DT): Secondary dispatch tables do not have a table of
14208         interfaces; hence the call to Set_Interface_Table was clearly wrong.
14209         (Collect_All_Interfaces): Modify the internal subprogram Collect to
14210         ensure that the interfaces implemented by the ancestors are placed
14211         at the header of the generated list.
14212         (Expand_Interface_Conversion): Handle the case in which the displacement
14213         associated with the interface conversion is not statically known. In
14214         this case we generate a call to the new run-time subprogram Displace.
14215         (Make_DT): Generate and fill the new table of interfaces.
14216         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
14217         Get_Tagged_Kind and Set_Tagged_Kind.
14218         (Tagged_Kind): New function that determines the tagged kind of a type
14219         with respect to limitedness and concurrency and returns a reference to
14220         RE_Tagged_Kind.
14221         (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
14222         Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
14223         primary dispatch table for a type.
14224         (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
14225         secondary dispatch table respectively of a tagged type.
14226
14227         * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
14228         (Expand_Interface_Conversion): New subprogram to indicate if the
14229         displacement of the type conversion is statically known.
14230         (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
14231
14232         * rtsfind.ads (RE_Offset_To_Top): New entity
14233         (RTU_Id): Add Ada_Task_Termination to the list so that it is made
14234         accessible to users.
14235         (Re_Displace): New entity
14236         (RE_Interface_Data): New entity
14237         (RE_Set_Interface_Data): New_Entity
14238         (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
14239         Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
14240         RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
14241         RE_TK_Tagged, RE_TK_Task.
14242
14243         * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
14244         Init_Secondary_Tags_Internal to allow its use with interface types and
14245         also to generate the code for the new additional actual required
14246         by Set_Offset_To_Top.
14247         (Build_Init_Statements): In case of components associated with abstract
14248         interface types there is no need to generate a call to its IP.
14249         (Freeze_Record_Type): Generate Select Specific Data tables only for
14250         concurrent types.
14251         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
14252         the bodies and specifications of the predefined primitive operations
14253         dealing with dispatching selects and abort, 'Callable, 'Terminated only
14254         for concurrent types.
14255
14256         * exp_sel.ads, exp_sel.adb: New files.
14257
14258         * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
14259         Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
14260         properly protected objects and attach handler in the case of the
14261         restricted profile.
14262         Move embeded package Select_Expansion_Utilities into a separate external
14263         package.
14264         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
14265         Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
14266         (Build_K, Build_S_Assignment): New subprograms, part of the select
14267         expansion utilities.
14268         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
14269         Expand_N_Timed_Entry_Call): Optimize expansion of select statements
14270         where the trigger is a dispatching procedure of a limited tagged type.
14271
14272 2005-12-09  Olivier Hainque  <hainque@adacore.com>
14273
14274         * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
14275         pointer initialization values. Make a SAVE_EXPR instead. Add comments
14276         about the use and expansion of SAVE_EXPRs in the various possible
14277         renaming handling cases.
14278         (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
14279         abusing DECL_FCONTEXT.
14280
14281 2005-12-09  Matthew Heaney  <heaney@adacore.com>
14282
14283         * a-convec.adb (Merge): Added assertions to check whether vector params
14284         are sorted.
14285
14286         * a-coinve.adb (Merge): Added assertions to check whether vector params
14287         are sorted.
14288
14289         * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
14290         draft.
14291         (Cursor'Read): raises PE
14292
14293         * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
14294         to its default value.
14295
14296         * a-cihama.adb: Manually check whether cursor's key and elem are
14297         non-null
14298
14299         * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
14300         (Merge): Assert that target and source lists are in order
14301         (Swap): Declare non-const temporaries, to pass to Splice
14302
14303         * a-cdlili.ads: (Splice): Changed param name and param mode
14304
14305         * a-cdlili.adb: (Splice): Changed param name and param mode
14306         (Merge): Assert that target and source lists are in order
14307         (Swap): Declare non-const temporaries, to pass to Splice
14308
14309         * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
14310         (Write): declare Stream param as not null
14311
14312         * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
14313         an exception message.
14314
14315 2005-12-09  Thomas Quinot  <quinot@adacore.com>
14316             Robert Dewar  <dewar@adacore.com>
14317
14318         * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
14319         which is the absolute maximum length we can support.
14320
14321         * frontend.adb: For the processing of configuration pragma files,
14322         remove references to Opt.Max_Line_Length, which is not checked anymore.
14323
14324         * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
14325         length.
14326
14327         * scn.adb, scng.adb: 
14328         Always check line length against the absolute supported maximum,
14329         Hostparm.Max_Line_Length.
14330
14331         * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
14332         value for the maximum line length is Max_Line_Length (not
14333         Column_Number'Last).
14334         Minor error msg update
14335         (Set_Style_Check_Options): New interface returning error msg
14336         Minor code reorganization (processing for 'M' was out of alpha order)
14337
14338         * switch-c.adb: New interface for Set_Style_Check_Options
14339
14340         * stylesw.ads (Set_Style_Check_Options): New interface returning error
14341         msg.
14342
14343 2005-12-09  Javier Miranda  <miranda@adacore.com>
14344
14345         * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
14346         with IP subprogram were only supported if there were limited types.
14347
14348         * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
14349         records with IP subprogram were only supported if there were limited
14350         types.
14351
14352 2005-12-09  Olivier Hainque  <hainque@adacore.com>
14353             Eric Botcazou  <ebotcazou@adacore.com>
14354
14355         * trans.c (tree_transform, emit_check): Adjust calls to
14356         build_call_raise, passing the now expected GNAT_NODE argument.
14357
14358         * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
14359         source line information than what the current global locus indicates
14360         when appropriate.
14361
14362         * utils2.c (build_simple_component_ref): Return 0 if the offset of the
14363         field has overflowed.
14364         (build_call_raise): Add a GNAT_NODE argument to convey better source
14365         line information than what the current global locus indicates when
14366         appropriate.
14367         (build_component_ref): Adjust call to build_call_raise.
14368
14369 2005-12-09  Pascal Obry  <obry@adacore.com>
14370
14371         * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
14372         the iterator is quitting iteration on parent directory.
14373
14374 2005-12-09  Javier Miranda  <miranda@adacore.com>
14375
14376         * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
14377         and the assignment to a class-wide object, before the assignment we
14378         generate a run-time check to ensure that the tag of the Target is
14379         covered by the tag of the source.
14380
14381 2005-12-09  Robert Dewar  <dewar@adacore.com>
14382
14383         * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
14384         parameter in call to Image_Wide_Character.
14385
14386         * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
14387         parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
14388         (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
14389         annoying FFFE/FFFF inconsistency.
14390
14391 2005-12-09  Robert Dewar  <dewar@adacore.com>
14392             Javier Miranda  <miranda@adacore.com>
14393             Ed Schonberg  <schonberg@adacore.com>
14394
14395         * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
14396         of type conversion.
14397         (Find_Interface): New subprogram that given a tagged type and one of its
14398         component associated with the secondary table of an abstract interface
14399         type, return the entity associated with such abstract interface type.
14400         (Make_Subtype_From_Expr): If type has unknown discriminants, always use
14401         base type to create anonymous subtype, because entity may be a locally
14402         declared subtype or generic actual.
14403         (Find_Interface): New subprogram that given a tagged type and one of its
14404         component associated with the secondary table of an abstract interface
14405         type, return the entity associated with such abstract interface type.
14406
14407         * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
14408         conversion cannot be handled at compile time. In this case we pass this
14409         information to the expander to generate the appropriate code.
14410
14411 2005-12-09  Robert Dewar  <dewar@adacore.com>
14412             Ed Schonberg  <schonberg@adacore.com>
14413             Gary Dismukes  <dismukes@adacore.com>
14414             Javier Miranda  <miranda@adacore.com>
14415             Hristian Kirtchev  <kirtchev@adacore.com>
14416
14417         * einfo.adb (Itype_Printed): New flag
14418         (Is_Limited_Type): Derived types do not inherit limitedness from
14419         interface progenitors.
14420         (Is_Return_By_Reference_Type): Predicate does not apply to limited
14421         interfaces.
14422
14423         * einfo.ads (Itype_Printed): New flag
14424         Move Is_Wrapper_Package to proper section
14425         Add missing Inline for Is_Volatile
14426
14427         * output.ads, output.adb (Write_Erase_Char): New procedure
14428         (Save/Restore_Output_Buffer): New procedures
14429         (Save/Restore_Output_Buffer): New procedures
14430
14431         * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
14432         Add missing support for anonymous access type
14433         (Write_Id): Insert calls to Write_Itype
14434         (Write_Itype): New procedure to output itypes
14435
14436         * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
14437         use of "limited" in declaration.
14438
14439         * sinfo.ads, sinfo.adb: 
14440         Formal derived types can carry an explicit "limited" indication.
14441
14442         * sem_ch3.adb: Add with and use of Targparm.
14443         (Create_Component): If Frontend_Layout_On_Target is True and the
14444         copied component does not have a known static Esize, then reset
14445         the size and positional fields of the new component.
14446         (Analyze_Component_Declaration): A limited component is
14447         legal within a protected type that implements an interface.
14448         (Collect_Interfaces): Do not add to the list the interfaces that
14449         are implemented by the ancestors.
14450         (Derived_Type_Declaration): If the parent of the full-view is an
14451         interface perform a transformation of the tree to ensure that it has
14452         the same parent than the partial-view. This simplifies the job of the
14453         expander in order to generate the correct object layout, and it is
14454         needed because the list of interfaces of the full-view can be given in
14455         any order.
14456         (Process_Full_View): The parent of the full-view does not need to be
14457         a descendant of the parent of the partial view if both parents are
14458         interfaces.
14459         (Analyze_Private_Extension_Declaration): If declaration has an explicit
14460         "limited" the parent must be a limited type.
14461         (Build_Derived_Record_Type): A derived type that is explicitly limited
14462         must have limited ancestor and progenitors.
14463         (Build_Derived_Type): Ditto.
14464         (Process_Full_View): Verify that explicit uses of "limited" in partial
14465         and full declarations are consistent.
14466         (Find_Ancestor_Interface): Remove function.
14467         (Collect_Implemented_Interfaces): New procedure used to gather all
14468         implemented interfaces by a type.
14469         (Contain_Interface): New function used to check whether an interface is
14470         present in a list.
14471         (Find_Hidden_Interface): New function used to determine whether two
14472         lists of interfaces constitute a set equality. If not, the first
14473         differing interface is returned.
14474         (Process_Full_View): Improve the check for the "no hidden interface"
14475         rule as defined by AI-396.
14476
14477 2005-12-09  Robert Dewar  <dewar@adacore.com>
14478
14479         * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
14480         types, not on record subtypes.
14481         (Freeze_Entity): Code cleanup. Add barrier to the loop
14482         that generates the references for primitive operations. This allows to
14483         remove an unnecessary exception handler.
14484         Code reformatting and comment clean ups.
14485
14486 2005-12-09  Vincent Celier  <celier@adacore.com>
14487
14488         * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
14489         If GNAT CHECK is called with a project file, but with no
14490         source on the command line, call gnatcheck with all the compilable
14491         sources of the project.
14492         Take into account the new command Check, for gnatcheck. Treat as for
14493         other ASIS tools: take into account project, specific package Check and
14494         Compiler switches.
14495         For ASIS tools, add the switches in package Compiler for
14496         the invocation of the compiler.
14497
14498         * prj-attr.adb: Add package Check and its attributes
14499
14500         * vms_conv.ads (Command_Type): New command Check, for gnatcheck
14501
14502         * vms_conv.adb (Initialize): Change Params of command Check to
14503         unlimited files.
14504         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
14505         Add data for new command Check
14506
14507         * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
14508         ELIM.
14509         Add qualifiers for Check command options
14510         (Command_Type): New command Check
14511
14512 2005-12-09  Thomas Quinot  <quinot@adacore.com>
14513
14514         * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
14515         command line switch overruns the output buffer.
14516
14517 2005-12-09  Robert Dewar  <dewar@adacore.com>
14518
14519         * sem_prag.adb: Processing for new pragma Complete_Representation
14520         (Analyze_Pragma, case Debug): Implement two argument form.
14521
14522         * par-prag.adb: Entry for new pragma Complete_Representation
14523         (Prag, case Debug): Recognize two argument form of pragma Debug
14524         New interface for Set_Style_Check_Options.
14525
14526         * sem_ch13.adb: Implement new pragma Complete_Representation.
14527
14528         * snames.adb, snames.ads, snames.h: Entry for new pragma
14529         Complete_Representation.
14530
14531 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
14532
14533         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
14534         available user-specified stream attributes on limited parameters to
14535         also test the type directly rather than only its underlying type (for
14536         Ada 95) and, in the case of Ada 2005, to check that the user-specified
14537         attributes are visible at the point of the subprogram declaration.
14538         For Ada 2005, the error message is modified to indicate that the
14539         type's stream attributes must be visible (again, only for -gnat05).
14540
14541 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
14542
14543         * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
14544         anonymous access types.
14545
14546         * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
14547         matching of anonymous access types and anonymous access to subprogram
14548         types. 'R'M 4.9.1 (2/2).
14549
14550 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
14551
14552         * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
14553         rule prematurely when operands are universal, remaining ambiguities
14554         will be removed during resolution.
14555         Code cleanup.
14556
14557         * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
14558         that are Ada 2005 functions.
14559         (Has_Abstract_Interpretation): Subsidiary to
14560         Remove_Conversions, to remove ambiguities caused by abstract operations
14561         on numeric types when operands are universal.
14562
14563 2005-12-09  Robert Dewar  <dewar@adacore.com>
14564
14565         * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
14566         for case where spec is categorized.
14567
14568 2005-12-09  Javier Miranda  <miranda@adacore.com>
14569
14570         * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
14571         types use the corresponding record type. This was not needed before
14572         the implementation of Ada 2005 synchronized types because
14573         concurrent types were never tagged types in Ada 95.
14574
14575 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
14576
14577         * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
14578         first subtype of the type of the expression to verify that it is a
14579         legal Time type.
14580
14581 2005-12-09  Robert Dewar  <dewar@adacore.com>
14582
14583         * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
14584         decoded names.
14585
14586 2005-12-09  Quentin Ochem  <ochem@adacore.com>
14587             Robert Dewar  <dewar@adacore.com>
14588             Ed Falis  <falis@adacore.com>
14589             Florian Villoing  <villoing@adacore.com>
14590             Thomas Quinot  <quinot@adacore.com>
14591             Arnaud Charlet  <charlet@adacore.com>
14592
14593         * gnat_ugn.texi: Created section "Stack Related Tools"
14594         Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
14595         "Stack Related Tools"
14596         Added subsection "Static Stack Usage Analysis"
14597         Added subsection "Dynamic Stack Usage Analysis"
14598         Include documentation of itypes in sprint listing (-gnatG)
14599         Documented gnatbind -D switch (default sec stack size for fixed sec
14600         stacks).
14601         Added Interrupt_State and Persistent_BSS to list of configuration
14602         pragmas.
14603         Add missing doc for maximum value of nnn in -gnatyMnnn
14604
14605         * gnat_rm.texi: Document the AltiVec binding.
14606         Add documentation for pragma Complete_Representation
14607         Shortened an overly long line (> 79 chars)
14608         Clarify documentation of unchecked conversion in implementation
14609         defined cases.
14610         Document two argument form of pragma Debug
14611
14612         * types.ads (Column_Number): Update documentation.
14613
14614         * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
14615         library level Finalize_Storage_Only objects (these are not attached to
14616         any finalization list).
14617
14618         * system-mingw.ads: (Underlying_Priorities): Update comment.
14619
14620 2005-12-09  Robert Dewar  <dewar@adacore.com>
14621
14622         * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
14623         i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
14624         inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
14625         i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
14626         krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
14627         lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
14628         interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
14629         s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
14630         reformatting.
14631
14632 2005-12-09  Robert Dewar  <dewar@adacore.com>
14633
14634         * s-vaflop-vms-alpha.adb: (Ne_F): New function
14635         (Ne_G): New function
14636
14637         * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
14638         for tag assignment.
14639         (Rewrite_Comparison): Handle case where operation is not a comparison
14640         and ignore, and also handle type conversion case.
14641
14642 2005-12-09  Thomas Quinot  <quinot@adacore.com>
14643
14644         * exp_aggr.ads: Fix typo in comment.
14645         ???-mark Convert_Aggr_In_Assignment as needing documentation.
14646
14647 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
14648
14649         * layout.adb: Replace various uses of byte by storage unit throughout.
14650         (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
14651         static size, convert to storage units before returning, to conform to
14652         spec.
14653
14654 2005-12-09  Matthew Gingell  <gingell@adacore.com>
14655
14656         * g-exctra.ads: Fix typo in comment.
14657
14658 2005-12-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14659
14660         * utils.c: Minor reformatting.
14661
14662 2005-12-09  Robert Dewar  <dewar@adacore.com>
14663
14664         * g-soccon.ads: 
14665         Further comment fixes to make the status of the default file clear
14666
14667         * s-bitops.adb: Clarify comment for Bits_Array
14668
14669 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
14670
14671         * Make-lang.in (ada.install-normal): Remove.
14672
14673 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
14674
14675         * Make-lang.in: Remove all dependencies on s-gtype.
14676
14677 2005-12-05  Richard Guenther  <rguenther@suse.de>
14678
14679         * utils.c (convert): Use fold_convert where appropriate.
14680
14681 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
14682
14683         * Makefile.in (gnatlib): Fix regex, using \. instead of . when
14684         a period is meant.
14685
14686 2005-12-02  Richard Guenther  <rguenther@suse.de>
14687
14688         * trans.c (gnat_gimplify_expr): Use buildN instead of build.
14689
14690 2005-12-01  Roger Sayle  <roger@eyesopen.com>
14691
14692         * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
14693         nodes.
14694
14695 2005-11-23  Laurent GUERBY  <laurent@guerby.net>
14696
14697         * mlib-prj.adb (Build_Library): Initialize Delete.
14698
14699 2005-11-21  Joel Sherrill <joel.sherrill@oarcorp.com>
14700
14701         * socket.c: Add extern int h_errno for rtems since networking header
14702         files are not available at this point in a tool bootstrap. Newlib
14703         only has basic C library header files.
14704
14705 2005-11-19  Richard Guenther  <rguenther@suse.de>
14706         Roger Sayle  <roger@eyesopen.com>
14707
14708         PR ada/23717
14709         * misc.c (internal_error_function): Don't use vsprintf to format
14710         the error message text, instead use pp_format_text and the new
14711         pretty printer APIs.  This allows handling of %qs, %w, etc.
14712
14713 2005-11-18  Laurent GUERBY  <laurent@guerby.net>
14714
14715         PR ada/24857
14716         * Makefile.in: Use s-auxdec-empty for RTEMS.
14717
14718 2005-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14719
14720         PR ada/22333
14721         * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
14722         a temporary if taking the address of something that is neither
14723         reference, declaration, or constant, since the gimplifier
14724         can't handle that case.
14725
14726 2005-11-17  Laurent GUERBY  <laurent@guerby.net>
14727
14728         PR ada/24857
14729         * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
14730
14731 2005-11-16  Richard Guenther  <rguenther@suse.de>
14732
14733         * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
14734
14735 2005-11-16  Joel Sherrill <joel.sherrill@oarcorp.com>
14736
14737         PR ada/24855
14738         * raise-gcc.c: Add missing stdarg.h include.
14739  
14740 2005-11-16  Richard Guenther  <rguenther@suse.de>
14741
14742         * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
14743         (ada/misc.o): Likewise.
14744
14745 2005-11-14  Thomas Quinot  <quinot@adacore.com>
14746
14747         * g-soccon.ads: Minor reformatting. Update comments.
14748
14749         * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
14750         gain visibility on the declaration of struct timeval.
14751
14752         * g-soccon-freebsd.ads,
14753         g-soccon-darwin.ads,
14754         g-soccon-tru64.ads,
14755         g-soccon-aix.ads,
14756         g-soccon-irix.ads,
14757         g-soccon-hpux.ads,
14758         g-soccon-solaris.ads,
14759         g-soccon-vms.ads,
14760         g-soccon-mingw.ads,
14761         g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
14762
14763         * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
14764         g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
14765         g-soccon-linux-x86.ads: New files.
14766
14767         * g-socthi-mingw.adb: 
14768         (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
14769
14770         * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
14771         (time_t, suseconds_t): New types constructed to match the tv_sec
14772         and tv_usec fields of C struct timeval.
14773         (Timeval): Construct structure in terms of the new types.
14774         (Host_Errno): New function (imported from socket.c), returns last hosts
14775         database error.
14776
14777         * g-socthi-vxworks.adb:  Add error handling circuitry.
14778
14779         * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
14780         components of struct timeval.
14781         (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
14782         (Check_Selector): In error conditions, clear internal socket sets to
14783         avoid a memory leak.
14784         (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
14785         Send_Timeout, Receive_Timeout.
14786
14787         * g-socthi.ads (time_t, suseconds_t): New types constructed to match
14788         the tv_sec and tv_usec fields of C struct timeval.
14789         (Timeval): Construct structure in terms of the new types.
14790         (Host_Errno): New function (imported from socket.c), returns last hosts
14791         database error.
14792
14793         * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
14794         hosts database last error code.
14795
14796         * gen-soccon.c: Complete value expansion should not be performed on
14797         TARGET, as it has the form of a math expression, and some components
14798         may be platform-defined macros.
14799         For VxWorks, generate the OK and ERROR values.
14800         New constants giving the sizes of the components of C struct timeval.
14801
14802 2005-11-14  Robert Dewar  <dewar@adacore.com>
14803             Ed Schonberg  <schonberg@adacore.com>
14804
14805         PR ada/18434
14806         * types.ads: Include All_Checks in Suppress_Array
14807
14808         * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
14809         not(a=b), since we no longer do this rewriting, and hence it is not
14810         needed.
14811         (Elaboration_Checks_Suppressed): Add special casing to
14812         deal with different cases of static and dynamic elaboration checks (all
14813         checks does not count in the first case, but does in the second).
14814         (Expr_Known_Valid): Do not assume that the result of any arbitrary
14815         function call is valid, since this is not the case.
14816         (Ensure_Valid): Do not apply validity check to a real literal
14817         in a universal or fixed context
14818
14819         * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
14820         elementary types using the operator in standard. It is cleaner not to
14821         modify the programmers intent, especially in the case of floating-point.
14822         (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
14823         it did not matter because we always rewrote a/=b to not(a=b).
14824         (Expand_Allocator_Expression): For an allocator expression whose nominal
14825         subtype is an unconstrained packed type, convert the expression to its
14826         actual constrained subtype.
14827         Implement warning for <= or >= where < or > not possible
14828         Fix to Vax_Float tests (too early in many routines, causing premature
14829         Vax_Float expansions.
14830
14831         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
14832         to be used with packages and generic packages as well as with
14833         subprograms.
14834         (Suppress): Set All_Checks, but not Elaboration_Check, for case
14835         of pragma Suppress (All_Checks)
14836         (Analyze_Pragma, case Warnings): Implement first argument allowed to be
14837         a string literal for precise control over warnings.
14838         Avoid raise of pragma in case of unrecognized pragma and just return
14839         instead.
14840
14841         * sem_prag.ads: Minor reformatting
14842
14843         * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
14844         with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
14845         Switch. Do not handle any exception.
14846         Include -gnatwx as part of -gnatg (warn on redundant parens)
14847         Allow optional = after -gnatm
14848         (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
14849         longer sets Elaboration_Checks.
14850         Code to set warning mode moved to Sem_Warn
14851         so that it can be shared by pragma processing.
14852
14853         * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
14854         statement.
14855
14856         * s-taprop-solaris.adb: 
14857         Change some <= to =, to avoid new warning
14858
14859         * a-exexda.adb, prj-proc.adb: 
14860         Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
14861         Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
14862
14863 2005-11-14  Robert Dewar  <dewar@adacore.com>
14864
14865         * exp_vfpt.adb: Handle /= case
14866         (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
14867         so that we do not get duplicate scaling for fixed point conversions.
14868
14869         * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
14870
14871 2005-11-14  Matthew Gingell  <gingell@adacore.com>
14872
14873         * system-lynxos-ppc.ads, system-lynxos-x86.ads: 
14874         Increase default priority on Lynx from 15 to 17, and meet the Ada
14875         requirement that Default_Priority be ((Priority'First +
14876         Priority'Last) / 2) by increasing the range of Interrupt_Priority.
14877
14878 2005-11-14  Vincent Celier  <celier@adacore.com>
14879
14880         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
14881         mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
14882         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
14883         mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
14884         mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
14885         mlib-tgt-lynxos.adb (DLL_Prefix): New function
14886
14887 2005-11-14  Doug Rupp  <rupp@adacore.com>
14888
14889         * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
14890         private part.
14891
14892 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
14893
14894         * s-traces-default.adb, s-trafor-default.ads,
14895         s-tratas-default.adb: Fix compilation errors.
14896
14897 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
14898
14899         * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
14900         raising the exception so the memory used is freed.
14901
14902 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
14903
14904         * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
14905         (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
14906         (convert_address): Update comments and list of platforms using this.
14907
14908         * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
14909         no longer used.
14910
14911 2005-11-14  Pascal Obry  <obry@adacore.com>
14912             Vincent Celier  <celier@adacore.com>
14913
14914         * gnatdll.adb (Parse_Command_Line): Remove redundant use of
14915         GNAT.Command_Line.
14916
14917         * memroot.adb: Remove redundant with/use clause on
14918         System.Storage_Elements.
14919
14920 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
14921
14922         * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
14923         (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
14924         related code to a-exexpr.adb
14925         (Save_Occurrence_And_Private): Move GCC EH related code to
14926         a-exexpr-gcc.adb
14927         (Raise_Current_Excep): Add new variable Id with pragma
14928         volatile, to ensure that the variable lives on stack.
14929
14930         * a-exexpr-gcc.adb, raise-gcc.c: New file.
14931
14932         * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
14933         from a-except.adb.
14934         Move GCC EH related code to a-exexpr-gcc.adb
14935
14936         * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
14937         64-bit Solaris
14938         Split the Linux version of g-soccon into separate variants for 32 and 64
14939         bit platforms.
14940         (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
14941         vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
14942         install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
14943         of host variable $(RANLIB_FLAGS).
14944         (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
14945         Code clean up: remove unused/obsolete targets.
14946         (EH_MECHANISM): New variable introduced to differenciate between the
14947         two EH mechanisms statically.
14948         (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
14949         (LIBGNAT_OBJS): Add raise-gcc.o
14950         (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
14951         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
14952         supports VxWorks 6 RTPs.
14953         (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
14954         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
14955
14956         * raise.c: Move all GCC EH-related routines to raise-gcc.c
14957
14958 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
14959
14960         * s-tassta.adb (Create_Task): Move the code in charge of resetting the
14961         deferral level, when abort is not allowed, to a later stage (the
14962         Task_Wrapper).
14963         (Task_Wrapper): If Abort is not allowed, reset the deferral level since
14964         it will not get changed by the generated code. It was previously done
14965         in Create_Task.
14966
14967 2005-11-14  Thomas Quinot  <quinot@adacore.com>
14968             Olivier Hainque  <hainque@adacore.com>
14969             Eric Botcazou  <ebotcazou@adacore.com>
14970
14971         * decl.c:
14972         Factor common code to build a storage type for an unconstrained object
14973         from a fat or thin pointer type and a constrained object type.
14974         (annotate_value): Handle BIT_AND_EXPR.
14975         (annotate_rep): Don't restrict the back annotation of inherited
14976         components to the type_annotate_only case.
14977         (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
14978         we are not defining the type.
14979         <E_Record_Type>: Likewise.
14980         (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
14981         to get advantage of the new maybe_stabilize_reference interface, to
14982         ensure that what we reference is indeed stabilized instead of relying
14983         on assumptions on what the stabilizer does.
14984         (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
14985         type imported through a limited_with clause, use its non-limited view.
14986         (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
14987         differentiation.
14988         (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
14989         of #if sections + explicit comparisons of convention identifiers.
14990         (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
14991         before early-returning for certain types when code generation is
14992         disabled.
14993         (gnat_to_gnu_entity) <object>: Adjust comment attached to the
14994         nullification of gnu_expr we do for objects with address clause and
14995         that we are not defining.
14996         (elaborate_expression_1): Do not create constants when creating
14997         variables needed by the debug info: the dwarf2 writer considers that
14998         CONST_DECLs is used only to represent enumeration constants, and emits
14999         nothing for them.
15000         (gnat_to_gnu_entity) <object>: When turning a non-definition of an
15001         object with an address clause into an indirect reference, drop the
15002         initializing expression.
15003         Include "expr.h".
15004         (STACK_CHECK_BUILTIN): Delete.
15005         (STACK_CHECK_PROBE_INTERVAL): Likewise.
15006         (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
15007         (STACK_CHECK_MAX_VAR_SIZE): Likewise.
15008         (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
15009         corresponding to the renamed object as ignored for debugging purposes.
15010
15011         * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
15012         related): For a prefix that is a dereference of a fat or thin pointer,
15013         if there is an actual subtype provided by the front-end, use that
15014         subtype to build an actual type with bounds template.
15015         (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
15016         is provided by the front-end, use that subtype to compute the size of
15017         the deallocated object.
15018         (gnat_to_gnu): When adding a statement into an elaboration procedure,
15019         check for a potential violation of a No_Elaboration_Code restriction.
15020         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
15021         with extra arguments to control whether to recurse through non-values
15022         and to let the caller know if the stabilization has succeeded.
15023         (gnat_stabilize_reference): Now a simple wrapper around
15024         maybe_stabilize, for common uses without restriction on lvalues and
15025         without need to check for the success indication.
15026         (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
15027         pass false instead of 0 as the FORCE argument which is a bool.
15028         (Identifier_to_gnu): Remove checks ensuring that an renamed object
15029         attached to a renaming pointer has been properly stabilized, as no such
15030         object is attached otherwise.
15031         (call_to_gnu): Invoke create_var_decl to create the temporary when the
15032         function uses the "target pointer" return mechanism.
15033         Reinstate conversion of the actual to the type of the formal
15034         parameter before any other specific treatment based on the passing
15035         mechanism. This turns out to be necessary in order for PLACEHOLDER
15036         substitution to work properly when the latter type is unconstrained.
15037
15038         * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
15039         common pattern.
15040         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
15041         with extra arguments to control whether to recurse through non-values
15042         and to let the caller know if the stabilization has succeeded.
15043
15044         * utils2.c (gnat_build_constructor): Only sort the fields for possible
15045         static output of record constructor if all the components are constant.
15046         (gnat_build_constructor): For a record type, sort the list of field
15047         initializers in increasing bit position order.
15048         Factor common code to build a storage type for an unconstrained object
15049         from a fat or thin pointer type and a constrained object type.
15050         (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
15051         types variants, and process special cases of VIEW_CONVERT expressions
15052         as their NOP_EXPR counterpart to ensure we get to the
15053         CORRESPONDING_VARs associated with CONST_DECls.
15054         (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
15055         on the right-hand side.
15056
15057         * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
15058         a common pattern.
15059         (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
15060         are converting back to its original type.
15061         (convert) <JM input>: Fallthrough regular conversion code instead of
15062         extracting the object if converting to a type variant.
15063         (create_var_decl): When a variable has an initializer requiring code
15064         generation and we are at the top level, check for a potential violation
15065         of a No_Elaboration_Code restriction.
15066         (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
15067         SIZE and SIZE_UNIT which we need for later back-annotations.
15068         * utils.c: (convert) <STRING_CST>: Remove obsolete code.
15069         <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
15070         is an unchecked union.
15071         (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
15072         (convert) <VIEW_CONVERT_EXPR>: When the types have the same
15073         main variant, just replace the VIEW_CONVERT_EXPR.
15074         <UNION_TYPE>: Revert 2005-03-02 change.
15075
15076         * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
15077
15078         * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
15079
15080 2005-11-14  Matthew Heaney  <heaney@adacore.com>
15081
15082         * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads, 
15083         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb, 
15084         a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads, 
15085         a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb, 
15086         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
15087         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb: 
15088         Compiles against the spec for ordered maps described in sections
15089         A.18.6 of the most recent (August 2005) AI-302 draft.
15090
15091 2005-11-14  Olivier Hainque  <hainque@adacore.com>
15092
15093         * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
15094         to ensure bias adjustments take place when need be and to prevent
15095         occurrences of intermediate overflows.
15096
15097 2005-11-14  Matthew Gingell  <gingell@adacore.com>
15098             Olivier Hainque  <hainque@adacore.com>
15099
15100         * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
15101         ia64 HP-UX.
15102
15103         * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
15104         tracebacks on ia64 HP-UX and provide explanatory comment.
15105         Enable backtraces on ia64 GNU/Linux.
15106         (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
15107         base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
15108
15109 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
15110             Javier Miranda  <miranda@adacore.com>
15111
15112         * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
15113         exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
15114         exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
15115         einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
15116
15117         * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
15118         properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
15119         assertions).
15120
15121         * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
15122         subprogram that generates the external name associated with a
15123         secondary dispatch table.
15124         (Get_Secondary_DT_External_Name): New subprogram that generates the
15125         external name associated with a secondary dispatch table.
15126
15127 2005-11-14  Emmanuel Briot  <briot@adacore.com>
15128
15129         * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
15130         line in the ALI file to include both an instantiation reference, and a
15131         returned value.
15132
15133 2005-11-14  Vincent Celier  <celier@adacore.com>
15134
15135         * clean.adb (Check_Project): Look for Ada code in extending project,
15136         even if Ada is not specified as a language.
15137         Use new function DLL_Prefix for DLL_Name
15138         (Clean_Interface_Copy_Directory): New procedure
15139         (Clean_Library_Directory): New procedure
15140         (Clean_Directory): Remove procedure, no longer used
15141         (Clean_Project): Do not delete any file in an externally built project
15142
15143         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
15144         directory of an extending project, even when there are no Ada source
15145         present.
15146         (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
15147         (Set_Ada_Paths.Add.Recursive_Add): Ditto
15148
15149         * mlib-prj.adb (Check_Library): For all library projects, get the
15150         library file timestamp.
15151         (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
15152         (Build_Library): Use new function DLL_Prefix for the DLL_Name
15153         (Clean): Remove procedure, no longer used
15154         (Ultimate_Extension_Of): New function
15155         (Build_Library): When cleaning the library directory, only remove an
15156         existing library file and any ALI file of a source of the project.
15157         When cleaning the interface copy directory, remove any source that
15158         could be a source of the project.
15159
15160         * prj.ads, prj.adb (Project_Empty): Add values of new components
15161         Library_TS and All_Imported_Projects.
15162         (Project_Empty): Add values for new components of Project_Data:
15163         Library_ALI_Dir and Display_Library_ALI_Dir
15164
15165         * prj-attr.adb: New project level attribute name Library_ALI_Dir
15166
15167         * prj-nmsc.adb (Check_Library_Attributes): Take into account new
15168         attribute Library_ALI_Dir.
15169         (Check_Library_Attributes): The library directory cannot be the same as
15170         any source directory of the project tree.
15171         (Check_Stand_Alone_Library): The interface copy directory cannot be
15172         the same as any source directory of the project tree.
15173
15174         * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
15175         all temporary files.
15176
15177 2005-11-14  Robert Dewar  <dewar@adacore.com>
15178             Ed Schonberg  <schonberg@adacore.com>
15179
15180         * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
15181         (Check_Elab_Call): A call within a protected body is never an
15182         elaboration call, and does not require checking.
15183         (Same_Elaboration_Scope): Take into account protected types for both
15184         entities.
15185         (Activate_Elaborate_All_Desirable): New procedure
15186
15187         * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
15188         desirable
15189
15190         * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
15191         (Elab_Error_Msg): Use -da to include internal unit links, not -de.
15192
15193         * lib-writ.ads, lib-writ.adb: 
15194         Implement new AD/ED for Elaborate_All/Elaborate desirable
15195         Use new Elaborate_All_Desirable flag in N_With_Clause node
15196
15197         * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
15198         N_Free_Statement nodes.
15199         Define new class N_Subprogram_Instantiation
15200         Add Elaborate_Desirable flag to N_With_Clause node
15201         Add N_Delay_Statement (covering two kinds of delay)
15202
15203         * debug.adb: Introduce d.f flag for compiler
15204         Add -da switch for binder
15205
15206 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
15207             Cyrille Comar  <comar@adacore.com>
15208
15209         * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
15210         for task component, in the case of a limited aggregate. The enclosed
15211         object declaration will create it earlier. Otherwise, in the case of a
15212         nested aggregate, the object may appear in the wrong scope.
15213         (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
15214         (Gen_Assign): If the component being assigned is an array type and the
15215         expression is itself an aggregate, wrap the assignment in a block to
15216         force finalization actions on the temporary created for each row of the
15217         enclosing object.
15218         (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
15219         structures are initialized after all discriminants are set so that
15220         they can be accessed even when their offset is dynamic.
15221
15222 2005-11-14  Robert Dewar  <dewar@adacore.com>
15223             Hristian Kirtchev  <kirtchev@adacore.com>
15224
15225         * sem_attr.adb: Implement Machine_Rounding attribute
15226         (Analyze_Access_Attribute): The access attribute may appear within an
15227         aggregate that has been expanded into a loop.
15228         (Check_Task_Prefix): Add semantic check for attribute 'Callable and
15229         'Terminated whenever the prefix is of a task interface class-wide type.
15230         (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
15231         the prefix is of a task interface class-wide type.
15232
15233         * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
15234         to avoid warnings.
15235
15236         * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
15237         Remove pragma Inline for [Unaligned_]Valid.
15238         Add comments that Valid routines do not work for Vax_Float
15239
15240         * exp_attr.adb: Implement Machine_Rounding attribute
15241
15242         * snames.h: Add entry for Machine_Rounding attribute
15243
15244 2005-11-14  Javier Miranda  <miranda@adacore.com>
15245             Robert Dewar  <dewar@adacore.com>
15246             Hristian Kirtchev  <kirtchev@adacore.com>
15247
15248         * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
15249         and related): For a prefix that is an explicit dereference of an
15250         access to unconstrained packed array type, annotate the dereference
15251         with an actual subtype so GIGI can make a correct size computation.
15252         (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
15253         'Unrestricted_Access, if the designated type is an interface we
15254         add a type conversion to force the displacement of the pointer
15255         to the secondary dispatch table.
15256         Use Universal_Real instead of Long_Long_Float when we need a high
15257         precision float type for the generated code (prevents gratuitous
15258         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
15259         (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
15260         'Terminated for task interface class-wide objects. Generate a call to
15261         the predefined dispatching routine used to retrieve the _task_id from
15262         a task corresponding record.
15263         (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
15264
15265         * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
15266         (Check_Dispatching_Operation): Protect the frontend againts
15267         previously detected errors.
15268
15269         * Makefile.rtl: Add new instantiations of system.fat_gen
15270
15271         * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads: 
15272         Change name of instantiated package for better consistency
15273         with newly added system.fat_gen instantiations.
15274
15275         * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
15276         s-fvagfl.ads: New files.
15277
15278 2005-11-14  Cyrille Comar  <comar@adacore.com>
15279             Thomas Quinot  <quinot@adacore.com>
15280
15281         * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
15282         assignment of a value of a tagged type that has been rewritten to a
15283         block statement, it is known by construction that no checks are
15284         necessary for the statements within the block: analyze it with checks
15285         suppressed.
15286         (Expand_N_If_Statement): When killing a dead then-branch in an
15287         if-statement that has elsif_parts, recompute the Current_Value node
15288         for any entity whose value is known from the condition of the first
15289         elsif_part.
15290         (Expand_N_Return_Statement): When returning a mutable record, convert
15291         the return value into its actual subtype in order to help the backend
15292         to return the actual size instead of the maximum. This is another
15293         aftermath of not returning mutable records on the sec-stack anymore.
15294
15295         * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
15296         handling of error msg for suspicious reverse range iteration.
15297         (Check_Possible_Current_Value_Condition): Move declaration from body to
15298         spec, to allow this subprogram to be called from exp_ch5.
15299
15300 2005-11-14  Thomas Quinot  <quinot@adacore.com>
15301
15302         * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
15303         generate a set of nested array aggregates instead of a single flat
15304         aggregate for multi-dimensional arrays.
15305
15306 2005-11-14  Pascal Obry  <obry@adacore.com>
15307
15308         * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
15309         by spawnve is a process handle, no need to convert. Add a parameter
15310         close to control wether the process handle must be closed.
15311         (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
15312         a process handle, not need to convert.
15313         (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
15314
15315         * g-expect.adb: (Kill): Document the new close parameter.
15316         (Close): Do not release the process handle in the kill there as
15317         waitpid() is using it.
15318         (Send_Signal): Release the process handle.
15319
15320 2005-11-14  Robert Dewar  <dewar@adacore.com>
15321
15322         * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
15323         need a high precision float type for the generated code (prevents
15324         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
15325         used).
15326
15327         * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
15328         need a high precision float type for the generated code (prevents
15329         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
15330         used).
15331         (Expand_Width_Attribute): In configurable run-time, the attribute is not
15332         allowed on non-static enumeration subtypes. Force a load error to emit
15333         the correct diagnostic.
15334
15335 2005-11-14  Thomas Quinot  <quinot@adacore.com>
15336             Robert Dewar  <dewar@adacore.com>
15337             Ed Schonberg  <schonberg@adacore.com>
15338
15339         * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
15340         subtype to compute the size of the designated object at run-time,
15341         create such a subtype and store it in the Actual_Designated_Subtype
15342         attribute of the N_Free_Statement.
15343         Generate itype for classwide designated object in both cases of
15344         user-specified storage pool: specific and class-wide, not only in the
15345         specific case.
15346         Raise CE when trying to set a not null access type object to null.
15347         (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
15348         an explicit loop, because freeze nodes make its position variable.
15349
15350         * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
15351         null object.
15352
15353 2005-11-14  Javier Miranda  <miranda@adacore.com>
15354
15355         * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
15356         Build_Stream_Procedure): Add the null-excluding attribute to the first
15357         formal.
15358         This has no semantic meaning under Ada95 mode but it is a
15359         requirement under Ada05 mode.
15360
15361         * par-ch3.adb (P_Access_Definition): Addition of warning message if
15362         the null exclusion is used under Ada95 mode
15363         (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
15364         (P_Access_Definition): Remove assertion that forbids the use of
15365         the null-exclusion feature in Ada95.
15366
15367 2005-11-14  Robert Dewar  <dewar@adacore.com>
15368
15369         * impunit.adb: Exclude container helper units not intended for use by
15370         users.
15371
15372 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
15373
15374         * freeze.adb (Freeze_Entity): For an access formal that is an access
15375         to subprogram, freeze the anonymous subprogram type at the same time,
15376         to prevent later freezing in the wrong scope, such as the enclosing
15377         subprogram body.
15378         (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
15379         subprogram whenever available.
15380
15381 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
15382
15383         PR ada/23732
15384         * gnatvsn.ads (Library_Version): Bump to 4.1
15385
15386 2005-11-14  Robert Dewar  <dewar@adacore.com>
15387
15388         * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
15389         Storage_Offset to avoid wrap around causing invalid results.
15390
15391 2005-11-14  Pascal Obry  <obry@adacore.com>
15392
15393         * gnatbind.adb (Is_Cross_Compiler): New function returning True for
15394         cross-compiler.
15395         (Scan_Bind_Arg): Fail with an error message if -M option is used
15396         on a native compiler.
15397
15398 2005-11-14  Robert Dewar  <dewar@adacore.com>
15399             Vincent Celier  <celier@adacore.com>
15400
15401         * gprep.adb: Implement -C switch to scan comments
15402
15403         * scng.adb: Scan comment symbol separately if Replace_In_Comments set
15404
15405         * scans.ads: Comment updates (including new use of Tok_Comment in
15406         preprocessing)
15407
15408         * opt.ads: Add documentation for flags that are used by gprmake,
15409         currently and in the next version of gprmake.
15410         (Verbosity_Level): New variable
15411         Add Replace_In_Comments switch
15412
15413         * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
15414         and -vm.
15415         Add /REPLACE_IN_COMMENTS for gnatprep -C switch
15416
15417 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
15418
15419         * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
15420         message, friendlier.
15421
15422 2005-11-14  Robert Dewar  <dewar@adacore.com>
15423
15424         * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
15425
15426 2005-11-14  Doug Rupp  <rupp@adacore.com>
15427
15428         * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
15429
15430 2005-11-14  Robert Dewar  <dewar@adacore.com>
15431
15432         * interfac.ads: Change declarations of IEEE float types so that we no
15433         longer need a separate version of this package for VMS.
15434
15435 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
15436
15437         * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
15438         internal entity created for the declaration of a child subprogram body
15439         with no spec as coming from source, to generate proper cross-reference
15440         information.
15441
15442 2005-11-14  Vincent Celier  <celier@adacore.com>
15443
15444         * make.adb (Compile_Sources): Change verbose message to minimum
15445         verbosity level High for "is in an Ada library", "is a read-only
15446         library" and "is an internal library",
15447         (Create_Binder_Mapping_File): Path name of ALI file for library project
15448         must include the library directory, not the object directory.
15449         (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
15450         for new switches -vl, -vm and -vh.
15451         (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
15452         (Check): Use minimum verbosity Medium for some Verbose_Msg calls
15453         (Compile_Sources): Do not attempt to compile if an ALI file is missing
15454         in a project that is externally built.
15455         (Compute_All_Imported_Projects): New procedure
15456         (Gnatmake): Check if importing libraries should be regenerated because
15457         at least an imported library is more recent.
15458         (Initialize): For each project compute the list of the projects it
15459         imports directly or indirectly.
15460         (Add_Library_Search_Dir): New procedure, used in place of
15461         Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
15462         put in the search paths.
15463         (Add_Source_Search_Dir): New procedure, used in place of
15464         Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
15465         put in the search paths.
15466         (Mark_Directory): Resolve the absolute path the directory before marking
15467         it.
15468
15469         * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
15470         call to new procedure Bad_Switch. Call Scan_Pos with new parameter
15471         Switch. Do not handle any exception.
15472         (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
15473         so that the switch is recognized as valid.
15474         (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
15475
15476 2005-11-14  GNAT Script  <nobody@adacore.com>
15477
15478         * Make-lang.in: Makefile automatically updated
15479
15480 2005-11-14  Pascal Obry  <obry@adacore.com>
15481
15482         * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
15483         used.
15484         (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
15485         In both cases the last argument was dropped.
15486
15487 2005-11-14  Eric Botcazou  <ebotcazou@adacore.com>
15488
15489         * namet.h: (Column_Numbe): New type.
15490         (Get_Column_Number): Define to sinput__get_column_number.
15491         (Instantiation): Define to sinput__instantiation.
15492         (Get_Column_Number): Declare.
15493         (Instantiation): Likewise.
15494
15495 2005-11-14  Robert Dewar  <dewar@adacore.com>
15496
15497         * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
15498         syntax, which could cause compiler hangs.
15499
15500 2005-11-14  Vincent Celier  <celier@adacore.com>
15501
15502         * prj-ext.adb: Take into account new environment variable
15503         GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
15504         are defined.
15505         (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
15506         normalize its path name, making it absolute and resolving symbolic
15507         links, and replace the original if resolved path is different.
15508
15509 2005-11-14  Vincent Celier  <celier@adacore.com>
15510
15511         * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
15512         into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
15513
15514 2005-11-14  Emmanuel Briot  <briot@adacore.com>
15515
15516         * prj-pp.adb (Print): Do not output the with statement if the
15517         associated name is empty, which happens for virtual extending projects.
15518         (Print): Preserve the "extends all" attribute when printing the project.
15519
15520         * prj-tree.ads (String_Value_Of): Add comment about returned value for
15521         a virtual extending project.
15522
15523 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
15524
15525         * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
15526         rhs of an assignment even if the type is unconstrained, when the
15527         context is non-expanding.
15528         In an inlined body, if the context type is private,
15529         resolve with its full view, which must be a composite type.
15530
15531 2005-11-14  Robert Dewar  <dewar@adacore.com>
15532             Ed Schonberg  <schonberg@adacore.com>
15533
15534         * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
15535         Do not give obsolescent warning on with of subprogram (since we
15536         diagnose calls)
15537         (Analyze_With_Clause): Add test for obsolescent package
15538         (Install_Context_Clauses): If the unit is the body of a child unit, do
15539         not install twice the private declarations of the parents, to prevent
15540         circular lists of Use_Clauses in a parent.
15541         (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
15542         compiling body of child unit.
15543         Use new class N_Subprogram_Instantiation
15544         (Expand_With_Clause): If this is a private with_clause for a child unit,
15545         appearing in the context of a package declaration, then the implicit
15546         with_clauses generated for parent units are private as well.
15547         (License_Check): Do not generate message if with'ed unit is internal
15548
15549 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
15550             Ed Schonberg  <schonberg@adacore.com>
15551             Thomas Quinot  <quinot@adacore.com>
15552
15553         * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
15554         names are internal, because they will not have a corresponding partner
15555         in the actual package.
15556         (Analyze_Formal_Package): Move the setting of the formal package spec's
15557         Generic_Parent field so that it occurs prior to analyzing the package,
15558         to allow proper operation of Install_Parent_Private_Declarations.
15559         (Analyze_Package_Instantiation): Set the instantiated package entity's
15560         Package_Instantiation field.
15561         (Get_Package_Instantiation_Node): Move declaration to package spec.
15562         Retrieve the N_Package_Instantiation node when the Package_Instantiation
15563         field is present.
15564         (Check_Generic_Child_Unit): Within an inlined call, the only possible
15565         instantiation is Unchecked_Conversion, for which no parents are needed.
15566         (Inline_Instance_Body): Deinstall and record the use_clauses for all
15567         parent scopes of a scope being removed prior to inlining an instance
15568         body.
15569         (Analyze_Package_Instantiation): Do not perform front-end inlining when
15570         the current context is itself an instance within a non-instance child
15571         unit, to prevent scope stack errors.
15572         (Save_References): If the node is an aggregate that is an actual in a
15573         call, rewrite as a qualified expression to preserve some type
15574         information, to resolve possible ambiguities in the instance.
15575         (Instance_Parent_Unit): New global variable to record the ultimate
15576         parent unit associated with a generic child unit instance (associated
15577         with the existing Parent_Unit_Visible flag).
15578         (type Instance_Env): New component Instance_Parent_Unit for stacking
15579         parents recorded in the global Instance_Parent_Unit.
15580         (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
15581         stack.
15582         (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
15583         it's not a top-level unit, and only do this if Instance_Parent_Unit is
15584         not already set. Replace test of Is_Child_Unit with test of parent's
15585         scope against package Standard. Add comments and a ??? comment.
15586         (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
15587         on a child instance parent to test that the parent equals
15588         Instance_Parent rather than simply checking that the unit is not a
15589         child unit.
15590         (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
15591         (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
15592         a formal interface are ancestors of the corresponding actual.
15593         (Validate_Formal_Interface_Type): Additional legality checks.
15594         (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
15595         interface types with ancestors.
15596         (Analyze_Formal_Package): If formal is a renaming, use renamed entity
15597         to diagnose attempts to use generic within its own declaration.
15598
15599 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
15600             Javier Miranda  <miranda@adacore.com>
15601
15602         * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
15603         discriminant.
15604         (Build_Private_Derived_Type): The entity of the created full view of the
15605         derived type does not come from source. If after installing the private
15606         declarations of the parent scope the parent is still private, use its
15607         full view to construct the full declaration of the derived type.
15608         (Build_Derived_Record_Type): Relax the condition that controls the
15609         execution of the check that verifies that the partial view and
15610         the full view agree in the set of implemented interfaces. In
15611         addition, this test now only takes into account the progenitors.
15612         (Derive_Interface_Subprograms): No need to derive subprograms
15613         of ancestors that are interfaces.
15614         (Derive_Subprograms): Remove formal No_Predefined_Prims and the
15615         associated code.
15616         Change name Is_Package to Is_Package_Or_Generic_Package
15617         (Complete_Subprograms_Derivation): Handle the case in which the full
15618         view is a transitive derivation of the ancestor of the partial view.
15619         (Process_Full_View): Rename local subprogram Find_Interface_In_
15620         Descendant to Find_Ancestor_Interface to leave the code more clear.
15621         Remove wrong code that avoids the generation of an error message
15622         when the immediate ancestor of the partial view is an interface.
15623         In addition some minor reorganization of the code has been done to
15624         leave it more clear.
15625         (Analyze_Type_Declaration): If type has previous incomplete tagged
15626         partial view, inherit properly its primitive operations.
15627         (Collect_Interfaces): Make public, for analysis of formal
15628         interfaces.
15629         (Analyze_Interface_Declaration): New procedure for use for regular and
15630         formal interface declarations.
15631         (Build_Derived_Record_Type): Add support for private types to the code
15632         that checks if a tagged type implements abstract interfaces.
15633         (Check_Aliased_Component_Type): The test applies in the spec of an
15634         instance as well.
15635         (Access_Type_Declaration): Clean up declaration of malformed type
15636         declared as an access to its own classwide type, to prevent cascaded
15637         crash.
15638         (Collect_Interfaces): For private extensions and for derived task types
15639         and derived protected types, the parent may be an interface that must
15640         be included in the interface list.
15641         (Access_Definition): If the designated type is an interface that may
15642         contain tasks, create Master_Id for it before analyzing the expression
15643         of the declaration, which may be an allocator.
15644         (Record_Type_Declaration): Set properly the interface kind, for use
15645         in allocators, the creation of master id's for task interfaces, etc.
15646
15647 2005-11-14  Javier Miranda  <miranda@adacore.com>
15648             Ed Schonberg  <schonberg@adacore.com>
15649
15650         * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
15651         omitted in case of stream attribute subprograms.
15652         (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
15653         appear immediately after a subprogram body, when there is no previous
15654         subprogram declaration.
15655         Change name Is_Package to Is_Package_Or_Generic_Package
15656         (Process_Formals): A non null qualifier on a non null named access
15657         type is not an error, and is a warning only if Redundant_Constructs
15658         are flagged.
15659
15660 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
15661             Ed Schonberg  <schonberg@adacore.com>
15662
15663         * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
15664         nested within Analyze_Package_Specification to install the private
15665         declarations and use clauses within each of the parent units of a
15666         package instance of a generic child package.
15667         (Analyze_Package_Specification): When entering a private part of a
15668         package associated with a generic instance or formal package, the
15669         private declarations of the parent must be installed (by calling new
15670         procedure Install_Parent_Private_Declarations).
15671         Change name Is_Package to Is_Package_Or_Generic_Package
15672         (Preserve_Full_Attributes): For a synchronized type, the corresponding
15673         record is absent in a generic context, which does not indicate a
15674         compiler error.
15675
15676 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
15677
15678         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
15679         not try to rewrite a renamed stream attribute, because the operations
15680         on the type may not have been generated.
15681         Handle properly a renaming_as_body generated for a stream operation
15682         whose default is abstract because the object type itself is abstract.
15683         (Find_Type): If the type is incomplete and appears as the prefix of a
15684         'Class reference, it is tagged, and its list of primitive operations
15685         must be initialized properly.
15686         (Chain_Use_Clauses): When chaining the use clauses that appear in the
15687         private declaration of a parent unit, prior to compiling the private
15688         part of a child unit, find on the scope stack the proper parent entity
15689         on which to link the use clause.
15690         (Note_Redundant_Use): Emit a warning when a redundant use clause is
15691         detected.
15692         (Analyze_Object_Renaming): An attribute reference is not a legal object
15693         if it is not a function call.
15694
15695 2005-11-14  Robert Dewar  <dewar@adacore.com>
15696             Ed Schonberg  <schonberg@adacore.com>
15697
15698         * sem_eval.adb: Implement d.f flag
15699         (Subtype_Statically_Match): A generic actual type has unknown
15700         discriminants when the corresponding actual has a similar partial view.
15701         If the routine is called to validate the signature of an inherited
15702         operation in a child instance, the generic actual matches the full view,
15703
15704 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
15705             Ed Schonberg  <schonberg@adacore.com>
15706             Robert Dewar  <dewar@adacore.com>
15707             Thomas Quinot  <quinot@adacore.com>
15708
15709         * sem_res.adb (Resolve_Call): Provide a better error message whenever
15710         a procedure call is used as a select statement trigger and is not an
15711         entry renaming or a primitive of a limited interface.
15712         (Valid_Conversion): If the operand has a single interpretation do not
15713         remove address operations.
15714         (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
15715         statement to inhibit warning.
15716         (Resolve_Unary_Op): Do not produce a warning when
15717         processing an expression of the form -(A mod B)
15718         Use Universal_Real instead of Long_Long_Float when we need a high
15719         precision float type for the generated code (prevents gratuitous
15720         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
15721         (Resolve_Concatenation_Arg): Improve error message when argument is an
15722         ambiguous call to a function that returns an array.
15723         (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
15724         there is an implicit operator in the given scope if we are within an
15725         instance: legality check has been performed on the generic.
15726         (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
15727         after resolving operand, to avoid false warnings on overloaded calls.
15728
15729 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
15730             Javier Miranda  <miranda@adacore.com>
15731
15732         PR ada/15604
15733         * sem_type.adb (Covers): In an inlined body, a composite type matches
15734         a private type whose full view is a composite type.
15735         (Interface_Present_In_Ancestor): Protect the frontend against
15736         previously detected errors to ensure that its compilation
15737         with assertions enabled gives the same output that its
15738         compilation without assertions.
15739         (Interface_Present_In_Ancestor): Add support for private types.
15740         Change name In_Actual to In_Generic_Actual (clean up)
15741         (Disambiguate): New predicate In_Actual, to recognize expressions that
15742         appear in the renaming declaration generated for generic actuals, and
15743         which must be resolved in the outer context.
15744
15745 2005-11-14  Robert Dewar  <dewar@adacore.com>
15746             Thomas Quinot  <quinot@adacore.com>
15747             Hristian Kirtchev  <kirtchev@adacore.com>
15748             Ed Schonberg  <schonberg@adacore.com>
15749
15750         * sem_util.ads, sem_util.adb: Change name Is_Package to
15751         Is_Package_Or_Generic_Package.
15752         (Check_Obsolescent): New procedure.
15753         (Set_Is_Public): Remove obsolete junk test.
15754         (Set_Public_Status): Do not set Is_Public on an object whose declaration
15755         occurs within a handled_sequence_of_statemets.
15756         (Is_Controlling_Limited_Procedure): Factor some of the logic, account
15757         for a parameterless procedure.
15758         (Enter_Name): Recognize renaming declarations created for private
15759         component of a protected type within protected operations, so that
15760         the source name of the component can be used in the debugger.
15761
15762 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
15763             Robert Dewar  <dewar@adacore.com>
15764
15765         * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
15766         of a generic subprogram are not visible outside the body.
15767         (Set_Warning_Switch): New procedure (code to set warning mode moved
15768         here from Switch.C so that it can be shared by pragma processing.
15769         (Check_References): Special case warning for non-modified non-imported
15770         volatile objects.
15771         * par-prag.adb: Modify processing of pragma Warnings to accomodate new
15772         form with a string literal argument
15773
15774 2005-11-14  Javier Miranda  <miranda@adacore.com>
15775
15776         * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
15777         anonymous access.
15778         (Write): Addition of "not null" to the anonymous access.
15779         (Read): Addition of "not null" to the anonymous access.
15780         (Write): Addition of "not null" to the anonymous access.
15781
15782         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
15783         I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
15784         I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
15785         (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
15786         W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
15787         "not null" to the anonymous access.
15788
15789 2005-11-14  Robert Dewar  <dewar@adacore.com>
15790
15791         * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
15792         offset values
15793
15794 2005-11-14  Vincent Celier  <celier@adacore.com>
15795
15796         * switch.adb (Bad_Switch): New procedure
15797         (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
15798         message when in error.
15799
15800         * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
15801         Too_Many_Output_Files): Remove declarations, no longer used.
15802         (Scan_Nat): New parameter Switch
15803         (Scan_Pos): Ditto
15804         (Bad_Switch): New procedure
15805
15806         * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
15807         with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
15808         new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
15809         to Osint.Fail. Do not handle any exception.
15810
15811 2005-11-14  Vincent Celier  <celier@adacore.com>
15812
15813         * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
15814         designates a non existent directory.
15815
15816 2005-11-14  Robert Dewar  <dewar@adacore.com>
15817
15818         * xgnatugn.adb: Replace invalid membership test by 'Valid
15819
15820 2005-11-14  Vincent Celier  <celier@adacore.com>
15821
15822         * makegpr.adb (Gprmake): Do not attempt to build the global archive if
15823         there is no object directory.
15824
15825 2005-11-14  Robert Dewar  <dewar@adacore.com>
15826
15827         * usage.adb: Minor adjustment to output format, use nn instead of nnn
15828         (so that -gnateInnn does not run into next column)
15829
15830 2005-11-14  Ed Falis  <falis@adacore.com>
15831
15832         * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
15833         "constrained"
15834
15835 2005-11-14  Cyrille Comar  <comar@adacore.com>
15836
15837         * s-chepoo.ads: Add comments on Dereference.
15838         Remove unnecessary inherited abstract primitives.
15839         Cosmetic cleanup.
15840
15841 2005-11-14  Robert Dewar  <dewar@adacore.com>
15842
15843         * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
15844         node parameter, not needed, since it is available as Declaration_Node.
15845
15846 2005-11-14  Geert Bosch  <bosch@adacore.com>
15847
15848         * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
15849         grammatically correct.
15850
15851 2005-11-14  Vincent Celier  <celier@adacore.com>
15852
15853         * s-fileio.ads: Correct spelling error in comment
15854
15855 2005-11-14  Cyrille Comar  <comar@adacore.com>
15856             Robert Dewar  <dewar@adacore.com>
15857             Vincent Celier  <celier@adacore.com>
15858             Ben Brosgol  <brosgol@adacore.com>
15859             Jose Ruiz  <ruiz@adacore.com>
15860             Pascal Obry  <obry@adacore.com>
15861
15862         * gnat_ugn.texi: 
15863         Document that -fstack-check is needed for strict compliance with the
15864         Ada 95 Reference Manual.
15865         Correct reference to VAX systems to meet HP guidelines
15866         Add documentation for new gnatmake switches -vl, -vm and -vh
15867         Replace DEC Ada by HP Ada
15868         Replace DIGITAL by HP
15869         Remove empty section on tools in compatibility section
15870         Clarify the Windows convention semantics.
15871         Document the Win32 calling convention.
15872         The Stdcall, Win32 and DLL convention are synonyms.
15873         Add a note in -gnatR description about zero size record components
15874         Note on new >= and <= warnings for -gnatwc
15875         Document that equal sign after -gnatm is optional.
15876         Note that strip is working fine on DLL built with a Library
15877         Project. The restriction apply only to DLL built with gnatdll.
15878         Update section about the way to debug a DLL.
15879         Update information about the DLL convention.
15880         Document -C switch for gnatprep
15881         Document new attribute Library_ALI_Dir
15882         Update elaboration doc to include implicit Elaborate pragmas now
15883         generated for subprogram instantiations.
15884         Document limitation on executable names that include spaces for --GCC,
15885         --GNATBIND, and --GNATLINK switches.
15886         Document that -w causes -gnatws to be added at start of gcc switches
15887
15888         * gnat_rm.texi: Document that -mieee is needed for generating infinite
15889         and NaN values in case of overflow on machines that are not fully
15890         compliant with the IEEE floating-point standard.
15891         Create a section describing the set of compiler options needed for
15892         strict compliance with the Ada 95 Reference Manual.
15893         Add documentation for pragma Obsolescent applied to a package
15894         Clarify potential issues of mixed language programs related to the
15895         I/O buffering enabling in the elaboration of the GNAT runtime.
15896         Add extra documentation for pragma Restrictions (No_Elaboration_Code)
15897         This documentation only patch adds extra documentsion for pragma
15898         Restrictions (No_Elaboration_Code), explaining why it is not possible
15899         to document this restriction in terms of allowed source constructs.
15900         Document string literal form of pragma Warnings
15901         Document new attribute Library_ALI_Dir
15902         Add documentation on stable attributes in project files that was missing
15903
15904         * gnat-style.texi: Indicate that paragraphs within a single comment
15905         should be separated by empty comment lines
15906
15907         * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
15908         /05 respectively)
15909
15910         * bindusg.adb: Minor cleanup, put -m before -M for consistency
15911
15912 2005-11-14  Robert Dewar  <dewar@adacore.com>
15913
15914         * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
15915         a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
15916         a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
15917         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
15918         a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
15919         a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
15920         a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
15921         a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
15922         a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
15923         a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
15924         a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
15925         a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
15926         g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
15927         a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
15928         a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
15929         system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
15930         g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
15931         g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
15932         a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
15933         a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
15934         a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
15935         a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
15936         a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
15937         a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
15938         system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
15939         system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
15940         a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
15941         a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
15942         a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
15943         system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
15944         system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
15945         s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
15946         system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
15947         system-interix.ads, system-solaris-sparc.ads,
15948         system-solaris-sparcv9.ads, s-inmaop-vms.adb,
15949         s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
15950         system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
15951         s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
15952         a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
15953         a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
15954         a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
15955         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
15956         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
15957         a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
15958         a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
15959         a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
15960         a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
15961         a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
15962         a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
15963         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
15964         a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
15965         a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
15966         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
15967         a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
15968         a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
15969         a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
15970         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
15971         a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
15972         a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
15973         a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
15974         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
15975         a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
15976         a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
15977         a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
15978         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
15979         a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
15980         a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
15981         a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
15982         bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
15983         csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
15984         errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
15985         errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
15986         exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
15987         exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
15988         freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
15989         g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
15990         g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
15991         g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
15992         g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
15993         g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
15994         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
15995         g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
15996         g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
15997         gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
15998         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
15999         g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
16000         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
16001         g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
16002         g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
16003         g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
16004         layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
16005         mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
16006         mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
16007         nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
16008         osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
16009         par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
16010         par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
16011         par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
16012         prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
16013         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
16014         prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
16015         prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
16016         sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
16017         sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
16018         sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
16019         sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
16020         s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
16021         sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
16022         s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
16023         s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
16024         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
16025         s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
16026         s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
16027         s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
16028         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
16029         s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
16030         s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
16031         s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
16032         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
16033         s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
16034         s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
16035         s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
16036         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
16037         s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
16038         s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
16039         s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
16040         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
16041         s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
16042         s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
16043         s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
16044         s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
16045         s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
16046         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
16047         s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
16048         styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
16049         s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
16050         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
16051         s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
16052         s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
16053         s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
16054         s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
16055         s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
16056         s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
16057         s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
16058         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
16059         table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
16060         tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
16061         ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
16062         usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
16063         xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
16064         xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
16065         a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
16066         a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
16067         a-numaux-darwin.ads, a-numaux-darwin.adb,
16068         a-swuwha.ads, a-stunha.ads: Minor reformatting
16069
16070 2005-11-14  Robert Dewar  <dewar@adacore.com>
16071
16072         PR ada/18434
16073         * osint-m.adb: Add pragma Elaborate_All for Osint
16074
16075 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
16076
16077         PR ada/23995
16078         * trans.c (call_to_gnu): Restore statement lost in translation.
16079
16080 2005-11-08  Eric Botcazou  <ebotcazou@adacore.com>
16081
16082         * init.c: Use the Linux-specific section for the IA-64/Linux target.
16083         (__gnat_adjust_context_for_raise): Add conditional code so that the
16084         IA-64 is also supported.
16085
16086 2005-11-03  James E Wilson  <wilson@specifix.com>
16087
16088         PR ada/23427
16089         * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
16090         TREE_OVERFLOW check.
16091
16092 2005-09-21  Olivier Hainque  <hainque@adacore.com>
16093
16094         PR ada/22418
16095         * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
16096         as we create them to store a size in bits.
16097
16098 2005-10-21  Eric Botcazou  <ebotcazou@adacore.com>
16099
16100         PR ada/21937
16101         PR ada/22328
16102         PR ada/22381
16103         PR ada/22383
16104         PR ada/22419
16105         PR ada/22420
16106         * utils2.c (build_return_expr): New helper function.
16107         * gigi.h (build_return_expr): Declare it.
16108         * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
16109         of manually building the RETURN_EXPR tree.
16110         (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
16111         (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
16112         build_binary_op for the "target pointer" case.  Use build_return_expr
16113         instead of manually building the RETURN_EXPR tree.
16114
16115 2005-09-16  Laurent GUERBY  <laurent@guerby.net>
16116
16117         PR ada/23788
16118         * s-tpinop.ads: Make this unit Preelaborate.
16119
16120 2005-09-16  Andreas Jaeger  <aj@suse.de>
16121
16122         * socket.c: Add string.h for memcpy.
16123
16124 2005-09-05  Arnaud Charlet  <charlet@adacore.com>
16125
16126         * dec-io.ads, dec-io.adb: Removed, no longer used.
16127
16128 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
16129
16130         * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
16131
16132         * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
16133         s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
16134         s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
16135         s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
16136         dependent units are Preelaborate.
16137         (Initialize): Call Interrupt_Managemeent.Initialize and
16138         OS_Primitives.Initialize to ensure proper initialization of this unit.
16139         Remove use of System.Soft_Links
16140         Make this unit Preelaborate.
16141
16142         * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
16143         s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
16144         s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
16145         s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
16146         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
16147         s-tratas.ads, s-tasinf.ads: Minor reformatting.
16148         Add pragma Preelaborate, since these packages are suitable for this
16149         categorization.
16150         Update comments.
16151
16152         * s-traent-vms.ads, s-intman-dummy.adb,
16153         s-taprop-dummy.adb: Make this unit Preelaborate.
16154
16155         * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
16156         s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
16157         s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
16158         s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
16159         s-intman-solaris.adb, s-intman-irix-athread.adb,
16160         s-intman-irix.adb: Mark this unit Preelaborate.
16161         (Initialize): New procedure.
16162         Update comments.
16163
16164         * s-taspri-linux.ads: Removed.
16165
16166         * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
16167         as done by other implementations (e.g. posix).
16168
16169         * s-taprop.ads (Timed_Delay): Update spec since the caller now is
16170         responsible for deferring abort.
16171         Mark this unit Preelaborate.
16172
16173         * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
16174         proper initialization of the tasking run-time.
16175
16176         * s-tasdeb.ads: Mark this unit Preelaborate.
16177         (Known_Tasks): Add explicit default value to avoid elaboration code.
16178
16179         * s-inmaop-vms.adb (Elaboration code): Add call to
16180         Interrupt_Management.Initialize since the elaboration code depends on
16181         proper initialization of this package.
16182
16183         * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
16184         s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
16185         s-osprim-posix.adb: Make this unit Preelaborate.
16186
16187         * a-calend.adb: Add call to OS_Primitives.Initialize
16188
16189         * a-elchha.adb: Update use of Except.Id.Full_Name.
16190         Minor reformatting.
16191         Remove use of Ada.Exceptions.Traceback when possible, cleaner.
16192
16193         * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
16194         Move with clauses outside Warnings Off now that dependent units are
16195         Preelaborate.
16196         Use raise xxx with "..."; Ada 2005 form.
16197
16198         * a-taside.ads, a-taside.adb:
16199         Remove some dependencies, to make it easier to make this unit truly
16200         Preelaborate.
16201         Rewrite some code to be conformant with Preelaborate rules.
16202
16203         * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
16204         marked Preelaborate in the future.
16205
16206         * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
16207         these units Preelaborate.
16208
16209         * s-exctab.adb: Update use of Except.Id.Full_Name.
16210
16211         * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
16212         (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
16213         Set_Exc_Stack_Addr): Removed, no longer used.
16214         Remove reference to *Machine_State_Addr*, no longer needed.
16215
16216         * s-stalib.ads: Mark this unit as Preelaborate[_05].
16217         (Exception_Data): Full_Name is now a System.Address so that this unit
16218         can be made Preelaborate.
16219         Clean up/simplify code thanks to Full_Name being a System.Address.
16220         Remove obsolete pragma Suppress (All_Checks), no longer needed.
16221
16222         * s-taskin.ads, s-taskin.adb:
16223         Move with clauses outside Warnings Off now that dependent units are
16224         Preelaborate.
16225         Make this unit Preelaborate.
16226         (Initialize): New proceduure, replace elaboration code and makes the
16227         set up of the tasking run-time cleaner.
16228         (Detect_Blocking): Now a function instead of a deferred boolean, to
16229         obey Preelaborate rules.
16230
16231         * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
16232         soft links, no longer used.
16233
16234         * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
16235         packages are suitable for this categorization.
16236
16237         * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
16238         since we compile run-time sources in Ada 2005 mode.
16239         (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
16240         avoid having s-taprop*.adb depend on s-soflin and to avoid code
16241         duplication.
16242         Remove reference to *Machine_State_Addr*, no longer needed.
16243
16244 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
16245
16246         * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
16247         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
16248         Remove reference to System.Exceptions.
16249
16250         * s-mastop-x86.adb: Removed, no longer used.
16251
16252         * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
16253
16254         * a-excach.adb: Minor reformatting.
16255
16256         * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
16257         instead fix new warnings that were hidden by this change.
16258         (AAA, ZZZ): Removed, replaced by...
16259         (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
16260         are used instead of constants, to help make Ada.Exception truly
16261         preelaborate.
16262         (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
16263         Raise_Storage_Error): File is now a System.Address, to simplify code.
16264         (Elab code): Removed, no longer used.
16265         (Null_Occurrence): Remove Warnings Off and make this construct
16266         preelaborate.
16267         Remove code related to front-end zero cost exception handling, since
16268         it is no longer used.
16269         Remove -gnatL/-gnatZ switches.
16270
16271         * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
16272         Update use of Except.Msg.
16273
16274         * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
16275         freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
16276         to front-end zero cost exception handling, since it is no longer used.
16277         Remove -gnatL/-gnatZ switches.
16278
16279         * lib-writ.ads: Minor reformatting
16280         Remove doc of UX
16281
16282         * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
16283
16284         * Make-lang.in: Remove references to s-except.ads
16285
16286         * s-except.ads: Removed, no longer used.
16287
16288         * s-mastop.ads, s-mastop.adb:
16289         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
16290         Remove reference to System.Exceptions.
16291
16292         * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
16293         switch-b.adb: Remove code related to front-end zero cost exception
16294         handling, since it is no longer used.
16295         Remove -gnatL/-gnatZ switches.
16296
16297 2005-09-01  Robert Dewar  <dewar@adacore.com>
16298             Gary Dismukes  <dismukes@adacore.com>
16299             Javier Miranda  <miranda@adacore.com>
16300
16301         * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
16302         type by valid test and generate warning.
16303         (Tagged_Membership): Generate call to the run-time
16304         subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
16305         Change formal name Subtype_Mark to Result_Definition in several calls to
16306         Make_Function_Specification.
16307         (Expand_Allocator_Expression): Add tests for suppression of the AI-344
16308         check for proper accessibility of the operand of a class-wide allocator.
16309         The check can be left out if checks are suppressed or if the expression
16310         has a specific tagged type whose level is known to be safe.
16311
16312         * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
16313         generates the run-time check associated with null-excluding entities.
16314         (Expand_N_Return_Statement): Add tests to determine if the accessibility
16315         check on the level of the return expression of a class-wide function
16316         can be elided. The check usually isn't needed if the expression has a
16317         specific type (unless it's a conversion or a formal parameter). Also
16318         add a test for whether accessibility checks are suppressed. Augment
16319         the comments to describe the conditions for performing the check.
16320
16321 2005-09-01  Hristian Kirtchev  <kirtchev@adacore.com>
16322             Javier Miranda  <miranda@adacore.com>
16323             Gary Dismukes  <dismukes@adacore.com>
16324             Ed Schonberg  <schonberg@adacore.com>
16325
16326         * a-tags.adb (IW_Membership): Give support to
16327         "Iface_CW_Typ in T'Class". For this purpose the functionality of this
16328         subprogram has been extended to look for the tag in the ancestors tag
16329         table.
16330         Update the structure of the GNAT Dispatch Table to reflect the
16331         additional two tables used in dispatching selects.
16332         Introduce appropriate array types and record components in
16333         Type_Specific_Data to reflect the two tables.
16334         (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
16335         the TSD of a tag, indexed by position.
16336         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
16337         operation kind in the TSD of a tag, indexed by position.
16338
16339         * a-tags.ads: Introduce an enumeration type to capture different
16340         primitive operation kinds. Define a constant reflecting the number of
16341         predefined primitive operations.
16342         (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
16343         of an entry wrapper.
16344         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
16345         callable entity of a primitive operation.
16346
16347         * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
16348         primitive operations used in dispatching selects for limited
16349         interfaces, limited tagged, task and protected types what implement a
16350         limited interface.
16351         (Freeze_Type): Generate the bodies of the primitive operations used in
16352         dispatching selects for limited tagged, task and protected types that
16353         implement a limited interface. Generate statements to populate the two
16354         auxiliary tables used for dispatching in select statements.
16355         (Freeze_Record_Type): Add call to initialize the dispatch table entries
16356         associated with predefined interface primitive operations.
16357         (Build_Dcheck_Function): Change Set_Subtype_Mark to
16358         Set_Result_Definition.
16359         (Build_Variant_Record_Equality): Change Subtype_Mark to
16360         Result_Definition.
16361         (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
16362         (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
16363         (Build_Assignment): Simplify the code that adds the run-time-check.
16364         (Expand_N_Object_Declaration): Code cleanup.
16365
16366         * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
16367         entries when there is a protected type that implements a limited
16368         interface.
16369
16370         * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
16371         common routines used in expansion of dispatching selects.
16372         (Add_Private_Declarations): Select the appropriate protection type when
16373         there is a protected type that implements a limited interface.
16374         (Build_Parameter_Block): Generate a wrapped parameter block.
16375         (Build_Protected_Subprogram_Body): Select the appropriate type for
16376         locking entries when there is a protected type that implements a
16377         limited interface.
16378         (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
16379         classified as entry wrappers.
16380         (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
16381         asynchronous selects.
16382         (Expand_N_Conditional_Entry_Call): Add support for expansion of
16383         dispatching conditional selects.
16384         (Expand_N_Protected_Type_Declaration): Select the appropriate type for
16385         protection when there is a protected type that implements limited
16386         interfaces.
16387         (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
16388         timed selects.
16389         (Extract_Dispatching_Call): Extract the entity of the name of a
16390         dispatching call, the object parameter, actual parameters and
16391         corresponding formals.
16392         (Make_Initialize_Protection): Correct logic of protection initialization
16393         when there is a protected type that implements a limited interface.
16394         (Parameter_Block_Pack): Populate a wrapped parameter block with the
16395         values of actual parameters.
16396         (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
16397         block and assign them to the original actual parameters.
16398
16399         * exp_ch9.ads (Subprogram_Protection_Mode): New type.
16400         (Build_Protected_Sub_Specification): Change the type and name of the
16401         last formal to account for the increased variety of protection modes.
16402
16403         * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
16404         entities. Used to save the value of the Is_Hidden attribute when the
16405         limited-view is installed.
16406         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
16407         the attribute of procedures classified as entry wrappers.
16408         (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
16409         entity of a primitive wrapper.
16410         (Write_Entity_Flags): Output the name and value of the
16411         Is_Primitive_Wrapper attribute.
16412         (Write_Field27_Name): Output the name and entity of the field Wrapped_
16413         Entity.
16414         (Underlying_Type): If we have an incomplete entity that comes from
16415         the limited view then we return the Underlying_Type of its non-limited
16416         view if it is already available.
16417         (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
16418         including operators.
16419         (Write_Field26_Name): Add entry for Overridden_Operation
16420         (Overridden_Operation): New attribute of functions and procedures.
16421
16422         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
16423         predefined position in the dispatch table for the primitive operations
16424         used in dispatching selects.
16425         (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
16426         predefined primitive operations and replace it with
16427         Default_Prim_Op_Count.
16428         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
16429         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
16430         the names of the generated primitive operations used in dispatching
16431         selects.
16432         (Init_Predefined_Interface_Primitives): No need to inherit primitives in
16433         case of abstract interface types. They will be inherit by the objects
16434         implementing the interface.
16435         (Make_DT): There is no need to inherit the dispatch table of the
16436         ancestor interface for the elaboration of abstract interface types.
16437         The dispatch table will be inherited by the object implementing the
16438         interface.
16439         (Copy_Secondary_DTs): Add documentation.
16440         (Validate_Position): Improve this static check in case of
16441         aliased subprograms because aliased subprograms must have
16442         the same position.
16443         (Init_Predefined_Interface_Primitives): New subprogram that initializes
16444         the entries associated with predefined primitives of all the secondary
16445         dispatch tables.
16446         (Build_Anonymous_Access_Type): Removed.
16447         (Expand_Interface_Actuals): With the previous cleanup there is no need
16448         to build an anonymous access type. This allows further cleanup in the
16449         code generated by the expander.
16450         (Expand_Interface_Conversion): If the actual is an access type then
16451         build an internal function to handle the displacement. If the actual
16452         is null this function returns null because no displacement is
16453         required; otherwise performs a type conversion that will be
16454         expanded in the code that returns the value of the displaced actual.
16455         (Expand_Interface_Actuals): Avoid the generation of unnecessary type
16456         conversions that have no effect in the generated code because no
16457         displacement is required. Code cleanup; use local variables to
16458         avoid repeated calls to the subprogram directly_designated_type().
16459
16460         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
16461         Classify the primitive operations used in dispatching selects as
16462         predefined.
16463         (Implements_Limited_Interface): Determine whether some type either
16464         directly implements a limited interface or extends a type that
16465         implements a limited interface.
16466         (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
16467         (Expand_Subtype_From_Expr): Do not build actual subtype if the
16468         expression is limited.
16469         (Find_Interface_Tag): Add code to handle class-wide types and
16470         entities from the limited-view.
16471
16472         * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
16473         Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
16474         POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
16475         POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
16476         Set_Prim_Op_Kind.
16477
16478         * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
16479         of procedure name or prefix that appears as a trigger in a triggering
16480         alternative.
16481
16482         * uintp.ads: Introduce constants Uint_11 and Uint_13.
16483
16484 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
16485
16486         * s-tataat.adb, a-tasatt.adb:
16487         Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
16488
16489         * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
16490         these procedures to body, and renamed Abort_Defer, Abort_Undefer.
16491         (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
16492         longer used.
16493
16494 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
16495             Jose Ruiz  <ruiz@adacore.com>
16496
16497         * s-taprop-vxworks.adb:
16498         Move with clauses outside Warnings Off now that dependent units are
16499         Preelaborate.
16500         (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
16501         initialization of this unit.
16502         (Specific): Add new procedures Initialize and Delete so that this
16503         package can be used for VxWorks 5.x and 6.x
16504         (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
16505         differences between VxWorks 5.x and 6.x
16506         Minor reformatting.
16507         (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
16508         caller.
16509         Use only Preelaborate-compatible constructs.
16510
16511         * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
16512         Primitives.Operations.
16513         (Delete, Initialize): New procedures.
16514
16515         * s-osinte-vxworks.adb: Body used to handle differences between
16516         VxWorks 5.x and 6.x
16517         (kill, Set_Time_Slice, VX_FP_TASK): New functions.
16518
16519         * s-osinte-vxworks.ads: Minor reformatting.
16520         Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
16521         (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
16522         and 6.
16523         (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
16524         between Vxworks 5 and 6.
16525         (taskLock, taskUnlock): Removeed, no longer used.
16526
16527         * adaint.c: The wait.h header is not located in the sys directory on
16528         VxWorks when using RTPs.
16529         (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
16530         using RTPs.
16531         (__gnat_dup): dup is available on Vxworks when using RTPs.
16532         (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
16533
16534         * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
16535
16536         * expect.c: The wait.h header is not located in the sys directory on
16537         VxWorks when using RTPs.
16538
16539 2005-09-01  Thomas Quinot  <quinot@adacore.com>
16540
16541         * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
16542
16543         * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
16544
16545         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
16546         g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
16547         g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
16548         g-soccon-freebsd.ads: Add new constants:
16549          IP_MULTICAST_IF
16550          SO_RCVTIMEO/SO_SNDTIMEO
16551          IOV_MAX
16552
16553         * gen-soccon.c:
16554         Move all target-specific file inclusions and macro definitions to
16555         gsocket.h, in order to ensure that any C code in socket.c will see a
16556         set of constants that is consistent with the contents of g-soccon.ads.
16557
16558         * gsocket.h: Code imported from gen-soccon.c:
16559         Move all target-specific file inclusions and macro definitions to
16560         gsocket.h, in order to ensure that any C code in socket.c will see a set
16561         of constants that is consistent with the contents of g-soccon.ads.
16562         This change also makes gen-soccon self-contained (removing dependencies
16563         upon GCC internal headers).
16564
16565         * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
16566         iovecs at a time.
16567         (To_Inet_Addr): Now a procedure instead of a function, more efficient.
16568
16569         * socket.c: Minor reformatting.
16570
16571 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
16572             Thomas Quinot  <quinot@adacore.com>
16573
16574         * fname-sf.adb, mlib-tgt.ads,
16575         back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
16576         g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
16577         osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
16578         prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
16579         prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
16580         prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
16581         sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
16582         makegpr.adb: Remove redundant use_clauses.
16583
16584 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
16585
16586         * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
16587         s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
16588         s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
16589         s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
16590         s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
16591         s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
16592         s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
16593         table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
16594         s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
16595         s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
16596         a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
16597         a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
16598         a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
16599         a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
16600         system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
16601         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
16602         s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
16603         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
16604         s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
16605         s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
16606         s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
16607         s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
16608         system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
16609         s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
16610         system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
16611         s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
16612         a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
16613         a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
16614         a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
16615         a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
16616         a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
16617         a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
16618         a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
16619         a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
16620         a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
16621         a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
16622         csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
16623         g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
16624         a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
16625         a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
16626         a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
16627         a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
16628         g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
16629         i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
16630         interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
16631         i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
16632         s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
16633         s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
16634         s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
16635         s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
16636         s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
16637         s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
16638         s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
16639         s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
16640         s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
16641         s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
16642         s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
16643         s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
16644         s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
16645         s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
16646         s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
16647         s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
16648         s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
16649         s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
16650         s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
16651         s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
16652         s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
16653         s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
16654         and always use the no parameter form for consistency.
16655
16656         * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
16657
16658 2005-09-01  Robert Dewar  <dewar@adacore.com>
16659
16660         * binde.adb: Minor reformatting
16661         (Find_Elab_Order): Output warning if -p used with static elab order
16662
16663 2005-09-01  Robert Dewar  <dewar@adacore.com>
16664
16665         * checks.adb (Check_Needed): New procedure, deals with removing checks
16666         based on analysis of short-circuited forms. Also generates warnings for
16667         improper use of non-short-circuited forms.
16668         Code clean ups.
16669
16670 2005-09-01  Robert Dewar  <dewar@adacore.com>
16671
16672         * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
16673         with 'Valid tests.
16674
16675 2005-09-01  Robert Dewar  <dewar@adacore.com>
16676
16677         * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
16678         spec.
16679         Implement new insertion char < (conditional warning)
16680         * errutil.adb, erroutc.adb: Implement new insertion char <
16681         (conditional warning).
16682         * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
16683         (Error_Msg_Warn): New variable for < insertion char.
16684         * prj-nmsc.adb: Implement new errout insertion char < (conditional
16685         warning).
16686         (Check_For_Source): Change value of Source_Id only after the current
16687         source has been dealt with.
16688
16689 2005-09-01  Robert Dewar  <dewar@adacore.com>
16690             Doug Rupp  <rupp@adacore.com>
16691
16692         * exp_attr.adb: Handle vax fpt for 'Valid attribute
16693         * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
16694         * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
16695         (Valid_D, Valid_F, Valid_G): New functions
16696
16697 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
16698             Hristian Kirtchev  <kirtchev@adacore.com>
16699             Javier Miranda  <miranda@adacore.com>
16700
16701         * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
16702         from object notation, the original node is unanalyzed and carries no
16703         semantic information, so that accessiblity checks must be performed on
16704         the type of the actual itself.
16705         (Expand_N_Subprogram_Declaration): Change last actual parameter for
16706         compatibility with Build_Protected_Sub_Specification.
16707         (Check_Overriding_Inherited_Interfaces): Add suport to handle
16708         overloaded primitives.
16709         (Register_Interface_DT_Entry): Use the new name of the formal
16710         the the calls to Expand_Interface_Thunk
16711
16712         * exp_dbug.ads: Augment comments on encoding of protected types to
16713         include the generation of dispatching subprograms when the type
16714         implements at least one interface.
16715
16716         * lib.ads: Extend information in Load_Stack to include whether a given
16717         load comes from a Limited_With_Clause.
16718
16719         * lib-load.adb (From_Limited_With_Chain): New predicate to determine
16720         whether a potential circularity is harmless, because it includes units
16721         loaded through a limited_with clause. Extends previous treatment which
16722         did not handle properly arbitrary combinations of limited and
16723         non-limited clauses.
16724
16725 2005-09-01  Nicolas Setton  <setton@adacore.com>
16726
16727         * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
16728         to be encoded as typ___XBLU_lowerbound__upperbound instead of
16729         typ___XB_lowerbound__upperbound.
16730
16731 2005-09-01  Thomas Quinot  <quinot@adacore.com>
16732
16733         * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
16734         dummy access formal for RACW/RAS TypeCode TSS.
16735         (Build_TypeCode_Call): Do not generate dummy null access actual for
16736         calls to the TypeCode TSS.
16737
16738 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
16739
16740         * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
16741         fully qualified name, to distinguish instances with the same local name.
16742
16743         * g-souinf.ads (Enclosing_Entity): Document that entity name is now
16744         fully qualified.
16745
16746 2005-09-01  Robert Dewar  <dewar@adacore.com>
16747
16748         * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
16749         packed arrays.
16750
16751 2005-09-01  Jerome Lambourg  <lambourg@adacore.com>
16752
16753         * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
16754         (Free): New deallocation procedure for filter elements
16755         (Close): Deallocate any existing filter for the concerned connection
16756
16757 2005-09-01  Laurent Pautet  <pautet@adacore.com>
16758
16759         * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
16760         position set is provided, we compute one in order to reduce the maximum
16761         length of the keys.  This computation first selects a character
16762         position between 1 and the minimum length of the keys in order to
16763         avoid reducing one of the keys to an empty string.
16764         (Initialize, Compute): When the ratio V to K is too low, the algorithm
16765         does not converge. The initialization procedure now comes with a
16766         maximum number of iterations such that when exceeded, an exception is
16767         raised in Compute. The user can initialize this ratio to another value
16768         and try again
16769         Reformating and updated headers.
16770
16771 2005-09-01  Javier Miranda  <miranda@adacore.com>
16772
16773         * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
16774         that given an entity T creates and returns an Itype that duplicates the
16775         contents of T. The returned Itype has the null-exclusion
16776         attribute set to True, and its Etype attribute references T
16777         to keep the association between the two entities.
16778         Update copyright notice
16779
16780         * sem_aggr.adb (Check_Can_Never_Be_Null,
16781         Aggregate_Constraint_Checks, Resolve_Aggregate,
16782         Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
16783
16784         * sem_ch5.adb (Analyze_Assignment): Code cleanup.
16785
16786 2005-09-01  Gary Dismukes  <dismukes@adacore.com>
16787             Robert Dewar  <dewar@adacore.com>
16788             Hristian Kirtchev  <kirtchev@adacore.com>
16789
16790         * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
16791         Result_Definition.
16792
16793         * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
16794         function specs.
16795         Call Set_Result_Definition instead of Set_Subtype_Mark.
16796         (P_Subprogram_Specification): Add parsing of anonymous access result
16797         plus null exclusions. Call Set_Result_Definition instead of
16798         Set_Subtype_Mark.
16799
16800         * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
16801         (P_Access_Type_Definition): Add parsing for an anonymous access result
16802         subtype, plus parsing for null exclusions. Call Set_Result_Definition
16803         instead of Set_Subtype_Mark.
16804
16805         * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
16806         (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
16807         (Result_Definition): New function for N_Function_Specifications.
16808         (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
16809         N_Function_Specification.
16810         (Set_Null_Exclusion_Present): Allow this flag for
16811         N_Function_Specification.
16812         (Set_Result_Definition): New procedure for N_Function_Specifications.
16813         (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
16814         and N_Function_Specification.
16815
16816         * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
16817         Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
16818         Add support for LIMITED NEW for Ada 2005 AI-419
16819         Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
16820         syntax for anonymous access results.
16821         Replace Subtype_Mark field by Result_Definition in
16822         N_Function_Specification and N_Access_Definition specs.
16823         Add Null_Exclusion_Present to spec of N_Function_Specification.
16824         (Result_Definition): New function for N_Function_Specification and
16825         N_Access_Function_Definition.
16826         (Set_Result_Definition): New procedure for N_Function_Specification and
16827         N_Access_Function_Definition.
16828
16829         * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
16830         Result_Definition for cases of N_Access_Function_Definition and
16831         N_Function_Specification.
16832         Print "not null" if Null_Exclusion_Present on N_Function_Specification.
16833
16834 2005-09-01  Vincent Celier  <celier@adacore.com>
16835
16836         * lib-writ.adb: Update Copyright notice
16837         (Write_With_Lines): On platforms where file names are case-insensitive,
16838         record the file names in lower case.
16839         (Write_ALI): For D lines, on platforms where file names are
16840         case-insensitive, record the file names in lower case.
16841
16842 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
16843             Emmanuel Briot  <briot@adacore.com>
16844
16845         * lib-xref.adb (Output_Overridden_Op): Display information on
16846         overridden operation.
16847
16848         * lib-xref.ads: Add documentation on overridden operations.
16849
16850         * ali.ads (Xref_Entity_Record): Add support for storing the overriding
16851         information.
16852
16853         * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
16854         overriding entity information.
16855
16856 2005-09-01  Vincent Celier  <celier@adacore.com>
16857
16858         * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
16859         including those that are inherited.
16860
16861 2005-09-01  Robert Dewar  <dewar@adacore.com>
16862
16863         * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
16864
16865         * par-prag.adb: Implement new pragma Debug_Policy
16866
16867         * sem_prag.adb Implement new pragma Debug_Policy
16868         (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
16869         Component_Size attribute specification. Give warning for ignored pragma
16870         Pack.
16871
16872         * snames.h, snames.ads, snames.adb: Introduce entries in
16873         Preset_Names for Name_Disp_Asynchronous_Select,
16874         Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
16875         Name_Disp_Timed_Select.
16876         New pragma Debug_Policy
16877
16878         * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
16879         explicitly.
16880         Switch -gnata also sets Debug_Pragmas_Enabled
16881
16882         * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
16883         handle an explicit -gnata when compiling predefined files.
16884
16885 2005-09-01  Vincent Celier  <celier@adacore.com>
16886
16887         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
16888         directories of projects that have no Ada sources.
16889
16890 2005-09-01  Robert Dewar  <dewar@adacore.com>
16891
16892         * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
16893         (makes a difference for wide characters)
16894
16895         * widechar.adb, widechar.ads:
16896         Add Wide_Char_Byte_Count feature to count chars vs bytes
16897
16898 2005-09-01  Thomas Quinot  <quinot@adacore.com>
16899             Ed Schonberg  <schonberg@adacore.com>
16900             Robert Dewar  <dewar@adacore.com>
16901
16902         * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
16903         'Address attribute reference with an overloaded prefix, use the
16904         location of the prefix (not the location of the attribute reference) as
16905         the error location.
16906         (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
16907         a function renaming thereof, is a valid prefix for 'Size (where it is
16908         intepreted as a function call).
16909         (Statically_Denotes_Entity): New predicate to determine whether the
16910         prefix of an array attribute can be considered static.
16911
16912         PR ada/9087
16913         (Eval_Attr): Fix failure to evaluate Component_Size for
16914         unconstrained arrays (resulted in wrong value in packed case, since
16915         back end cannot handle this case)
16916
16917 2005-09-01  Robert Dewar  <dewar@adacore.com>
16918
16919         * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
16920         error msgs for most common cases.
16921         Use new errout insertion char < (conditional warning)
16922
16923 2005-09-01  Javier Miranda  <miranda@adacore.com>
16924             Ed Schonberg  <schonberg@adacore.com>
16925
16926         * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
16927         become local to the whole package.
16928         (Install_Limited_Withed_Unit): Instead of unchaining real entities if
16929         the package was already analyzed the new algorithm "replaces" the
16930         real entities by the shadow ones. This is required to ensure that
16931         the order of these entities in the homonym chains does not change;
16932         otherwise we can have undefined references at linking time because
16933         in case of conflicts the external name of the entities will have
16934         a suffix that depends on the order of the entities in the chain.
16935         (Remove_Limited_With_Clause): Complementary code that completes the
16936         new algorithm and replaces the shadow entities by the real ones.
16937         (Install_Limited_Withed_Unit): When unchaining entities before the
16938         installation of the shadow entities, only regular entities of the
16939         public part must be taken into account. This is required to
16940         keep this routine in synch with the work done by Remove_Limited_
16941         With_Clause
16942         (Install_Limited_With_Clause): Introduce implicit limited_with_clause
16943         even if unit is analyzed, because the analysis of the unit is
16944         idempotent in any case, and the limited view of the unit may have to
16945         be installed for proper visibility.
16946         (Expand_Limited_With_Clause): Even if the unit in the implicit
16947         with_clause has been analyzed already, a limited view of the package
16948         must be built for the current context, if it does not exist yet.
16949
16950 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
16951             Javier Miranda  <miranda@adacore.com>
16952             Gary Dismukes  <dismukes@adacore.com>
16953
16954         * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
16955         defining entity for the instance body, make a new defining identifier
16956         rather than copying the entity of the spec, to prevent accidental
16957         sharing of the entity list.
16958         (Check_Private_View): When exchanging views of private types, build the
16959         list of exchanged views as a stack, to ensure that on exit the exchanges
16960         are undone in the proper order.
16961         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
16962         Restore the compilation environment in case of instantiation_error.
16963         (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
16964         for an anonymous access result.
16965         (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
16966         (Formal_Entity): Handle properly the case of a formal package that
16967         denotes a generic package renaming.
16968
16969 2005-09-01  Thomas Quinot  <quinot@adacore.com>
16970
16971         * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
16972         clause if the array aggregate is surrounded by parentheses.
16973
16974 2005-09-01  Cyrille Comar  <comar@adacore.com>
16975             Gary Dismukes  <dismukes@adacore.com>
16976             Ed Schonberg  <schonberg@adacore.com>
16977             Javier Miranda  <miranda@adacore.com>
16978
16979         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
16980         underlying type
16981         to check if a type is Constrained in cases related to code generation
16982         (rather than semantic checking) since otherwise we do not generate
16983         similar code for mutable private types depending if their
16984         discriminants are visible or not.
16985         (Check_Abstract_Overriding): Do not complain about failure to override
16986         the primitive operations used in dispatching selects since they will
16987         always be overriden at the freeze point of the type.
16988         (Access_Definition): Separate out handling for resetting the scope
16989         of an anonymous access function result type. Retrieve the scope
16990         of the associated function rather than using Current_Scope, which
16991         does not have a consistent value (depends on whether we're in the
16992         middle of analyzing formal parameters). Add ??? comment about
16993         finding a cleaner way to handle the special cases of scope setting.
16994         (Process_Incomplete_Dependents): A protected operation is never a
16995         dispatching operation (only its wrapper may be).
16996         (Build_Derived_Record_Type): In case of tagged private types that
16997         implement interfaces add derivation of predefined primitive
16998         operations.
16999         (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
17000         by two parameters that are used in case of derivation from abstract
17001         interface types: No_Predefined_Prims is used to avoid the derivation
17002         of predefined primitives from the interface, and Predefined
17003         Prims_Only is used to complete the derivation predefined primitives
17004         in case of private tagged types implementing interfaces.
17005         Fix typo in comments
17006         (Find_Interface_In_Descendant): Protect the frontend against
17007         wrong code with large circularity chains.
17008         (Is_Private_Overriding): Add support for entities overriding interface
17009         subprograms. The test failed because Entities associated with overriden
17010         interface subprograms are always marked as hidden (and used to build
17011         the secondary dispatch table); in this case the overriden entity is
17012         available through the field abstract_interface_alias (cf. override_
17013         dispatching_operation)
17014         (Access_Definition): Set the scope of the type to Current_Scope for the
17015         case of a function with an anonymous access result type.
17016         (Access_Subprogram_Declaration): Handle creation of the type entity for
17017         an access-to-function type with an anonymous access result.
17018         (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
17019         in handling for N_Access_Function_Definition.
17020         (Analyze_Subtype_Declaration): Modify the text of error message.
17021         (Derived_Type_Declaration): Modify the text of error message.
17022         (Process_Subtype): Modify the text of error message plus cleanup
17023         of one redundant error message.
17024         (Analyze_Component_Declaration): Code cleanup.
17025         (Analyze_Object_Declaration): Code cleanup.
17026         (Analyze_Subtype_Declaration): Propagate the null-exclusion
17027         attribute in case of access types. Code cleanup.
17028         (Array_Type_Declaration): Code cleanup.
17029         (Process_Discriminants): Create the new null-excluding itype
17030         if required. Code cleanup.
17031         (Process_Subtype): Create the new null-excluding itype if
17032         required. Code cleanup.
17033         (Build_Derived_Record_Type): Code cleanup to avoid calling
17034         twice the subprogram derive_subprograms in case of private
17035         types that implement interfaces. In this particular case the
17036         subprogram Complete_Subprograms_Derivation already does the
17037         job associated with the second call.
17038
17039         * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
17040         conversion to the full view when generating an operation for a
17041         discriminant whose type may currently be private.
17042
17043 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
17044             Javier Miranda  <miranda@adacore.com>
17045
17046         * sem_ch4.adb (Transform_Object_Operation): In a context off the form
17047         V (Obj.F), the rewriting does not involve the indexed component, but
17048         only the selected component itself.
17049         Do not apply the transformation if the analyzed node is an actual of a
17050         call to another subprogram.
17051         (Complete_Object_Operation): Retain the entity of the
17052         dispatching operation in the selector of the rewritten node. The
17053         entity will be used in the expansion of dispatching selects.
17054         (Analyze_One_Call): Improve location of the error message associated
17055         with interface.
17056         (Analyze_Selected_Component): No need to resolve prefix when it is a
17057         function call, resolution is done when parent node is resolved, as
17058         usual.
17059         (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
17060         when attempting to resolve a call transformed from its object notation.
17061         (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
17062         of the argument list for each interpretation of the operation.
17063         (Try_Object_Operation): The designated type of an access parameter may
17064         be an incomplete type obtained through a limited_with clause, in which
17065         case the primitive operations of the type are retrieved from its full
17066         view.
17067         (Analyze_Call): If this is an indirect call, and the return type of the
17068         access_to_subprogram is incomplete, use its full view if available.
17069
17070 2005-09-01  Javier Miranda  <miranda@adacore.com>
17071             Gary Dismukes  <dismukes@adacore.com>
17072
17073         * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
17074         access types the null-exclusion and access-to-constant attributes must
17075         also match.
17076         (Analyze_Return_Statement): When the result type is an anonymous access
17077         type, apply a conversion of the return expression to the access type
17078         to ensure that appropriate accessibility checks are performed.
17079         (Analyze_Return_Type): For the case of an anonymous access result type,
17080         generate the Itype and set Is_Local_Anonymous_Access on the type.
17081         Add ??? placeholder for check to disallow returning a limited object
17082         in Ada 2005 unless it's an aggregate or a result of a function call.
17083         Change calls from Subtype_Mark to Result_Definition.
17084         (Analyze_Subprogram_Body): Change formal Subtype_Mark to
17085         Result_Definition in call to Make_Function_Specification.
17086         (Build_Body_To_Inline): Change Set_Subtype_Mark to
17087         Set_Result_Definition.
17088         (Make_Inequality_Operator): Change formal Subtype_Mark to
17089         Result_Definition in call to Make_Function_Specification.
17090         (Process_Formals): Create the new null-excluding itype if required.
17091         (New_Overloaded_Entity): For an entity overriding an interface primitive
17092         check if the entity also covers other abstract subprograms in the same
17093         scope. This is required to handle the general case, that is, overriding
17094         other interface primitives and overriding abstract subprograms inherited
17095         from some abstract ancestor type.
17096         (New_Overloaded_Entity): For an overriding entity that comes from
17097         source, note the operation that it overrides.
17098         (Check_Conformance, Type_Conformant): Addition of one new formal
17099         to skip controlling formals in the analysis. This is used to
17100         handle overloading of abstract interfaces.
17101         (Base_Types_Match): Add missing case for types imported from
17102         limited-with clauses
17103         (New_Overloaded_Entity): Add barrier to protect the use of
17104         the "alias" attribute.
17105
17106 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
17107
17108         * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
17109         verify that the procedure and the entry are mode conformant.
17110         (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
17111         as a different operator, which is often a cut-and-paste error.
17112
17113 2005-09-01  Javier Miranda  <miranda@adacore.com>
17114             Ed Schonberg  <schonberg@adacore.com>
17115
17116         * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
17117         used in controlling parameters exclude null because it is necessary to
17118         read the tag to dispatch, and null has no tag.
17119         (Override_Dispatching_Operation): If the previous operation is inherited
17120         from an interface, it becomes hidden  and does not participate in later
17121         name resolution.
17122
17123 2005-09-01  Javier Miranda  <miranda@adacore.com>
17124             Ed Schonberg  <schonberg@adacore.com>
17125             Gary Dismukes  <dismukes@adacore.com>
17126
17127         * sem_res.adb (Resolve_Membership_Op): In case of the membership test
17128         "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
17129         the expander will generate the corresponding run-time check to evaluate
17130         the expression.
17131         (Resolve_Call): Check for legal type of procedure name or prefix that
17132         appears as a trigger in a triggering alternative.
17133         (Valid_Conversion): If expression is ambiguous and the context involves
17134         an extension of System, remove System.Address interpretations.
17135         (Resolve_Qualified_Expression): Reject the case of a specific-type
17136         qualification applied to a class-wide argument. Enhance comment
17137         to explain checking of Original_Node.
17138         (Resolve_Type_Conversion): The location of the error message was not
17139         general enough to handle the general case and hence it has been removed.
17140         In addition, this patch improves the text of the message.
17141         (Resolve_Type_Conversion): Add missing support for access to interface
17142         types.
17143         (Resolve_Type_Conversion): If the target is a class-wide interface type,
17144         do not expand if the expression is the actual in a call, because proper
17145         expansion will take place when the call itself is expanded.
17146         (Resolve_Allocator): If the context is an unchecked conversion, the
17147         allocator inherits its storage pool, if any, from the target type of
17148         the conversion.
17149
17150 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
17151             Javier Miranda  <miranda@adacore.com>
17152
17153         * sem_type.adb (Add_One_Interp): If a candidate operation is an
17154         inherited interface operation that has an implementation, use the
17155         implementation to avoid spurious ambiguities.
17156         (Interface_Present_In_Ancestor): In case of concurrent types we can't
17157         use the Corresponding_Record_Typ attribute to look for the interface
17158         because it is set by the expander (and hence it is not always
17159         available). For this reason we traverse the list of interfaces
17160         (available in the parent of the concurrent type).
17161         (Interface_Present_In_Ancestor): Handle entities from the limited view
17162
17163 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
17164
17165         * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
17166         from the list of required components.
17167         (Is_Controlling_Limited_Procedure): Determine whether an entity is a
17168         primitive procedure of a limited interface with a controlling first
17169         parameter.
17170         (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
17171         of an entry.
17172         (Safe_To_Capture_Value): A value (such as non_null) is not safe to
17173         capture if it is generated in the second operand of a short-circuit
17174         operation.
17175         Do not capture values for variables with address clauses.
17176         (Is_Object_Reference): Treat a function call as an object reference only
17177         if its type is not Standard_Void_Type.
17178
17179 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
17180
17181         * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
17182         to a variable that is statically known to be constant.
17183
17184 2005-09-01  Geert Bosch  <bosch@adacore.com>
17185             Robert Dewar  <dewar@adacore.com>
17186
17187         * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
17188         (VAXGF_Safe_First): Idem.
17189
17190 2005-09-01  Robert Dewar  <dewar@adacore.com>
17191             Arnaud Charlet  <charlet@adacore.com>
17192
17193         * g-dirope.ads: Minor reformatting
17194         Document that bounds of result of Base_Name match the input index
17195         positions.
17196         Add documentation on environment variable syntax for Expand_Path
17197
17198         * gnat_ugn.texi: Update documentation to include mention of -m switches
17199         Document new treatment of wide characters in max line length
17200         style check.
17201         Remove -gnatL/-gnatZ switches, no longer used.
17202         Add note on pragmas Assertion_Policy and Debug_Policy in discussion
17203         of -gnata switch.
17204
17205         * gnat_rm.texi: Add doc for two argument form of pragma
17206         Float_Representation.
17207         Add documentation for pragma No_Strict_Aliasing
17208         Add note that explicit component clause overrides pragma Pack.
17209         Add documentation of pragma Debug_Policy
17210
17211 2005-09-01  Matthew Heaney  <heaney@adacore.com>
17212
17213         * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
17214         a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
17215         a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
17216         a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
17217         draft (Draft 13, August 2005) of Ada Amendment 1.
17218
17219 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
17220
17221         * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
17222         Note that the platform-specific version of g-soccon.ads for VMS is now
17223         named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
17224         really is a package spec).
17225         Replace s-taspri-linux.ads by s-taspri-posix.ads
17226         Remove references to s-mastop-x86.adb
17227
17228         * system-vxworks-xscale.ads: Removed, no longer used.
17229         * s-vxwork-xscale.ads: Removed, no longer used.
17230
17231 2005-09-01  Robert Dewar  <dewar@adacore.com>
17232
17233         * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
17234         g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
17235         g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
17236         exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
17237         g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
17238         g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
17239         g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
17240         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
17241         g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
17242         g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
17243         sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
17244         a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
17245         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
17246         a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
17247         a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
17248         a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
17249         g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
17250         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
17251         g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
17252         i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
17253         a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
17254
17255 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
17256
17257         PR ada/23187
17258         * adaint.c
17259         (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
17260
17261 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
17262             Doug Rupp  <rupp@adacore.com>
17263
17264         * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
17265         when needed.
17266         (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
17267         this code in the GNAT run-time.
17268
17269         * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
17270
17271         PR ada/21053
17272         * init.c (__gnat_error_handler [many]): Mark "msg" as const
17273         (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
17274
17275         (__gnat_inside_elab_final_code): Moved here from
17276         Standard_Library and only defined for the compiler.
17277         __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
17278         (__gnat_inum_to_ivec): Do not define this function on VxWorks when
17279         using RTPs because directly vectored Interrupt routines are not
17280         supported on this configuration.
17281         (getpid): Do not redefine this function on VxWorks when using RTPs
17282         because this primitive is well supported by the RTP libraries.
17283         (copy_msg): Correct the code that checks for buffer overflow.
17284         Discovered during code reading.
17285
17286 2005-08-29  Olivier Hainque  <hainque@adacore.com>
17287
17288         * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
17289         a library level mutable variable with an initializer, tell
17290         build_allocator to ignore the initializer's size. It may not be large
17291         enough for all the values that might be assigned to the variable later
17292         on.
17293
17294 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
17295             Eric Botcazou  <ebotcazou@adacore.com>
17296
17297         * trans.c: Protect < in error msg with quote
17298         Replace GCC_ZCX by Back_End_Exceptions.
17299         (addressable_p) <COMPONENT_REF>: Also return 1 if the field
17300         has been sufficiently aligned in the record.
17301
17302 2005-08-15  James E. Wilson  <wilson@specifix.com>
17303
17304         * system-linux-alpha.ads: Change ia64 to alpha.
17305
17306 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
17307
17308         * decl.c, utils.c: Fix comment typos.
17309
17310 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
17311
17312         * decl.c, init.c, initialize.c: Fix comment typos.
17313
17314 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
17315
17316         Make CONSTRUCTOR use VEC to store initializers.
17317         * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
17318         CONSTRUCTOR_ELTS.
17319         * trans.c (extract_values): Likewise.
17320         * utils.c (convert, remove_conversions): Likewise.
17321         * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
17322         gnat_build_constructor): Likewise.
17323
17324 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
17325
17326         * decl.c (components_to_record): Use DECL_FCONTEXT instead of
17327         DECL_SECTION_NAME.
17328         (compare_field_bitpos): Likewise.
17329
17330 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
17331
17332         * utils.c (create_var_decl): Only set DECL_COMMON on
17333         VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
17334         VAR_OR_FUNCTION_DECL_P.
17335
17336 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
17337
17338         * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
17339         removed.
17340
17341 2005-07-07  Pascal Obry  <obry@adacore.com>
17342
17343         * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
17344         returned type on Windows.
17345
17346         * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
17347         routine.
17348
17349         * g-socket.adb (Inet_Addr): Check for empty Image and raises an
17350         exception in this case.
17351         Simplify the code as "Image (Image'Range)" = "Image".
17352
17353 2005-07-07  Vincent Celier  <celier@adacore.com>
17354
17355         * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
17356         the destructor/constructor attributes for <lib>final/<lib>init.
17357
17358         * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
17359
17360 2005-07-07  Eric Botcazou  <ebotcazou@adacore.com>
17361
17362         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
17363         type if the parameter is not passed by copy but reference by default.
17364
17365 2005-07-07  Javier Miranda  <miranda@adacore.com>
17366
17367         * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
17368         Reimplementation of the support for abstract interface types in order
17369         to leave the code more clear and easy to maintain.
17370
17371         * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
17372         abstract interface types in order to leave the code clearer and easier
17373         to maintain.
17374
17375         * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
17376         is now implemented by the new subprogram Fill_Secondary_DT_Entry.
17377         (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
17378         appropriate entry of the secondary dispatch table.
17379         (Make_DT): Add code to inherit the secondary dispatch tables of
17380         the ancestors.
17381
17382         * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
17383         implementing both functionalities by means of a common routine, each
17384         routine has its own code.
17385
17386 2005-07-07  Javier Miranda  <miranda@adacore.com>
17387
17388         * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
17389
17390         * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
17391         types:
17392         --
17393           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
17394         --
17395
17396         * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
17397         use of tag incomplete types.
17398
17399         * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
17400         give support to tagged incomplete types.
17401
17402         * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
17403         expression is a discriminant reference and its type is private, as can
17404         happen within a stream operation for a mutable record, use the full
17405         view of the type to resolve the case alternatives.
17406         (Analyze_Assignment): Check wrong dereference of incomplete types.
17407
17408         * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
17409         types.
17410
17411         * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
17412         incomplete types.
17413
17414         * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
17415         N_Incomplete_Type_Declaration nodes.
17416
17417         * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
17418         Tag_Present to give support to tagged incomplete types:
17419         --
17420           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
17421         --
17422
17423 2005-07-07  Olivier Hainque  <hainque@adacore.com>
17424
17425         PR ada/22301
17426         * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
17427         definitions for the Unwind wrappers in the compiler case.
17428
17429 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
17430             Javier Miranda  <miranda@adacore.com>
17431
17432         * par-load.adb (Load): If a child unit is loaded through a limited_with
17433         clause, each parent must be loaded as a limited unit as well.
17434
17435         * sem_ch10.adb (Previous_Withed_Unit): Better name for
17436         Check_Withed_Unit. Return true if there is a previous with_clause for
17437         this unit, whether limited or not.
17438         (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
17439         the current unit.
17440         (Is_Visible_Through_Renamings): New local subprogram of install_limited
17441         _withed_unit that checks if some package installed through normal with
17442         clauses has a renaming declaration of package whose limited-view is
17443         ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
17444         of the current Draft document for Ada 2005.
17445         (Analyze_Context): Complete the list of compilation units that
17446         are allowed to contain limited-with clauses. It also contains
17447         checks that were previously done by Install_Limited_Context_Clauses.
17448         This makes the code more clear and easy to maintain.
17449         (Expand_Limited_With_Clause) It is now a local subprogram of
17450         Install_Limited_Context_Clauses, and contains the code that adds
17451         the implicit limited-with clauses for parents of child units.
17452         This functionality was prevously done by Analyze_Context.
17453
17454         * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
17455         incomplete type.
17456
17457         * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
17458         been erroneously named in a limited-with clause of its own context.
17459         In this case the error has been previously notified by Analyze_Context.
17460
17461 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
17462
17463         * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
17464         generic package that contains local declarations with the same name.
17465         (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
17466
17467 2005-07-07  Bernard Banner  <banner@adacore.com>
17468
17469         * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
17470         ia64 platform only on platforms that you the GCC unwind library
17471         rather than the system unwind library.
17472
17473 2005-07-07  Thomas Quinot  <quinot@adacore.com>
17474
17475         * expect.c: Minor reformatting
17476
17477 2005-07-07  Sergey Rybin  <rybin@adacore.com>
17478
17479         * vms_data.ads: Add VMS qualifiers for new gnatpp switch
17480         --no-separate-is
17481
17482         * gnat_ugn.texi: Add description for new gnatpp option
17483         (--no-separate-is)
17484
17485 2005-07-04  Thomas Quinot  <quinot@adacore.com>
17486
17487         * g-expect-vms.adb, g-expect.ads, g-expect.adb
17488         (Get_Command_Output): New subprogram to launch a process and get its
17489         standard output as a string.
17490
17491 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
17492             Olivier Hainque  <hainque@adacore.com>
17493
17494         * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
17495         fetch a code-range descriptor associated with the machine state. On
17496         failure set the machine state's PC to 0; on success, pass the
17497         descriptor to exc_virtual_unwind.
17498
17499         * init.c (Tru64 section): New function __gnat_set_code_loc.
17500
17501 2005-07-04  Vincent Celier  <celier@adacore.com>
17502
17503         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
17504         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
17505         mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
17506         Remove all auto-initialization code, as this is now done through the
17507         constructor mechanism.
17508
17509         * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
17510         __gnat_sals_init_using_constructors): New functions.
17511
17512         * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
17513         Linker_Constructor and Linker_Destructor when switch -a is used.
17514
17515         * bindusg.adb: Add line for new switch -a
17516
17517         * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
17518         (Gnatbind): When switch -a is used, check if it is allowed
17519
17520         * switch-b.adb (Scan_Binder_Switches): Process new switch -a
17521
17522 2005-07-04  Joel Brobecker  <brobecker@adacore.com>
17523
17524         * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
17525         This prevents us from hitting a limitation during the debug info
17526         generation when using stabs.
17527         (Prims_Ptr): Likewise.
17528
17529 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
17530             Ed Schonberg  <schonberg@adacore.com>
17531             Javier Miranda  <miranda@adacore.com>
17532
17533         * checks.adb (Null_Exclusion_Static_Checks): In the case of
17534         N_Object_Declaration, only perform the checks if the Object_Definition
17535         is not an Access_Definition.
17536
17537         * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
17538         where the parent of an the access definition is an N_Object_Declaration
17539         when determining the Associated_Node_For_Itype and scope of an
17540         anonymous access-to-subprogram type.
17541
17542         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
17543         Corresponding_Spec on the body created for a null procedure. Add ???
17544         comment. Remove New_Copy_Tree call on body argument to
17545         Set_Body_To_Inline.
17546
17547         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
17548         discriminants, use the type of the actual as well, because the
17549         discriminants may be read by the called subprogram.
17550
17551         * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
17552         access type we do not need to handle non-limited views.
17553         (Build_Derived_Record_Type): Additional check to check that in case of
17554         private types, interfaces are only allowed in private extensions.
17555
17556 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
17557
17558         * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
17559         <Pragma_Linker_Destructor>: Likewise.
17560
17561         * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
17562         Pragma_Linker_Destructor.
17563
17564         * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
17565         ATTR_LINK_DESTRUCTOR.
17566         (static_ctors, static_dtors): New variables.
17567
17568         * misc.c (gnat_expand_body): Output current function as constructor
17569         and destructor if requested.
17570
17571         * par-prag.adb: Add processing for pragma Linker_Constructor and
17572         Linker_Destructor.
17573
17574         * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
17575         extracted from Check_Interrupt_Or_Attach_Handler.
17576         (Check_Interrupt_Or_Attach_Handler): Invoke it.
17577         Implement pragma Linker_Constructor and Linker_Destructor with the
17578         help of Find_Unique_Parameterless_Procedure.
17579         Replace Name_Alias with Name_Target for pragma Linker_Alias.
17580
17581         * snames.h, snames.ads, snames.adb:
17582         Add Name_Linker_Constructor and Name_Linker_Destructor.
17583         Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
17584         * snames.adb: Remove Name_Alias.
17585
17586         * trans.c: Include cgraph.h.
17587         (build_global_cdtor): New function.
17588         (Compilation_Unit_to_gnu): Build global constructor and destructor if
17589         needed.
17590         (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
17591         of objects too.
17592         (addressable_p) <COMPONENT_REF>: Unconditionally test
17593         DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
17594
17595         * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
17596         variable if it is external.
17597
17598         (static_ctors, static_dtors): New global variables.
17599         (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
17600         <ATTR_LINK_DESTRUCTOR>: Likewise.
17601         (end_subprog_body): Chain function as constructor and destructor
17602         if requested.
17603
17604         * exp_util.adb (Force_Evaluation): Unconditionally invoke
17605         Remove_Side_Effects with Variable_Ref set to true.
17606         (Remove_Side_Effects): Handle scalar types first. Use a renaming
17607         for non-scalar types even if Variable_Ref is true and for class-wide
17608         expressions.
17609
17610 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
17611
17612         * exp_attr.adb (Mod): Evaluate condition expression with checks off,
17613         to prevent spurious warnings.
17614
17615 2005-07-04  Thomas Quinot  <quinot@adacore.com>
17616
17617         * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
17618         Itypes. Itypes are really unexpected there.
17619         (Build_TypeCode_Function): Generalise special processing for Itypes to
17620         handle the case of numeric implicit base types as well as enumerated
17621         ones.
17622
17623 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
17624
17625         * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
17626         controlled, indicate the expected type of the dereference that is
17627         created for the call to Deep_Finalize, to prevent spurious errors when
17628         the designated type is private and completed with a derivation from
17629         another private type.
17630
17631 2005-07-04  Vincent Celier  <celier@adacore.com>
17632
17633         * make.adb (Change_To_Object_Directory): When unable to change the
17634         current dir to the object directory, output the full path of the
17635         directory.
17636
17637 2005-07-04  Matthew Gingell  <gingell@adacore.com>
17638
17639         * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
17640
17641         * indepsw-linux.adb: Replace by...
17642
17643         * indepsw-gnu.adb: ...this new file
17644
17645 2005-07-04  Vincent Celier  <celier@adacore.com>
17646
17647         * mlib-prj.adb (Auto_Initialize): New constant String
17648         (SALs_Use_Constructors): New Boolean function
17649         (Build_Library): Call gnatbind with Auto_Initialize switch when
17650         SALs_Use_Constructors returns True.
17651
17652         * mlib-tgt.ads: Minor reformatting
17653
17654         * mlib-utl.ads: Minor reformatting
17655
17656         * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
17657
17658 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
17659
17660         * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
17661         single protected declarations can have an interface list.
17662         (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
17663         with seriously malformed entry declarations, and lead to compilation
17664         abandoned messages.
17665
17666 2005-07-04  Javier Miranda  <miranda@adacore.com>
17667
17668         * par-load.adb: Load the context items in two rounds.
17669
17670 2005-07-04  Robert Dewar  <dewar@adacore.com>
17671
17672         * scng.adb: Do not consider Mod used as an attribute to be a keyword
17673
17674 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
17675             Javier Miranda  <miranda@adacore.com>
17676
17677         * sem_ch10.adb (Build_Limited_Views): A type declared with a private
17678         type extension needs a limited view.
17679         Remove previous restriction on private types available through the
17680         limited-view (only tagged private types were previously allowed).
17681         (Install_Withed_Unit): In the code that implements the
17682         legality rule given in AI-377, exclude a child unit with the name
17683         Standard, because it is a homonym of the Standard environment package.
17684
17685 2005-07-04  Thomas Quinot  <quinot@adacore.com>
17686
17687         * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
17688         overloaded function call, carry interpretations from the original tree
17689         to the copy.
17690
17691 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
17692
17693         * sem_ch6.adb (Conforming_Types): If the types are anonymous access
17694         types check whether some designated type is a limited view, and use
17695         the non-limited view if available.
17696
17697 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
17698
17699         * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
17700         constraint of full view of a private view T1 if present, when T2 is a
17701         discriminated full view.
17702
17703 2005-07-04  Thomas Quinot  <quinot@adacore.com>
17704
17705         * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
17706         actual that is a view conversion of a bit packed array reference.
17707
17708 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
17709
17710         * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
17711         present before checking whether an interface type covers a synchronized
17712         type.
17713
17714 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
17715
17716         * sem_util.adb (Is_Object_Reference): An indexed or selected component
17717         whose prefix is an implicit dereference is an object reference. Removes
17718         spurious errors when compiling with -gnatc.
17719
17720 2005-07-04  Robert Dewar  <dewar@adacore.com>
17721
17722         PR ada/22039
17723         * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
17724
17725 2005-07-04  Matthew Gingell  <gingell@adacore.com>
17726
17727         * tracebak.c: Enable tracebacks on ia64 platforms
17728
17729 2005-07-04  Vincent Celier  <celier@adacore.com>
17730
17731         * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
17732         the GNAT BIND command, as gnatbind accepts multiples ALI files with
17733         the -L or -n switches.
17734
17735 2005-07-04  Vincent Celier  <celier@adacore.com>
17736
17737         * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
17738         correctly computed and the main project data is not modified while
17739         doing so.
17740         (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
17741         (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
17742         c++linker as this does not work on some platforms.
17743
17744 2005-07-04  Matthew Heaney  <heaney@adacore.com>
17745
17746         * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
17747         was changed.
17748         * a-coinve.adb: Perform constraint checks explicitly.
17749
17750 2005-07-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17751             Thomas Quinot  <quinot@adacore.com>
17752
17753         * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
17754         new target gen-soccon.
17755
17756 2005-07-04  Robert Dewar  <dewar@adacore.com>
17757
17758         * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
17759
17760 2005-07-04  Thomas Quinot  <quinot@adacore.com>
17761
17762         * g-socket.ads (Check_Selector): Minor rewording of comment.
17763
17764 2005-07-04  Vincent Celier  <celier@adacore.com>
17765
17766         * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
17767
17768 2005-07-04  Thomas Quinot  <quinot@adacore.com>
17769
17770         * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
17771
17772 2005-07-04  Sergey Rybin  <rybin@adacore.com>
17773
17774         * gnat_ugn.texi: Add description of --eol gnatpp option
17775
17776 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
17777             Thomas Quinot  <quinot@adacore.com>
17778
17779         * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
17780         if the user wants all calls of a subprogram to be flagged,
17781         independently of whether they are made from within the same unit or
17782         another unit.
17783         Mention restriction for pragma Linker_Alias on some platforms.
17784         Document pragma Linker_Constructor and Linker_Destructor.
17785         Rewrite documentation of Weak_External, Linker_Section and
17786         Linker_Alias pragmas.
17787
17788 2005-07-04  Arnaud Charlet  <charlet@adacore.com>
17789
17790         * s-stausa.ads, s-stausa.adb: New files.
17791
17792 2005-06-30  Kelley Cook
17793
17794         * all files:  Update FSF address in copyright headers.
17795         * gen-soccon.co (main): Output new FSF address in generated files.
17796
17797 2005-06-28  Paul Brook  <paul@codesourcery.com>
17798
17799         * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
17800
17801 2005-06-14  Olivier Hainque  <hainque@adacore.com>
17802             Eric Botcazou  <ebotcazou@adacore.com>
17803
17804         * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
17805         exc_unwind, now that we are generating proper .debug_frame output for
17806         that target.
17807
17808         * tracebak.c: Remove the mips-irix section, as we are now using the
17809         s-mastop based unwinder again.
17810         Under SPARC/Solaris, take into account the stack bias to compute the
17811         frame offset.  The stack bias is 0 for the V8 ABI and 2047 for the V9
17812         ABI.
17813
17814 2005-06-14  Doug Rupp  <rupp@adacore.com>
17815
17816         * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
17817
17818         * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
17819
17820 2005-06-14  Pascal Obry  <obry@adacore.com>
17821
17822         * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
17823         a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
17824         a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
17825         package name).
17826
17827         * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
17828         a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
17829         a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
17830         a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
17831         a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
17832         a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
17833         a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
17834         s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
17835         s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
17836         s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
17837         s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
17838         s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
17839         s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
17840         s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
17841         s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
17842         s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
17843         s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
17844         s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
17845         s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
17846         s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
17847         s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
17848         s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
17849         s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
17850         s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
17851         s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
17852         s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
17853         s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
17854         s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
17855         s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
17856         s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
17857         a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
17858         a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
17859         a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
17860         a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
17861         a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
17862         a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
17863         a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
17864         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
17865         a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
17866         a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
17867         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
17868         a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
17869         a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
17870         a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
17871         a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
17872         a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
17873         a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
17874         a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
17875         a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
17876         a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
17877         a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
17878         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
17879         a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
17880         a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
17881         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
17882         a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
17883         a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
17884         dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
17885         g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
17886         g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
17887         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
17888         g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
17889         g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
17890         gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
17891         g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
17892         i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
17893         s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
17894         s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
17895         s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
17896         s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
17897         s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
17898         s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
17899         s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
17900         s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
17901         s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
17902         s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
17903         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
17904         s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
17905         s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
17906         s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
17907         s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
17908         s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
17909         s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
17910         s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
17911         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
17912         s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
17913         s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
17914         s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
17915         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
17916         s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
17917         s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
17918         s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
17919         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
17920         s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
17921         s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
17922         s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
17923         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
17924         s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
17925         s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
17926         s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
17927         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
17928         s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
17929         s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
17930         s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
17931         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
17932         s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
17933         s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
17934         s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
17935         s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
17936         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
17937         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
17938         s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
17939         s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
17940         s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
17941         s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
17942         s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
17943         s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
17944         s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
17945         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
17946         s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
17947         s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
17948         s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
17949         s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
17950         a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
17951         a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
17952         a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
17953         a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
17954         a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
17955         a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
17956         a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
17957         a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
17958         a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
17959         "GNU Ada" to GNAT, use proper casing for RUN-TIME.
17960
17961 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
17962             Arnaud Charlet  <charlet@adacore.com>
17963
17964         * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
17965         longer protected objects. They have been replaced by lower-level
17966         suspension objects made up by a mutex and a condition variable (or
17967         their equivalent given a particular OS) plus some internal data to
17968         reflect the state of the suspension object.
17969         (Initialize, Finalize): Add this initialization procedure for
17970         Suspension_Object, which is a controlled type.
17971         (Finalize): Add the finalization procedure for Suspension_Object,
17972         which is a controlled type.
17973
17974         * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
17975         Ada.Synchronous_Task_Control because there is no longer a need for a
17976         VxWorks specific version of this package. Target dependencies
17977         has been moved to System.Task_Primitives.Operations.
17978
17979         * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
17980         longer needed.
17981         (InitializeCriticalSection, EnterCriticalSection,
17982         LeaveCriticalSection, DeleteCriticalSection): Replace the type
17983         pCriticalSection by an anonymous access type so that we avoid problems
17984         of accessibility to local objects.
17985
17986         * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
17987         s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
17988         s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
17989         s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
17990         s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
17991         set the environment task mask here.
17992         (Current_State): Add this function that returns the state of the
17993         suspension object.
17994         (Set_False): Add this procedure that sets the state of the suspension
17995         object to False.
17996         (Set_True): Add this procedure that sets the state of the suspension
17997         object to True, releasing the task that was suspended, if any.
17998         (Suspend_Until_True): Add this procedure that blocks the calling task
17999         until the state of the object is True. Program_Error is raised if
18000         another task is already waiting on that suspension object.
18001         (Initialize): Add this procedure for initializing the suspension
18002         object. It initializes the mutex and the condition variable which are
18003         used for synchronization and queuing, and it sets the internal state
18004         to False.
18005         (Finalize): Add this procedure for finalizing the suspension object,
18006         destroying the mutex and the condition variable.
18007
18008         * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
18009         s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
18010         s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
18011         s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
18012         which provides a low-level abstraction (using operating system
18013         primitives) for Ada.Synchronous_Task_Control.
18014         This object is made up by a mutex (for ensuring mutual exclusion), a
18015         condition variable (for queuing threads until the condition is
18016         signaled), a Boolean (State) indicating whether the object is open,
18017         and a Boolean (Waiting) reflecting whether there is a task already
18018         suspended on this object.
18019
18020         * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
18021         s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
18022         s-intman-vms.ads, s-intman-mingw.adb,
18023         (Initialize_Interrupts): Removed, no longer used.
18024
18025         * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
18026         (Setup_Interrupt_Mask): New procedure.
18027
18028         * s-intman-vxworks.ads, s-intman-vxworks.adb:  Update comments.
18029
18030         * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
18031
18032         * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
18033         this is no longer done in the body of s-taprop
18034         (Server_Task): Explicitely test for Pending_Action in case
18035         System.Parameters.No_Abort is True.
18036
18037         * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
18038         is no longer done in the body of s-taprop
18039
18040 2005-06-14  Robert Dewar  <dewar@adacore.com>
18041
18042         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
18043         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
18044         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
18045         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
18046         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
18047         system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
18048         system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
18049         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
18050         system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
18051         system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
18052         system-linux-hppa.ads, system-vms_64.ads,
18053         system-vxworks-alpha.ads: Minor comment update for
18054         AI-362 (unit is Pure).
18055
18056         * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
18057         Add pragma Pure_05 for AI-362
18058         Make remaining conversion functions obsolescent in Ada 95
18059
18060         * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
18061         Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
18062         Add entries for a-wichun and a-zchuni
18063         Add a-widcha a-zchara for AI-395
18064         Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
18065
18066         * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
18067         Add entries for a-wichun.o and a-zchuni.o
18068         Entries for a-widcha.o and a-zchara.o
18069         Add entry for a-chacon.o
18070
18071         * a-ztenau.adb: Add with of Ada.Characters.Conversions
18072
18073         * a-chacon.ads, a-chacon.adb: New files.
18074
18075         * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
18076         categorization violations.
18077
18078         * a-strmap.ads: Add pragma Pure_05 for AI-362
18079         * a-strmap.ads: Add note on implicit categorization for AI-362
18080
18081         * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
18082
18083         * par-prag.adb: Dummy entry for pragma Persistent_BSS
18084         Set Ada_Version_Explicit, for implementation of AI-362
18085         Add processing for pragma Pure_05 and Preelaborate_05
18086         Add entry for Assertion_Policy pragma
18087
18088         * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
18089         when needed for proper processing of categorization stuff
18090
18091         * sem_cat.adb:
18092         For several cases, make errors in preealborate units warnings,
18093         instead of errors, if GNAT_Mode is set. For AI-362.
18094
18095         * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
18096         preelaborate unit is now warning if in GNAT mode
18097
18098         * s-stoele.ads: Document AI-362 for pragma preelaborate
18099
18100 2005-06-14  Doug Rupp  <rupp@adacore.com>
18101
18102         * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
18103         s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
18104         Default_Exception_Msg_Max_Length: new parameter.
18105
18106         * a-except.ads: (Exception_Msg_Max_Length): Set to
18107         System.Parameters.Default_Exception_Msg_Max_Length
18108         Add pragma Preelaborate_05 for AI-362
18109         Add warnings off to allow categorization violations for AI-362
18110
18111 2005-06-14  Vincent Celier  <celier@adacore.com>
18112
18113         * gnatsym.adb: Adapt to modification of package Symbols: procedure
18114         Process is now in package Processing.
18115
18116         * symbols.ads, symbols.adb:
18117         (Processing): New package, containing procedure Process
18118
18119         * symbols-vms-alpha.adb:
18120         Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
18121
18122         * symbols-vms.adb, symbols-processing-vms-alpha.adb,
18123         symbols-processing-vms-ia64.adb: New files.
18124
18125 2005-06-14  Pascal Obry  <obry@adacore.com>
18126
18127         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
18128         implementation. This new version generates the proper DllMain routine
18129         to initialize the SAL. The DllMain is generated in Ada and compiled
18130         before being added as option to the library build command.
18131
18132 2005-06-14  Doug Rupp  <rupp@adacore.com>
18133             Pascal Obry  <obry@adacore.com>
18134
18135         * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
18136         call to decc$translate_vms.
18137         (__gnat_locate_regular_file): Check if the path_val contains quotes. We
18138         need to remove those quotes before catenating the filename.
18139         (__gnat_locate_exec_on_path): improvements to the Win32 section:
18140         * avoid allocating the memory twice for better efficiency;
18141         * allocate 32K buffer for environment expansion as suggested by MSDN;
18142         * prepend ".;" to the path so that current directory is searched too.
18143
18144 2005-06-14  Robert Dewar  <dewar@adacore.com>
18145
18146         * a-except.adb (Exception_Identity): return Null_Id for null occurrence
18147         instead of raising CE (AI-241)
18148         Add warnings off to allow categorization violations for AI-362
18149
18150 2005-06-14  Robert Dewar  <dewar@adacore.com>
18151
18152         * ali-util.adb, gnatbind.adb: Remove references to
18153         Force_RM_Elaboration_Order.
18154
18155         * switch-b.adb: Remove recognition of -f switch
18156
18157 2005-06-14  Pascal Obry  <obry@adacore.com>
18158
18159         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
18160         implementation which is slightly more efficient.
18161
18162 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
18163             Javier Miranda  <miranda@adacore.com>
18164             Ed Schonberg  <schonberg@adacore.com>
18165             Hristian Kirtchev  <kirtchev@adacore.com>
18166
18167         * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
18168         allocator's designated type is a class-wide type, and compiling for
18169         Ada 2005, emit a run-time check that the accessibility level of the
18170         type given in the allocator's expression is not deeper than the level
18171         of the allocator's access type.
18172
18173         (Tagged_Membership): Modified to gives support to abstract interface
18174         types.
18175
18176         * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
18177         Access_Level.
18178         (Descendant_Tag): New predefined function
18179         (Is_Descendant_At_Same_Level): New predefined function
18180         (Get_Access_Level): New private function
18181         (Set_Access_Level): New private procedure
18182         (IW_Membership): New function. Given the tag of an object and the tag
18183         associated with an interface, evaluate if the object implements the
18184         interface.
18185         (Register_Interface_Tag): New procedure used to initialize the table of
18186         interfaces used by the IW_Membership function.
18187         (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
18188         of the dispatch table.
18189         (Inherit_TSD): Modified to copy the table of ancestor tags plus the
18190         table of interfaces of the parent.
18191         (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
18192         (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
18193         (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
18194         and raise Tag_Error if the passed tag equalis No_Tag, to conform with
18195         Ada 2005 semantics for the new predefined function.
18196
18197         * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
18198         call to Descendant_Tag rather than Internal_Tag.
18199         (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
18200         the accessibility level of the attribute's Item parameter is not deeper
18201         than the level of the attribute's prefix type. Tag_Error is raised if
18202         the check fails. The check is only emitted for Ada_05.
18203         (Find_Stream_Subprogram): If a TSS exists on the type itself for the
18204         requested stream attribute, use it.
18205         (Expand_N_Attribute_Reference): If the designated type is an interface
18206         then rewrite the referenced object as a conversion to force the
18207         displacement of the pointer to the secondary dispatch table.
18208         (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
18209         is a dereference of an object with a constrained partial view.
18210
18211         * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
18212         type is a class-wide type, emit a run-time check that the accessibility
18213         level of the returned object is not deeper than the level of the
18214         function's master (only when compiling for Ada 2005).
18215
18216         * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
18217         Action_Nb_Arg): Add entries for new Get_Access_Level and
18218         Set_Access_Level routines in these tables.
18219         (Make_DT): Generate a call to set the accessibility level of the
18220         tagged type in its TSD.
18221         (Make_DT): Code cleanup. The functionality of generating all the
18222         secondary dispatch tables has been moved to freeze_record_type.
18223         (Make_Abstract_Interface_DT): Minor code cleanup.
18224         (Set_All_DT_Position): Code cleanup. As part of the code cleanup
18225         this subprogram implements a new algorithm that provides the
18226         same functionality and it is more clear in case of primitives
18227         associated with abstract interfaces.
18228         (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
18229         clean up, the functionality of this subprogram is now provided
18230         by Set_All_DT_Position.
18231         (Write_DT): New subprogram: a debugging procedure designed to be called
18232         within gdb to display the dispatch tables associated with a tagged
18233         type.
18234         (Collect_All_Interfaces): New subprogram that collects the whole list
18235         of interfaces that are directly or indirectly implemented by a tagged
18236         type.
18237         (Default_Prim_Op_Position): New subprogram that returns the fixed
18238         position in the dispatch table of the default primitive operations.
18239         (Expand_Interface_Actuals): New subprogram to generate code that
18240         displaces all the actuals corresponding to class-wide interfaces to
18241         reference the interface tag of the actual object.
18242         (Expand_Interface_Conversion): New subprogram. Reference the base of
18243         the object to give access to the interface tag associated with the
18244         secondary dispatch table.
18245         (Expand_Interface_Thunk): New subprogram that generates the code of the
18246         thunk. This is required for compatibility with the C+ ABI.
18247         (Make_Abstract_Interface_DT): New subprogram that generate the
18248         declarations for the secondary dispatch tables associated with an
18249         abstract interface.
18250         (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
18251         attribute for each primitive operation covering interface subprograms
18252         (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
18253         These subprograms were upgraded to give support to abstract interfaces
18254
18255         * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
18256         RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
18257         RE_Set_Access_Level.
18258         (RE_Unit_Table): Add entries for new Ada.Tags operations.
18259         Add support to call the followig new run-time subprograms:
18260         IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
18261
18262         * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
18263         match its full declaration when both have an access definition with
18264         statically matching designated subtypes.
18265         (Analyze_Component_Declaration): Delete commented out code that was
18266         incorrectly setting the scope of an anonymous access component's type.
18267         (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
18268         an access discriminant when the containing type is nonlimited.
18269         (Make_Incomplete_Type_Declaration): Create an incomplete type
18270         declaration for a record type that includes self-referential access
18271         components.
18272         (Check_Anonymous_Access_Types): Before full analysis of a record type
18273         declaration, create anonymous access types for each self-referential
18274         access component.
18275         (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
18276         an access component in this context is a Local_Anonymous_Access, for
18277         proper accessibility checks.
18278         (Access_Definition): Set properly the scope of the anonymous access type
18279         created for a stand-alone access object.
18280         (Find_Type_Of_Object): An object declaration may be given with an access
18281         definition.
18282         (Complete_Subprograms_Derivation): New subprogram used to complete
18283         type derivation of private tagged types implementing interfaces.
18284         In this case some interface primitives may have been overriden
18285         with the partial-view and, instead of re-calculating them, they
18286         are included in the list of primitive operations of the full-view.
18287         (Build_Derived_Record_Type): Modified to give support to private
18288         types implemening interfaces.
18289         (Access_Definition): Reject ALL on anonymous access types.
18290         (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
18291         type derivation to occur at a deeper accessibility level than the
18292         parent type.
18293         For the case of derivation within a generic body however, disallow the
18294         derivation if the derived type has an ancestor that is a formal type
18295         declared in the formal part of an enclosing generic.
18296         (Analyze_Object_Declaration): For protected objects, remove the check
18297         that they cannot contain interrupt handlers if not declared at library
18298         level.
18299         (Add_Interface_Tag_Components): New subprogram to add the tag components
18300         corresponding to all the abstract interface types implemented by a
18301         record type or a derived record type.
18302         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
18303         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
18304         Process_Full_View, Record_Type_Declaration): Modified to give
18305         support to abstract interface types
18306         (Collect_Interfaces): New subprogram that collects the list of
18307         interfaces that are not already implemented by the ancestors
18308         (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
18309         when partial view has no discriminants and full view has defaults.
18310         (Constrain_Access): Reject a constraint on a general access type
18311         if the discriminants of the designated type have defaults.
18312         (Access_Subprogram_Declaration): Associate the Itype node with the inner
18313         full-type declaration or subprogram spec. This is required to handle
18314         nested anonymous declarations.
18315         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
18316         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
18317         Process_Full_View, Record_Type_Declaration): Modified to give
18318         support to abstract interface types
18319         (Derive_Subprograms): Addition of a new formal to indicate if
18320         we are in the case of an abstact-interface derivation
18321         (Find_Type_Of_Subtype_Indic): Moved from the body of the package
18322         to the specification because it is requied to analyze all the
18323         identifiers found in a list of interfaces
18324
18325         * debug.adb: Complete documentation of flag "-gnatdZ"
18326
18327         * exp_ch3.adb: Implement config version of persistent_bss pragma
18328         (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
18329         testing for TSS presence to properly enforce visibility rules.
18330         (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
18331         Make_Abstract_Interfaces_DT to generate the secondary tables
18332         associated with abstract interfaces.
18333         (Build_Init_Procedure): Modified to initialize all the tags
18334         corresponding.
18335         (Component_Needs_Simple_Initialization): Similar to other tags,
18336         interface tags do not need initialization.
18337         (Freeze_Record_Type): Modified to give support to abstract interface
18338         types.
18339         (Expand_N_Object_Declaration): Do not generate an initialization for
18340         a scalar temporary marked as internal.
18341
18342         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
18343         in-out parameter that is a component in an initialization procedure,
18344         whose constraint might depend on discriminants, and that may be
18345         misaligned because of packing or representation clauses.
18346         (Is_Legal_Copy): New predicate to determine whether a possibly
18347         misaligned in-out actual can actually be passed by copy/return. This
18348         is an error in case the type is by_reference, and a warning if this is
18349         the consequence of a DEC import pragma on the subprogram.
18350         (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
18351         interface types
18352         (Expand_Inlined_Call): Mark temporary generated for the return value as
18353         internal, so that no useless scalar normalization is generated for it.
18354         (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
18355         null procedure can always be inlined.
18356         (Expand_N_Subprogram_Declaration): If this is the declaration of a null
18357         procedure, generate an explicit empty body for it.
18358
18359         * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
18360         Given a type implementing an interface, returns the corresponding
18361         access_disp_table value.
18362         (Find_Interface_Tag): New subprogram. Given a type implementing an
18363         interface, returns the record component containing the tag of the
18364         interface.
18365         (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
18366         previous ones that return the corresponding tag and access_disp_table
18367         entities.
18368         (Is_Predefined_Dispatching_Operation): Determines if a subprogram
18369         is a predefined primitive operation.
18370         (Expand_Subtype_From_Expr): If the expression is a selected component
18371         within an initialization procedure, compute its actual subtype, because
18372         the component may depend on the discriminants of the enclosing record.
18373
18374         * i-cpp.ads, i-cpp.adb:
18375         This package has been left available for compatibility with previous
18376         versions of the frontend. As part of the new layout this is now a
18377         dummy package that uses declarations available at a-tags.ads
18378
18379         * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
18380         "constant access" and "aliased [constant] access" when not compiling
18381         with -gnat05.
18382         Suppress Ada 2005 keyword warning if -gnatwY used
18383         (P_Identifier_Declarations): Add support for object declarations with
18384         access definitions.
18385         (Private_Extension_Declaration): Complete the documentation
18386         (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
18387         attribute in case of private extension declaration
18388         (P_Type_Declaration): Mark as "abstract" the type declarations
18389         corresponding with protected, synchronized and task interfaces
18390         (P_Declarative_Items): "not" and "overriding" are overriding indicators
18391         for a subprogram or instance declaration.
18392
18393         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
18394         instantiation that is a dispatching operation has controlling access
18395         parameters that are null excluding.
18396         Save and restore Ada_Version_Explicit, for implementation of AI-362
18397         (Validate_Derived_Type_Instance): Add check for abstract interface
18398         types.
18399         (Analyze_Formal_Package): Establish Instantiation source for the copy of
18400         the generic that is created to represent the formal package.
18401         (Analyze_Package_Instantiation): Instantiate body immediately if the
18402         package is a predefined unit that contains inlined subprograms, and
18403         we are compiling for a Configurable_Run_Time.
18404         (Instantiate_Formal_Subprogram): Indicate that null default subprogram
18405         If the program has a null default, generate an empty body for it.
18406
18407         * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
18408         error message condition, null procedures are correctly detected now.
18409         (New_Overloaded_Entity): Bypass trivial overriding indicator check
18410         for subprograms in the context of protected types. Instead, the
18411         indicator is examined in Sem_Ch9 while analysing the subprogram
18412         declaration.
18413         (Check_Overriding_Indicator): Check consistency of overriding indicator
18414         on subprogram stubs as well.
18415         (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
18416         the library level.
18417         (Analize_Subprogram_Specification): When analyzing a subprogram in which
18418         the type of the first formal is a concurrent type, replace this type
18419         by the corresponding record type.
18420         (Analyze_Subprogram_Body): Undo the previous work.
18421         (Analyze_Procedure_Call): If the call has the form Object.Op, the
18422         analysis of the prefix ends up analyzing the call itself, after which
18423         we are done.
18424         (Has_Interface_Formals): New subprogram subsidiary to analyze
18425         subprogram_specification that returns true if some non
18426         class-wide interface subprogram is found
18427         (New_Overloaded_Entity): Modified to give support to abstract
18428         interface types
18429         (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
18430         access to subprograms must be recursive.
18431         (Is_Unchecked_Conversion): Improve the test that recognizes
18432         instantiations of Unchecked_Conversion, and allows them in bodies that
18433         are to be inlined by the front-end. When the body comes from an
18434         instantiation, a reference to Unchecked_Conversion will be an
18435         Expanded_Name, even though the body has not been analyzed yet.
18436         Replace Is_Overriding and Not_Overriding in subprogram_indication with
18437         Must_Override and Must_Not_Override, to better express intent of AI.
18438         (Analyze_Subprogram_Body): If an overriding indicator is given, check
18439         that it is consistent with the overrinding status of the subprogram
18440         at this point.
18441         (Analyze_Subprogram_Declaration): Indicate that a null procedure is
18442         always inlined.
18443         If the subprogram is a null procedure, indicate that it does not need
18444         a completion.
18445
18446         * sem_disp.adb (Check_Controlling_Type): Give support to entities
18447         available through limited-with clauses.
18448         (Check_Dispatching_Operation): A stub acts like a body, and therefore is
18449         allowed as the last primitive of a tagged type if it has no previous
18450         spec.
18451         (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
18452         to give support to abstract interface types
18453
18454         * sem_res.adb (Valid_Conversion): Perform an accessibility level check
18455         in the case where the target type is an anonymous access type of an
18456         object or component (that is, when Is_Local_Anonymous_Access is true).
18457         Prevent the special checks for conversions of access discriminants in
18458         the case where the discriminant belongs to a nonlimited type, since
18459         such discriminants have their accessibility level defined in the same
18460         way as a normal component of an anonymous access type.
18461         (Resolve_Allocator): When an allocator's designated type is a class-wide
18462         type, check that the accessibility level of type given in the
18463         allocator's expression or subtype indication is not statically deeper
18464         than the level of the allocator's access type.
18465         (Check_Discriminant_Use): Diagnose discriminant given by an expanded
18466         name in a discriminant constraint of a record component.
18467         (Resolve_Explicit_Dereference): Do not check whether the type is
18468         incomplete when the dereference is a use of an access discriminant in
18469         an initialization procedure.
18470         (Resolve_Type_Conversion): Handle conversions to abstract interface
18471         types.
18472         (Valid_Tagged_Conversion): The conversion of a tagged type to an
18473         abstract interface type is always valid.
18474         (Valid_Conversion): Modified to give support to abstract interface types
18475         (Resolve_Actuals): Enable full error reporting on view conversions
18476         between unrelated by_reference array types.
18477         The rule for view conversions of arrays with aliased components is
18478         weakened in Ada 2005.
18479         Call to obsolescent subprogram is now considered to be a violation of
18480         pragma Restrictions (No_Obsolescent_Features).
18481         (Check_Direct_Boolean_Operator): If the boolean operation has been
18482         constant-folded, there is nothing to check.
18483         (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
18484         check on possible violation of restriction No_Direct_Boolean_Operators
18485         until after expansion of operands, to prevent spurious errors when
18486         operation is constant-folded.
18487
18488         * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
18489         Has_Compatible_Type): Modified to give support to abstract interface
18490         types.
18491         (Interface_Present_In_Ancestor): New function to theck if some ancestor
18492         of a given type implements a given interface
18493
18494         * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
18495         prefix is a parameterless function that returns an access_to_procedure.
18496         (Transform_Object_Operation): Handle properly function calls of the
18497         form Obj.Op (X), which prior to analysis appear as indexed components.
18498         (Analyze_One_Call): Complete the error notification to help new Ada
18499         2005 users.
18500         (Analyze_Allocator): For an allocator without an initial value, where
18501         the designated type has a constrained partial view, a discriminant
18502         constraint is illegal.
18503
18504 2005-06-14  Robert Dewar  <dewar@adacore.com>
18505
18506         * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
18507         do with treatment of Set_Col when positioned at end of line character.
18508
18509 2005-06-14  Robert Dewar  <dewar@adacore.com>
18510
18511         * atree.adb: (Elist*): Protect against uninitialized field
18512
18513 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
18514
18515         * checks.adb (Install_Null_Excluding_Check): Do not generate checks
18516         for an attribute reference that returns an access type.
18517         (Apply_Discriminant_Check): No need for check if (designated) type has
18518         constrained partial view.
18519
18520         (Apply_Float_Conversion_Check): Generate a short-circuit expression for
18521         both bound checks, rather than a conjunction.
18522         (Insert_Valid_Check): If the expression is an actual that is an indexed
18523         component of a bit-packed array, force expansion of the packed element
18524         reference, because it is specifically inhibited elsewhere.
18525
18526 2005-06-14  Vincent Celier  <celier@adacore.com>
18527
18528         * clean.adb (Clean_Project): Correctly delete executable specified as
18529         absolute path names.
18530
18531         * make.adb (Gnatmake): Allow relative executable path names with
18532         directory information even when project files are used.
18533         (Change_To_Object_Directory): Fail gracefully when unable to change
18534         current working directory to object directory of a project.
18535         (Gnatmake): Remove exception handler that could no longer be exercized
18536         (Compile_Sources.Compile): Use deep copies of arguments, as some of them
18537         may be deallocated by Normalize_Arguments.
18538         (Collect_Arguments): Eliminate empty arguments
18539
18540         * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
18541         and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
18542         (Check_Project): Return False when Project is No_Project. Return True
18543         when All_Projects is True.
18544         (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
18545         All_Projects to True.
18546         Minor reformatting
18547
18548 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
18549             Javier Miranda  <miranda@adacore.com>
18550             Thomas Quinot  <quinot@adacore.com>
18551             Robert Dewar  <dewar@adacore.com>
18552             Hristian Kirtchev  <kirtchev@adacore.com>
18553             Gary Dismukes  <dismukes@adacore.com>
18554
18555         * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
18556         anonymous access types, to indicate that the accessibility level of
18557         the type is determined by that of the enclosing declaration.
18558         (Has_Persistent_BSS): New flag
18559         (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
18560         of this attribute with functions.
18561         (Is_Primitive_Wrapper): Remove the barrier.
18562         (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
18563         Has_Specified_Stream_Read, Has_Specified_Stream_Write):
18564         New subprograms.
18565         (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
18566         Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
18567         New subprograms.
18568         (Is_Pure_Unit_Access_Type): New flag
18569         (Abstract_Interfaces): Complete the assertion to cover all usages.
18570         (Set_Is_Interface): Complete the assertion to cover all usages.
18571         (Is_Primitive_Wrapper): New attribute.
18572         (Is_Obsolescent): Now applies to all entities (though it is only set
18573         for subprograms currently)
18574         New flag:  Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
18575         which solves various problems concerning access subtypes.
18576         (Has_Persistent_BSS): New flag
18577         (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
18578         Remove these subprograms because this attribute is currently
18579         not used.
18580         New entity flags:
18581         Has_Specified_Stream_Input (Flag190)
18582         Has_Specified_Stream_Output (Flag191)
18583         Has_Specified_Stream_Read (Flag192)
18584         Has_Specified_Stream_Write (Flag193)
18585         Present in all type and subtype entities. Set for a given view if the
18586         corresponding stream-oriented attribute has been defined by an
18587         attribute definition clause. When such a clause occurs, a TSS is set
18588         on the underlying full view; the flags are used to track visibility of
18589         the attribute definition clause for partial or incomplete views.
18590         (Is_Pure_Unit_Access_Type): New flag
18591         Clarify use of Is_Internal.
18592         (Is_Primitive_Wrapper): New attribute present in primitive subprograms
18593         internally generated to wrap the invocation of tasks and protected
18594         types that implement interfaces.
18595         (Implementation_Base_Type): Documentation correction
18596         (Is_Obsolescent): Now applies to all entities (though it is only set
18597         for subprograms currently)
18598         New flag:  Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
18599         which solves various problems concerning access subtypes.
18600
18601         * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
18602         for examined parameters. Identify unequal parameter list lengths as
18603         non-conformant parameters.
18604         (Overriding_Possible): Do not check for "All" qualifier in declaration
18605         of controlling access parameter, following prescription of AI-404.
18606         (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
18607         that build the procedure body that wraps an entry invocation
18608         (Build_Corresponding_Record, Build_Protected_Sub_Specification,
18609         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
18610         Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
18611         give support to abstract interface types
18612
18613         * freeze.adb (Freeze_Entity): Issue error message if
18614         Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
18615         type has no storage pool (Ada 2005) AI-366.
18616         Also modified to give support to abstract interface types
18617         (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
18618         Inline_Always pragma.
18619
18620         * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
18621         now begin an entry declaration.
18622         (P_Entry_Or_Subprogram_With_Indicator): New procedure in
18623         P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
18624         a subprogram declaration preceded by an overriding indicator.
18625         (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
18626         declarations or subprogram declarations preceded by reserved words
18627         "not" or "overriding".
18628         (P_Entry_Declaration): Update comment. Parse and check overriding
18629         indicator, set semantic flags of entry declarations.
18630         (P_Task): New error message in case of private applied
18631         to a task type declaration.
18632         (P_Protected): New error message in case of private applied
18633         to a task type declaration.
18634
18635         * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
18636         in which the full view of a type implementing an interface is a
18637         concurrent type.
18638         (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
18639         Declare_Inherited_Private_Subprograms): If an explicit operation
18640         overrides an operation that is inherited in the private part, mark the
18641         explicit one as overriding, to enable overriding indicator checks.
18642         (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
18643         full view to partial view, to simplify handling in back-end.
18644
18645         * sprint.adb: Print interface lists where needed: derived types,
18646         protected types, task types.
18647         output "is null" for null procedures. Part of implementation of
18648
18649         * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
18650         relaxation of rules for access types in pure, shared passive partitions.
18651
18652         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
18653         first read discriminants into temporary objects, performing checks on
18654         the read values, then possibly performing discriminant checks on the
18655         actual (if it is constrained), and only finally reading the components
18656         into a constrained temporary object.
18657         (Build_Elementary_Input_Call): Adjust the specific circuitry for the
18658         case of reading discriminants of a mutable record type to recognize
18659         the new form of the code generated by
18660         Build_Mutable_Record_Read_Procedure.
18661
18662         * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
18663         of a simple call to Make_TSS_Name.
18664         (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
18665         buffer, in order for Is_TSS to work correctly on local TSS names.
18666
18667         * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
18668         Is_Local_Anonymous_Access to check legaliy of attributes in the
18669         context of  access components and stand-alone access objects.
18670         (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
18671         treated as available for a limited private type if there is an
18672         attribute_definition_clause that applies to its full view, but not in
18673         other cases where the attribute is available for the full view
18674         (specifically, the sole fact that the full view is non-limited does not
18675         make the attribute available for the partial view).
18676         (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
18677         non-overloaded intrinsic subprogram.
18678         (Check_Stream_Attribute): Reject an attribute reference for an
18679         unavailable stream attribute even if the prefix is not a limited type
18680         (case of a 'Input attribute reference for an abstract, non-classwide
18681         type)
18682         (Stream_Attribute_Available): New function to determine whether a stream
18683         attribute is available at a place.
18684         (Check_Attribute): Use Stream_Attribute_Available instead of just
18685         testing for TSS presence on the implementation base type.
18686         (Analyze_Attribute): Modified to give support to task interfaces.
18687         (Analyze_Access_Attribute): Add error check for use of an Access (or
18688         Unrestricted_Access) attribute with a subprogram marked as
18689         Inline_Always.
18690         (Analyze_Attribute, case Attribute_Address): Add error check for use of
18691         an Address attribute with a subprogram marked as Inline_Always.
18692         Update Eval_Attribute to handle new value of Width from AI-395
18693
18694         * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
18695         (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
18696         Factor common code across the stream-oriented attribute circcuits into
18697         a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
18698         processing is functionally identical to the previous duplicated one,
18699         except that an expression that denotes an abstract subprogram will now
18700         be rejected, as mandated by AI-195 item 5.
18701
18702         * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
18703         Is_Local_Anonymous_Access to apply accessibility checks to access
18704         components and stand-alone access objects.
18705         (Has_Discriminant_Dependent_Constraint): Moved to spec for use
18706         elsewhere.
18707         (Is_Potentially_Persistent_Type): New function
18708         (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
18709         a heap-object whose type has a constrained partial view, the object is
18710         unconstrained and the component may depend on a discriminant, making its
18711         renaming illegal.
18712
18713         * sinfo.ads, sinfo.adb
18714         (Must_Not_Override): Flag applicable to N_Entry_Declaration.
18715         (Must_Override): Flag applicable to N_Entry_Declaration.
18716         Indicate that interface_list can appear in single task and single
18717         protected declarations.
18718         Replace Is_Overriding and Not_Overriding with Must_Override and
18719         Must_Not_Override, to better express intent of AI.
18720         Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
18721         of an overriding indicator in a subprogram or instance.
18722         Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
18723         Add the overriding indicator [[not] overriding] construct to the
18724         following grammar productions:
18725          ENTRY_DECLARATION
18726          GENERIC_INSTANTIATION
18727          SUBPROGRAM_SPECIFICATION
18728
18729         * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
18730         can start with an overriding indicator.
18731
18732         * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
18733         flags accordingly on subrogram specifications or instances.
18734
18735         * sem_ch8.adb:
18736         (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
18737         overriding_indicator, if present, is consistent with status of spec.
18738         Improve error message for null-excluding checks on controlling access
18739         parameters.
18740         (Check_In_Previous_With_Clause): Protect the frontend against
18741         previously reported critical errors in the context clauses.
18742         Save and restore Ada_Version_Explicit, for implementation of AI-362
18743         (Analyze_Subprogram_Renaming): If the new entity is a dispatching
18744         operation verify that controlling formals of the renamed entity that
18745         are access parameters are explicitly non-null.
18746         (Find_Expanded_Name): Improve error message when prefix is an illegal
18747         reference to a private child unit.
18748
18749         * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
18750         s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
18751         Rewrite to correspond to new wide character names in AI-395
18752
18753         * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
18754         default procedures.
18755
18756 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
18757             Robert Dewar  <dewar@adacore.com>
18758
18759         * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
18760         code, not on the bodies of predefined operations, to cut down on
18761         spurious noise.
18762
18763 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
18764
18765         * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
18766         be expanded in place. The size computation does not require a
18767         subtraction, which would raise an exception on a compiler built with
18768         assertions when the upper bound is Integer'first.
18769         (Flatten): For an array of composite components, take into account the
18770         size of the components to determine whether it is safe to expand the
18771         array into a purely positional representation.
18772
18773 2005-06-14  Thomas Quinot  <quinot@adacore.com>
18774
18775         * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
18776         denoting a formal parameter into account.
18777
18778 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
18779
18780         * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
18781         the entry_call alternative of a conditional entry call, wrap the
18782         conditional entry call itself.
18783
18784 2005-06-14  Nicolas Setton  <setton@adacore.com>
18785             Ed Schonberg  <schonberg@adacore.com>
18786
18787         * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
18788         the "simple_choice" member in a variant record, in accordance with the
18789         description in the package spec: the information output for a constant
18790         should be "S number", not "SS number".
18791         (Get_Encoded_Name): Return at once if not generating code. Avoids name
18792         overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
18793
18794 2005-06-14  Thomas Quinot  <quinot@adacore.com>
18795
18796         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
18797         RACW without any primitives, do not generate the if statement for
18798         dispatching by name in the PolyORB/DSA case, as it would be malformed
18799         (it would have an Elsif_Parts list that is not No_List, but with a
18800         length of 0).
18801
18802 2005-06-14  Robert Dewar  <dewar@adacore.com>
18803
18804         * exp_intr.adb, par-ch5.adb: Minor fix to error message text
18805
18806 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
18807
18808         * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
18809         can determine whether pragma Suppress_Exception_Locations is in effect.
18810
18811         * utils2.c (build_call_raise): Do not pass the file name to the
18812         exception handler if pragma Suppress_Exception_Locations is in effect.
18813         (build_allocator): Add and process arg IGNORE_INIT_TYPE.
18814
18815 2005-06-14  Emmanuel Briot  <briot@adacore.com>
18816
18817         * g-debpoo.adb (Deallocate, Dereference): Improve output.
18818
18819 2005-06-14  Nicolas Roche  <roche@adacore.com>
18820
18821         * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
18822         to ""
18823         (Next_Level): Fix minor bug in handling of ../dir case
18824         (Read): Add dir separator to Directory name so that "" is understood as
18825          "/"
18826
18827 2005-06-14  Pascal Obry  <obry@adacore.com>
18828
18829         * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
18830         releasing the items.
18831
18832 2005-06-14  Vincent Celier  <celier@adacore.com>
18833             Cyrille Comar  <comar@adacore.com>
18834
18835         * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
18836         with output file descriptor and with output file name.
18837         (Dup, Dup2): Now global procedures as they are used by two subprograms
18838         (Copy): Allocate the 200K buffer on the heap rather than on the stack.
18839
18840 2005-06-14  Thomas Quinot  <quinot@adacore.com>
18841
18842         PR ada/6717
18843         * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
18844         broadcast address.
18845         (Create_Selector): Bind listening socket used to create the signalling
18846         socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
18847         Set listen backlog to 1 to ensure that we detect socket theft by a
18848         failure of our own connect(2) call.
18849         (Check_Selector): Improve documentation of the selector mechanism.
18850         (Broadcast_Inet_Addr): New constant.
18851
18852 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
18853
18854         * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
18855         type which turns out to be an incomplete and incorrect fix.
18856         (Layout_Array_Type): Use Underlying_Type when checking whether the scope
18857         of the type is declared in a record (for determination of insertion
18858         type).
18859         (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
18860         a private type and ensure that the primary entity is used for the type
18861         of the newly created function's V formal by taking the Etype of the
18862         view.
18863
18864 2005-06-14  Javier Miranda  <miranda@adacore.com>
18865             Jose Ruiz  <ruiz@adacore.com>
18866             Robert Dewar  <dewar@adacore.com>
18867             Ed Schonberg  <schonberg@adacore.com>
18868
18869         * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
18870         that indicates if we are parsing a compilation unit found in a
18871         limited-with clause.
18872         It is use to avoid the circularity check.
18873
18874         * par.ads, par.adb (Par): Addition of a new parameter to indicate if
18875         we are parsing a compilation unit found in a limited-with clause. This
18876         is use to avoid the circularity check.
18877
18878         * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
18879         unit as a consequence of parsing a limited-with clause. This is used
18880         to avoid the circularity check.
18881
18882         * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
18883         (Analyze_Context): Limited-with clauses are now allowed
18884         in more compilation units.
18885         (Analyze_Subunit_Context, Check_Parent): Protect the frontend
18886         againts previously reported critical errors in context clauses
18887         (Install_Limited_Withed_Unit): Code cleanup plus static detection
18888         of two further errors: renamed subprograms and renamed packages
18889         are not allowed in limited with clauses.
18890         (Install_Siblings): Do not install private_with_clauses on the package
18891         declaration for a non-private child unit.
18892         (Re_Install_Parents): When a parent of the subunit is reinstalled,
18893         reset visibility of child units properly.
18894         (Install_Withed_Unit): When a child unit appears in a with_clause of its
18895         parent, it is immediately visible.
18896
18897 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
18898             Emmanuel Briot  <briot@adacore.com>
18899
18900         * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
18901         declared within an inlined body as referenced, to prevent spurious
18902         warnings.
18903         (Output_One_Ref): If an entity renames an array component, indicate in
18904         the ALI file that this aliases (renames) the array. Capture as well
18905         function renamings that rename predefined operations.
18906         Add information about generic parent for package and subprogram
18907         instances.
18908         (Get_Type_Reference): For a subtype that is the renaming of an actual in
18909         an instantiation, use the first_subtype to ensure that we don't generate
18910         cross-reference information for internal types.
18911         For objects and parameters of a generic private type, retain the '*'
18912         indicator to distinguish such an entity from its type.
18913
18914         * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
18915         to store information about instantiated entities.
18916
18917         * ali.adb (Scan_ALI): Add support for parsing the reference to the
18918         generic parent
18919
18920         * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
18921         (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
18922         information.
18923
18924 2005-06-10  Doug Rupp  <rupp@adacore.com>
18925             Arnaud Charlet  <charlet@adacore.com>
18926             Olivier Hainque  <hainque@adacore.com>
18927             Jose Ruiz  <ruiz@adacore.com>
18928
18929         * Make-lang.in: Add initialize.o when needed.
18930         Remove obsolete references to RT_FLAGS.
18931         Add missing dependencies for sdefault.o
18932
18933         * initialize.c: New file.
18934
18935         * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
18936         [VMS] cond_signal_table: Fix problem in declaration.
18937         [VMS] __gnat_error_handler: rewrite.
18938         Move all __gnat_initialize() routines to initialize.c
18939         Specialize the former "hpux" section to "hppa hpux", as this is what the
18940         section really is here for and we now have other hpux ports that need
18941         different contents.
18942         (__gnat_adjust_context_for_raise) i386-linux: First version of this
18943         function for this target. Adjust PC by one in the machine context. This
18944         adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
18945         it is more reliable to do that in the signal handler itself.
18946         (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
18947         flags, so that the handler is passed the context structure to adjust
18948         prior to the raise.
18949         (__gnat_error_handler) i386-linux: Adjust the signature to match what a
18950         SA_SIGINFO sigaction should look like. Call
18951         __gnat_adjust_context_for_raise before actually raising. Cleanup unused
18952         Machine_State_Operations stuff.
18953         Add conditional code so that the x86_64 is also supported.
18954
18955 2005-06-14  Pascal Obry  <obry@adacore.com>
18956
18957         * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
18958         the library name.
18959
18960 2005-06-14  Robert Dewar  <dewar@adacore.com>
18961
18962         * opt.ads, opt.adb: New flags for persistent_bss mode
18963         Add Ada_Version_Explicit, for implementation of AI-362
18964         Add Assertions_Enabled_Config and associated handling
18965         Needed since setting can be changed with Assertion_Policy pragma
18966         Add new flag Warn_On_Ada_2005_Compatibility
18967
18968         * switch-c.adb: Recognize -gnatwy/Y
18969         Set Ada_Version_Explicit, for implementation of AI-362
18970         The -gnatg switch now includes -gnatyu
18971
18972         * usage.adb: Add -gnatwy/Y
18973         Remove wrong asterisk on -gnatwX line
18974         Add line for -gnatyu switch
18975
18976 2005-06-14  Vincent Celier  <celier@adacore.com>
18977
18978         * osint.adb (Add_Default_Search_Dirs): Put source and object
18979         directories of project files before directories coming from
18980         ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
18981
18982 2005-06-14  Robert Dewar  <dewar@adacore.com>
18983
18984         PR ada/15613
18985         * par-ch2.adb (Scan_Pragma_Argument): New procedure
18986         (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
18987
18988 2005-06-14  Vincent Celier  <celier@adacore.com>
18989
18990         * prep.adb (Preprocess): Ignore error when scanning the first token of
18991         a line.
18992
18993 2005-06-14  Vincent Celier  <celier@adacore.com>
18994
18995         * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
18996         (Check_Stand_Alone_Library): If the specified reference symbol file does
18997         not exist, only issue a warning when the symbol policy is not
18998         Controlled. And, when symbol policy is Compliant, set the symbol
18999         policy to Autonomous.
19000
19001 2005-06-14  Vincent Celier  <celier@adacore.com>
19002
19003         * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
19004         when the project file in a with clause is not the last one, that is the
19005         project file name is followed by a comma.
19006         * prj-pp.adb: (First_With_In_List): New Boolean global variable
19007         (Print): Issue list of project files separated by commas in with clauses
19008         according to the values returned by Is_Not_Last_In_List.
19009         * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
19010         (Set_Is_Not_Last_In_List): New procedure
19011
19012 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
19013
19014         * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
19015
19016 2005-06-14  Robert Dewar  <dewar@adacore.com>
19017
19018         * scng.adb: Add call to new Check_EOF routine
19019         (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
19020         Add some comments regarding wide character handling
19021
19022         * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
19023
19024         * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
19025
19026         * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
19027         characters are now considered graphic characters and hence yield false
19028         in this call.
19029
19030         * nmake.adt: Modify header so that xnmake does not generate output
19031         files with multiple blank lines.
19032
19033         * treeprs.adt: Remove a blank line so that output from xtreeprs does
19034         not have an extra blank line
19035
19036 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
19037
19038         * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
19039         expression when the component type is an anonymous access type to
19040         ensure that appropriate accessibility checks are done.
19041
19042         * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
19043         expression of an assignment when the target object is of an anonymous
19044         access type. This ensures that required accessibility checks are done.
19045         (One_Bound): Move the check for type Universal_Integer to
19046         Process_Bounds.
19047         (Process_Bounds): Check whether the type of the preanalyzed range is
19048         Universal_Integer, and in that case set Typ to Integer_Type prior
19049         to setting the type of the original range and the calls to One_Bound.
19050
19051 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
19052
19053         * sem_case.adb (Expand_Others_Choice): Improve warning.
19054
19055 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
19056
19057         * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
19058         constraint of full view if present, when other type is discriminated.
19059         (Eval_Relational_Op): Recognize tests of pointer values against Null,
19060         when the pointer is known to be non-null, and emit appropriate warning.
19061
19062 2005-06-14  Robert Dewar  <dewar@adacore.com>
19063             Ed Schonberg  <schonberg@adacore.com>
19064
19065         PR ada/10671
19066         * sem_prag.adb: Implement pragma Persistent_BSS
19067         Remove obsolete pragma Persistent_Data, Persistent_Object
19068         Set Ada_Version_Explicit, for implementation of AI-362
19069         Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
19070         Add processing for pragma Pure_05 and Preelaborate_05
19071         Add processing for Assertion_Policy pragma
19072         Add pragma identifiers for Assert
19073         (Analyze_Pragma, case Assert): Check number of arguments
19074         (Process_Inline): Additional guard against an illegal program, where the
19075         argument of the pragma is undefined, and warnings on redundant
19076         constructs are enabled.
19077         (Analyze_Pragma, case Obsolescent): Allow an optional second argument
19078         Ada_05 to this pragma, specifying that the pragma is only active in
19079         Ada_05 mode.
19080         (Check_Arg_Order): New procedure
19081         Add appropriate calls to this procedure throughout
19082         Also throughout, check entity name before doing any other checks
19083
19084         * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
19085         Remove obsolete pragma Persistent_Data, Persistent_Object
19086         Add entries for pragma Pure_05 and Preelaborate_05
19087         Add entries for Assertion_Policy pragma and associated names
19088         Add some names for pragma argument processing
19089
19090         * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
19091
19092 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
19093
19094         * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
19095         appears within a negation (either from source or as a rewriting of
19096         inequality) adjust text of warning accordingly.
19097
19098 2005-06-14  Thomas Quinot  <quinot@adacore.com>
19099
19100         * s-strxdr.adb: Follow AI95-00132
19101
19102 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
19103
19104         * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
19105
19106 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
19107             Jose Ruiz  <ruiz@adacore.com>
19108
19109         * s-tposen.adb, s-tpobop.adb
19110         (Exceptional_Complete_Rendezvous): Save the occurrence and not only
19111         the exception id.
19112         (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
19113         there is no violation of the Max_Entry_Queue_Length restriction (if it
19114         has been set); Program_Error is raised otherwise.
19115         (Requeue_Call): Before requeuing the task on the target entry queue we
19116         check that there is no violation of the Max_Entry_Queue_Length
19117         restriction (if it has been set); Program_Error is raised otherwise.
19118
19119 2005-06-14  Robert Dewar  <dewar@adacore.com>
19120
19121         * styleg.adb: Fix several remaining problems in -gnatyu switch
19122         Blank line count not reset at start
19123         Scanning outside source buffer in some cases
19124         Confusing message for blanks at end of file
19125         Non-empty blank lines not recognized
19126
19127         * nmake.adt: Modify header so that xnmake does not generate output
19128         files with multiple blank lines.
19129
19130         * treeprs.adt: Remove a blank line so that output from xtreeprs does
19131         not have an extra blank line
19132
19133 2005-06-14  Sergey Rybin  <rybin@adacore.com>
19134
19135         * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
19136
19137 2005-06-14  Doug Rupp  <rupp@adacore.com>
19138             Vincent Celier  <celier@adacore.com>
19139
19140         * vms_conv.ads, vms_conv.adb: Remove "Library" command.
19141         Update copyright.
19142
19143         * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
19144         Remove "Library" command.
19145         Change keyword for style check -gnatyd from NOCRLF to
19146         DOS_LINE_ENDINGS.
19147         Remove useless second style check keyword NONE
19148         Remove help documentation for inexistent style check keyword
19149         RM_COLUMN_LAYOUT.
19150         Add help documentation for style check keywords DOS_LINE_ENDINGS,
19151         UNNECESSARY_BLANK_LINES and XTRA_PARENS
19152         Add UNNECESSARY_BLANK_LINES for -gnatyu
19153         Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
19154
19155         * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
19156
19157 2005-06-14  Vincent Celier  <celier@adacore.com>
19158
19159         * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
19160         gprmake was invoked with -d.
19161         (Compile_Sources): If -d was used, output the "completed ..." message
19162         for each compilation.
19163         (Scan_Arg): Recognize new switch -d
19164         When -c and at least one main is specified, set
19165         Unique_Compile to True to guarantee that no other sources will be
19166         compiled.
19167
19168 2005-06-14  Matthew Heaney  <heaney@adacore.com>
19169
19170         * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
19171         * a-swuwha.ads, a-swuwha.adb: New files
19172
19173         * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
19174         * a-szuzha.ads, a-szuzha.adb: New files.
19175
19176         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
19177         a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads,
19178         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads,
19179         a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
19180         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
19181         a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
19182         a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads,
19183         a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
19184         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
19185         a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
19186         Ada 2005 RM.
19187
19188 2005-06-10  Eric Botcazou  <ebotcazou@adacore.com>
19189             Olivier Hainque  <hainque@adacore.com>
19190             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19191             Pascal Obry  <obry@adacore.com>
19192
19193         * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
19194
19195         * trans.c (call_to_gnu): Issue a warning for users of Starlet when
19196         making a temporary around a procedure call because of non-addressable
19197         actual parameter.
19198         (process_freeze_entity): If entity is a private type, capture size
19199         information that may have been computed for the full view.
19200         (tree_transform, case N_Allocator): If have initializing expression,
19201         check type for Has_Constrained_Partial_View and pass that to
19202         build_allocator.
19203         (tree_transform, case N_Return_Statement): Pass extra arg to
19204         build_allocator.
19205
19206         * decl.c (annotate_value): Remove early return if -gnatR is not
19207         specified.
19208         (gnat_to_gnu_field): Don't make a packable type for a component clause
19209         if the position is byte aligned, the field is aliased, and the clause
19210         size isn't a multiple of the packable alignment. It serves no useful
19211         purpose packing-wise and would be rejected later on.
19212         (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
19213
19214         PR ada/20515
19215         (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
19216         context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
19217         instead.
19218         (create_concat_name): Idem.
19219
19220 2005-06-10  Robert Dewar  <dewar@adacore.com>
19221             Eric Botcazou  <ebotcazou@adacore.com>
19222             Ben Brosgol  <brosgol@adacore.com>
19223             Cyrille Comar  <comar@adacore.com>
19224             Sergey Rybin  <rybin@adacore.com>
19225             Pascal Obry  <obry@adacore.com>
19226
19227         * gnat_rm.texi: Add documentation for pragma Persistent_BSS
19228         Document second argument (Ada_05) of pragma Obsolescent
19229         Add note that call to subprogram marked with pragma Obsolescent
19230         is now considered to be a violation of program Restrictions
19231         (No_Obsolescent_Features).
19232         (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
19233         that only machine-dependent attributes are supported.
19234
19235         * gnat_ugn.texi:
19236         Commented out menu lines and empty section for gnatclean examples
19237         Document -gnatwy/Y
19238         Fix some over long lines
19239         Clarify and enhance documentation of ADA_PROJECT_PATH.
19240         Rework section 2.11.2(3) about linking with a non-GNU compiler.
19241         Mention new switch -fcallgraph-info.
19242         Mention new switch -fstack-usage.
19243         For gnatpp, replace '-notab' with '-N' and add this option to Index
19244         Corrected VMS example.
19245         VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
19246         Minor reformatting
19247         Add documentation for -gnatyu switch (unnecessary blank lines)
19248         Document new switch -U for GNAT PRETTY and GNAT METRIC
19249         Add note about Stdcall being handled as C convention on non Windows OS.
19250         Remove some junk typo in description of gnatbind -S switch
19251         Remove reference to Extensions_Allowed pragma
19252         Document the new order of the directories to be searched (source and
19253         object directories of project files before directories in ADA_*_PATH
19254         environment variables.
19255
19256         * g-trasym.ads: Document that IRIX is supported
19257
19258 2005-06-10  Arnaud Charlet  <charlet@adacore.com>
19259
19260         * Makefile.in: Add initialize.o when needed.
19261         Adapt to new VMS package body Symbols and subunits
19262         No specialized version of a-sytaco is needed for VxWorks.
19263
19264         * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
19265         * a-zchara.ads, a-widcha.ads: New files.
19266
19267         * system-hpux-ia64.ads: New file.
19268
19269         * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
19270         is imported from the VxWorks kernel.
19271
19272 2005-06-14  Robert Dewar  <dewar@adacore.com>
19273
19274         * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
19275         fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
19276         a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
19277         s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
19278         a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
19279         g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
19280         i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
19281         namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
19282         sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
19283         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
19284         s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
19285         xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
19286
19287 2005-06-14  Thomas Quinot  <quinot@adacore.com>
19288
19289         * xeinfo.adb: Fix typo in comment
19290
19291 2005-06-14  Javier Miranda  <miranda@adacore.com>
19292
19293         * repinfo.ads: Fix typo in comment
19294
19295 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
19296
19297         * s-finimp.adb (Parent_Tag): Delete this imported function (function
19298         Parent_Tag is now in the visible part of Ada.Tags).
19299         (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
19300         using imported function.
19301
19302 2005-06-14  Bernard Banner  <banner@adacore.com>
19303
19304         * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
19305         also apply for handling support for VxSim 653.
19306
19307 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
19308
19309         * xsnames.adb: Add automatic generation of snames.h.
19310
19311 2005-06-14  Thomas Quinot  <quinot@adacore.com>
19312
19313         * gen-soccon.c: Add IP_MULTICAST_IF constant
19314         Minor reformatting and adjustments to prevent warnings.
19315
19316 2005-06-14  Pascal Obry  <obry@adacore.com>
19317
19318         * seh_init.c: Do not include <sys/stat.h>. This is not needed.
19319
19320 2005-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
19321
19322         * trans.c (gnat_gimplify_expr): Call
19323         recompute_tree_invarant_for_addr_expr when we change
19324         the operand of the ADDR_EXPR.
19325
19326 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19327
19328         * misc.c: Don't include errors.h.
19329
19330 2005-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19331
19332         * raise.c (db): Add ATTRIBUTE_PRINTF_2.
19333
19334 2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
19335
19336         * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
19337         comment typos.
19338         * gnat_rm.texi, gnat_ugn.texi: Fix typos.
19339
19340 2005-05-16  Nathanael Nerode <neroden@gcc.gnu.org>
19341
19342         PR ada/20270
19343         * Makefile.in: Make TGT_LIB behave correctly.
19344
19345 2005-04-23  DJ Delorie  <dj@redhat.com>
19346
19347         * misc.c: Adjust warning() callers.
19348
19349 2005-04-16  Laurent GUERBY  <laurent@guerby.net>
19350
19351         PR ada/18847
19352         * a-nudira.adb (Value): Check for valid string.
19353         * a-nuflra.adb (Value): Likewise.
19354
19355 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
19356
19357         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
19358
19359 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
19360
19361         * adaint.c, init.c, tracebak.c: Fix comment typos.
19362         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
19363
19364 2005-04-07  Laurent GUERBY  <laurent@guerby.net>
19365             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19366
19367         * Makefile.in: Add make ifeq define for hppa linux tasking support.
19368         * system-hpux.ads: Define Signed_Zeros to be True.
19369         * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
19370
19371 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
19372
19373         * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
19374         raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
19375         typos.
19376
19377 2005-03-30  Tom Tromey  <tromey@redhat.com>
19378
19379         * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
19380
19381 2005-03-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
19382
19383         * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
19384
19385 2005-03-29  Robert Dewar  <dewar@adacore.com>
19386
19387         * sem_res.adb (Resolve_Real_Literal): Generate warning if static
19388         fixed-point expression has value that is not a multiple of the Small
19389         value.
19390
19391         * opt.ads (Warn_On_Bad_Fixed_Value): New flag
19392
19393         * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
19394         nanoseconds.
19395
19396         * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
19397
19398 2005-03-29  Vincent Celier  <celier@adacore.com>
19399
19400         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
19401         (Build_Dynamic_Library.Version_String): Return the empty string when
19402         Lib_Version is empty or when the symbol policy is not Autonomous.
19403
19404         * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
19405         a symbol is not in the reference symbol file, increase the Major ID
19406         and set the Minor ID to 0.
19407         Use gsmatch=lequal instead of gsmatch=equal
19408
19409 2005-03-29  Doug Rupp  <rupp@adacore.com>
19410
19411         * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
19412         name and translate.
19413
19414 2005-03-29  Javier Miranda  <miranda@adacore.com>
19415
19416         * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
19417         (Inherit_DT): The first formal has been redefined as a Tag.
19418         This allows us the removal of the subprogram Get_TSD.
19419         (TSD): Replace the call to Get_TSD by the actual code.
19420
19421         * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
19422         (Make_DT): Upgrade the call to Inherit_TSD according to the
19423         new interface: the first formal is now a Tag.
19424
19425         * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
19426         redefined as a Tag.
19427         This change allows us to remove the subprogram Get_TSD.
19428         (CPP_Get_TSD): Subprogram removed.
19429         (TSD): Replace the call to CPP_Get_TSD by the actual code.
19430
19431         * rtsfind.ads: Remove support to call the run-time
19432         subprogram Get_TSD
19433
19434 2005-03-29  Robert Dewar  <dewar@adacore.com>
19435
19436         * errutil.adb, errout.adb:
19437         Minor comment updates on Line_Terminator references
19438
19439         * par-ch10.adb: Add ??? comment about line terminator
19440
19441         * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
19442         (check dos line terminator).
19443         (Check_Line_Max_Length): New procedure, split off from the existing
19444         Check_Line_Terminator routine. Separating this out allows -gnatyf to
19445         be properly recognized.
19446
19447         * styleg.adb: Add ??? comment for line terminator reference
19448
19449         * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
19450         (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
19451
19452         * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
19453         (check dos line terminator).
19454         (Check_Line_Max_Length): New procedure, split off from the existing
19455         Check_Line_Terminator routine. Separating this out allows -gnatyf to
19456         be properly recognized.
19457
19458         * stylesw.ads, stylesw.adb:
19459         Add handling for new -gnatyd switch (check dos line terminator)
19460
19461         * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
19462         Recognize -gnatwb/-gnatwB switches
19463         Include Warn_On_Bad_Fixed_Value for -gnatg
19464
19465         * usage.adb:
19466         Add line for new -gnatyd switch (check dos line terminator)
19467
19468         * usage.adb: Add lines for -gnatwb/-gnatwB
19469
19470         * vms_data.ads: Add entry for NOCRLF (-gnatyd)
19471
19472         * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
19473
19474         * gnat_ugn.texi: Fix overlong lines
19475         Document new -gnatyd switch
19476         Document new -gnatwb/-gnatwB switches
19477
19478 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
19479
19480         * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
19481         order to retrieve the component list of the type, before examining
19482         individual components.
19483
19484         * sem_type.adb (Covers): Types are compatible if one is the base type
19485         of the other, even though their base types might differ when private
19486         views are involved.
19487
19488 2005-03-29  Thomas Quinot  <quinot@adacore.com>
19489
19490         * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
19491         To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
19492         of using Set_Renaming_TSS. This ensures that the TSS bodies are not
19493         analyzed if expansion is disabled (which could otherwise cause spurious
19494         error messages if expansion has been disabled due to previous
19495         (unrelated) errors).
19496
19497         * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
19498         is disabled, the entity denoted by the argument is the access type
19499         itself, not an underlying record type, so there is no need to go back
19500         to the Corresponding_Remote_Type.
19501
19502 2005-03-29  Gary Dismukes  <dismukes@adacore.com>
19503             Robert Dewar  <dewar@adacore.com>
19504
19505         * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
19506         expand a call to an instance of
19507         Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
19508         Constructor actual of the instance. A class-wide membership
19509         check is also generated, to ensure that the tag passed to the instance
19510         denotes a type in the class.
19511         (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
19512         of Name_Generic_Dispatching_Constructor.
19513
19514         * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
19515         05 unit for AI-260-02).
19516
19517         * a-tgdico.ads: New file.
19518
19519         * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
19520         predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
19521
19522         * snames.ads, snames.adb (Preset_Names): Add entry for
19523         Generic_Dispatching_Constructor.
19524
19525         PR ada/20300
19526         * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
19527         character type cases.
19528         (Analyze_Subprogram_Renaming): Add special handling for
19529         the case of renaming of stream attributes when the renaming denotes a
19530         generic formal subprogram association for an abstract formal subprogram.
19531         Check that the attribute is a primitive stream attribute (and not
19532         a class-wide stream attribute) and then rewrite the attribute name
19533         as the name of the appropriate compiler-generated stream primitive.
19534
19535 2005-03-29  Robert Dewar  <dewar@adacore.com>
19536
19537         * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
19538         recursive calls.
19539         (Is_Possibly_Unaligned_Object): Correct typo that
19540         resulted in inaccurate result for unaligned scalars within records.
19541
19542 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
19543
19544         * freeze.adb (Freeze_Record_Type): If the type of the component is an
19545         itype whose parent is controlled and not yet frozen, do not create a
19546         freeze node for the itype if expansion is disabled.
19547
19548 2005-03-29  Vincent Celier  <celier@adacore.com>
19549
19550         * make.adb (Gnatmake): Don't fail if the main project file is declared
19551         as having no Ada sources. Do not display message "no sources to
19552         compile" in quiet output.
19553
19554 2005-03-29  Doug Rupp  <rupp@adacore.com>
19555
19556         * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
19557         extra tools.
19558
19559 2005-03-29  Robert Dewar  <dewar@adacore.com>
19560
19561         * par-ch12.adb (P_Generic): Give better msg for illegal private generic
19562         child.
19563
19564 2005-03-29  Robert Dewar  <dewar@adacore.com>
19565
19566         * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
19567         missing TYPE Improve the error message generated when compiling a
19568         limited interface in Ada83 or Ada95 mode.
19569
19570 2005-03-29  Robert Dewar  <dewar@adacore.com>
19571
19572         * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
19573         rather than proceed ahead using a junk attribute name.
19574
19575 2005-03-29  Vincent Celier  <celier@adacore.com>
19576
19577         * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
19578
19579         * prj-part.adb (Parse_Single_Project): Set the location of a project
19580         on its defining identifier, rather than on the reserved word "project".
19581
19582         * prj-proc.adb (Expression): Adapt to the fact that default of external
19583         references may be string expressions, not always literal strings.
19584         (Recursive_Process): Set Display_Name equal to Name
19585         when Location is No_Location, that is when there is no actual file.
19586         Get the Display_Name of the project from the source, when it is not a
19587         virtual project.
19588         (Process): Use the Display_Name in error messages
19589
19590         * prj-strt.adb (External_Reference): Allow default to be string
19591         expressions, not only literal strings.
19592
19593 2005-03-29  Vincent Celier  <celier@adacore.com>
19594
19595         * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
19596         file and the reference symbol file to be the same file.
19597
19598 2005-03-29  Thomas Quinot  <quinot@adacore.com>
19599
19600         * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
19601         forbid conversion of a local access-to-subprogram type to a remote one.
19602
19603         * sem_util.adb (Wrong_Type): For a record type that is the expanded
19604         equivalent type for a remote access-to-subprogram type, go back to the
19605         original RAS entity when displaying an error message, so the casing is
19606         the original source casing.
19607
19608 2005-03-29  Robert Dewar  <dewar@adacore.com>
19609
19610         * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
19611         on param update.
19612
19613 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
19614
19615         * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
19616         subtype if code is being pre-analyzed, to prevent un-expanded
19617         references to protected formals, among others.
19618         (Analyze_Explicit_Dereference): If the overloaded prefix includes some
19619         interpretation that can be a call, include the result of the call as a
19620         possible interpretation of the dereference.
19621
19622         * sem_ch5.adb (Process_Bounds): Determine type of range by
19623         pre-analyzing a copy of the original range, and then analyze the range
19624         with the expected type.
19625
19626         * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
19627         with an overloaded prefix where not all interpretations yield an
19628         access to subprogram, do not rewrite node as a call.
19629         (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
19630         the node as a call once the context identifies the interpretation of
19631         the prefix whose call yields the context type.
19632         (Valid_Conversion): For the case of a conversion between
19633         local access-to-subprogram types, check subtype conformance using
19634         Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
19635         detailed error message.
19636
19637 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
19638
19639         * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
19640         indicator, indicate that the formal can never be null.
19641         (Process_Formals): If a formal has a non_null indicator, insert the
19642         resulting subtype immediately before the enclosing subprogram decl,
19643         and not at the beginning of the corresponding declarative part, to
19644         prevent access before elaboration (Ada2005).
19645
19646 2005-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19647
19648         PR ada/19956
19649         * utils.c (finish_record_type): Use variable_size when setting sizes.
19650
19651 2005-03-29  Robert Dewar  <dewar@adacore.com>
19652
19653         * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
19654         guarantee Unix style line terminators for the output files, even when
19655         running on windows.
19656
19657 2005-03-29  Robert Dewar  <dewar@adacore.com>
19658
19659         * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
19660         buffer if an exception is raised.
19661
19662 2005-03-29  Ed Falis  <falis@adacore.com>
19663
19664         * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
19665         VxWorks 653 1.4
19666
19667 2005-03-29  Robert Dewar  <dewar@adacore.com>
19668
19669         * sem_util.ads: Minor reformatting
19670         * gnat_rm.texi: Minor editing.
19671
19672 2005-03-29  Eric Botcazou  <ebotcazou@adacore.com>
19673
19674         * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
19675         * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
19676
19677 2005-03-24  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
19678
19679         * adaint.c (__gnat_portable_spawn): Adjust cast.
19680
19681 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
19682
19683         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
19684
19685 2005-03-17  Pascal Obry  <obry@adacore.com>
19686
19687         * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
19688         used.
19689
19690         * expect.c (__gnat_waitpid): Moved here from adaint.c.
19691         Reimplement under Win32 using Win32 API.
19692
19693         (__gnat_kill) [Win32]: Properly close the process handle before leaving
19694         this routine.
19695
19696 2005-03-17  Eric Botcazou  <ebotcazou@adacore.com>
19697
19698         * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
19699         (DECL_RENAMED_OBJECT): New accessor macro.
19700         (SET_DECL_RENAMED_OBJECT): New setter macro.
19701
19702         * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
19703         object in all cases.  Attach the renamed object to the VAR_DECL.
19704         (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
19705         field is not prescribed.
19706
19707         * misc.c (gnat_handle_option): Handle -gnatO separately.
19708         (gnat_print_decl) <VAR_DECL>: New case.
19709         Print the DECL_RENAMED_OBJECT node.
19710
19711         * lang.opt:  Declare separate -gnatO option.
19712
19713         * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
19714         pointer, replace it with the renamed object.
19715         <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
19716         pointer type if the source is not a fat pointer type whose underlying
19717         array has the same non-zero alias set as that of the destination array.
19718
19719 2005-03-17  Javier Miranda  <miranda@adacore.com>
19720
19721         * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
19722         (Get_Inheritance_Depth): Removed.
19723         (Set_Inheritance_Depth): Removed.
19724
19725         * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
19726         subprogram Get_Expanded_Name because it is not referenced by the
19727         frontend.
19728
19729         * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
19730         (CPP_Get_Inheritance_Depth): Removed.
19731         (CPP_Set_Inheritance_Depth): Removed.
19732
19733         * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
19734
19735 2005-03-17  Robert Dewar  <dewar@adacore.com>
19736
19737         * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
19738         3, since we now expect GCC 3 to do all the work.
19739
19740 2005-03-17  Javier Miranda  <miranda@adacore.com>
19741
19742         * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
19743         of one barrier to avoid wrong usage of this attribute.
19744
19745         * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
19746         First_Private_Entity.
19747
19748         * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
19749         the subprogram against wrong usage.
19750         Adapt the code to traverse the entities in the
19751         scope of a record_type because in addition to its usage regarding
19752         packages, this subprogram is also called by Expand_N_Freeze_Entity
19753         to install the visible declarations of the enclosing scope of a
19754         record_type_with_private to establish the proper visibility before
19755         freezing the entity and related subprograms.
19756
19757 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
19758
19759         * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
19760         entry formals.
19761
19762 2005-03-17  Thomas Quinot  <quinot@adacore.com>
19763
19764         * exp_ch3.adb (Check_Attr): New subprogram.
19765         (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
19766         into a new Check_Attr subprogram, in order to provide a more
19767         explanatory error message (including the name of the missing attribute).
19768         (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
19769         subprogram determines whether a default implementation exists for a
19770         given stream attribute.
19771         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
19772         Determine whether to generate a default implementation for each stream
19773         attribute separately, as this depends on the specific attribute.
19774
19775         * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
19776         limited extension where a stream attribute is missing for a limited
19777         component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
19778         generate a bogus reference to the missing attribute to prevent
19779         cascaded errors. Instead, generate a null statement.
19780
19781         * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
19782         available for a limited type if it has been specified for an ancestor
19783         of the type.
19784
19785 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
19786
19787         * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
19788         entity is an operator.
19789
19790 2005-03-17  Thomas Quinot  <quinot@adacore.com>
19791
19792         * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
19793         spec, to make this predicate available to other units.
19794
19795         * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
19796         reimplementing it.
19797
19798         * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
19799         when no distribution runtime library is available.
19800
19801         * sem_res.adb, sem_dist.adb: Disable expansion of remote
19802         access-to-subprogram types when no distribution runtime library is
19803         available.
19804         (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
19805         predicate available to other units.
19806
19807         * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
19808         spec, to make this predicate available to other units.
19809
19810 2005-03-17  Vincent Celier  <celier@adacore.com>
19811
19812         * make.adb (Insert_Project_Sources): Make sure the Q is always
19813         initialized.
19814
19815         * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
19816         the default for the tree, not the global default naming.
19817
19818         * prj-proc.adb (Recursive_Process): No need to put the default naming
19819         in the project data, it's already there.
19820
19821 2005-03-17  Doug Rupp  <rupp@adacore.com>
19822
19823         * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
19824
19825         * 5xcrtl.ads: Renamed to...
19826         * s-crtl-vms64.ads: ...this new file
19827
19828 2005-03-17  Robert Dewar  <dewar@adacore.com>
19829
19830         PR ada/19519
19831         * namet.adb (Copy_One_Character): Set proper wide character encoding
19832         for upper half character if we have upper half encoding.
19833
19834 2005-03-17  Robert Dewar  <dewar@adacore.com>
19835
19836         * par.adb (Par): Improved msg for attempt to recompile predefined unit
19837
19838 2005-03-17  Thomas Quinot  <quinot@adacore.com>
19839
19840         * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
19841         tagged limited type, the TSS is a newly built renaming declaration:
19842         insert it using Set_TSS, not Copy_TSS.
19843
19844 2005-03-17  Javier Miranda  <miranda@adacore.com>
19845
19846         * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
19847         Try_Object_Operation): Analyze the object that is accessible
19848         through the prefix of the subprogram call before we apply
19849         the transformation of the object-operation notation.
19850
19851 2005-03-17  Jose Ruiz  <ruiz@adacore.com>
19852
19853         * s-taprob.adb (Initialize_Protection): Initialize the protected
19854         object's owner to Null_Task.
19855         (Lock): If pragma Detect_Blocking is in effect and the caller of this
19856         procedure is already the protected object's owner then Program_Error
19857         is raised. In addition the protected object's owner is updated.
19858         (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
19859         of this procedure is already the protected object's owner then
19860         Program_Error is raised.
19861         In addition the protected object's owner is updated.
19862         (Unlock): Remove the ownership of the protected object.
19863
19864         * s-taprob.ads (Protection): Add the field Owner, used to store the
19865         protected object's owner.
19866         This component is needed for detecting one type of potentially blocking
19867         operations (external calls on a protected subprogram with the same
19868         target object as that of the protected action). Document the rest of
19869         the components.
19870
19871         * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
19872         Initialize the protected object's owner to Null_Task.
19873         (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
19874         caller of this procedure is already the protected object's owner then
19875         Program_Error is raised.
19876         Do not raise Program_Error when this procedure is called from a
19877         protected action.
19878         (Unlock_Entries): Remove the ownership of the protected object.
19879         (Lock_Entries): If pragma Detect_Blocking is in effect and the caller
19880         of this procedure is already the protected object's owner then
19881         Program_Error is raised.
19882         Do not raise Program_Error when this procedure is called from
19883         a protected action.
19884
19885         * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
19886         used to store the protected object's owner.
19887
19888         * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
19889         effect and this procedure (a potentially blocking operation) is called
19890         from whithin a protected action, Program_Error is raised.
19891         (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
19892         and this procedure (a potentially blocking operation) is called from
19893         whithin a protected action, Program_Error is raised.
19894
19895 2005-03-17  Vincent Celier  <celier@adacore.com>
19896             Nicolas Setton  <setton@adacore.com>
19897
19898         * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
19899         switch, not supported by the linker on Darwin. Add '_' before
19900         <library>init, as this character is added unconditionally by the
19901         compiler.
19902         (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
19903         correct one ".dylib". This fixes detection of the archive files when
19904         building library projects.
19905
19906 2005-03-17  Vincent Celier  <celier@adacore.com>
19907
19908         * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
19909         -gnat83, -gnat95 and -gnat05.
19910
19911 2005-03-17  Vasiliy Fofanov  <fofanov@adacore.com>
19912
19913         * gnat_ugn.texi: Document gnatmem restriction
19914
19915 2005-03-17  Thomas Quinot  <quinot@adacore.com>
19916
19917         * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
19918         cleanup
19919
19920 2005-03-17  Robert Dewar  <dewar@adacore.com>
19921
19922         * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
19923         a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
19924         s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
19925
19926         * casing.adb: Comment improvements
19927
19928 2005-03-17  Pascal Obry  <obry@adacore.com>
19929
19930         * g-expect.adb: Minor reformatting.
19931
19932 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
19933
19934         * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
19935         (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
19936         to dependencies.
19937
19938 2005-03-15  Vincent Celier  <celier@adacore.com>
19939
19940         * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
19941         Add new parameter In_Tree to specify the project tree: needed
19942         by the project manager. Adapt to changes in project manager
19943         using new parameter In_Tree.
19944
19945 2005-03-15  Jakub Jelinek  <jakub@redhat.com>
19946
19947         * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
19948         ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
19949         ada/bldtools to avoid make -jN failures.
19950
19951 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
19952
19953         * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
19954         to NULL_TREE on entry.
19955
19956 2005-03-15  Robert Dewar  <dewar@adacore.com>
19957
19958         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
19959         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
19960         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
19961         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
19962         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
19963         system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
19964         system-interix.ads, system-solaris-sparc.ads,
19965         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
19966         system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
19967         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
19968         system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
19969         system-linux-s390.ads, system-linux-s390x.ads: Add line defining
19970         Compiler_System_Version to be False.
19971
19972         * opt.ads: Add new flag Opt.Address_Is_Private
19973
19974         * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
19975         Add new parameter Compiler_System_Version to avoid checking for
19976         completeness of parameters when compiler is compiling itself.
19977         Allows old versions of GNAT to be compiled with new compiler.
19978
19979 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
19980
19981         * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
19982         (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
19983         calling thread.
19984         (Stack_Base_Available): New flag.
19985         (Get_Page_Size): New overloaded functions imported from C.
19986         (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
19987         PROT_ON, PROT_OFF): New constants.
19988         (mprotect): New function imported from C.
19989         (pthread_teb_t): New record type.
19990
19991         * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
19992         (Create_Task): Account for the Yellow Zone and the guard page.
19993
19994 2005-03-15  Vincent Celier  <celier@adacore.com>
19995
19996         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
19997         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
19998         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
19999         mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
20000         Library_File_Name_For): Add new parameter In_Tree
20001         to specify the project tree: needed by the project manager.
20002         Adapt to changes in project manager using new parameter In_Tree.
20003         Remove local imports, use functions in System.CRTL.
20004
20005         * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
20006         to use the project manager.
20007
20008         * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
20009         In_Tree to designate the project tree. Adapt to changes in the project
20010         manager, using In_Tree.
20011
20012         * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
20013         Copy_Interface_Sources): Add new parameter In_Tree to specify the
20014         project tree: needed by the project manager.
20015         (Build_Library): Check that Arg'Length >= 6 before checking if it
20016         contains "--RTS=...".
20017
20018         * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
20019         Library_File_Name_For): Add new parameter In_Tree to specify the
20020         project tree: needed by the project manager.
20021
20022         * prj.ads, prj.adb: Major modifications to allow several project trees
20023         in memory at the same time.
20024         Change tables to dynamic tables and hash tables to dynamic hash
20025         tables. Move tables and hash tables from Prj.Com (in the visible part)
20026         and Prj.Env (in the private part). Move some constants from the visible
20027         part to the private part. Make other constants deferred.
20028         (Project_Empty): Make it a variable, not a function
20029         (Empty_Project): Add parameter Tree. Returns the data with the default
20030         naming data of the project tree Tree.
20031         (Initialize): After updating Std_Naming_Data, copy its value to the
20032         component Naming of Project Empty.
20033         (Register_Default_Naming_Scheme): Use and update the default naming
20034         component of the project tree, instead of the global variable
20035         Std_Naming_Data.
20036         (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
20037         Tree is not defaulted, return the default naming data of the Tree.
20038         (Initial_Buffer_Size): Constant moved from private part
20039         (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
20040         variables initialized in procedure Initialize.
20041         (Add_To_Buffer): Add two in out parameters to replace global variables
20042         Buffer and Buffer_Last.
20043         (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
20044         functions.
20045         Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
20046         hash tables.
20047         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
20048         for the project tree.
20049         (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
20050         constant at the beginning of the package spec, so that they cane be used
20051         in subprograms before their full declarations.
20052         (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
20053         (Empty_Project): Add parameter of type Project_Node_Ref
20054         (Private_Project_Tree_Data): Add component Default_Naming of type
20055         Naming_Data.
20056         (Buffer, Buffer_Last): remove global variables
20057         (Add_To_Buffer): Add two in out parameters to replace global variables
20058         Buffer and Buffer_Last.
20059         (Current_Packages_To_Check): Remove global variable
20060         (Empty_Name): Move to private part
20061         (No-Symbols): Make it a constant
20062         (Private_Project_Tree_Data): New type for the private part of the
20063         project tree data.
20064         (Project_Tree_Data): New type for the data of a project tree
20065         (Project_Tree_Ref): New type to designate a project tree
20066         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
20067         for the project tree.
20068
20069         * prj-attr.ads: Add with Table; needed, as package Prj no longer
20070         imports package Table.
20071
20072         * prj-com.adb: Remove empty, no longer needed body
20073
20074         * prj-com.ads: Move most of the content of this package to package Prj.
20075
20076         * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
20077         designate the project node tree and Packages_To_Check to replace
20078         global variable Current_Packages_To_Check.
20079         Add new parameters In_Tree and Packages_To_Check to local subprograms,
20080         when needed. Adapt to changes in project manager with project node tree
20081         In_Tree.
20082
20083         * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
20084         project tree to most subprograms. Move tables and hash tables to
20085         private part of package Prj.
20086         Adapt to changes in project manager using project tree In_Tree.
20087
20088         * prj-makr.adb (Tree): New constant to designate the project node tree
20089         Adapt to change in project manager using project node tree Tree
20090
20091         * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
20092         display the Library_Src_Dir and the Library_Dir.
20093         Add new parameter In_Tree to designate the project node tree to most
20094         subprograms. Adapt to changes in the project manager, using project tree
20095         In_Tree.
20096         (Check_Naming_Scheme): Do not alter the casing on platforms where
20097         the casing of file names is not significant.
20098         (Check): Add new parameter In_Tree to designate the
20099
20100         * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
20101         designate the project tree.
20102         Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
20103
20104         * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
20105         to replace those that were in the private part of package Prj.
20106         Add new parameter In__Tree to designate the project node tree to most
20107         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
20108         (Post_Parse_Context_Clause): When specifying the project node of a with
20109         clause, indicate that it is a limited with only if there is "limited"
20110         in the with clause, not necessarily when In_Limited is True.
20111         (Parse): Add new parameter In_Tree to designate the project node tree
20112
20113         * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
20114         designate the project node tree. Adapt to change in Prj.Tree with
20115         project node tree In_Tree.
20116
20117         * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
20118         tree In_Tree in the call to function Empty_Process to give its initial
20119         value to the project data Processed_Data.
20120         Add new parameters In_Tree to designate the project tree and
20121         From_Project_Node_Tree to designate the project node tree to several
20122         subprograms. Adapt to change in project manager with project tree
20123         In_Tree and project node tree From_Project_Node_Tree.
20124
20125         * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
20126         to replace those that were in the private part of package Prj.
20127         Add new parameter In_Tree to designate the project node tree to most
20128         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
20129
20130         * prj-tree.ads, prj-tree.adb: Add new parameter of type
20131         Project_Node_Tree_Ref to most subprograms.
20132         Use this new parameter to store project nodes in the designated project
20133         node tree.
20134         (Project_Node_Tree_Ref): New type to designate a project node tree
20135         (Tree_Private_Part): Change table to dynamic table and hash tables to
20136         dynamic hash tables.
20137
20138         * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
20139         the project tree to most subprograms. Adapt to changes in project
20140         manager using project tree In_Tree.
20141
20142         * makegpr.adb (Project_Tree): New constant needed to use project
20143         manager.
20144
20145 2005-03-15  Olivier Hainque  <hainque@adacore.com>
20146
20147         * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
20148         for sigactions with SA_SIGINFO set. Call
20149         __gnat_adjust_context_for_raise before raising, to perform the
20150         potentially required adjustments to the machine context for the GCC
20151         unwinder.
20152
20153         * raise.h (__gnat_adjust_context_for_raise): New prototype.
20154
20155         * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
20156         Adjust PC by one in the provided machine context.
20157         (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
20158         so that the handler is passed the context structure to adjust prior to
20159         the raise.
20160         (__gnat_error_handler) HPUX: Adjust the signature to match what an
20161         SA_SIGINFO sigaction should look like. Call
20162         __gnat_adjust_context_for_raise before actually raising.
20163         (__gnat_adjust_context_for_raise): Default noop to help PC
20164         adjustments before raise from signal handlers.
20165         (__gnat_error_handler): Indirectly call a predicate function to
20166         determine if a condition should be resignaled or not.
20167         (__gnat_set_resignal_predicate): User interface to modify the predicate.
20168         (__gnat_default_resignal_p): Default GNAT predicate.
20169
20170 2005-03-15  Doug Rupp  <rupp@adacore.com>
20171
20172         * adaint.c: Prefix #include of VMS system header files with vms/
20173         [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
20174         Do not define a dummy function "convert_addresses" under Darwin,
20175         not needed.
20176
20177         * tb-alvms.c, expect.c: Prefix #include of VMS system header files
20178         with vms/
20179
20180 2005-03-15  Nicolas Setton  <setton@adacore.com>
20181
20182         * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
20183         PPC/AIX.
20184
20185 2005-03-15  Robert Dewar  <dewar@adacore.com>
20186
20187         * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
20188         AI-386.
20189
20190         * a-retide.ads: Minor comment changes
20191
20192 2005-03-15  Robert Dewar  <dewar@adacore.com>
20193
20194         * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
20195         a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
20196         Realloc_For_Chunk to private part of package.
20197         New subprograms for AI-301
20198
20199         * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
20200         Get_Line procedure.
20201         Avoid unnecessary use of Get/Set_Wide_String
20202
20203 2005-03-15  Robert Dewar  <dewar@adacore.com>
20204
20205         PR ada/13470
20206         * a-stunau.ads, a-stunau.adb:
20207         Change interface to allow efficient (and correct) implementation
20208         The previous changes to allow extra space in unbounded strings had
20209         left this interface a bit broken.
20210
20211         * a-suteio.adb: Avoid unnecessary use of Get/Set_String
20212
20213         * g-spipat.ads, g-spipat.adb: New interface for Get_String
20214         Minor reformatting (function specs)
20215
20216         * g-spitbo.adb: New interface for Get_String
20217
20218         * g-spitbo.ads: Minor reformatting
20219
20220         * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
20221
20222         * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
20223
20224 2005-03-15  Javier Miranda  <miranda@adacore.com>
20225             Robert Dewar  <dewar@adacore.com>
20226             Thomas Quinot  <quinot@adacore.com>
20227             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20228
20229         * atree.ads, atree.adb: Add support for Elist24 field
20230
20231         * atree.h: Fix wrong definition of Field27
20232         Add support for Elist16 field
20233         Add support for Elist24 field
20234
20235         * einfo.ads, einfo.adb (Abstract_Interfaces,
20236         Set_Abstract_Interfaces): New subprograms.
20237         (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
20238         subprograms.
20239         (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
20240         entities rather than a single node.
20241         (Is_Interface, Set_Is_Interface): New subprogram
20242         (First_Tag_Component): New syntesized attribute
20243         (Next_Tag_Component): New synthesized attribute
20244         (Write_Entity_Flags): Upgraded to write Is_Interface
20245         (Write_Field24_Name): Upgraded to write Abstract_Interfaces
20246         (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
20247         (Task_Body_Procedure): New subprogram to read this attribute.
20248         (Set_Task_Body_Procedure): New subprogram to set this attribute.
20249         (Has_Controlled_Component): Now applies to all entities.
20250         This is only a documentation change, since it always worked to apply
20251         this to other than composite types (yielding false), but now this is
20252         official.
20253         Update documentation on Must_Be_Byte_Aligned for new spec
20254
20255         * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
20256         exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
20257         uses of the Access_Disp_Table attribute to reference the first dispatch
20258         table associated with a tagged type. As
20259         part of the implementation of abstract interface types,
20260         Access_Disp_Table has been redefined to contain a list of dispatch
20261         tables (rather than a single dispatch table).
20262         Similarly, upgrade all the references to Tag_Component by the
20263         new attribute First_Tag_Component.
20264         (Find_Inherited_TSS): Moved to exp_tss.
20265         Clean up test in Expand_N_Object_Declaration for cases
20266         where we need to do a separate assignment of the initial value.
20267         (Expand_N_Object_Declaration): If the expression in the
20268         declaration of a tagged type is an aggregate, no need to generate an
20269         additional tag assignment.
20270         (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
20271         is to be deleted.
20272         Bit packed array ops are only called if operands are known to be
20273         aligned.
20274         (Component_Equality): When returning an N_Raise_Program_Error statement,
20275         ensure that its Etype is set to Empty to avoid confusing GIGI (which
20276         expects that only expressions have a bona fide type).
20277         (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
20278         determine the amount of data to be copied.
20279
20280         * par.adb (P_Interface_Type_Definition): New subprogram that parses the
20281         new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
20282             INTERFACE_TYPE_DEFINITION ::=
20283               [limited | task | protected | synchronized] interface
20284                 [AND interface_list]
20285
20286         * par-ch3.adb (P_Type_Declaration): Modified to give support to
20287         interfaces.
20288         (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
20289         interfaces.
20290         (P_Interface_Type_Definition): New subprogram that parses the new
20291         syntax rule of Ada 2005 interfaces
20292         (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
20293         messages by the correct RENAMES (quotes removed).
20294
20295         * sem_prag.adb: Upgrade all the references to Tag_Component by the new
20296         attribute First_Tag_Component.
20297
20298         * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
20299         (Interface_List, Set_Interface_List): New subprograms.
20300         (Interface_Present, Set_Interface_Present): New subprograms.
20301         (Limited_Present, Set_Limited_Present): Available also in derived
20302         type definition nodes.
20303         (Protected_Present, Set_Protected_Present): Available also in
20304         record type definition and
20305         derived type definition nodes.
20306         (Synchronized_Present, Set_Synchronized_Present): New subprograms.
20307         (Task_Present, Set_Task_Present): New subprogram.
20308         (Task_Body_Procedure): Removed.
20309         (Set_Task_Body_Procedure): Removed.
20310         These subprogram have been removed because the attribute
20311         Task_Body_Procedure has been moved to the corresponding task type
20312         or task subtype entity to leave a field free to store the list
20313         of interfaces implemented by a task (for AI-345)
20314         Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
20315         (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
20316         expression flag Do_Range_Check
20317         (Exception_Junk): Change to Flag7 to accomodate above change
20318         (Box_Present, Default_Name, Specification, Set_Box_Present,
20319         Set_Default_Name, Set_Specification): Expand the expression
20320         "X in N_Formal_Subprogram_Declaration" into the corresponding
20321         two comparisons. Required to use the csinfo tool.
20322
20323         * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
20324         "with string" given.
20325
20326         * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
20327         expression given.
20328
20329         * par-ch11.adb (P_Raise_Statement): Recognize with string expression
20330         in 2005 mode
20331
20332         * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
20333         attribute Task_Body_Procedure rather than the old semantic field that
20334         was available in the task_type_declaration node.
20335
20336         * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
20337         interface type definitions.
20338         (P_Formal_Derived_Type_Definition): Modified to handle the list of
20339         interfaces.
20340
20341         * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
20342         task type declaration.
20343         (P_Protected): Modified to handle the list of interfaces in a
20344         protected type declaration.
20345
20346 2005-03-15  Doug Rupp  <rupp@adacore.com>
20347             Vincent Celier  <celier@adacore.com>
20348
20349         * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
20350         (Gen_Output_File_C): Likewise.
20351         (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
20352
20353 2005-03-15  Thomas Quinot  <quinot@adacore.com>
20354
20355         * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
20356         is an N_Raise_Constraint_Error node, create a new copy of it without
20357         going through a call to Duplicate_Subexpr.
20358
20359 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
20360             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20361             Nicolas Setton  <setton@adacore.com>
20362             Ed Schonberg  <schonberg@adacore.com>
20363
20364         PR ada/19900
20365         PR ada/19408
20366         PR ada/19140
20367         PR ada/20255
20368         * decl.c (gnat_to_gnu_field): Reject aliased components with a
20369         representation clause that prescribes a size not equal to the rounded
20370         size of their types.
20371         (gnat_to_gnu_entity, case E_Component): Always look at
20372         Original_Record_Component if Present and not the entity.
20373         (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
20374         of tagged extension types by not making field for components that are
20375         inside the parent.
20376         (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
20377         (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
20378         expression to the type of the object when the object is constant.
20379         Reverse defer_debug_incomplete_list before traversing it, so that trees
20380         are processed in the order at which they were added to the list. This
20381         order is important when using the stabs debug format.
20382         If we are deferring the output of debug information, also defer this
20383         output for a function return type.
20384         When adding fields to a record, prevent emitting debug information
20385         for incomplete records, emit the information only when the record is
20386         complete.
20387         (components_to_record): New parameter defer_debug.
20388         (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
20389         (gnat_to_gnu_field_decl): New function.
20390         (substitution_list, annotate_rep): Call it.
20391         (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
20392         (gnat_to_gnu_entity, case E_Record_Type): Likewise.
20393         No longer update discriminants to not be a COMPONENT_REF.
20394         (copy_alias_set): Strip padding from input type; also handle
20395         unconstrained arrays properly.
20396
20397         * gigi.h (write_record_type_debug_info): New function.
20398         Convert to use ANSI-style prototypes. Remove unused
20399         declarations for emit_stack_check, elab_all_gnat and
20400         set_second_error_entity.
20401         (gnat_to_gnu_field_decl): New decl.
20402
20403         * utils.c (write_record_type_debug_info): New function.
20404         (finish_record_type): Delegate generation of debug information to
20405         write_record_type_debug_info.
20406         (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
20407         (update_pointer_to): Fix pasto.
20408         (convert) <UNION_TYPE>: Accept slight type variations when
20409         converting to an unchecked union type.
20410
20411         * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
20412         replace the N_Freeze_Entity with a null statement.
20413
20414         * freeze.adb (Freeze_Expression): If the freeze nodes are generated
20415         within a constrained subcomponent of an enclosing record, place the
20416         freeze nodes in the scope stack entry for the enclosing record.
20417         (Undelay_Type): New Subprogram.
20418         (Set_Small_Size): Pass T, the type to modify; all callers changed.
20419         (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
20420         within records; allow them to have freeze nodes if their base types
20421         aren't frozen yet.
20422
20423         * exp_util.adb (Remove_Side_Effects): Properly test for
20424         Expansion_Delayed and handle case when it's inside an
20425         N_Qualified_Expression.
20426
20427         * sem_ch3.adb (Derived_Type_Declaration): New predicate
20428         Comes_From_Generic, to recognize accurately that the parent type in a
20429         derived type declaration can be traced back to a formal type, because
20430         it is one or is derived from one, or because its completion is derived
20431         from one.
20432         (Constrain_Component_Type): If component comes from source and has no
20433         explicit constraint, no need to constrain in in a subtype of the
20434         enclosing record.
20435         (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
20436         Minor change to propagate Is_Ada_2005 flag
20437
20438         * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
20439         Expansion_Delayed is False.
20440         (assoc_to_constructor): Ignore fields that have a
20441         Corresponding_Discriminant.
20442         (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
20443         function returns "by target", dereference the target pointer using the
20444         type of the actual return value.
20445         <all>: Be prepared for a null gnu_result.
20446         (processed_inline_subprograms): Check flag_really_no_inline
20447         instead of flag_no_inline.
20448         (set_second_error_entity): Remove unused function.
20449         (gnat_to_gnu, case N_Selected_Component): Call
20450         gnat_to_gnu_field_decl.
20451         (assoc_to_constructor): Likewise.
20452
20453 2005-03-15  Robert Dewar  <dewar@adacore.com>
20454             Ed Schonberg  <schonberg@adacore.com>
20455             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20456
20457         * exp_pakd.adb (Create_Packed_Array_Type): Do not set
20458         Must_Be_Byte_Aligned for cases where we do not need to use a
20459         System.Pack_nn unit.
20460
20461         * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
20462         as procedures.
20463         Needed now that we do some processing for IN parameters as well. This
20464         may well fix some unrelated errors.
20465         (Expand_Call): Handle case of unaligned objects (in particular those
20466         that come from packed arrays).
20467         (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
20468         renamed entity is an inherited operation, re-expand the call using the
20469         original operation, which is the one to call.
20470         Detect attempt to inline parameterless recursive subprogram.
20471         (Represented_As_Scalar): Fix to work properly with private types
20472         (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
20473         accurate estimate. Yields True in far fewer cases than before,
20474         improving the quality of code that depends on this test.
20475
20476         * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
20477         over both visible and private declarations to remove them from tree,
20478         and mark subprograms declared in package as eliminated, to prevent
20479         spurious use in subsequent compilation of generic units in the context.
20480
20481         * exp_util.ads: Minor cleanup in variable names
20482
20483         * sem_eval.ads, sem_eval.adb: Minor reformatting
20484         (Compile_Time_Known_Bounds): New function
20485
20486 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
20487
20488         * exp_ch7.adb (Convert_View): Use base types of underlying types when
20489         determining whether an unchecked conversion is needed for the argument
20490         of an initialization call.
20491
20492 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
20493
20494         * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
20495         that appears in the instantiation rather than the internal subtype
20496         generated in the wrapper package, to avoid anomalies in gigi when the
20497         target is derived from a private type whose full view is an access type.
20498
20499 2005-03-15  Robert Dewar  <dewar@adacore.com>
20500
20501         * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
20502         not needed.
20503         Add documentation to replace the use of this flag
20504         Fix kludge for Maximum_Alignment on x86 so that it does not apply to
20505         the x86_64.
20506
20507 2005-03-15  Thomas Quinot  <quinot@adacore.com>
20508
20509         * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
20510         here from exp_attr so it can be shared between exp_attr and exp_dist.
20511         (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
20512         all TSS names, not a subset thereof, and the previous name introduced
20513         an unnecessarily confusion that a distinction might exist between
20514         "OK" TSS names and some "not OK" TSS names.
20515
20516 2005-03-15  Doug Rupp  <rupp@adacore.com>
20517
20518         * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
20519         Command_Name.
20520
20521 2005-03-15  Pascal Obry  <obry@adacore.com>
20522             Eric Botcazou  <ebotcazou@adacore.com>
20523
20524         PR ada/20226
20525         PR ada/20344
20526         * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
20527         when IN_RTS. This is to work around a bootstrap path problem.
20528
20529         * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
20530         table and pass it to __gnat_install_SEH_handler().
20531         (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
20532
20533         * lang.opt: Fix specification of -fRTS=.
20534
20535 2005-03-15  Doug Rupp  <rupp@adacore.com>
20536             Bernard Banner  <banner@adacore.com>
20537             Vincent Celier  <celier@adacore.com>
20538             Arnaud Charlet  <charlet@adacore.com>
20539
20540         PR ada/6852
20541         This change works fine when gnatlib is built from the gcc directory,
20542         but does not work when using the libada Makefile, since GCC_FOR_TARGET
20543         is not passed to ada/Makefile.in, so more work is needed by a
20544         Makefile/configure expert.
20545
20546         * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
20547         set GMEM_LIB on ia64 linux to add optional support for gnatmem.
20548         Setup gnatlink switch -M for x86_64 linux, as it is already setup
20549         for Linux x86.
20550         (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
20551         Run ranlib on libgccprefix.a
20552         Define PREFIX_OBJS for Darwin, to build libgccprefix.
20553         (ADA_INCLUDE_SRCS): Split Ada packages.
20554
20555 2005-03-15  Robert Dewar  <dewar@adacore.com>
20556
20557         * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
20558
20559         * impunit.adb: Add GNAT.UTF_32
20560
20561         * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
20562
20563         * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
20564         now uses GNAT.UTF_32).
20565
20566         * g-utf_32.ads, g-utf_32.adb: This is a new unit with full
20567         capabilities for categorizing characters using Unicode categories
20568
20569 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
20570
20571         * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an
20572         instantiation that has been rewritten as a package body, retrieve spec
20573         to generate proper name for implicit_with_clause.
20574         (Install_Parents): Recognize a parent that is an instantiation but has
20575         been rewritten as a package declaration during analysis.
20576
20577 2005-03-15  Javier Miranda  <miranda@adacore.com>
20578             Ed Schonberg  <schonberg@adacore.com>
20579
20580         * sem_ch12.adb (Instantiate_Object): If the analysis of the actual
20581         parameter reported some error we immediately return. This improves the
20582         behaviour of the frontend in case of errors.
20583         (Install_Parent, Remove_Parent): Introduce new flag
20584         Parent_Unit_Visible, to preserve the proper visibility of the ultimate
20585         ancestor of a generic child unit, when the child is being instantiated.
20586         (Inline_Instance_Body): If we are compiling the private
20587         part or the body of a child unit, restore the proper visibility of the
20588         parents after compiling the instance body.
20589
20590 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
20591             Javier Miranda  <miranda@adacore.com>
20592
20593         PR ada/15608
20594         * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion
20595         of a private type, in which case it is underlying_type that denotes
20596         the proper task. Also modified to use the new entity attribute
20597         that is directly available in the task type and task subtype entities
20598         (Build_Actual_Subtype_Of_Component): Handle properly multidimensional
20599         arrays when other dimensions than the first are constrained by
20600         discriminants of an enclosing record.
20601         (Insert_Explicit_Dereference): If the prefix is an indexed component or
20602         a combination of indexed and selected components, find ultimate entity
20603         and generate the appropriate reference for it, to suppress spurious
20604         warnings.
20605         (Note_Possible_Modification): If an entity name has no entity, return.
20606         (Is_Variable): A function call never denotes a variable.
20607         (Requires_Transient_Scope): For record types, recurse only on
20608         components, not on internal subtypes that may have been generated for
20609         constrained components.
20610
20611 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
20612
20613         * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked
20614         Eliminated as candidates for resolution. Both efficient, and avoids
20615         anomalies with operators declared in deleted code.
20616         (Process_Implicit_Dereference_Prefix): Use this procedure whenever
20617         expansion is disabled (as when compiling a generic) to prevent spurious
20618         warnings on prefixes of selected components.
20619
20620 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
20621
20622         * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
20623         attached to a list before checking whether it appears in the private
20624         declarations of the current package.
20625         (Make_Inequality_Operator): Insert declaration in proper declarative
20626         list rather than just setting the Parent field, so that
20627         Is_Private_Declaration can handle it properly.
20628
20629 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
20630
20631         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
20632         a renaming a body, check that the renamed subprogram in not intrinsic.
20633         (Find_Direct_Name): If several use_visible entities hide
20634         each other, and the context is a predefined file compiled through
20635         rtsfind, keep only the entity that comes from a predefined file.
20636
20637 2005-03-15  Geert Bosch  <bosch@adacore.com>
20638
20639         * s-fatgen.adb (Valid): Extend special exceptions to account for long
20640         long float padding to also cover AMD64 and IA64.
20641
20642 2005-03-15  Gary Dismukes  <dismukes@adacore.com>
20643
20644         * s-imgwch.adb: Add with and use of Interfaces.
20645         (Img_Wide_Character): Change type of Val to Unsigned_16.
20646         (Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
20647
20648 2005-03-15  Matthew Gingell  <gingell@adacore.com>
20649
20650         * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
20651
20652 2005-03-15  Robert Dewar  <dewar@adacore.com>
20653
20654         * usage.adb: Add missing lines for -gnat95 and -gnat05 switches
20655
20656         * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
20657
20658         * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
20659
20660 2005-03-15  Robert Dewar  <dewar@adacore.com>
20661
20662         * s-bitops.adb, s-bitops.ads,
20663         s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads,
20664         s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb,
20665         tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads,
20666         s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads,
20667         s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads,
20668         s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads,
20669         s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads,
20670         s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor
20671         reformatting.
20672
20673 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
20674
20675         * utils2.c (build_binary_op): Fix typo.
20676
20677 2005-03-15  Doug Rupp  <rupp@adacore.com>
20678
20679         * s-crtl.ads (popen,pclose): New imports.
20680
20681 2005-03-15  Cyrille Comar  <comar@adacore.com>
20682
20683         * comperr.adb (Compiler_Abort): remove references to obsolete
20684         procedures in the bug boxes for various GNAT builds.
20685
20686 2005-03-15  Vincent Celier  <celier@adacore.com>
20687
20688         * snames.ads, snames.adb: Save as Unix text file, not as DOS text file
20689
20690 2005-03-15  Geert Bosch  <bosch@adacore.com>
20691             Arnaud Charlet  <charlet@adacore.com>
20692             Robert Dewar  <dewar@adacore.com>
20693             Cyrille Comar  <comar@adacore.com>
20694             Sergey Rybin  <rybin@adacore.com>
20695
20696         * gnat_ugn.texi: Remove extended inline assembly example, as it was far
20697         too specific and long-winded to be appropriate for the GNAT User's
20698         Guide.
20699         Warn about use of GCC switches not documented in the GNAT User's Guide,
20700         as these may cause generated code to not conform to Ada semantics.
20701         Remove mention of -gdwarf-2 for sparc64, since this is now the default.
20702         Add documentation for -gnat95 and -gnat05 switches
20703         Remove paragraph documenting obsolete way to refer to third party
20704         libraries.
20705         Add a few references to Ada_05 that were missing.
20706         Update documentation on -gnatZ/-gnatL.
20707         Document limitation when using -m64 under Solaris.
20708         Change the "Name Casing" subsection of the pretty-printer section
20709         according to the changes in the dictionary processing.
20710
20711         * gnat_rm.texi: Document the Ada_05 pragma.
20712         Section on record representation clauses describes the new more
20713         relaxed rules about placement of large packed bit array components.
20714         Add documentation of GNAT.UTF_32
20715
20716 2005-03-12  Daniel Berlin <dberlin@dberlin.org>
20717
20718         * misc.c (gnat_post_options): Turn off structural
20719         aliasing for now.
20720
20721 2005-03-08  Laurent Guerby <laurent@guerby.net>
20722
20723         * system-linux-sparc.ads: Fix typo in previous commit.
20724
20725 2005-03-07  James A. Morrison <phython@gcc.gnu.org>
20726             Laurent Guerby <laurent@guerby.net>
20727
20728         PR ada/20035
20729         * system-linux-sparc.ads: New.
20730         * Makefile.in: Add sparc linux entry.
20731
20732 2005-02-27  Danny Smith  <dannysmith@users.sourceforge.net>
20733
20734         * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
20735         parameters as unused.
20736
20737 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
20738         Partial merge from libada-gnattools-branch:
20739
20740         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
20741         * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags
20742         into code in gnattools/Makefile.in.  Remove direct dependencies on
20743         stamp-tools by tools clauses.
20744         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
20745         * config-lang.in: Add gnattools to $lang_dirs.
20746
20747 2005-02-13  Andrew Pinski  <pinskia@physics.uc.edu>
20748
20749         PR ada/19942
20750         * utils.c (gnat_type_for_mode): Return null instead of ICE because
20751         we asked for an unknown mode.
20752
20753 2005-02-12  Richard Henderson  <rth@redhat.com>
20754
20755         * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
20756         validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
20757
20758 2005-02-10  Andreas Jaeger  <aj@suse.de>
20759
20760         * init.c (__gnat_initialize): Mark parameter as unused.
20761
20762 2005-02-09  Doug Rupp  <rupp@adacore.com>
20763
20764         * g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
20765         * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
20766
20767 2005-02-09  Doug Rupp  <rupp@adacore.com>
20768
20769         * gnatchop.adb (dup, dup2),
20770         g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
20771
20772         * gnatlbr.adb (mkdir),
20773         mlib-tgt-vms-ia64.adb (popen, plose):  Import with decc$ prefix.
20774
20775         * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
20776
20777 2005-02-09  Doug Rupp  <rupp@adacore.com>
20778
20779         * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
20780
20781 2005-02-09  Robert Dewar  <dewar@adacore.com>
20782             Thomas Quinot  <quinot@adacore.com>
20783             Javier Miranda  <miranda@adacore.com>
20784             Pascal Obry  <obry@adacore.com>
20785             Ed Schonberg  <schonberg@adacore.com>
20786             Doug Rupp  <rupp@adacore.com>
20787             Gary Dismukes  <dismukes@adacore.com>
20788             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20789
20790         * g-zstspl.ads: New file.
20791
20792         * a-chahan.ads, a-chahan.adb: Add declarations from AI-285
20793
20794         * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
20795         Ada 95 mode
20796         Add definition of Wide_Wide_Space for AI-285
20797
20798         * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
20799         interface (to support Ada 95 and Ada 2005 units).
20800         Add Unbounded_IO files
20801         Add entries for Wide_Wide packages for AI-285
20802         Add list of containers packages to Ada 2005 unit list
20803
20804         * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
20805         support new Unbounded_IO package cleanly.
20806
20807         * g-utf_32.ads, g-utf_32.adb: New files.
20808
20809         * Makefile.rtl: Add entry for g-utf_32
20810         Add new files for Unbounded_IO
20811         Adjust make file for new AI-285 wide wide packages
20812         Add AI-302 containers to the run time.
20813
20814         * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
20815         a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
20816         subprograms for AI-301.
20817
20818         * a-stwiun.adb, a-stwiun.ads: Minor reformatting.
20819
20820         * a-stunau.ads: Minor comment correction
20821
20822         * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
20823         etc.
20824         Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
20825         (Check_RPC): Update to match changes in expanded code.
20826         Clean up unused entity.
20827
20828         * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
20829         was not taken into account.
20830         This includes proper initialization with Normalize_Scalars.
20831         (Get_Simple_Init_Val): Major rewrite for initialize scalars and
20832         normalize scalars cases (particularly the latter) to do a better job
20833         of finding invalid representations.
20834
20835         * s-scaval.ads, s-scaval.adb: Add values for zero invalid values
20836
20837         * s-strops.ads, s-strops.adb: Remove string normalize routines, never
20838         used
20839
20840         * exp_dist.adb: Add support for wide wide character type
20841         (Expand_Receiving_Stubs_Bodies): For a package declaration that has a
20842         private part, generate stub bodies at the end of the private part,
20843         not the visible part.
20844         (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
20845         PolyORB support.
20846         (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
20847         generic wrapper to execute final processing after completing the
20848         expansion of the RPC receiver for an RACW.
20849
20850         * snames.h, snames.ads, snames.adb: Add definitions for wide_wide
20851         packages and attributes.
20852         (Preset_Names): Addition of the new reserved words of Ada 2005,
20853         that is interface, overriding and synchronized.
20854         (Get_Pragma_Id): Give support to the use of the new reserved word
20855         "interface" as a pragma name.
20856         (Is_Pragma_Name): Give support to the use of the new reserved word
20857         "interface" as a pragma name.
20858         (Preset_Names): Add stream_size string for the Stream_Size Ada2005
20859         attribute implementation.
20860
20861         * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
20862         checks to entities that are output parameters of Asm operations.
20863         Handle the Stream_Size attribute.
20864         Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
20865
20866         * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
20867
20868         * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
20869         for second parameter being 0.0.
20870         Add support for wide wide character type.
20871         (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
20872
20873         * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
20874         s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
20875         s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
20876         s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
20877         for wide wide character cases.
20878
20879         * cstand.adb: Create entities for Wide_Wide_Character and
20880         Wide_Wide_String.
20881
20882         * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
20883         accordance with AI-258.
20884         Add new declarations for 16/32 bit C character types (Part of AI285)
20885
20886         * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
20887         (Obsolescent_Warning): New field
20888         (Rep_Clause): New local subprogram used to share code. Returns the rep
20889         clause for which the name is given in parameter.
20890         (Has_Stream_Size_Clause): New routine.
20891         (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
20892         (Address_Clause): Implementation is now using Rep_Clause.
20893         (Alignment_Clause): Idem.
20894         (Size_Clause): Idem.
20895
20896         * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
20897         entity in non-Ada 2005 mode and generate warning.
20898
20899         * par-prag.adb: Add handling of one argument form for pragma Ada_05.
20900         (Prag): Code cleanup. Remove old gnat pragma "overriding"
20901
20902         * sem_prag.adb: Add handling of one argument form for pragma Ada_05
20903         (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
20904         on the named unit if the pragma is not in the current compilation unit,
20905         so that elaboration calls in the current unit can set up an elaboration
20906         dependency on the named unit, as needed.
20907         (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
20908         subprogram as well as for subprograms declared within a package.
20909         (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
20910         pragma overriding.
20911
20912         * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
20913         to z) to avoid some instances of duplication for Wide_Wide packages.
20914
20915         * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
20916         characters.
20917
20918         * scn.adb: Char_Literal_Value field is now a Uint
20919
20920         * scng.adb: Significant rewrite to handle new Ada 2005 features
20921         allowing wide and wide wide characters in program text, e.g. for
20922         identifiers, as described in AI-285.
20923         (Set_Reserved): New procedure, makes setting up keywords cleaner.
20924         (Initialize_Scanner): Register the new reserved words of Ada 2005.
20925         (Scan): Give support to the new reserved words.
20926
20927         * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
20928         warning notifying that interface, overriding, and synchronized are
20929         new reserved words.
20930         (P_Pragma): Allow the use of the new reserved word "interface" as
20931         a pragma name.
20932
20933         * gnatls.adb, gnatbind.adb,
20934         ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
20935         identifiers named "interface" to "SAL_Interface".
20936
20937         * bindgen.adb (Gen_Main_Ada): Add support for the new SEH
20938         (Structured Exception handling).
20939         (Gen_Main_C): Idem.
20940
20941         * bindgen.adb:
20942         (Gen_Main_Ada): Set the default exit code if specified.
20943         (Gen_Main_C): Likewise.
20944         Part of *DC20-006.
20945         (Gen_Output_File_C): Remove redundant output of gnat_exit_status.
20946         Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
20947
20948         * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
20949         new -Xnnn switch.
20950
20951         * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
20952         has a collision with the new Ada 2005 "interface" reserved word.
20953
20954         * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
20955         generate a warning notifying that interface, overriding, and
20956         synchronized are new reserved words.
20957
20958         * scans.ads (Token_Type): Addition of the tokens corresponding to the
20959         new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
20960         and Tok_Synchronized.
20961
20962         * sem_res.adb (Resolve_Actuals): Change error messages to refer to
20963         "dispatching" rather than "primitive" operations, since dispatching
20964         calls are now allowed to abstract formal subprograms (which are not
20965         primitive).
20966         Char_Literal_Value field is now a Uint
20967         (Resolve_Slice): If the prefix is an access to an unconstrained array,
20968         compute the actual subtype of the designated object to impose the proper
20969         index constraints.
20970         (Resolve_Selected_Component): Do not insert an access check if the
20971         prefix is an access type: such a node is expanded into an explicit
20972         dereference, on which the access check is performed anyway. Removes
20973         expensive duplicate checks.
20974         (Resolve_Call): Use new flag Is_Obsolescent and field
20975         Obsolescent_Warning so that pragma Obsolescent works on library
20976         subprograms.
20977         Add support for wide wide character type
20978         (Resolve_Allocator): Replace the error message on wrong null-exclusion
20979         value by a warning message.
20980         (Resolve_Type_Conversion): If the mixed-mode expression is interpreted
20981         as fixed-point, and one of the operands is non-static and universal, it
20982         can only be an illegal exponentiation operation, in which case there is
20983         no real value to retrieve.
20984
20985         * exp_strm.adb: Add support for wide wide character type
20986         (Build_Elementary_Input_Call): Compute the size of the stream element by
20987         querying the rep chain to find the Stream_Attribute attribute value.
20988         (Build_Elementary_Write_Call): Ditto.
20989
20990         * sem_aggr.adb: Char_Literal_Value field is now a Uint
20991         Add support for wide wide character type
20992         Replace the error messages on wrong null-exclusion value by warnings
20993         as described in Ada 2005.
20994         (Resolve_Extension_Aggregate): Document the fact that the error
20995         message on class-wide expressions in extensions aggregates.
20996
20997         * sem_case.adb: Add support for wide wide character type
20998
20999         * sem_ch13.adb: Add support for wide wide character type
21000         (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
21001
21002         * sem_ch3.adb: Add support for wide wide character type
21003         (Process_Subtype): If constraint is illegal for the type, set Ekind of
21004         now-useless Itype, to prevent cascaded errors on a compiler built
21005         without -gnatp.
21006
21007         * sem_ch8.adb: Add with and use of Sem_Disp.
21008         (Analyze_Subprogram_Renaming): Replace unclean uses of
21009         Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
21010         of Corresponding_Spec to Empty).
21011         (Attribute_Renaming): Replace use of Corresponding_Spec with
21012         Corresponding_ Formal_Spec and simplify condition.
21013         (Use_One_Package): Check that scope of homonym of identifier is defined,
21014         before checking whether it is a wrapper package.
21015         Add support for wide wide character type
21016
21017         * sem_eval.adb: Add support for wide wide character type.
21018         (Eval_Arithmetic_Op): Check for compile time known signed integer
21019         overflow in the non-static case.
21020         (Subtypes_Statically_Match): A formal scalar type and its base type do
21021         not statically match.
21022
21023         * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
21024         "not in" for test of N_Formal_Subprogram_Declaration (which is now a
21025         subtype).
21026         (Unit_Declaration_Node): Ditto.
21027         (Is_Variable_Prefix):  For the case of an indexed component whose prefix
21028         has a packed array type, the prefix has been rewritten into a type
21029         conversion. Determine variable-ness from the converted expression.
21030         Handle wide wide character cases.
21031
21032         * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
21033
21034         * stringt.ads, stringt.adb: Handle full UTF-32 range.
21035         Remove ["0A"] from comment, since it can look like a line terminator.
21036         Currently we don't permit this, but this is under discussion by the
21037         ARG, and it is easy enough to use a different example.
21038
21039         * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
21040         handling UTF-32 encoding for wide wide character.
21041         Implement new brackets coding ["hhhhhhhh"]
21042         Add UTF-8 encodings for full UTF-32 range
21043
21044         * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
21045
21046         * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
21047         bit range Add full UTF-32 support.
21048         (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
21049         notify that constraint error will be raised at run-time
21050         because a null value is assigned to a null-excluding object.
21051         Remove some obsolete declarations and make Char_Code
21052         unsigned.
21053
21054         * a-except.adb (Rcheck_30): New subprogram. Addition of the message
21055         corresponding to CE_Null_Not_Allowed, and adjust the output of all the
21056         Rcheck subprograms.
21057
21058         * checks.adb (Check_Null_Not_Allowed): Replace the error message on
21059         wrong null-exclusion value by a warning message.
21060         (Enable_Range_Check): Do range check if the prefix is an
21061         explicit dereference whose designated object is an unconstrained array.
21062         Current algorithm for removing duplicate checks is over-eager in this
21063         case.
21064
21065         * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
21066         null-exclusion value by a warning message
21067
21068         * atree.h, atree.ads, atree.adb: Remove Char_Code field support
21069         completely. Add support for Uint2 field
21070
21071         sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
21072         exp_prag.adb: Char_Literal_Value field is now a Uint.
21073
21074         * exp_util.adb (Insert_Actions): Replace
21075         N_Formal_Subprogram_Declaration by
21076         N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
21077         Char_Literal_Value field is now a Uint.
21078
21079         * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
21080         defined for subprogram renaming declarations. When set, the field
21081         indicates the defining entity of a corresponding formal subprogram
21082         when the renaming corresponds to a formal subprogram association in an
21083         instantiation.
21084         (Set_Corresponding_Formal_Spec): New procedure to return
21085         Corresponding_Formal_Spec field.
21086         Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
21087         (which is now a subtype).
21088         Char_Literal_Value field is now a Uint
21089
21090         * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
21091         pointer to the base of the dispatch table.
21092         Minor changes to comments.
21093         (Controlling_Type): New function for determining the tagged type
21094         associated with a tagged primitive subprogram.
21095         (Expand_Dispatching_Call): Add support for a controlling actual that is
21096         directly a value of type Ada.Tag rather than a tagged object.
21097
21098         * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
21099         describing the new layout.
21100         (Dispatch_Table): The expander computes the actual array size, allocates
21101         the Dispatch_Table record accordingly, and generates code that displaces
21102         the base of the record after the Typeinfo_Ptr component. The access to
21103         these components is done by means of local functions.
21104         (Offset_To_Top): New function.
21105         (Typeinfo_Ptr): New function.
21106         (Get_TSD): Modified to access the new position of the TSD.
21107         (Set_TSD): Modified to save the TSD in its new position.
21108
21109         * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
21110         case of formal abstract subprograms. Add check and message for -gnat05.
21111         Update comments.
21112
21113         * sem_ch12.adb: Add with and use for Sem_Disp.
21114         (Analyze_Associations): Minor change from "=" to "in" for use of
21115         N_Formal_Subtype_Declaration (which is now a subtype).
21116         (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
21117         N_Formal_Subtype_Declaration (which is now a subtype).
21118         (Analyze_Formal_Subprogram): Add handling for
21119         N_Formal_Abstract_Subprogram, marking the formal as abstract and
21120         dispatching, setting the controlling status of the formal parameters
21121         and result, and issuing an error if there is no controlling type for
21122         the formal subprogram.
21123         (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
21124         which is an unclean use of that field, we set the new field
21125         Corresponding_Formal_Spec to make the formal subprogram available to
21126         processing in Analyze_Subprogram_Declaration.
21127         (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
21128         Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
21129         Constrained, so that it is is does not statically match its anonymous
21130         base type.
21131
21132         * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
21133         abstract formal subprograms in error check for functions returning
21134         abstract types. Set scope of new designator for
21135         a parameterless subprogram, so that it is available when checking the
21136         body for nested subprograms, before full analysis of said body.
21137         (Analyze_Subprogram_Body): Warn on inlining bodies with nested
21138         subprogram only if inner one comes from source.
21139         (Analyze_Function_Call): If the call is given in object notation, the
21140         analysis of the name rewrites the node and analyzes it with the proper
21141         argument list. After analyzing the name, if the call has been rewritten
21142         and the result type is set, no further analysis is needed.
21143         (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
21144         mark in function specification, in a context where the formals are
21145         visible and hide outer homographs.
21146
21147         * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
21148         as the tagged type for the cases of abstract formal subprograms and
21149         renamings of those.  Clean up spec comments.
21150         (Check_Dispatching_Context): Add error message to indicate "abstract
21151         procedure", covering the case of a call to a formal abstract procedure
21152         that has statically tagged operands.
21153         (Check_Dispatching_Call): Check for the case of an actual given by
21154         a tag-indeterminate function call whose type is an ancestor of the
21155         containing call's associated tagged type. This situation can occur
21156         for inherited primitives with function defaults. In this case we
21157         use the tagged type's tag directly as the controlling argument for
21158         the calls.
21159         (Expand_Call): Name change on call to Expand_Dispatch_Call.
21160
21161         * sprint.adb (Sprint_Node_Actual): Split
21162         N_Formal_Subprogram_Declaration into two alternatives for the new
21163         cases N_Formal_Abstract_Subprogram_Declaration and
21164         N_Formal_Concrete_Subprogram_Declaration.
21165         Char_Literal_Value field is now a Uint.
21166
21167         * trans.c: Get rid of junk Uint2 reference.
21168         Char_Literal_Value field is now a Uint.
21169         (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
21170         (gigi): Correct third arg to gimplify_body.
21171
21172         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
21173         (TYPE_LANG_FLAG_0): Check for record or union.
21174
21175         * treepr.adb: Char_Literal_Value field is now a Uint
21176
21177         * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
21178         UI_From_CC.
21179
21180         * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
21181         Add full UTF-32 support
21182         Char_Code is now 32 bits
21183
21184         * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
21185         wide character UTF_32 line terminators.
21186         Initialize Main_Source_File to avoid error when no main
21187         source is loaded.
21188
21189         * errout.adb (Finalize): Do not check Num_SRef_Pragmas
21190         (Main_Source_File) when no main source has been loaded, to avoid
21191         potential crash.
21192
21193 2005-02-09  Robert Dewar  <dewar@adacore.com>
21194
21195         * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
21196         Fix name of Set routine
21197
21198         * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
21199         fixed packages.
21200
21201         * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
21202         a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
21203         fixed packages
21204
21205         * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
21206         forms of Get_Line subprograms for AI-301.
21207
21208         * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
21209         a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
21210         a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
21211         a-stwima.ads: Minor reformatting.
21212
21213 2005-02-09  Doug Rupp  <rupp@adacore.com>
21214             Thomas Quinot  <quinot@adacore.com>
21215
21216         * adaint.c, adaint.h
21217         [VMS] (to_ptr32): New function.
21218         (MAYBE_TO_PTR32): New macro.
21219         (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
21220         for pointer size.
21221         [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
21222         [VMS] (#define fork()): Remove since unneccessary.
21223         (__gnat_set_close_on_exec): New routine to support
21224         GNAT.OS_Lib.Set_Close_On_Exec.
21225
21226         * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
21227         the parent side as close-on-exec so that they are not inherited by the
21228         child.
21229
21230         * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
21231         set or clear the FD_CLOEXEC flag on a file descriptor.
21232
21233 2005-02-09  Eric Botcazou  <ebotcazou@adacore.com>
21234             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21235
21236         PR ada/19386
21237         * decl.c:
21238         (gnat_to_gnu_field): Do not necessarily invoke make_packable_type
21239         on the field if Pragma Component_Alignment (Storage_Unit).
21240         (gnat_to_gnu_entity, case object): Do not treat a renaming that has
21241         side-effects as if it were a constant; also make SAVE_EXPR to protect
21242         side-effects.
21243         (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
21244         UNION_TYPE.
21245         (make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
21246         (components_to_record): Test it.
21247         Fix improper usage of REFERENCE_CLASS_P.
21248
21249         * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
21250         RECORD_TYPE.
21251
21252         * utils2.c: Minor reformatting.
21253
21254         * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
21255         handle other cases like RECORD_TYPE.
21256
21257         * utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
21258
21259 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
21260
21261         * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
21262         component of an array of arrays in an assignment context, and the
21263         aggregate has component associations that require sliding on
21264         assignment, force reanalysis of the aggregate to generate a temporary
21265         before the assignment.
21266         (Must_Slide): Make global to the package, for use in Gen_Assign.
21267
21268 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
21269
21270         * exp_ch4.adb (Expand_Composite_Equality): If a component is an
21271         unchecked union with no inferable discriminants, return a
21272         Raise_Program_Error node, rather than inserting it at the point the
21273         type is frozen.
21274         (Expand_Record_Equality, Component_Equality): Handle properly the case
21275         where some subcomponent is an unchecked union whose generated equality
21276         code raises program error.
21277
21278 2005-02-09  Doug Rupp  <rupp@adacore.com>
21279
21280         * gnatbl.c: [VMS] (_POSIX_EXIT): Define.
21281         [VMS] (#define exit hack): Remove.
21282
21283 2005-02-09  Pascal Obry  <obry@adacore.com>
21284             Arnaud Charlet <charlet@adacore.com>
21285
21286         * init.c (__gnat_initialize): Add a new parameter eh which contains the
21287         address of the exception registration. The Win32 version of this
21288         routine calls __gnat_install_SEH_handler() to initialize the SEH
21289         (Structured Exception Handling) handler.
21290         (__gnat_error_handler) [Win32]: Removed. Not needed as we use
21291         SEH (Structured Exception Handling) now.
21292         (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
21293         (__gnat_initialize for ppc-vxworks): Adjust comments and the
21294         preprocessor condition protecting the call to the extra eh setup
21295         subprogram, which is only available for the ppc target.
21296         (__gnat_clear_exception_count): replaced reference to
21297         variable taskIdCurrent by call to taskIdSelf(), cleaner.
21298
21299         * seh_init.c: New file.
21300
21301         * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
21302         (GNATBIND_OBJS): Idem.
21303
21304         * misc.c (gnat_parse_file): Update call to __gnat_initialize. This
21305         routine takes a new parameter (a pointer to the exception registration
21306         for the SEH (Structured Exception Handling) support.
21307
21308         * raise.h: (__gnat_install_SEH_handler): New prototype.
21309         Update copyright notice.
21310
21311         * s-tassta.adb (Task_Wrapper): Declare the exception registration
21312         record and initialize it by calling __gnat_install_SEH_handler.
21313
21314 2005-02-09  Vincent Celier  <celier@adacore.com>
21315
21316         * make.adb (Gnatmake): Do not fail when the main project has no object
21317         directory.
21318
21319 2005-02-09  Doug Rupp  <rupp@adacore.com>
21320
21321         * Makefile.in [VMS] (LN,LN_S): Define as cp -p
21322         Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
21323         [VMS]: Add translations for g-enblsp.adb.
21324
21325         * s-asthan-vms.adb: Removed.
21326         * s-asthan-vms-alpha.adb: Added.
21327
21328 2005-02-09  Pascal Obry  <obry@adacore.com>
21329
21330         * Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
21331         (LIBGNAT_OBJS): Add seh_init.o.
21332
21333 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
21334
21335         PR ada/16592
21336         * Makefile.in: Link all gnat tools with -static-libgcc, since
21337         -shared-libgcc is now used by default on some systems (e.g. linux with
21338         recent binutils).
21339         Remove references to Makefile.prolog/generic, no longer used.
21340
21341 2005-02-09  Vincent Celier  <celier@adacore.com>
21342
21343         * prj-makr.adb (Process_Directory): Put file name in canonical case
21344         before matching against the patterns.
21345         If gnatname has been invoked as <prefix>-gnatname
21346         then invoke the compiler as <prefix>-gcc, not just "gcc".
21347
21348 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
21349
21350         * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
21351         with expansion disabled. The actual subtype is needed among other
21352         places when the selected component appears in the context of a loop
21353         bound, and denotes a packed array.
21354         (Operator_Check): Always use the first subtype in the
21355         error message, to avoid the appearance of internal base types.
21356         (Transform_Object_Operation): Copy each actual in full
21357         to the parameter associations of the constructed call, rather than
21358         using the shallow copy mechanism of New_Copy_List. This ensures that
21359         the chaining of named associations is done properly.
21360         (Complete_Object_Operation): Rewrite node, rather than
21361         replacing it, so that we can trace back to the original selected
21362         component.
21363
21364         * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
21365         and calls that use object notation, if the called function is not
21366         declared  in a withed unit, place the elaboration constraint on the
21367         unit in the context that makes the function accessible.
21368         (Check_Elab_Subtype_Declaration): Check whether a subtype declaration
21369         imposes an elaboration constraint between two packages.
21370
21371 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
21372
21373         * sem_ch7.adb (Uninstall_Declarations): Exchange full and private
21374         views of a private type after handling its private dependents, to
21375         maintain proper stack discipline between entry and exit from the
21376         package.
21377
21378 2005-02-09  Cyrille Comar  <comar@adacore.com>
21379
21380         * s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
21381         Minor reformatting.
21382
21383 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
21384
21385         * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
21386         fields for foreign threads.
21387
21388 2005-02-09  Doug Rupp  <rupp@adacore.com>
21389
21390         * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
21391         recursion warnings when compiled with -gnatdm.
21392
21393 2005-02-09  Robert Dewar  <dewar@adacore.com>
21394
21395         * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
21396         Slight fix to documentation of -gnaty with no parameters
21397
21398         * xr_tabls.ads: Add ??? comment for missing overall comment
21399
21400         * xsinfo.adb: Make default file name be sinfo.h, since this is what
21401         we now use by default.
21402
21403         * xsnames.adb: Adjust end of file test to look for five space followed
21404         by '#' instead of six spaces. The format of xsnames.adb was modified
21405         in the last update.
21406
21407         * a-numeri.ads: Add reference to AI-388 for greek letter pi
21408         identifier.
21409
21410         * clean.adb: Minor reformatting.
21411
21412         * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
21413         gnatname.adb: Minor reformatting
21414         Add 2005 to copyright output when utility is run
21415
21416         * csets.adb: Eliminate obsolete comment
21417
21418         * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
21419         Update comments.
21420
21421         * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
21422
21423 2005-02-09  Sergey Rybin  <rybin@adacore.com>
21424
21425         * gnat_ugn.texi: Add to the gnatpp section the paragraph describing
21426         the difference between compact and incompact layout and add the record
21427         representation clause to the example illustrating different layouts.
21428         Add the description of '-A5' gnatpp option ("align 'AT' keywords in
21429         component clauses").
21430
21431 2005-02-09  Florian Villoing  <villoing@adacore.com>
21432
21433         * gnat_ugn.texi: Fix typos.
21434         Use @command to display 'gcc', 'gnatbind', etc. insted of @code or
21435         @file.
21436         Make proper use of @ref, @xref and @pxref to avoid duplication of "see"
21437         in the generated documentation.
21438
21439 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
21440
21441         * gnat_ugn.texi: Remove all mentions of FSU threads, which are no
21442         longer supported.
21443         Update linker wrapper when linking with non GNU C++.
21444
21445 2005-02-09  Pascal Obry  <obry@adacore.com>
21446
21447         * gnat_ugn.texi:
21448         Document the procedure to debug the DllMain routine on Windows.
21449         Add note about -funwind-tables and mixed Ada and C/C++ programming in
21450         ZCX mode.
21451         Document new BIND qualifer /RETURN_CODES=VMS.
21452
21453 2005-02-09  Ben Brosgol  <brosgol@adacore.com>
21454
21455         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
21456         Edited gnatmetric chapter
21457
21458 2005-02-09  Robert Dewar  <dewar@adacore.com>
21459
21460         * gnat_rm.texi:
21461         Changes to document new wide wide character support
21462         For AI-285
21463         Update documentation on Normalize_Scalars and Initialize_Scalars
21464
21465 2005-02-09  Pascal Obry  <obry@adacore.com>
21466
21467         * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
21468
21469 2005-02-09  Jose Ruiz  <ruiz@adacore.com>
21470
21471         * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported
21472         from the VxWorks kernel) that is needed for getting the active
21473         priority of the different tasks.
21474
21475         * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure.
21476         Use a pragma Elaborate_Body in the spec file instead.
21477         Noticed by code reading.
21478
21479 2005-02-09  Thomas Quinot  <quinot@adacore.com>
21480
21481         * exp_util.ads: Minor correction in comment.
21482
21483 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
21484
21485         * s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
21486         since this procedure is now too complex to be worth inlining.
21487
21488 2005-02-09  Richard Henderson  <rth@redhat.com>
21489
21490         * utils.c (gnat_define_builtin): Remove.
21491         (gnat_install_builtins): Use build_common_builtin_nodes.
21492
21493 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
21494
21495         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
21496         a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
21497         a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
21498         a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
21499         a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
21500         a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
21501         a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
21502         a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
21503         a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
21504         a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
21505         a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
21506         a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
21507         a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
21508         a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
21509         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
21510         a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads,
21511         a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
21512         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads,
21513         a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
21514         a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
21515         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
21516         a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
21517         a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
21518         a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads,
21519         a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb,
21520         a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb,
21521         a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
21522         a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
21523         a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
21524         a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
21525         a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
21526         a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
21527         a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
21528         a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
21529         library.
21530
21531 2005-01-27  Laurent GUERBY <laurent@guerby.net>
21532
21533         * Makefile.in: Fix a-intnam.ads from previous commit,
21534         add 2005 to copyright.
21535         * a-intman-rtems.ads: Renamed to...
21536         * a-intnam-rtems.ads:
21537
21538 2005-01-27  Laurent GUERBY <laurent@guerby.net>
21539
21540         * Makefile.in: Rename GNAT RTEMS specific files.
21541         * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb,
21542         5rosinte.ads, 5rparame.adb: Replaced by files below.
21543         * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb,
21544         s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above.
21545
21546 2005-01-27  Joel Sherrill <joel.sherrill@oarcorp.com>
21547             Laurent GUERBY <laurent@guerby.net>
21548
21549         PR ada/19488
21550         * 5rosinte.ads: Add No_Key constant.
21551         * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style.
21552         * gsocket.h: Do not include <sys/socket.h> with RTEMS either.
21553
21554 2005-01-26  Laurent GUERBY <laurent@guerby.net>
21555
21556         PR ada/19414
21557         * i-cobol.adb (Valid_Numeric): Handle zero length case.
21558
21559 2005-01-20  Richard Henderson  <rth@redhat.com>
21560
21561         * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use
21562         a-intnam-linux.ads and system-linux-alpha.ads.
21563         * a-intnam-linux-alpha.ads: Remove file.
21564         * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New.
21565         * system-linux-alpha.ads: New file.
21566
21567 2005-01-18  Jakub Jelinek  <jakub@redhat.com>
21568
21569         PR ada/13470
21570         * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
21571         set to the new string.
21572
21573 2005-01-18  Toon Moene  <toon@moene.indiv.nluug.nl>
21574
21575         * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
21576         to True.
21577
21578 2005-01-18  Richard Henderson  <rth@redhat.com>
21579
21580         * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB,
21581         THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize
21582         for alpha-linux.
21583         * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files.
21584
21585 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
21586
21587         * system-darwin-ppc.ads (ZCX_By_Default): Change to True.
21588         (GCC_ZCX_Support): Likewise.
21589
21590 2005-01-11  Bastian Blank  <waldi@debian.org>
21591
21592         * system-linux-s390.ads: Define Preallocated_Stacks.
21593         * system-linux-s390x.ads: Likewise.
21594
21595 2005-01-04  Arnaud Charlet  <charlet@adacore.com>
21596
21597         * gnat_ugn.texi: Fix texi errors with null variables.
21598
21599 2005-01-03  Thomas Quinot  <quinot@adacore.com>
21600
21601         * gen-soccon.c: New utility program to generate g-soccon.ads
21602         automatically.
21603
21604         * socket.c, gsocket.h: Split inclusion of system header files into a
21605         gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c.
21606
21607         * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads,
21608         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
21609         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads,
21610         g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files
21611         should not be edited by hand anymore, but should be regenerated using
21612         gen-soccon.
21613
21614 2005-01-03  Robert Dewar  <dewar@adacore.com>
21615             Ed Schonberg  <schonberg@adacore.com>
21616             Vincent Celier  <celier@adacore.com>
21617
21618         * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings
21619         on/off, since this is an obsolescent feature, for which we now generate
21620         a warning.
21621
21622         * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if
21623         warning mode is set and obsolescent usage of this attribute occurs.
21624         (Resolve_Access, case 'Access): Note that GNAT uses the context type to
21625         disambiguate overloaded prefixes, in accordance with AI-235. GNAT code
21626         predates, and partly motivates, the adoption of the AI.
21627         Implement new Ada 2005 attribute Mod
21628
21629         * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
21630         attribute Mod.
21631
21632         * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
21633
21634         * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
21635         pragma restrictions.
21636         New entry for Ada 2005 attribute Mod.
21637
21638         * par-prag.adb:
21639         Add recognition of new pragma Restrictions No_Dependence
21640         Recognize restriction No_Obsolescent_Features at parse time
21641
21642         * bcheck.adb: Add circuitry for checking for consistency of
21643         No_Dependence restrictions.
21644
21645         * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
21646         restrictions.
21647
21648         * restrict.ads, restrict.adb: Add subprograms to deal with
21649         No_Dependence restrictions.
21650
21651         * rtsfind.adb: Check that implicit with's do not violate No_Dependence
21652         restrictions.
21653
21654         * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb,
21655         sem_attr.adb: Add check for new restriction No_Obsolescent_Features
21656
21657         * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new
21658         dummy parameter to scng instantiation.
21659         Needed for new restriction No_Obsolescent_Features
21660
21661         * scn.adb: (Obsolescent_Check): New procedure
21662         Needed for new restriction No_Obsolescent_Features
21663
21664         * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as
21665         specified by AI-285, needed for implementation of AI-388 (adding greek
21666         pi to Ada.Numerics).
21667         Add new generic formal to scng, needed for new restriction
21668         No_Obsolescent_Features.
21669
21670         * s-rident.ads: Add new restriction No_Obsolescent_Features.
21671
21672         * ali.ads, ali.adb: Adjustments for reading new No_Dependence
21673         restrictions lines.
21674         (Scan_ALI): When finding an unexpected character on an R line, raise
21675         exception Bad_R_Line, instead of calling Fatal_Error, so that, when
21676         Ignore_Errors is True, default restrictions are set and scanning of the
21677         ALI file continues with the next line. Also, when Bad_R_Line is raised
21678         and Ignore_Errors is True, skip to the end of le line.
21679
21680         * sem_ch10.adb: Check that explicit with's do not violate
21681         No_Dependence restrictions.
21682         (Install_Withed_Unit): Add code to implement AI-377 and diagnose
21683         illegal context clauses containing child units of instance.
21684
21685         * sem_prag.adb: Processing and checking for new No_Dependence
21686         restrictions.
21687         (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to
21688         analyze and check the External argument.
21689
21690         * a-numeri.ads: Add greek letter pi as alternative spelling of Pi
21691
21692 2005-01-03  Robert Dewar  <dewar@adacore.com>
21693
21694         * atree.adb: Add a fifth component to entities
21695         This allows us to add 32 flags and four new fields
21696
21697         * atree.ads: Add a fifth component to entities
21698         This allows us to add 32 flags and four new fields
21699
21700         * einfo.ads, einfo.adb: Document new fields and new flags now available
21701         Add routines for printing new fields
21702
21703         * treepr.adb: Call routines to print out additional fields if present
21704
21705 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
21706
21707         * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
21708         gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
21709
21710         * Makefile.in: Add support to build shared Ada libraries on solaris x86
21711         Remove gpr2make, replaced by gprmake.
21712         Remove references to gnatmem and libaddr2line.
21713         Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux.
21714         (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS.
21715         Add support for specialized version of Ada.Numerics.Aux for Darwin: use
21716         a-numaux-darwin.ads and a-numaux-darwin.adb
21717         Enable mlib-tgt-lynxos.adb on lynxos.
21718
21719         * Make-lang.in: Remove rules for gpr2make.
21720         When generating sdefault.adb, do not call Relocate_Path
21721         on S3 for function Target_Name, as it is not a path.
21722         Remove references to gnatmem and libaddr2line.
21723
21724         * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
21725         files.
21726
21727 2005-01-03  Samuel Tardieu  <tardieu@adacore.com>
21728
21729         * checks.adb (Apply_Alignment_Check): Generate a warning if an object
21730         address is incompatible with its base type alignment constraints when
21731         this can be decided statically.
21732
21733 2005-01-03  Olivier Hainque  <hainque@adacore.com>
21734
21735         * decl.c (compatible_signatures_p): New function. The intended purpose
21736         is to check if two function signatures for a call-site and a callee are
21737         compatible enough for the call to be valid. The underlying purpose is
21738         to check if a call to a mapped builtin is using the right interface.
21739         The current code actually does not check antyhing - this a placeholder
21740         for future refinements.
21741         (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle
21742         builtin calls for convention Intrinsic.
21743
21744         * gigi.h (builtin_decl_for): Declare (new function).
21745
21746         * utils.c (gnat_install_builtins): Install the target specific builtins.
21747         (builtin_decl_for): New function, provide a dummy body for now.
21748
21749 2005-01-03  Geert Bosch  <bosch@adacore.com>
21750
21751         * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used.
21752         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
21753         (Pred): Implement in terms of Succ.
21754
21755         * trans.c (convert_with_check): Reimplement conversion of float to
21756         integer.
21757
21758 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
21759             Vincent Celier  <celier@adacore.com>
21760
21761         * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
21762         bounds can be negative, and must be declared Int, not Nat.
21763
21764         * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
21765         array is checked after using the index in the array.
21766
21767         * makegpr.adb (Add_Switches): Check if there is a package for the
21768         processor. If there is no package, do not look for switches.
21769
21770 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
21771
21772         * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the
21773         generation of predefined stream operations (specs and bodies) should
21774         proceed. Under various restrictions these subprograms must not be
21775         generated.
21776
21777 2005-01-03  Thomas Quinot  <quinot@adacore.com>
21778
21779         * exp_dist.adb:
21780         Declare subprogram index in Build_RPC_Receiver_Body, to reduce the
21781         amount of PCS-specific code in RACW stubs generation.
21782         (Copy_Specification): Set Etype on copied formal parameter entities, as
21783         this information is needed for PolyORB stubs generation.
21784         (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused
21785         variable Dynamic_Async.
21786         (Build_Subprogram_Receiving_Stubs): Make PCS-specific
21787         (Build_RPC_Receiver_Specification): Make generic again, as recent
21788         changes have allowed RPC receivers to have the same profile for both
21789         variants of the PCS.
21790         Reorganise RPC receiver generation to reduce differences between the
21791         structure of GARLIC and PolyORB RPC receivers.
21792         (Add_Receiving_Stubs_To_Declarations): Make this subprogram
21793         PCS-specific.
21794         Simplify elaboration code for RCI packages.
21795
21796         * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver
21797         generation to reduce differences between the structure of GARLIC and
21798         PolyORB RPC receivers.
21799
21800         * s-stratt.adb: Fix typo in comment.
21801
21802 2005-01-03  Thomas Quinot  <quinot@adacore.com>
21803
21804         * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
21805         copied from Make_Init_Call).
21806
21807         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
21808         reads and assignments on a temporary variable declared with appropriate
21809         discriminants.
21810
21811 2005-01-03  Robert Dewar  <dewar@adacore.com>
21812
21813         * i-c.adb (To_C): Raise CE if string is null and Append_Null
21814
21815 2005-01-03  Robert Dewar  <dewar@adacore.com>
21816
21817         * i-cstrin.adb (Update): Do not append a null in form called with a
21818         String. This avoids unintended behavior.
21819
21820 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
21821
21822         PR ada/17527
21823         * init.c: Fix warnings on Free BSD section.
21824
21825 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
21826
21827         PR ada/16949
21828         * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
21829         xsinfo.adb).
21830
21831 2005-01-03  Vincent Celier  <celier@adacore.com>
21832
21833         * make.adb (Collect_Arguments_And_Compile): Do not attempt to build
21834         libraries when Unique_Compile is True (-u switch).
21835         (Gnatmake): ditto.
21836
21837 2005-01-03  Robert Dewar  <dewar@adacore.com>
21838
21839         * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing
21840         upper case letter or underscore after W, as allowed by spec.
21841
21842 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
21843
21844         * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up
21845         darwin port by using proper type definitions from header files.
21846         Use SIGTERM instead of SIGABRT for SIGADAABORT.
21847
21848 2005-01-03  Robert Dewar  <dewar@adacore.com>
21849
21850         * par.adb: Enhance error message handling for configuration file
21851         pragmas.
21852
21853 2005-01-03  Robert Dewar  <dewar@adacore.com>
21854
21855         * s-arit64.adb (Double_Divide): Put back changes that got accidentally
21856         removed during the previous update (test properly for case of dividing
21857         largest negative number by -1, which generates overflow).
21858
21859 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
21860             Sergey Rybin  <rybin@adacore.com>
21861
21862         * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node
21863         to use as the defining identifier for a formal package.
21864         (Remove_Parent): If the instance takes place within (an instance of)
21865         a sibling, preserve private declarations of common parent.
21866
21867 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
21868
21869         * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair,
21870         to determine whether one of the operands is a fixed-point type for
21871         which a user-defined multiplication or division operation might be
21872         defined.
21873
21874         * sem_res.adb (Valid_Conversion): The legality rules for conversions
21875         of access types are symmetric in Ada 2005: either designated type can
21876         be unconstrained.
21877
21878 2005-01-03  Vincent Celier  <celier@adacore.com>
21879
21880         * s-fileio.adb (Temp_File_Record): Change length of string component
21881         Name from L_tmpnam + 1 to max_path_len + 1.
21882
21883 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
21884
21885         * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of
21886         Self_Id.Deferral_Level = 0.
21887         (Do_Pending_Action): Move this function to the spec.
21888
21889         * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call
21890         Do_Pending_Action explicitely when needed, in case we're using
21891         No_Abort restrictions.
21892
21893         * s-tassta.adb (Create_Task): If Abort is not allowed, reset the
21894         deferral level since it will not get changed by the generated code.
21895         Keeping a default value of 1 would prevent some operations (e.g.
21896         select or delay) to proceed successfully.
21897
21898 2005-01-03  Ben Brosgol  <brosgol@adacore.com>
21899             Robert Dewar  <dewar@adacore.com>
21900             Cyrille Comar  <comar@adacore.com>
21901
21902         * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to
21903         porting guide chapter (vms version).
21904         Revised doc title (removed "for native platforms") and subtitle.
21905         Add discussion on warning flag for obsolescent features. First we
21906         note that it applies to obsolete GNAT features, which was previously
21907         omitted. Second we contrast the behavior with that of the new
21908         Ada 2005 AI-368 restriction No_Obsolescent_Features.
21909         Preliminary rewriting of GNAT & libraries chapter in order to take
21910         into account default project locations & new project manager
21911         capabilities.
21912
21913 2005-01-03  Robert Dewar  <dewar@adacore.com>
21914
21915         * cstand.adb (Create_Operators): Clean up format and documentation of
21916         unary and binary operator result tables. No change in code, just
21917         reformatting and addition of comments.
21918
21919         * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
21920         sem_ch2.adb: Minor reformatting
21921
21922         * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads,
21923         sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to
21924         comments for Tree_Read and Tree_Write.
21925
21926 2005-01-03  Pascal Obry  <obry@adacore.com>
21927
21928         * exp_attr.ads: Minor reformatting.
21929
21930 2005-01-03  Romain Berrendonner  <berrendo@adacore.com>
21931
21932         * comperr.adb (Compiler_Abort): Add specialized message for GAP
21933         versions.
21934
21935 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
21936
21937         * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
21938         whether the ancestor type is private, as may be the case with nested
21939         instantiations.
21940
21941 2004-12-30  Sohail Somani <sohail@sohailsomani.com>
21942
21943         PR ada/19128
21944         * trans.c (gnat_to_gnu): Fix typo: Use correct return variable.
21945
21946 2004-12-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
21947
21948         * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
21949         * utils2.c (build_unary_op): Likewise.
21950
21951 2004-12-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21952
21953         * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.
21954
21955 2004-12-19  Richard Henderson  <rth@redhat.com>
21956
21957         * trans.c (gigi): Update gimplify_body call.
21958
21959 2004-12-09  Nathan Sidwell  <nathan@codesourcery.com>
21960
21961         * decl.c (gnat_substitute_in_type): Remove SET_TYPE case.
21962
21963 2004-12-07  Ed Falis  <falis@adacore.com>
21964
21965         * s-intman-vxworks.adb (Notify_Exception): removed useless check for
21966         current task being suspended.
21967
21968         * init.c (__gnat_clear_exception): added to reset VxWorks exception
21969         count.
21970         (__gnat_map_signal): removed test for current task being suspended.
21971
21972 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
21973
21974         * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values
21975         from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit
21976         targets (such as AAMP).
21977
21978 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
21979
21980         * atree.adb (Visit_Itype): Create a new name for the generated itype,
21981         because the back-end may otherwise treat it as a redefinition of the
21982         old symbol.
21983
21984 2004-12-07  Eric Botcazou  <ebotcazou@adacore.com>
21985
21986         * back_end.adb (Scan_Back_End_Switches): Accept --param.
21987
21988         * lang-specs.h: Accept --param.
21989
21990 2004-12-07  Vincent Celier  <celier@adacore.com>
21991
21992         * make.adb (Check_Mains, Switches_Of): Adapt to name changes in
21993         package Prj (Current_Spec_Suffix => Ada_Spec_Suffix,
21994         Current_Body_Suffix => Ada_Body_Suffix).
21995         Take into account Externally_Built attribute.
21996
21997         * clean.adb (In_Extension_Chain): Always return False when one of the
21998         parameter is No_Project.
21999         (Clean_Project): Adapt to changes in package Prj (Lang_Ada =>
22000         Ada_Language_Index).
22001         (Gnatclean): Adapt to change in package Prj.Pars (no parameter
22002         Process_Languages for procedure Parse).
22003
22004         * gnatcmd.adb (Carg_Switches): New table.
22005         (GNATCmd): Put all switches following -cargs in the Carg_Switches table.
22006         Adapt to name changes in package Prj (Current_Spec_Suffix =>
22007         Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix).
22008
22009         * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type
22010         Header_Num and function Hash are now declared in package Prj,
22011         not Prj.Com.
22012
22013         * prj.adb (Suffix_Of): New function.
22014         (Set (Suffix)): New procedure.
22015         (Hash): One function moved from Prj.Com
22016         (Is_Present, Language_Processing_Data_Of): New functions
22017         (Set): Two new procedures
22018         (Add_Language_Name, Display_Language_Name): New procedures
22019
22020         * prj.ads: (Suffix_Of): New function
22021         (Set (Suffix)): New procedure
22022         Add several types and tables for multi-language support.
22023         (Header_Num): Type moved from Prj.Com
22024         (Hash): Two functions moved from Prj.Com
22025         (Is_Present, Language_Processing_Data_Of): New functions
22026         (Set): Two new procedures
22027         (Add_Language_Name, Display_Language_Name): New procedures
22028         (Naming): Component name changes:
22029         Current_Spec_Suffix => Ada_Spec_Suffix,
22030         Current_Body_Suffix => Ada_Body_Suffix. Add new components:
22031         Impl_Suffixes, Supp_Suffixes.
22032         (Project_Data): New components: Externally_Built, Supp_Languages,
22033         First_Language_Processing, Supp_Language_Processing, Default_Linker,
22034         Default_Linker_Path.
22035
22036         * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and
22037         new package Language_Processing with its attributes (Compiler_Driver,
22038         Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option,
22039         Binder_Driver, Default_Linker).
22040
22041         * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj.
22042         (Header_Num): Type moved to package Prj
22043
22044         * prj-env.adb: Adapt to name changes in package Prj
22045         (Current_Spec_Suffix => Ada_Spec_Suffix,
22046         Current_Body_Suffix => Ada_Body_Suffix).
22047
22048         * prj-ext.adb: Add the default project dir (<prefix>/log/gnat) by
22049         default to the project path, except the "-" is one of the directories
22050         in env var ADA_PROJECT_PATH.
22051         (Current_Project_Path): Global variable, replacing Project_Path
22052         that was in the body of Prj.Part.
22053         (Project_Path): New function
22054         (Set_Project_Path): New procedure
22055         Initialize Current_Project_Path during elaboration of the package
22056         Remove dependency on Prj.Com, no longer needed
22057
22058         * prj-ext.ads (Project_Path): New function
22059         (Set_Project_Path): New procedure
22060
22061         * prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when no
22062         suffix is defined for language <lang>.
22063         (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of
22064         accessing directly the components of Naming.
22065         (Look_For_Sources): Use Set (Suffix) to set the suffix of a language.
22066         Reorganise of this package.
22067         Break procedure Check in several procedures.
22068
22069         * prj-nmsc.ads: Replace all procedures (Ada_Check,
22070         Other_Languages_Check and Language_Independent_Check) with a single
22071         procedure Check.
22072
22073         * prj-pars.ads, prj-pars.adb (Parse): Remove parameter
22074         Process_Languages, no longer needed.
22075
22076         * prj-part.adb (Project_Path): Move to the body of Prj.Ext as
22077         Current_Project_Path.
22078         Remove elaboration code, moved to the body of Prj.Ext
22079         Use new function Prj.Ext.Project_Path instead of old variable
22080         Project_Path.
22081         (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path.
22082         When comparing with project paths on the stack, first put the resolved
22083         path in canonical case.
22084         (Parse_Single_Project): Set the path name of the project file in the
22085         tree to the normalized path.
22086
22087         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove
22088         parameter Process_Languages, no longer needed.
22089         (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and
22090         Other_Languages_Check.
22091
22092         * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path
22093         to store the resolved canonical path of the project file.
22094         Remove dependency to Prj.Com, no longer needed
22095
22096         * prj-util.adb: Adapt to name changes in package Prj
22097         (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix =>
22098         Ada_Body_Suffix).
22099
22100         * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver,
22101         Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker,
22102         Externally_Built, Include_Option, Language_Processing.
22103
22104         * makegpr.adb: Numerous changes due to changes in packages
22105         Prj and Prj.Nmsc.
22106
22107         * gnatls.adb: Add the default project dir (<prefix>/log/gnat) by
22108         default to the project path, except whe "-" is one of the directories
22109         in env var ADA_PROJECT_PATH.
22110         (Gnatls): In verbose mode, add the new section "Project Search Path:"
22111
22112 2004-12-07  Robert Dewar  <dewar@adacore.com>
22113
22114         * debug.adb: Document that -gnatdA automatically sets -gnatR3m
22115
22116         * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically
22117         set -gnatR3m mode.
22118
22119         * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA
22120         flag. No longer needed now that we handle this in gnat1drv.adb.
22121
22122         * repinfo.ads: Minor reformatting
22123
22124 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22125             Olivier Hainque  <hainque@adacore.com>
22126             Eric Botcazou  <ebotcazou@adacore.com>
22127
22128         * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
22129         TYPE_SIZE_UNIT of result type if SIZE is not specified.
22130         (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation
22131         of a bitfield, which we know is useless and causes trouble because of
22132         alignment implications.
22133
22134         * utils.c (create_var_decl): Set DECL_COMMON again on targets without
22135         BSS sections.
22136         (process_attributes): Clear DECL_COMMON again when a section attribute
22137         is present.
22138         (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or
22139         SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.
22140         (create_field_decl): Special case ADDRESSABLE negative to mean
22141         "no bitfield creation", to be used by make_aligning_type. Don't
22142         restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode
22143         fields claimed addressable still have to be bitfields. Use
22144         value_factor_p instead of a raw binop construction to check for the
22145         position's alignment.
22146
22147 2004-12-07  Geert Bosch  <bosch@adacore.com>
22148
22149         * eval_fat.adb: Revert previous change.
22150
22151 2004-12-07  Thomas Quinot  <quinot@adacore.com>
22152             Ed Schonberg  <schonberg@adacore.com>
22153
22154         * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component
22155         with an implicit dereference as its prefix, use
22156         Insert_Explicit_Dereference instead of merely rewriting the prefix into
22157         an explicit dereference. This ensures that a reference to the original
22158         prefix is generated, if appropriate.
22159
22160         * sem_util.adb (Insert_Explicit_Dereference): When an implicit
22161         dereference is rewritten to an explicit one, generate a reference to
22162         the entity denoted by its prefix using the original prefix node, so
22163         the dereference can be properly recorded as a read of the denoted
22164         access value, if appropriate.
22165
22166         * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from
22167         emitting 'assigned but never read' warning on a variable on the basis
22168         that it has an access type.
22169         (Check_References): Emit unreferenced warning when the scope is a
22170         subprogram body.
22171
22172 2004-12-07  Robert Dewar  <dewar@adacore.com>
22173             Ed Schonberg  <schonberg@adacore.com>
22174
22175         * exp_ch6.adb (Expand_Call): Add comment on handling of back end
22176         intrinsic
22177
22178         * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic,
22179         leaving call unchanged.
22180         This deals with the case where the pragma Import specified
22181         an external name, to be handled by the back end.
22182
22183         * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of
22184         subprogram which is Imported with convention Intrinsic if an
22185         External_Name argument is specified.
22186         (Process_Import_Or_Interface): Properly diagnose link name argument.
22187         (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion
22188         with Sem_Ch6.Cannot_Inline.
22189         (Process_Inline): Provide separate warning for inapplicable inline
22190         pragma.
22191         (Cannot_Inline): Reject subprograms that have an at_end handler, so that
22192         treatment is uniform on different targets.
22193
22194 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
22195
22196         * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of
22197         construct is rewritten, preserve end label to permit source navigation.
22198
22199 2004-12-07  Thomas Quinot  <quinot@adacore.com>
22200
22201         * exp_dist.adb (Specific_Build_General_Calling_Stubs,
22202         Specific_Build_Stub_Target): New subprograms.
22203         (Build_Subprogram_Calling_Stubs): Make this procedure independent from
22204         the PCS implementation used, using the above PCS-customized subprograms.
22205         Minor reformatting.
22206         (PolyORB_Support.Helpers): New subunit containing supporting subprograms
22207         for generation of DSA code targeted to the PolyORB PCS.
22208         (Add_Stub_Type): Rewrite to isolate the parts that are specific to one
22209         implementation of the partition communication subsystem in ancillary
22210         subprograms.
22211         (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,
22212         PolyORB_Support.Build_Stub_Type): New subrograms containing the
22213         PCS-specific part of Add_Stub_Type.
22214         (Insert_Partition_Check): Use runtime library function to perform
22215         E.4(19) check.
22216
22217         * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref
22218         (RE_Same_Partition): New entity, from s-parint.
22219
22220         * s-parint.ads, s-parint.adb (Same_Partition): New subprogram.
22221
22222 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
22223
22224         * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb:
22225         Output the copyright message on a separate line from the version
22226         message.
22227
22228 2004-12-07  Joel Brobecker  <brobecker@adacore.com>
22229
22230         * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a
22231         compile-time warning.
22232
22233 2004-12-07  Robert Dewar  <dewar@adacore.com>
22234
22235         * g-regpat.adb: (Match): Change a misuse of or to or else
22236
22237 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
22238
22239         * lib-xref.adb:
22240         (Generate_Reference): Handle properly a reference to an entry formal,
22241          when an accept statement has a pragma Unreferenced for it.
22242
22243         * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag
22244         and the Has_Pragma_Unreferenced flag for each formal before analyzing
22245         the body, to ensure that warnings are properly emitted for each accept
22246         statement of a given task entry.
22247
22248 2004-12-07  Vasiliy Fofanov  <fofanov@adacore.com>
22249
22250         * Makefile.in: Add support for foreign threads on VMS.
22251
22252 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22253
22254         * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P):
22255         Remove.
22256         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New.
22257
22258         * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls.
22259
22260         * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed
22261         exception.
22262         (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it.
22263
22264 2004-12-07  Robert Dewar  <dewar@adacore.com>
22265
22266         * nlists.adb (Prepend_Debug): Remove parameters and nest within
22267         Prepend.
22268         (Remove_Next_Debug): Same fix
22269
22270         * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do
22271         maintain back pointers now, though we did not used to, and comments
22272         were out of date).
22273         (Prepend): Remove pragma Inline.
22274         (Remove_Next): Same cleanup
22275
22276 2004-12-07  Thomas Quinot  <quinot@adacore.com>
22277
22278         * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram
22279         used to record an implicit dereference as a read operation on its
22280         prefix when operating under -gnatc. Necessary to avoid spurious
22281         'variable assigned but never read' warnings in that mode.
22282         (Process_Indexed_Component, Analyze_Selected_Component): When the prefix
22283         is a non-overloaded implicit dereference, call the above subprogram to
22284         ensure proper recording of references.
22285
22286 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
22287
22288         * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs
22289         to be resolved later as part of Analyze_Iteration_Scheme's call to
22290         Make_Index.
22291
22292 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
22293
22294         * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the
22295         prefix is not a scalar type, place error message on prefix, not on
22296         type entity.
22297
22298 2004-12-07  Bernard Banner  <banner@adacore.com>
22299
22300         * vxaddr2line.adb: Add support for x86 vxworks
22301
22302 2004-12-07  Thomas Quinot  <quinot@adacore.com>
22303
22304         * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify
22305         documentation of the behaviour of these functions when passed an IP
22306         address that has no record in the system hosts database and no reverse
22307         record in the DNS.
22308
22309         * cstand.adb, a-tags.ads: Fix typos in comment.
22310
22311 2004-12-07  Robert Dewar  <dewar@adacore.com>
22312
22313         * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb,
22314         exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb,
22315         sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb,
22316         s-poosiz.ads: Minor reformatting
22317
22318         * make.adb: Minor reformatting
22319         Add some ??? comments asking for more comments
22320
22321         * s-poosiz.adb: Minor reformatting
22322         Add comments on alignment requirement
22323
22324         * sinfo.ads: Remove obsolete comment and fix typo.
22325
22326 2004-12-07  Vincent Celier  <celier@adacore.com>
22327             Sergey Rybin  <rybin@adacore.com>
22328
22329         * gnat_ugn.texi: Update the section "The GNAT Driver and Project
22330         Files" with the new tool and package names.
22331         Reformatting to suppress most of the warnings for line too long
22332         Document the new section "Project Search Path:" in the output of
22333         gnatls -v.
22334         Add gnatmetric section
22335
22336 2004-12-07  Vincent Celier  <celier@adacore.com>
22337
22338         * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and
22339         -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps
22340         and -eit to -ept. Added qualifier
22341         /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec.
22342
22343 2004-11-27  Andreas Schwab  <schwab@suse.de>
22344
22345         * Make-lang.in (ada/trans.o): Depend on $(EXPR_H).
22346
22347 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
22348
22349         * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from
22350         internal implementation unit GNAT.Sockets.Thin,
22351         as their usage for sockets is non-portable (using the read and write
22352         functions from the system runtime library is fine on UNIX but won't
22353         work under Windows).
22354
22355         * mingw32.h: Update copyright notice.
22356
22357 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
22358
22359         * ada-tree.h: Minor reformatting of previous change to avoid lines
22360         longer than 79 characters.
22361
22362 2004-11-25  Olivier Hainque  <hainque@adacore.com>
22363
22364         * tb-gcc.c: GCC infrastructure based implementation of
22365         __gnat_backtrace.
22366
22367 2004-11-24  Steven Bosscher  <stevenb@suse.de>
22368
22369         * misc.c (gnat_post_options): Don't clear
22370         flag_inline_functions.
22371
22372 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
22373
22374         PR ada/17986
22375         * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the
22376         tree.
22377
22378 2004-11-21  Andreas Jaeger  <aj@suse.de>
22379
22380         * stylesw.adb: Change Style_Check_Subprogram_Order to
22381         Style_Check_Order_Subprograms.
22382
22383 2004-11-18  Arnaud Charlet  <charlet@adacore.com>
22384
22385         * adaint.h, adaint.c
22386         (__gnat_portable_spawn): Fix cast of spawnvp third parameter
22387         to avoid warnings.
22388         Add also a cast to kill another warning.
22389         (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags
22390         parameter with the priority class of the parent process instead of
22391         always using the NORMAL_PRIORITY_CLASS.
22392         (__gnat_dup): New function.
22393         (__gnat_dup2): New function.
22394         (__gnat_is_symbolic_link): Enable the effective body of this
22395         function when __APPLE__ is defined.
22396
22397         * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures.
22398         Update comments.
22399
22400 2004-11-18  Olivier Hainque  <hainque@adacore.com>
22401
22402         * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the
22403         address of which may be used to represent "others" and "all others"
22404         choices in exception tables, instead of the current harcoded
22405         (void *)0 and (void *)1.
22406         (Setup_Exception): Do nothing in the GNAT SJLJ case.
22407
22408         * gigi.h (others_decl, all_others_decl): New decls representing the
22409         new Others_Value and All_Others_Value objects.
22410         (struct attrib): Rename "arg" component as "args", since GCC expects a
22411         list of arguments in there.
22412
22413         * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the
22414         corresponding objects exported by a-exexpr, instead of hardcoded dummy
22415         addresses.
22416
22417         * trans.c (Exception_Handler_to_gnu_zcx): Use the address of
22418         others_decl and all_others_decl instead of hardcoded dummy addresses
22419         to represent "others" and "all others" choices, which is cleaner and
22420         more flexible with respect to the possible eh pointer encoding policies.
22421
22422         * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl.
22423         (process_attributes): Account for the naming change of the "args"
22424         attribute list entry component.
22425
22426         * decl.c (build_attr_list): Rename into prepend_attributes to allow
22427         cumulating attributes for different entities into a single list.
22428         (gnat_to_gnu_entity): Use prepend_attributes to build the list of
22429         attributes for the current entity and propagate first subtype
22430         attributes to other subtypes.
22431         <E_Procedure>: Attribute arguments are attr->args and not
22432         attr->arg any more.
22433         (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an
22434         argument provided, as this is what GCC expects. Use NULL_TREE instead
22435         of 0 for trees.
22436
22437 2004-11-18  Robert Dewar  <dewar@adacore.com>
22438
22439         * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb:
22440         Minor reformatting througout (including new function specs)
22441         Add ??? comments asking for clarification.
22442
22443 2004-11-18  Thomas Quinot  <quinot@adacore.com>
22444
22445         * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove
22446         incomplete duplicate implementation of this subprogram from butil.
22447
22448 2004-11-18  Thomas Quinot  <quinot@adacore.com>
22449
22450         * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This
22451         procedures factors the common processing for building an RPC receiver
22452         for an RCI package or an RACW type.
22453         Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of
22454         Build_Remote_Subprogram_Proxy_Type into proper alphabetical order.
22455         (Get_PCS_Name): New subprogram. Returns the name of the PCS currently
22456         in use.
22457         (Specific_Add_RACW_Features): New subprogram. PCS-specific part of
22458         Add_RACW_Features.
22459         (Specific_Add_RAST_Features): New subprogram. PCS-specific part of
22460         Add_RAST_Features.
22461         (Assign_Subprogram_Identifier): New subprogram. Provision for assigning
22462         distribution subprogram identifiers that are either subprogram numbers
22463         or strings.
22464         (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and
22465         string distribution identifiers assigned to a given subprogram.
22466         (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids.
22467         (Add_RAS_Dereference_TSS): Add comments.
22468         (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter
22469         is not referenced yet because it will be used by the PolyORB DSA
22470         implementation.
22471         (Insert_Partition_Check): Remove fossile code.
22472         (First_RCI_Subprogram_Id): Document this constant.
22473         (Add_RAS_Access_TSS): Correct the setting of the Etype of the
22474         RAS_Access TSS.
22475         (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are
22476         replaced with calls to Get_Library_Unit_Name_String. Previously there
22477         were several instances of the same code in different locations in the
22478         compiler; this checkin completes the replacement of all of these
22479         instances with calls to a common subprogram.
22480         Minor reformatting.
22481
22482         * sem_dist.adb: Remove comment noting that RPC receiver generation
22483         should be disabled for RACWs that implement RASs.
22484         (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String.
22485
22486         * sem_util.ads, sem_util.adb (Has_Stream): New function
22487         (Get_Library_Unit_Name_String): New subprogram to retrieve the fully
22488         qualified name of a library unit into the name buffer.
22489         (Note_Possible_Modification): Generate a reference only
22490         if the context comes from source.
22491
22492         * snames.ads (PCS_Names): New subtype corresponding to names of
22493         supported implementations of the Partition Communication Subsystem
22494         (PCS) (i.e. the runtime library support modules for the distributed
22495         systems annex).
22496
22497 2004-11-18  Robert Dewar  <dewar@adacore.com>
22498             Ed Schonberg  <schonberg@adacore.com>
22499
22500         * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used
22501         (Has_Rep_Pragma): New function
22502         (Has_Attribute_Definition_Clause): New function
22503         (Record_Rep_Pragma): Moved here from sem_ch13.adb
22504         (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma
22505
22506         * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb
22507
22508         * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure
22509         (Expand_Pragma_Psect_Object): New procedure
22510         These procedures contain the revised and cleaned up processing for
22511         these two pragmas. This processing was formerly in Sem_Prag, but
22512         is more appropriately moved here. The cleanup involves making sure
22513         that the pragmas are properly attached to the tree, and that no
22514         nodes are improperly shared.
22515
22516         * sem_prag.adb: Move expansion of Common_Object and Psect_Object
22517         pragmas to Exp_Prag, which is more appropriate.
22518         Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to
22519         check for duplicates Remove use of Is_Psected flag, no longer needed.
22520         Use new Make_String_Literal function with string.
22521
22522         * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes
22523         that are functions return universal values, that have to be converted
22524         to the context type.
22525         Use new Make_String_Literal function with string.
22526         (Get_Stream_Convert_Pragma): New function, replaces the use of
22527         Get_Rep_Pragma, which had to be kludged to work in this case.
22528
22529         * freeze.adb: Use new Has_Rep_Pragma function
22530
22531         * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal
22532         function with string.
22533         Use new Has_Rep_Pragma function.
22534
22535         * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes
22536         string argument.
22537
22538 2004-11-18  Robert Dewar  <dewar@adacore.com>
22539
22540         * errout.ads, errout.adb: (First_Sloc): New function
22541
22542         * par-ch5.adb (P_Condition): Check for redundant parens is now a style
22543         check (-gnatyx) instead of being included as a redundant construct
22544         warning.
22545
22546         * sem_ch6.adb: Change name Style_Check_Subprogram_Order to
22547         Style_Check_Order_Subprograms.
22548
22549         * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads,
22550         stylesw.adb: Add Style_Check_Xtra_Parens
22551
22552         * usage.adb: Add line for -gnatyx (check extra parens)
22553
22554         * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx
22555
22556 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
22557             Robert Dewar  <dewar@adacore.com>
22558
22559         * exp_ch4.adb (Expand_N_Selected_Component): If the component is the
22560         discriminant of a constrained subtype, analyze the copy of the
22561         corresponding constraint, because in some cases it may be only
22562         partially analyzed.
22563         Removes long-lived ??? comments.
22564
22565         * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that
22566         handled controlled or secondary-stack expressions within the
22567         iteration_scheme of a loop.
22568
22569         * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate
22570         bounds that may contain functions calls, to prevent memory leaks when
22571         the bound contains a call to a function that uses the secondary stack.
22572         (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to
22573         generate temporaries for loop bounds that might contain function calls
22574         that require secondary stack and/or finalization actions.
22575
22576         * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a
22577         selected component and the selector is overloadable (not just a
22578         function) treat as function call, Analyze_Call will disambiguate if
22579         necessary.
22580         (Analyze_Selected_Component): Do not generate an actual subtype for the
22581         selected component if expansion is disabled. The actual subtype is only
22582         needed for constraint checks.
22583         (Analyze_Allocator): If restriction No_Streams is set, then do
22584         not permit objects to be declared of a stream type, or of a
22585         composite type containing a stream.
22586
22587         * restrict.ads: Remove the a-stream entry from Unit_Array, since
22588         No_Streams no longer prohibits with'ing this package.
22589
22590         * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has
22591         discriminants, but the parent base has unknown discriminants, there is
22592         no discriminant constraint to inherit. Such a discrepancy can arise
22593         when the actual for a formal type with unknown discriminants is a
22594         similar private type whose full view has discriminants.
22595         (Analyze_Object_Declaration): If restriction No_Streams is set, then
22596         do not permit objects to be declared of a stream type, or of a
22597         composite type containing a stream.
22598
22599 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
22600
22601         * exp_dbug.ads: Update documentation to reflect simpler encoding for
22602         protected operations.
22603
22604         * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in
22605         generated name, it complicates decoding in gdb and hinders debugging
22606         of protected operations.
22607         (Build_Barrier_Function_Specification): Set the Needs_Debug_Info
22608         flag for the protected entry barrier function.
22609         (Build_Protected_Entry_Specification): Set the Needs_Debug_Info
22610         flag for the protected entry function.
22611
22612 2004-11-18  Nicolas Setton  <setton@adacore.com>
22613
22614         * expect.c: Define __unix__ when __APPLE__ is defined.
22615
22616         * Makefile.in: Inform the value of the variable GMEM_LIB in the
22617         Darwin-specific section.
22618
22619         * lang-specs.h: Change the placement of the %1 marker.
22620         Works around the fact that gcc adds -fPIC by default under Darwin.
22621
22622 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
22623
22624         * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original
22625         type of the object with the packed array type, set the Analyzed flag
22626         on the object if it is an entity or simple indexed component, to avoid
22627         spurious type errors.
22628
22629 2004-11-18  Gary Dismukes  <dismukes@adacore.com>
22630
22631         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
22632         gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a
22633         separate line from the version message.
22634
22635 2004-11-18  Ed Falis  <falis@adacore.com>
22636
22637         * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653
22638         vthreads.
22639         (init_float): Eliminate initialization of floating point status for
22640         AE653. The instructions have no effect for vThreads.
22641
22642 2004-11-18  Vincent Celier  <celier@adacore.com>
22643
22644         * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when
22645         gnatbind is invoked with -shared.
22646
22647 2004-11-18  Jose Ruiz  <ruiz@adacore.com>
22648
22649         * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error
22650         for Detect_Blocking which is redundant with the check done within the
22651         procedure Protected_Single_Entry_Call.
22652         (Lock_Read_Only_Entry): Remove the code for raising Program_Error for
22653         Detect_Blocking which is redundant with the check done within the
22654         procedure Protected_Single_Entry_Call.
22655
22656 2004-11-18  Vincent Celier  <celier@adacore.com>
22657
22658         * makegpr.adb (Compile): Put the compiling switches (in package
22659         Compiler and on the command line) immediately after "-c", instead of
22660         at the end of the command line invocation of the compiler, when
22661         compiling a non-Ada file.
22662         (Build_Global_Archive): When there is no need to rebuild the archive,
22663         set Global_Archive_Exists, so that the archive is passed to the linker
22664         if one is needed.
22665
22666 2004-11-18  Robert Dewar  <dewar@adacore.com>
22667             Sergey Rybin  <rybin@adacore.com>
22668
22669         * gnat_ugn.texi:
22670         Remove extra paren check from list of checks for redundant constructs
22671         Add documentation of new -gnatyx style check (check extra parens)
22672         Remove paragraph about gnatelim debug options.
22673
22674         * gnat_rm.texi: Document that Ada.Streams now forbids creating stream
22675         objects rather than forbidding dependencies on the package Ada.Streams.
22676
22677         * sinfo.ads: Add ??? note that we should document pragmas passed to
22678         back end.
22679
22680         * g-expect.ads: Fix a few typos in the comments.
22681
22682 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
22683
22684         * misc.c (gnat_handle_option): Use %< and %> for quoting in
22685         warning message.
22686
22687 2004-11-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
22688
22689         * a-numaux-x86.adb (Tan): Fix fdivp syntax.
22690
22691 2004-11-07  Andreas Schwab  <schwab@suse.de>
22692
22693         * Makefile.in (install-gnatlib): Remove spurious hyphen.
22694
22695 2004-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
22696
22697         PR ada/18228
22698         * Makefile.in (darwin): Set soext to .dylib.
22699
22700 2004-10-26  Vincent Celier  <celier@gnat.com>
22701             Thomas Quinot   <quinot@act-europe.fr>
22702
22703         * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
22704         (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
22705         there is no use of GNAT.Sockets.Constants.
22706         Remove remaining pragma Import for C_Write
22707         Remove C_Read and C_Write from internal implementation unit
22708         GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
22709         the read and write functions from the system runtime library is fine
22710         on UNIX but won't work under Windows).
22711
22712         * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
22713         (Check_Selector): Use C_Recv instead of C_Read.
22714         Selectors are the GNAT.Sockets abstraction to perform a select()
22715         call on a set of descriptors. To allow abortion of an ongoing
22716         select operation, some data is written to a dedicated socket that
22717         is always monitored.
22718         Under Windows, the write and read library functions cannot operate
22719         on sockets, so we need to use send and recv instead, which is portable
22720         across all supported platforms.
22721
22722         * g-socthi.ads: Remove C_Read and C_Write from internal implementation
22723         unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
22724         (using the read and write functions from the system runtime library is
22725         fine on UNIX but won't work under Windows).
22726
22727 2004-10-26  Nicolas Setton  <setton@act-europe.fr>
22728
22729         * mlib-tgt-darwin.adb: New file.
22730
22731         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
22732         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
22733         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
22734         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New
22735         subprogram body.
22736
22737         * Makefile.in: Add support for building shared libraries under Darwin.
22738         (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
22739         the low level EH init subprogram to be called from __gnat_initialize.
22740
22741         * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
22742         indicates which options to pass to the archive indexer.
22743
22744         * mlib-utl.adb: Add support for calling ranlib with additional
22745         options. This is needed for instance under Mac OS X.
22746         (Ranlib_Options): New global variable, used to store the potential
22747         options to pass to ranlib.
22748         (Ar): Use Ranlib_Options when spawning ranlib.
22749         (Initialize): Set the value of ranlib option.
22750
22751 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
22752
22753         * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K
22754         instead of 8K, to reflect the real potential needs for stack-checking
22755         in the ZCX case.
22756
22757 2004-10-26  Pascal Obry  <obry@gnat.com>
22758
22759         * s-parame-mingw.adb (Default_Stack_Size): Add some comments.
22760
22761         * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
22762         Windows only the initial thread stack size can be set so it is good to
22763         start we a low stack size.
22764         The OS will adjust the size as needed.
22765
22766 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
22767             Nicolas Setton  <setton@act-europe.fr>
22768
22769         * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
22770         "__unix__" instead of "unix".
22771         The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
22772         sections were just mistakenly ignored. The former is
22773         implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
22774         Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
22775         of hpux. This prevents an unwanted definition of the symbol
22776         convert_addresses in adaint.o.
22777
22778 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
22779
22780         * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for
22781         compatibility with type Unwind_Word on 16-bit targets such as AAMP.
22782
22783 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
22784
22785         * a-filico.ads, a-filico.adb: fix incorrect header.
22786
22787 2004-10-26  Javier Miranda  <miranda@gnat.com>
22788
22789         * a-ststio.ads: Fix typo in identifier
22790
22791 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
22792
22793         * sem_ch4.adb: Minor reformatting.
22794
22795 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
22796
22797         * checks.adb (Expr_Known_Valid): If floating-point validity checks are
22798         enabled, check the result of unary and binary operations when the
22799         expression is the right-hand side of an assignment.
22800
22801 2004-10-26  Vincent Celier  <celier@gnat.com>
22802
22803         * clean.adb (Delete): Do not output warnings when in quiet output and
22804         not in verbose mode.
22805         (Force_Deletions): New Boolean flag, defaulted to False
22806         (Delete): Only delete a file if it is writable, and when
22807         Force_Deletions is True.
22808         (Parse_Cmd_Line): New switch -f: set Force_Deletions to True
22809         (Usage): Line for new switch -f
22810         (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
22811         own.
22812
22813 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
22814
22815         * decl.c (gnat_to_gnu_field): Use the type of the inner object for a
22816         JM type only if its size matches that of the wrapper.  When a size is
22817         prescribed and the field is not aliased, remove the wrapper of a JM
22818         type only if the size is not greater than that of the packed array.
22819         (gnat_to_gnu_entity): Change the extension of packed array wrappers
22820         from LJM to JM.
22821
22822 2004-10-26  Geert Bosch  <bosch@gnat.com>
22823
22824         * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
22825         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
22826         (Pred): Implement in terms of Succ.
22827
22828 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
22829
22830         * exp_aggr.adb (Safe_Component): An aggregate component that is an
22831         unchecked conversion is safe for in-place use if the expression of the
22832         conversion is safe.
22833         (Expand_Array_Aggregate): An aggregate that initializes an allocator may
22834         be expandable in place even if the aggregate does not come from source.
22835         (Convert_Array_Aggr_In_Allocator): New procedure to initialize the
22836         designated object of an allocator in place, rather than building it
22837         first on the stack. The previous scheme forces a full copy of the array,
22838         and may be altogether unsusable if the size of the array is too large
22839         for stack allocation.
22840
22841 2004-10-26  Robert Dewar  <dewar@gnat.com>
22842
22843         * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
22844         compares if the component is atomic.
22845
22846         * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
22847         array assignment if the component type is atomic.
22848
22849 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
22850             Eric Botcazou  <ebotcazou@act-europe.fr>
22851
22852         * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
22853         is aliased and is a by_reference type, do not pass by copy.
22854         (Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
22855         detect whether the call is in the right side of an assignment or
22856         the expression of an object declaration.  Recurse on component
22857         association within aggregates.
22858         Call it in the condition that determines whether the temporary is
22859         necessary for correct stack-checking.
22860
22861 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
22862
22863         * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
22864         RACW_Type, used in the PolyORB version.
22865         Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
22866         version and the GARLIC version.
22867
22868         * snames.ads, snames.adb, s-parint.ads, s-parint.adb:
22869         Rename RCI_Info to RCI_Locator for better consistency between the
22870         GARLIC and PolyORB versions of the distributed systems annex.
22871         (DSA_Implementation_Name): This enumeration lists the possible
22872         implementations of the Partition Communication Subsystem for the
22873         Distributed Systems Annex (DSA). The three available implementations
22874         are the dummy stub implementation (No_DSA), and two versions based on
22875         two different distribution runtime libraries: GARLIC and PolyORB. Both
22876         the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
22877         technology.
22878         Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
22879         that organization.
22880
22881         * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
22882         between the GARLIC and PolyORB versions of the distributed systems
22883         annex.
22884         Remove RE_Unbounded_Reclaim_Pool since it is unused.
22885
22886 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
22887
22888         * gnat1drv.adb: Suppress calling the back end when
22889         Frontend_Layout_On_Target is true.
22890
22891 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
22892
22893         * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
22894         Set_Read_Only): New subprograms.
22895         These new routines allow the user to set or unset the Owner execute
22896         and Owner write permission flags on a file.
22897
22898         * makegpr.adb, mlib.adb, mlib-prj.adb: Use
22899         GNAT.OS_Lib.Set_Executable instead of rolling our own.
22900
22901 2004-10-26  Matthew Gingell  <gingell@gnat.com>
22902
22903         * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
22904
22905 2004-10-26  Pascal Obry  <obry@gnat.com>
22906
22907         * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
22908         memory before the faulting page we properly test the process read
22909         access for this address using appropriate Win32 routine.
22910         (HPUX sections): guard with "__hpux__" instead of "hpux".
22911
22912 2004-10-26  Robert Dewar  <dewar@gnat.com>
22913
22914         * lib-xref.adb (Generate_Reference): Don't complain about reference to
22915         entry parameter if pragma Unreferenced set, since we do not properly
22916         handle the case of multiple parameters.
22917
22918 2004-10-26  Vincent Celier  <celier@gnat.com>
22919
22920         * prj-env.adb: (Contains_ALI_Files): New Boolean function
22921         (Ada_Objects_Path.Add): For a library project, add to the object path
22922         the library directory only if there is no object directory or if the
22923         library directory contains ALI files.
22924         (Set_Ada_Paths.Add.Recursive_Add): Ditto
22925
22926 2004-10-26  Vincent Celier  <celier@gnat.com>
22927
22928         * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
22929         extension of library projects.
22930
22931         * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
22932         path defaults to ".:<prefix>/lib/gnat".
22933         (Parse): For an extending all project, allow direct import of a project
22934         that is virtually extended.
22935
22936         * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
22937         the specified name is directly imported, return its ID. Otherwise, if
22938         an extension of this project is imported, return the ID of the
22939         extension.
22940
22941 2004-10-26  Robert Dewar  <dewar@gnat.com>
22942
22943         * s-arit64.adb: (Le3): New function, used by Scaled_Divide
22944         (Sub3): New procedure, used by Scaled_Divide
22945         (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
22946         correct more than one instance of failure to propagate carries
22947         correctly.
22948         (Double_Divide): Handle overflow case of largest negative number
22949         divided by minus one.
22950
22951         * s-arit64.ads (Double_Divide): Document that overflow can occur in
22952         the case of a quotient value out of range.
22953         Fix comments.
22954
22955 2004-10-26  Robert Dewar  <dewar@gnat.com>
22956
22957         * s-bitops.adb (Bit_Eq): Remove redundant check.
22958
22959         * s-bitops.ads: Minor comment updates
22960         Change some occurrences of Address to System.Address
22961
22962         * s-carsi8.ads: Fix minor cut-and-paste error in comments
22963
22964 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
22965
22966         * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
22967         accessibility check to prefix that is a protected operation.
22968
22969 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
22970
22971         * sem_ch10.adb (Optional_Subunit): If file of expected subunit is
22972         empty, post message on stub.
22973
22974 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
22975             Javier Miranda  <miranda@gnat.com>
22976
22977         * sem_ch12.adb (In_Main_Context): Predicate to determine whether the
22978         current instance appears within a unit that is directly in the context
22979         of the main unit.
22980         Used to determine whether the body of the instance should be analyzed
22981         immediately after its spec, to make its subprogram bodies available
22982         for front-end inlining.
22983         (Analyze_Formal_Array_Type): Cleanup condition that checks that range
22984         constraint is not allowed on the component type (AARM 12.5.3(3))
22985
22986 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
22987
22988         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
22989         'Storage_Pool): enhance, document & limit detection of non-sharable
22990         internal pools.
22991
22992         * impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
22993
22994         * s-pooglo.ads: Add more documentation now that this pool is properly
22995         documented.
22996
22997 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
22998
22999         * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
23000         or protected type with discriminants, do not constrain the
23001         corresponding record type if the subtype declaration has no
23002         discriminant constraints. This can be the case in source code, or in
23003         the subtype declaration created to rename an actual type within an
23004         instantiation.
23005
23006 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
23007
23008         * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
23009         different kind of stub (possibly wrong name for file), do not check
23010         for conformance.
23011         (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
23012         includes call to some function that returns an unconstrained type, do
23013         not inline.
23014
23015 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
23016
23017         * sem_elab.adb (Check_Elab_Call): Do not check a call that does not
23018         appear in the code for the main unit. Dependencies among units in the
23019         context of the main unit are established when those other units are
23020         compiled. Otherwise spurious elaboration constraints can generate
23021         incorrect elaboration circularities.
23022
23023 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
23024             Ed Schonberg   <schonberg@gnat.com>
23025
23026         * sem_util.adb (Is_Aliased_View): Defend against the case where this
23027         subprogram is called with a parameter that is not an object name. This
23028         situation arises for some cases of illegal code, which is diagnosed
23029         later, and in this case it is wrong to call Is_Aliased, as that might
23030         cause a compiler crash.
23031         (Explain_Limited_Type): Refine previous fix to include
23032         inherited components of derived types, to provide complete information.
23033
23034         * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
23035         is the prival for a protected object.
23036         It is necessary to mark this entity as a variable, in addition to
23037         flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
23038         modified to avoid checking the Aliased flag on entities that are not
23039         objects. (Checking that flag for non-objects is erroneous and could
23040         lead to a compiler crash).
23041
23042 2004-10-26  Robert Dewar  <dewar@gnat.com>
23043
23044         * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if
23045         X_Frac = 0.5, then we know that the number X must be positive.
23046         (Succ): Remove the same redundant test, and also fix the primary test
23047         to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.
23048         Minor reformatting
23049         (Decompose): Add fuller comments to spec
23050
23051 2004-10-26  Pascal Obry  <obry@gnat.com>
23052
23053         * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
23054         validity (process must have read access). Set to 0 in all other cases.
23055         (STOP_FRAME): Now check for ptr validity to avoid a segmentation
23056         violation on Win32.
23057         (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
23058         segmentation violation.
23059
23060 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
23061
23062         * trans.c (call_to_gnu): For an (in-)out parameter passed by reference
23063         whose type is a constructed subtype of an aliased object with an
23064         unconstrained nominal subtype, convert the actual to the constructed
23065         subtype before taking its address.
23066
23067 2004-10-26  Vincent Celier  <celier@gnat.com>
23068
23069         * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
23070         (Is_Path_Name_Case_Sensitive): New function
23071
23072         * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
23073         (Base_Name, Simple_Name, Current_Directory, Compose,
23074         Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
23075         the result.
23076
23077 2004-10-26  Cyrille Comar    <comar@act-europe.fr>
23078             Vasiliy Fofanov  <fofanov@act-europe.fr>
23079             Vincent Celier   <celier@gnat.com>
23080
23081         * gnat_ugn.texi: Generalize "finding memory problems" section into a
23082         "memory management issues" section and document some of the useful
23083         memory pools provided as part of the GNAT library.
23084         Remove "virtual" from declaration of A::method2 in
23085         the simple example of Ada/C++ mixed system.
23086         Library Projects may be virtually extended: their virtual extensions
23087         are not Library Projects.
23088         Added section on extending project hierarchies.
23089
23090 2004-10-19  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
23091
23092         * adaint.c (__gnat_get_libraries_from_registry): Cast value
23093         to LPBYTE.
23094         (__gnat_portable_spawn): Remove const.
23095
23096         * mingw32.h (MAXPATHLEN): Check for previous definition.
23097
23098 2004-10-17  Matthias Klose  <doko@debian.org>
23099
23100         * gnatvsn.ads: Set gnat library version to 4.0.
23101
23102 2004-10-05  Vincent Celier  <celier@gnat.com>
23103
23104         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2
23105
23106 2004-10-04  Laurent GUERBY <laurent@guerby.net>
23107
23108         PR ada/15156
23109         * Makefile.in: Define and use RANLIB_FLAGS.
23110
23111 2004-10-04  Pascal Obry  <obry@gnat.com>
23112
23113         * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all
23114         other x86 platforms).
23115
23116 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
23117
23118         * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense
23119         in general and triggers stack alignment adjustment for thread entry
23120         points on targets where this is necessary.
23121
23122 2004-10-04  Bernard Banner  <banner@gnat.com>
23123
23124         PR ada/13897
23125         * Makefile.in: Add section for powerpc linux
23126         Add variant i-vxwork-x86.ads
23127
23128         * i-vxwork-x86.ads, system-linux-ppc.ads: New files.
23129
23130 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
23131
23132         * init.c (__gnat_initialize): Call an Ada subprogram to perform the
23133         table registration calls when need be. Ensures no reference to the crt
23134         ctors symbol are issued in the SJLJ case, which avoids possible
23135         undefined symbol errors in the case of modules to be statically linked
23136         with the kernel.
23137
23138 2004-10-04  Javier Miranda  <miranda@gnat.com>
23139
23140         * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand
23141         in-line the code corresponding to subprogram Analyze_Actuals. In
23142         addition, analyze the actuals only in case of subprogram call.
23143
23144 2004-10-04  Ed Falis  <falis@gnat.com>
23145
23146         * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
23147
23148 2004-10-04  Sergey Rybin  <rybin@act-europe.fr>
23149
23150         * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
23151         in the documentation.
23152
23153 2004-10-04  Robert Dewar  <dewar@gnat.com>
23154
23155         * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as
23156         IF and CASE.
23157         (Analyze_Block_Statement): Add circuitry to detect following dead code
23158         (Check_Unreachable_Code): Handle case of block exit
23159
23160 2004-10-04  Robert Dewar  <dewar@gnat.com>
23161
23162         * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call
23163         (XMatchD): Avoid warning for Logic_Error call
23164
23165 2004-10-04  Robert Dewar  <dewar@gnat.com>
23166
23167         * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not
23168         consider expressions buried within a procedure actual to be an actual.
23169         This caused some blowups with uses of packed slices within a procedure
23170         actual.
23171
23172 2004-10-04  Robert Dewar  <dewar@gnat.com>
23173
23174         * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no
23175         longer need to be initialized to zero.
23176         (Get_Simple_Init_Val): Modular packed arrays no longer need to be
23177         initialized to zero.
23178
23179         * checks.adb (Expr_Known_Valid): Packed arrays are now always
23180         considered valid, even if the representation is modular. That's correct
23181         now that we no longer initialize packed modular arrays to zero.
23182
23183         * exp_dbug.ads: Clarify documentation on handling of PAD and JM
23184         suffixes. These are now documented as the only cases in which the
23185         debugger ignores outer records.
23186         Previously, the spec allowed arbitrary suffixes for this purpose.
23187         Change name of LJM to JM for packed array pad records
23188         Create separate section on packed array handling, and add a whole new
23189         set of comments to this section describing the situation with packed
23190         modular types and justification requirements depending on endianness.
23191
23192 2004-10-04  Robert Dewar  <dewar@gnat.com>
23193
23194         * a-except.adb: Add a comment for last change
23195
23196         * einfo.ads: Minor spelling correction in comment
23197
23198         * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting
23199
23200         * sem_ch11.adb: Fix a case of using | instead of \ for continuation
23201         messages.
23202
23203         * sem_util.ads: Minor comment update
23204
23205 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
23206
23207         * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as
23208         Inline_Always when in Configurable_Run_Time mode.
23209
23210         * sem_prag.adb (Process_Convention): If entity is an inherited
23211         subprogram, apply convention to parent subprogram if in same scope.
23212         (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always
23213         when in Configurable_Run_Time mode.
23214
23215 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
23216
23217         * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of
23218         class_wide type after component list has been inherited.
23219
23220 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
23221
23222         * sem_ch12.adb (Check_Generic_Actuals): New predicate
23223         Denotes_Previous_Actual, to handle properly the case of a private
23224         actual that is also the component type of a subsequent array actual.
23225         The visibility status of the first actual is not affected when the
23226         second is installed.
23227         (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to
23228         make fully recursive the treatment of formals of packages declared
23229         with a box.
23230         (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo
23231         the above on exit from an instantiation.
23232         (Denotes_Formal_Package): When called from Restore_Private_Views, ignore
23233         current instantiation which is now complete.
23234         (Analyze_Package_Instantiation): No instantiated body is needed if the
23235         main unit is generic. Efficient, and avoid anomalies when a instance
23236         appears in a package accessed through rtsfind.
23237
23238 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
23239
23240         * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,
23241         do not generate a declaration for a temporary if the call is part of a
23242         library-level instantiation.
23243
23244 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
23245
23246         * sem_util.adb (Explain_Limited_Type): Ignore internal components when
23247         searching for a limited component to flag.
23248
23249         * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to
23250         expansion of Input, to account for the fact that the implicit call
23251         generated by the attribute reference must freeze the user-defined
23252         stream subprogram. This is only relevant to 'Input, because it can
23253         appear in an object declaration, prior to the body of the subprogram.
23254
23255         * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that
23256         expansion can proceed and further errors uncovered.
23257         (Minor clean up): Fix cases of using | instead of \ for continuation
23258         messages.
23259
23260 2004-10-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23261
23262         * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.
23263
23264         * trans.c (assoc_to_constructor): Fix unused var warning if no checking.
23265         (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.
23266         Use gcc_assert and gcc_unreachable.
23267
23268         * decl.c (gnat_to_gnu_entity, case object): Check and process a
23269         specified alignment before validating size.
23270         (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create a
23271         stripped-down declaration for the type of the inner field when making
23272         a JM type.
23273
23274         * utils.c (finish_record_type): Do not compute the size in units
23275         incrementally. Instead compute it once for the rep clause case.
23276         Use gcc_assert and gcc_unreachable.
23277
23278 2004-10-04  Vincent Celier  <celier@gnat.com>
23279
23280         * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character
23281         in file name.
23282         (Is_Valid_Path_Name): Take '/' as a directory separator.
23283
23284 2004-10-04  Vincent Celier  <celier@gnat.com>
23285
23286         * prj-part.adb (Parse_Single_Project): Call Is_Extending_All
23287         (Extended_Project) only if Extended_Project is defined, to avoid
23288         assertion error.
23289         (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
23290         resolved path.
23291         (Parse_Single_Project): Ditto.
23292
23293         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
23294         Add_To_Project_Path for virtual projects.
23295
23296 2004-10-04  Vincent Celier  <celier@gnat.com>
23297
23298         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
23299         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
23300         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
23301         mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New
23302         parameter Options_2.
23303
23304         * mlib-prj.ads, mlib-prj.adb (Build_Library): Call
23305         Build_Dynamic_Library with an empty Options_2.
23306
23307         * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no
23308         default anymore.
23309
23310         * makegpr.adb (Get_Imported_Directories.add): Remove trailing
23311         directory separator, if any.
23312         (Gprmake): Do not allow mains on the command line for library projects.
23313         Do not attempt to link when the project is a library project.
23314         (Library_Opts): New table to store Library_Options.
23315         (Build_Library): If Library_Options is specified, pass these options
23316         when building a shared library.
23317
23318 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
23319
23320         * s-tposen.adb (Service_Entry): The object must be always unlocked at
23321         the end of this procedure now that the unlock operation was inserted
23322         by the expander.
23323
23324 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
23325
23326         * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
23327         corresponding to the Preallocated_Stacks flags in System.
23328         (Get_Target_Parameters): Including the processing for
23329         Preallocated_Stacks.
23330
23331         * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
23332         system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,
23333         system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
23334         system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,
23335         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,
23336         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
23337         system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
23338         system-vxworks-mips.ads, system-os2.ads, system-interix.ads,
23339         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
23340         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
23341         system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
23342         used to signal whether the compiler creates the required stacks and
23343         descriptors for the different tasks (when True) or it is done by the
23344         underlying operating system at run time (when False).
23345         It is initially set to False in all targets.
23346
23347         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
23348         if it is supported by the target.
23349         (Make_Task_Create_Call): Pass the stack address if it has been
23350         previously created. Otherwise pass a Null_Address.
23351
23352         * snames.adb: Add _stack.
23353
23354         * snames.ads: Add Name_uStack. Required to allow the expander to
23355         statically allocated task stacks.
23356
23357         * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
23358         Stack_Address argument.
23359         Check that its value is equal to Null_Address because this target does
23360         not support the static stack allocation.
23361
23362 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
23363
23364         * usage.adb: Change "pragma inline" to "pragma Inline" in information
23365         and error messages
23366
23367 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
23368
23369         * exp_dist.adb: Split declaration of asynchronous flag out of
23370         Add_RACW_Read_Attribute.
23371         Minor reformatting for better alignment with PolyORB version.
23372         Store the entity for the asynchronous flag of an RACW, rather than the
23373         expression, in the asynchronous flags table. This will allow this flag
23374         to be used in other subprograms beside Add_RACW_Read_Attribute.
23375
23376 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
23377
23378         * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,
23379         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
23380         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb,
23381         g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads,
23382         g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads:  Add new
23383         sockets constant MSG_NOSIGNAL (Linux-specific).
23384         Add new sockets constant MSG_Forced_Flags, list of flags to be set on
23385         all Send operations.
23386         For Linux, set MSG_NOSIGNAL on all send operations to prevent them
23387         from trigerring SIGPIPE.
23388         Rename components to avoid clash with Ada 2005 possible reserved
23389         word 'interface'.
23390         (Check_Selector): When the select system call returns with an error
23391         condition, propagate Socket_Error to the caller.
23392
23393 2004-10-01  Jan Hubicka  <jh@suse.cz>
23394
23395         * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.
23396
23397 2004-09-23  Robert Dewar  <dewar@gnat.com>
23398
23399         PR ada/17540
23400         * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
23401         instead do this at freeze time (we won't do it if there is an address
23402         clause).
23403         Change "pragma inline" to "pragma Inline" in information and error
23404         messages.
23405         Minor reformatting.
23406
23407         * freeze.adb (Check_Address_Clause): Remove previous change, not the
23408         right way of doing things after all.
23409         (Freeze_Entity): For object, set Is_Public for imported entities
23410         unless there is an address clause present.
23411
23412 2004-09-21  Olivier Hainque  <hainque@act-europe.fr>
23413
23414         * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
23415         dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
23416         ensures proper handling of types with rep clauses, which might have
23417         their TYPE_SIZE set already.
23418
23419 2004-09-21  Robert Dewar  <dewar@gnat.com>
23420
23421         * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
23422         packed array types in both little- and big-endian cases. This change
23423         ensures that we no longer count on the unused bits being initialized
23424         for such types (and in particular ensures that equality testing will
23425         only read the relevant bits).
23426         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
23427         These changes mean that we no longer need to initialize small packed
23428         arrays.
23429         (gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
23430         optimization to an LJM field as to its parent field.
23431
23432         * ada-tree.h, trans.c, utils.c, utils2.c:
23433         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
23434
23435 2004-09-20  Jan Hubicka  <jh@suse.cz>
23436
23437         * utils.c (gnat_finalize): Remove.
23438         (end_subprog_body): Directly call cgraph_finalize_function;
23439         do not lower the nested functions.
23440
23441 2004-09-20  Robert Dewar  <dewar@gnat.com>
23442
23443         PR ada/17540
23444         * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
23445         if an address clause is present, since that means that the Import
23446         should be ignored.
23447
23448 2004-09-20  Arnaud Charlet  <charlet@act-europe.fr>
23449
23450         * 5tsystem.ads: Removed, no longer used.
23451
23452 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
23453             Zack Weinberg  <zack@codesourcery.com>
23454
23455         * ada-tree.def: Use tree_code_class enumeration constants
23456         instead of code letters.
23457         * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
23458         Update for new tree-class enumeration constants.
23459
23460 2004-09-17  Vincent Celier  <celier@gnat.com>
23461
23462         * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
23463         capabilities of the general project manager.
23464
23465 2004-09-09  Vincent Celier  <celier@gnat.com>
23466
23467         * a-direct.ads: Add pragma Ada_05
23468         (Directory_Entry_Type): Give default value to component Kind to avoid
23469         not initialized warnings.
23470
23471         * a-direct.adb (Current_Directory): Remove directory separator at the
23472         end.
23473         (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
23474         an existing directory.
23475         (Fetch_Next_Entry): Give default value to variable Kind to avoid warning
23476         (Size (String)): Function C_Size returns Long_Integer, not File_Size.
23477         Convert the result to File_Size.
23478
23479         * prj.ads: (Project_Error): New exception
23480
23481         * prj-attr.adb: Except in procedure Initialize, Fail comes from
23482         Prj.Com, not from Osint.
23483         (Attrs, Package_Attributes): Tables moved to private part of spec
23484         (Add_Attribute, Add_Unknown_Package): Moved to new child package
23485         Prj.Attr.PM.
23486         (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
23487         Prj.Project_Error after call to Fail.
23488         (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
23489         Fail. Check that package name is not already in use.
23490
23491         * prj-attr.ads: Comment updates to indicate that all subprograms may be
23492         used by tools, not only by the project manager, and to indicate that
23493         exception Prj.Prj_Error may be raised in case of problem.
23494         (Add_Unknown_Package, Add_Attribute): Moved to new child package
23495         Prj.Attr.PM.
23496         (Attrs, Package_Attributes): Table instantiations moved from the body to
23497         the private part to be accessible from Prj.Attr.PM body.
23498
23499         * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
23500         from new package Prj.Attr.PM.
23501         (Parse_Attribute_Declaration): Call Add_Attribute from new package
23502         Prj.Attr.PM.
23503
23504         * Makefile.in: Add prj-attr-pm.o to gnatmake object list
23505
23506         * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
23507         instead of Elaboration_Checks).
23508
23509         * a-calend.adb: Minor reformatting
23510
23511 2004-09-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23512
23513         * gigi.h (maybe_pad_type): New declaration.
23514         (create_subprog_type): New arg RETURNS_BY_TARGET_PTR.
23515
23516         * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.
23517
23518         * cuintp.c: Convert to use buildN.
23519
23520         * decl.c (maybe_pad_type): No longer static.
23521         (gnat_to_gnu_entity, case E_Function): Handle case of returning by
23522         target pointer.
23523         Convert to use buildN.
23524
23525         * trans.c (call_to_gnu): Add arg GNU_TARGET; support
23526         TYPE_RETURNS_BY_TARGET_PTR_P.  All callers changed.
23527         (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
23528         RHS.
23529         (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
23530         (gnat_gimplify_expr, case ADDR_EXPR): New case.
23531         Convert to use buildN.
23532
23533         * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
23534         TREE_READONLY for const.
23535         Convert to use buildN.
23536
23537         * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
23538         (create_var_decl): Refine when TREE_STATIC is set.
23539         Convert to use buildN.
23540
23541 2004-09-09  Gary Dismukes  <dismukes@gnat.com>
23542
23543         * gnat_ugn.texi: Delete text relating to checking of ali and object
23544         consistency.
23545
23546         * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
23547         routines.
23548
23549 2004-09-09  Jose Ruiz  <ruiz@act-europe.fr>
23550
23551         * gnat_ugn.texi: Add Detect_Blocking to the list of configuration
23552         pragmas recognized by GNAT.
23553
23554         * gnat_rm.texi: Document pragma Detect_Blocking.
23555
23556         * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
23557         raise Program_Error if called from a protected operation.
23558
23559         * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
23560         the protected action nesting level.
23561         (Lock_Read_Only): When pragma Detect_Blocking is active increase the
23562         protected action nesting level.
23563         (Unlock): When pragma Detect_Blocking is active decrease the protected
23564         action nesting level.
23565
23566         * s-taskin.adb (Initialize_ATCB): Initialize to 0 the
23567         Protected_Action_Nesting.
23568
23569         * s-taskin.ads: Adding the field Protected_Action_Nesting to the
23570         Common_ATCB record. It contains the dynamic level of protected action
23571         nesting for each task. It is needed for checking whether potentially
23572         blocking operations are called from protected operations.
23573         (Detect_Blocking): Adding a Boolean constant reflecting whether pragma
23574         Detect_Blocking is active or not in the partition.
23575
23576         * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
23577         raise Program_Error if called from a protected operation.
23578         (Task_Entry_Call): When pragma Detect_Blocking is active, raise
23579         Program_Error if called from a protected operation.
23580         (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
23581         Program_Error if called from a protected operation.
23582
23583         * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
23584         raise Program_Error if called from a protected operation.
23585
23586         * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
23587         raise Program_Error if called from a protected operation, and increase
23588         the protected action nesting level.
23589         (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
23590         Program_Error if called from a protected operation, and increase the
23591         protected action nesting level.
23592         (Unlock_Entries): When pragma Detect_Blocking is active decrease the
23593         protected action nesting level.
23594
23595         * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
23596         raise Program_Error if called from a protected operation, and increase
23597         the protected action nesting level.
23598         (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
23599         Program_Error if called from a protected operation, and increase the
23600         protected action nesting level.
23601         (Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
23602         raise Program_Error if called from a protected operation.
23603         (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
23604         active, raise Program_Error if called from a protected operation.
23605         (Unlock_Entry): When pragma Detect_Blocking is active decrease the
23606         protected action nesting level.
23607
23608         * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
23609         insertion of the statement raising Program_Error. The run time
23610         contains the required machinery for handling that.
23611
23612         * sem_util.ads: Change comment associated to procedure
23613         Check_Potentially_Blocking_Operation.
23614         This procedure does not insert a call for raising the exception because
23615         that is currently done by the run time.
23616
23617         * raise.h (__gnat_set_globals): Pass the detect_blocking parameter.
23618
23619         * init.c: Add the global variable __gl_detect_blocking that indicates
23620         whether pragma Detect_Blocking is active (1) or not (0). Needed for
23621         making the pragma available at run time.
23622         (__gnat_set_globals): Pass and update the detect_blocking parameter.
23623
23624         * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
23625         pragma Detect_Blocking is active.
23626
23627         * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.
23628
23629         * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
23630         DB is found in the ali file. Any unit compiled with pragma
23631         Detect_Blocking active forces its effect in the whole partition.
23632
23633         * a-retide.adb (Delay_Until): Raise Program_Error if pragma
23634         Detect_Blocking is active and delay is called from a protected
23635         operation.
23636
23637         * bindgen.adb (Gen_Adainit_Ada): When generating the call to
23638         __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
23639         Detect_Blocking is active (0 otherwise).
23640         (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
23641         as Detect_Blocking parameter if pragma Detect_Blocking is active (0
23642         otherwise).
23643
23644 2004-09-09  Thomas Quinot  <quinot@act-europe.fr>
23645
23646         * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
23647         GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
23648         package.
23649
23650         * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
23651         (Register_Receiving_Stub): Add Subp_Info formal parameter.
23652         Update API in placeholder implemetation of s-parint to reflect changes
23653         in distribution runtime library.
23654
23655         * sem_ch3.adb (Expand_Derived_Record): Rename to
23656         Expand_Record_Extension.
23657
23658         * sem_disp.adb (Check_Controlling_Formals): Improve error message for
23659         primitive operations of potentially distributed object types that have
23660         non-controlling anonymous access formals.
23661
23662         * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
23663         subprogram.
23664         New implementation of expansion for remote access-to-subprogram types,
23665         based on the RACW infrastructure.
23666         This version of sem_dist is compatible with PolyORB/DSA as well as
23667         GLADE.
23668
23669         * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
23670         Asynchrronous that applies to a remote access-to-subprogram type, mark
23671         the underlying RACW type as asynchronous.
23672
23673         * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
23674          __gnat_using_gnu_linker to 1.
23675
23676         * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
23677         g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
23678         GNAT.Perfect_Hash_Generators, and remove the empty
23679         GNAT.Perfect_Hash package.
23680
23681         * atree.adb: Minor reformatting
23682
23683         * exp_ch3.adb (Expand_Derived_Record): Rename to
23684         Expand_Record_Extension.
23685         (Build_Record_Init_Proc.Build_Assignment): The default expression in
23686         a component declaration must remain attached at that point in the
23687         tree so New_Copy_Tree copies it if the enclosing record type is derived.
23688         It is therefore necessary to take a copy of the expression when building
23689         the corresponding assignment statement in the init proc.
23690         As a side effect, in the case of a derived record type, we now see the
23691         original expression, without any rewriting that could have occurred
23692         during expansion of the ancestor type's init proc, and we do not need
23693         to go back to Original_Node.
23694
23695         * exp_ch3.ads (Expand_Derived_Record): Rename to
23696         Expand_Record_Extension.
23697
23698         * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
23699         Returns the RACW type used to implement a remote access-to-subprogram
23700         type.
23701         (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
23702         New subprograms. Used to create a proxy tagged object for a remote
23703         subprogram. The proxy object is used as the designated object
23704         for RAS values on the same partition (unless All_Calls_Remote applies).
23705         (Build_Get_Unique_RP_Call): New subprogram. Build a call to
23706         System.Partition_Interface.Get_Unique_Remote_Pointer.
23707         (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
23708         Renamed from Add_RAS_*_Attribute.
23709         (Add_Receiving_Stubs_To_Declarations): Generate a table of local
23710         subprograms.
23711         New implementation of expansion for remote access-to-subprogram types,
23712         based on the RACW infrastructure.
23713
23714         * exp_dist.ads (Copy_Specification): Update comment to note that this
23715         function can copy the specification from either a subprogram
23716         specification or an access-to-subprogram type definition.
23717
23718 2004-09-09  Ed Schonberg  <schonberg@gnat.com>
23719
23720         * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
23721         in an instance, between an explicit subprogram an one inherited from a
23722         type derived from an actual.
23723
23724         * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
23725         add a polling call if the subprogram is to be inlined by the back-end,
23726         to avoid repeated calls with multiple inlinings.
23727
23728         * checks.adb (Apply_Alignment_Check): If the expression in the address
23729         clause is a call whose name is not a static entity (e.g. a dispatching
23730         call), treat as dynamic.
23731
23732 2004-09-09  Robert Dewar  <dewar@gnat.com>
23733
23734         * g-trasym.ads: Minor reformatting
23735
23736         * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
23737         packed arrays, since unused bits are expected to be zero for a
23738         comparison.
23739
23740 2004-09-09  Eric Botcazou  <ebotcazou@act-europe.fr>
23741
23742         * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
23743         comment.
23744
23745 2004-09-09  Pascal Obry  <obry@gnat.com>
23746
23747         * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
23748         enable map file generation. Add the right option to generate the map
23749         file if Map_File is set to True.
23750
23751         * gnatdll.adb (Gen_Map_File): New variable.
23752         (Syntax): Add info about new -m (Map_File) option.
23753         (Parse_Command_Line): Add support for -m option.
23754         (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
23755         Minor reformatting.
23756
23757 2004-09-09  Laurent Pautet  <pautet@act-europe.fr>
23758
23759         * gnatls.adb: Add a very verbose mode -V. Such mode is required by the
23760         new gnatdist implementation.
23761         Define a subpackage isolating the output routines specific to this
23762         verbose mode.
23763
23764 2004-09-09  Joel Brobecker  <brobecker@gnat.com>
23765
23766         * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.
23767
23768         * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.
23769
23770 2004-09-09  Cyrille Comar  <comar@act-europe.fr>
23771
23772         * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
23773         internal unit.
23774
23775         * opt.ads: Add Ada_Version_Runtime constant used to decide which
23776         version of the language is used to compile the run time.
23777
23778 2004-09-09  Arnaud Charlet  <charlet@act-europe.fr>
23779
23780         * sem_util.adb (Requires_Transient_Scope): Re-enable handling
23781         of variable length temporaries for function return now that the
23782         back-end and gigi support it.
23783
23784 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23785
23786         * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
23787
23788         * trans.c (struct stmt_group): Delete field GLOBAL.
23789         (gnat_init_stmt_group): Do not initialize it.
23790         (call_to_gnu): Use save_expr, not protect_multiple_eval.
23791         (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
23792         (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
23793         (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
23794         (start_stmt_group): Likewise.
23795         (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
23796
23797         * utils2.c (ggc.h): Include.
23798         (build_call_raise): Call build_int_cst, not build_int_2.
23799
23800         * utils.c (gnat_init_decl_processing): Fix arg to
23801         build_common_tree_nodes.
23802         (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
23803         (gnat_define_builtin): Set built_in_decls.
23804         (init_gigi_decls): Call build_int_cst, not build_int_2.
23805
23806         * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
23807         (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
23808         (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
23809         (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
23810         SET_TYPE_MODULE): Use them.
23811         (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
23812         (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
23813         (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
23814         SET_TYPE_ADA_SIZE): Likewise.
23815         (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
23816         (DECL_CONST_CORRESPONDING_VAR,
23817         SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
23818         (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
23819         (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
23820         (TYPE_RM_SIZE_NUM): New macro.
23821         (TYPE_RM_SIZE): Modified to use above.
23822
23823         * cuintp.c: (build_cst_from_int): New function.
23824         (UI_To_gnu): Use it.
23825
23826         * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
23827         (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
23828         (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
23829         MIN_EXPR for the size, copy it into new.
23830
23831 2004-09-01  Robert Dewar  <dewar@gnat.com>
23832
23833         * exp_ch6.adb (Expand_Call): Properly handle validity checks for
23834         packed indexed component where array is an IN OUT formal. This
23835         generated garbage code previously.
23836
23837         * gnat_ugn.texi: Document -fverbose-asm
23838
23839         * gnat-style.texi: Minor updates (note that boolean constants and
23840         variables are joined with AND/OR rather than short circuit forms).
23841
23842 2004-09-01  Ed Schonberg  <schonberg@gnat.com>
23843
23844         * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
23845         it is an upward conversion of an untagged type with no representation
23846         change.
23847
23848 2004-09-01  Thomas Quinot  <quinot@act-europe.fr>
23849
23850         * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
23851         System.Partition_Interface.
23852
23853         * checks.adb (Apply_Access_Checks): Do not generate checks when
23854         expander is not active (but check for unset reference to prefix of
23855         dereference).
23856
23857         * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
23858         pragma Debug as an if statement with a constant condition, for
23859         consistent treatment of entity references contained within the
23860         enclosed procedure call.
23861
23862 2004-09-01  Vincent Celier  <celier@gnat.com>
23863
23864         * bindgen.adb: (Set_EA_Last): New procedure
23865         (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
23866         Set_EA_Last.
23867         (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
23868         (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
23869         linked without errors.
23870         (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
23871         ST and EA.
23872         (Gen_Exception_Table_C): Correct same bugs
23873
23874         * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
23875
23876         * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
23877         on Windows, make sure that the drive letter is in upper case.
23878
23879         * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
23880         Windows, when the drive letter is added and Case_Sensitive is True, the
23881         drive letter is forced to upper case.
23882
23883         * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
23884         to Options_2 for the call to MLib.Utl.Gcc.
23885
23886         * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
23887         directory separator when defining BASE_DIR.
23888
23889 2004-09-01  Pascal Obry  <obry@gnat.com>
23890
23891         * gprcmd.adb (Extend): Do not output trailing directory separator. This
23892         is not needed and it confuses Windows GNU/make which does not report
23893         directory terminated by a slash as a directory.
23894         (gprcmd): Idem for "pwd" internal command.
23895
23896         * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
23897         target names rewrite to fix regressions with recent version of
23898         GNU/make. Starting with GNU/make 3.80 the pipe character was not
23899         handled properly anymore.
23900
23901 2004-09-01  Andreas Schwab  <schwab@suse.de>
23902
23903         * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
23904         * raise.c [!IN_RTS]: Undef abort.
23905
23906 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
23907
23908         * utils2.c (build_allocator): Use ssize_int.
23909
23910         * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
23911
23912 2004-08-27  Andreas Schwab  <schwab@suse.de>
23913
23914         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
23915
23916 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
23917             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23918
23919         * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
23920
23921 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
23922
23923         * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
23924         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
23925         * utils.c (init_gigi_decls): Likewise.
23926         * utils2.c (build_call_raise, build_allocator): Likewise.
23927
23928 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
23929
23930         * utils.c (gnat_init_decl_processing): Adjust
23931         build_common_tree_nodes call.
23932
23933 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
23934
23935         * utils2.c (build_allocator): Use build_int_cst for negative
23936         size types.
23937
23938 2004-08-18  Richard Henderson  <rth@redhat.com>
23939
23940         * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
23941
23942 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
23943
23944         * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
23945         call.s
23946         * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
23947         (gnat_to_gnu): Likewise.
23948
23949 2004-08-16  Pascal Obry  <obry@gnat.com>
23950
23951         * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
23952         backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
23953         option and not mdll anymore. Update comment.
23954
23955 2004-08-16  Pascal Obry  <obry@gnat.com>
23956
23957         * bld.adb (Put_Include_Project): Properly handle directory separators
23958         on Windows.
23959
23960 2004-08-16  Ed Schonberg  <schonberg@gnat.com>
23961
23962         * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
23963         decreasing the number of allocated junk nodes while searching for the
23964         appropriate subprogram.
23965
23966 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
23967
23968         * cuintp.c (UI_To_gnu): Use build_int_cst..
23969         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
23970         * utils.c (init_gigi_decls): Likewise.
23971         * utils2.c (build_call_raise): Likewise.
23972
23973 2004-08-13  Olivier Hainque  <hainque@act-europe.fr>
23974
23975         * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
23976         for a global aliased object with a variable size and an unconstrained
23977         nominal subtype, pretend there is no initializer if the one we have is
23978         incomplete, and avoid referencing an inexistant component in there. The
23979         part we have will be rebuilt anyway and the reference may confuse
23980         further operations.
23981
23982 2004-08-13  Thomas Quinot  <quinot@act-europe.fr>
23983
23984         * einfo.ads: Minor reformatting
23985
23986         * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
23987         restrictions in the ALI if we only want to warn about violations.
23988
23989 2004-08-13  Vincent Celier  <celier@gnat.com>
23990
23991         * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
23992         when creating a new Unit_Record in table Units.
23993
23994         * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
23995         that are violated, if any.
23996
23997         * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
23998         add directory separator if path already ends with a directory separator.
23999
24000 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
24001
24002         * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
24003         unit, this is an attempt to inline a construct that is not available in
24004         the current restricted mode, so abort rather than trying to continue.
24005
24006         * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
24007         discriminants that rename those of the parent, recover names of
24008         original discriminants for the constraint on the full view of the
24009         parent.
24010         (Complete_Private_Subtype): Do not create a subtype declaration if the
24011         subtype is an itype.
24012
24013         * gnat_rm.texi: Added section on implementation of discriminated
24014         records with default values for discriminants.
24015
24016 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
24017
24018         PR ada/15601
24019         * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
24020         the second operand is overloaded.
24021
24022 2004-08-10  Richard Henderson  <rth@redhat.com>
24023
24024         * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
24025         add __builtin_alloca.
24026
24027 2004-08-10  Richard Henderson  <rth@redhat.com>
24028
24029         * config-lang.in (boot_language): Yes.
24030
24031 2004-08-09  Thomas Quinot  <quinot@act-europe.fr>
24032
24033         * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
24034         from complaining on potential uninitialized reference.
24035         Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
24036         new specification and test explicitly for non-zero return value.
24037
24038         * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
24039         returning C.int, to avoid using a derived boolean type.
24040
24041         * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
24042         Duplicate_Subexpr_No_Checks in preference to direct use of
24043         Remove_Side_Effects and New_Copy_Tree.
24044         Clear Comes_From_Source on prefix of 'Size attribute reference.
24045
24046         * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
24047         g-socthi-vxworks.adb: Change calls to
24048         GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
24049         and test explicitly for non-zero return value.
24050
24051         * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
24052         (Is_Socket_In_Set): Declare imported function as returning C.int, to
24053         avoid using a derived boolean type.
24054
24055 2004-08-09  Albert Lee  <lee@gnat.com>
24056
24057         * system-irix-n32.ads: Refine tasking priority constants for IRIX.
24058
24059 2004-08-09  Pascal Obry  <obry@gnat.com>
24060
24061         * gnat_ugn.texi: Document new way to build DLLs on Windows using
24062         GCC's -shared option.
24063
24064         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
24065         Options_2 parameter (options put after object files).
24066
24067 2004-08-09  Olivier Hainque  <hainque@act-europe.fr>
24068
24069         * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
24070         ignore overflows on low and high bounds of an index to also account for
24071         differences in signedness between sizetype and gnu_index_subtype.
24072         These are as legitimate as the ones caused by a lower TYPE_PRECISION
24073         on sizetype.
24074
24075 2004-08-09  Robert Dewar  <dewar@gnat.com>
24076
24077         * s-solita.ads, s-solita.adb: Minor reformatting
24078
24079         * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
24080         Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
24081         obsolescent section
24082         Add note that No_Implicit_Conditionals does not suppress
24083         run time constraint checks.
24084
24085         * vms_conv.ads: Minor reformatting
24086
24087         * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
24088         and necessary for following change).
24089         (Mark): Return new format Mark_Id containing sec stack address
24090         (Release): Use sec stack address from Mark_Id avoiding Self call
24091
24092         * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
24093         pointer (cleanup and necessary for following change).
24094         Define Mark_Id as record containing address of secondary stack, that way
24095         Release does not need to find the stack again, decreasing the number of
24096         calls to Self and improving efficiency.
24097
24098         * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
24099
24100         * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
24101         case variable into the individual case branches when possible.
24102
24103         * sem_ch11.adb: Minor reformatting
24104
24105         * prj.ads: Correct spelling of suffixs
24106
24107         * prj-nmsc.adb: Minor reformatting
24108         Correct spelling suffixs throughout (also in identifiers)
24109
24110         * freeze.adb: Minor spelling correction
24111
24112         * exp_ch2.adb: Cleanups to handling of Current_Value
24113         (no functional effect).
24114
24115         * bld.adb: Correct spelling of suffixs
24116
24117         * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
24118
24119 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
24120
24121         PR ada/15408
24122         * sem_ch7.adb (Install_Private_Declarations): In the body of the
24123         package or of a child, private entities are both immediately_visible
24124         and not hidden.
24125
24126 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
24127
24128         * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
24129         there are no range checks on the value of the literal.
24130
24131         * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
24132         wrapped is the triggering alternative of an asynchronous select, action
24133         statements mustbe inserted before the select itself.
24134
24135         * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
24136         case where the prefix is a protected function call.
24137         (Resolve_Attribute, case 'Access): The attribute reference on a
24138         subprogram is legal in a generic body if the subprogram is declared
24139         elsewhere.
24140
24141 2004-08-09  Vincent Celier  <celier@gnat.com>
24142
24143         * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
24144         languages, otherwise building the library may fail with unresolved
24145         symbols.
24146         (Compile_Sources): Do not build libraries if -c switch is used
24147
24148         * gnatlink.adb (Process_Args): New switches -M and -Mmap
24149         (Write_Usage): If map file creation is supported, output new switches
24150         -M and -Mmap.
24151         (Gnatlink): When -M is specified, add the necessary switch(es) to the
24152         gcc call, when supported.
24153
24154         * Makefile.in: Added indepsw.o to the object list for gnatlink
24155         Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
24156
24157         * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
24158         indepsw.adb, indepsw.ads: New files.
24159
24160 2004-08-09  Bernard Banner  <banner@gnat.com>
24161
24162         * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
24163
24164         * Makefile.in: add section for vxworks x86
24165
24166 2004-08-09  Hristian Kirtchev  <kirtchev@gnat.com>
24167
24168         * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
24169         per-object constrained components where the discriminant is of an
24170         Access type.
24171         (Build_Record_Init_Proc): Add condition to prevent the inheritance of
24172         the parent initialization procedure for derived Unchecked_Unions.
24173         Instead, derived Unchecked_Unions build their own initialization
24174         procedure.
24175         (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
24176         Check the body of the subprogram for details.
24177         (Freeze_Record_Type): Prevent the inheritance of discriminant checking
24178         functions for derived Unchecked_Union types by introducing a condition.
24179         Allow the creation of TSS equality functions for Unchecked_Unions.
24180         (Make_Eq_Case): Rename formal parameter Node to E in function signature.
24181         Add formal parameter Discr to function signature. Discr is used to
24182         control the generated case statement for Unchecked_Union types.
24183         (Make_Eq_If): Rename formal parameter Node to E in function signature.
24184
24185         * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
24186         Unchecked_Unions.
24187         Check the body of the subprogram for details.
24188         (Expand_Composite_Equality): Augment composite type equality to include
24189         correct handling of Unchecked_Union components.
24190         (Expand_N_In): Add condition to detect illegal membership tests when the
24191         subtype mark is a constrained Unchecked_Union and the expression lacks
24192         inferable discriminants, and build a Raise_Program_Error node.
24193         (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
24194         to detect types that contain components of unconstrained Unchecked_Union
24195         subtype. Add condition to detect equality between types that have an
24196         unconstrained Unchecked_Union component, and build a Raise_Program_Error
24197         node. Add condition to detect equality between Unchecked_Union types
24198         that lack inferable discriminants, and build a Raise_Program_Error node.
24199         Otherwise build a TSS equality function call.
24200         (Expand_N_Type_Conversion): Add condition to detect illegal conversions
24201         from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
24202         with the operand lacking inferable discriminants, and build a Raise_
24203         Program_Error node.
24204         (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
24205         composite equality.
24206         (Has_Inferable_Discriminants): Implement new predicate for objects and
24207         expressions of Unchecked_Union type. Check the body of subprogram for
24208         details.
24209         (Has_Unconstrained_UU_Components): Add function
24210         Component_Is_Unconstrained_UU. It is used to detect whether a single
24211         component is of an unconstrained Unchecked_Union subtype. Add function
24212         Variant_Is_Unconstrained_UU. It is used to detect whether a single
24213         component inside a variant is of an unconstrained Unchecked_Union type.
24214
24215         * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
24216         inferred discriminant values. Add condition to generate a case
24217         statement with an inferred discriminant as the switch.
24218         (Make_Component_List_Assign): Introduce a Boolean flag that determines
24219         the behaviour of the subprogram in the presence of an Unchecked_Union.
24220         Add condition to trigger the usage of the inferred discriminant value
24221         as the generated case statement switch.
24222         (Make_Field_Assign): Introduce a Boolean flag that determines the
24223         behaviour of the subprogram in the presence of an Unchecked_Union. Add
24224         condition to trigger the usage of the inferred discriminant value as
24225         the right-hand side of the generated assignment.
24226
24227         * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
24228         parameter generation when dealing with Unchecked_Unions.
24229
24230         * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
24231         checks for Unchecked_Unions.
24232
24233         * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
24234
24235         * exp_attr.adb (Expand_N_Attribute_Reference): Produce
24236         Raise_Program_Error nodes for the execution of Read and Write
24237         attributes of Unchecked_Union types and the execution of Input and
24238         Output attributes of Unchecked_Union types that lack default
24239         discriminant values.
24240
24241         * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
24242         Unchecked_Union. Add procedure Check_Component. It is used to inspect
24243         per-object constrained components of Unchecked_Unions for being
24244         Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
24245         check individual components withing a variant.
24246
24247         * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
24248         comparison of Unchecked_Unions.
24249         (Resolve_Equality_OP): Remove guard that prevents equality between
24250         Unchecked_Unions.
24251
24252         * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
24253         of component subtypes for Unchecked_Union components.
24254         (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
24255         since it is the actual subtype.
24256
24257         * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
24258         pass of Unchecked_Union subtypes as generic actuals to formal types
24259         that lack known_discriminant_parts or that are derived Unchecked_Union
24260         types, and do nothing. In any other case, produce an error message.
24261
24262         * sem_ch3.adb (Analyze_Component_Declaration): Add function
24263         Contains_POC. It determines whether a constraint uses the discriminant
24264         of an enclosing record type.
24265         Add condition to detect per-object constrained component and set the
24266         appropriate flag.
24267         (Derived_Type_Declaration): Remove guard that prevents derivation from
24268         Unchecked_Union types.
24269         (Process_Subtype): Remove quard that prevents the creation of Unchecked_
24270         Union subtypes.
24271
24272         * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
24273         references to Unchecked_Union discriminants.
24274
24275         * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
24276         formal generation when dealing with Unchecked_Unions.
24277         (Set_Actual_Subtypes): Add condition to prevent generation of actual
24278         subtypes for Unchecked_Unions.
24279
24280         * sem_ch7.adb (Analyze_Package_Specification): Add procedure
24281         Inspect_Unchecked_Union_Completion. It is used to detect incorrect
24282         completions of discriminated partial views by Unchecked_Unions and
24283         produce an error message.
24284
24285 2004-08-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24286
24287         * trans.c (struct stmt_group): New field, GLOBAL.
24288         (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
24289         (struct elab_info): New struct.
24290         (elab_info_list, gnu_elab_proc_stack): New variables.
24291         (Compilation_Unit_to_gnu): New procedure.
24292         (gigi): Call it and also handle elaboration procs we've saved.
24293         (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
24294         global field from parent.
24295         (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
24296         (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
24297         (start_stmt_group): Initialize global field from parent.
24298         (add_decl_expr): Set to global for current statement group.
24299         (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
24300         post.
24301
24302         * utils.c (global_bindings_p): True when no current_function_decl; no
24303         longer check current_binding_level.
24304
24305 2004-08-09  Ben Brosgol  <brosgol@gnat.com>
24306
24307         * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
24308         choice.
24309
24310         * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
24311
24312 2004-08-06  Andreas Schwab  <schwab@suse.de>
24313
24314         * utils.c (gnat_define_builtin): Remove second parameter of
24315         make_decl_rtl.
24316         (begin_subprog_body): Likewise.
24317
24318 2004-07-26  Arnaud Charlet  <charlet@act-europe.fr>
24319
24320         * sem_util.adb (Requires_Transient_Scope): Temporarily disable
24321         optimization, not supported by the tree-ssa back-end.
24322
24323 2004-07-26  Olivier Hainque  <hainque@act-europe.fr>
24324
24325         * s-mastop-irix.adb: Update comments.
24326
24327         * a-except.adb (Exception_Information): Raise Constraint_Error if
24328         exception Id is Null_Id.
24329         This is required behavior, which is more reliably and clearly checked
24330         at the top level interface level.
24331
24332 2004-07-26  Javier Miranda  <miranda@gnat.com>
24333
24334         * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
24335         call if a component has no default_expression and the box is used.
24336
24337         * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
24338         default_expression and you use box, it behaves as if you had declared a
24339         stand-alone object.
24340         (Resolve_Record_Aggregate): If a component has no default_expression and
24341         you use box, it behaves as if you had declared a stand-alone object.
24342
24343         * sem_ch10.adb (Install_Siblings): Do not make visible the private
24344         entities of private-with siblings.
24345
24346 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
24347
24348         * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
24349         for a component of an itype, set the parent pointer for analysis,
24350         there is no list in which to insert it.
24351
24352         * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
24353         bona-fide renamings, not for inherited operations.
24354
24355         * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
24356         actual for a formal that is an access parameter, create local
24357         finalization list even if the expression is not an aggregate.
24358
24359 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
24360
24361         PR ada/16213
24362         * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
24363         Diagnose properly illegal subprogram renamings that are library units.
24364
24365 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
24366
24367         PR ada/15588
24368         * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
24369         conversion rewritten as an unchecked conversion, check that original
24370         expression is a variable.
24371
24372         * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
24373         unchecked_conversion, create new node rather than rewriting in place,
24374         to preserve original construct.
24375
24376 2004-07-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24377
24378         * gigi.h (gnat_expand_body): Deleted.
24379
24380         * Make-lang.in: (trans.o): Depends on function.h.
24381
24382         * misc.c: (gnat_expand_body): Moved to here.
24383
24384         * trans.c (gnat_expand_body_1): Deleted.
24385         (gnat_expand_body): Moved from here.
24386         (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
24387         (add_stmt): Check for marked visited with global_bindings_p.
24388         (gnat_gimplify_expr, case COMPONENT_REF): New case.
24389         (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
24390
24391         * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
24392         VIEW_CONVERT_EXPR if not operation type.
24393
24394         * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
24395         fat pointer.
24396
24397         * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
24398         changes: reformatting of negation operators, removing unneeded
24399         inequality comparison with zero, converting equality comparisons with
24400         zero to negations, changing int/0/1 to bool/false/true, replace calls
24401         to gigi_abort with abort, and various other similar changes.
24402
24403 2004-07-26  Vincent Celier  <celier@gnat.com>
24404
24405         * gnatcmd.adb (GNATCmd): Add processing for new built-in command
24406         "setup".
24407
24408         * make.adb (Gnatmake): Fail when a library is not present and there is
24409         no object directory.
24410
24411         * mlib-prj.adb (Check_Library): No need to check if the library needs
24412         to be rebuilt if there is no object directory, hence no object files
24413         to build the library.
24414
24415         * opt.ads (Setup_Projects): New Boolean flag.
24416
24417         * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
24418         Location.
24419         Create directory when Kind /= "" and in "gnat setup". Report error if
24420         directory cannot be created.
24421         (Ada_Check): Create library interface copy dir if it does not exist
24422         and we are in "gnat setup".
24423         (Find_Sources): No error if in "gnat setup" and no Ada sources were
24424         found.
24425         (Language_Independent_Check): Create object directory, exec directory
24426         and/or library directory if they do not exist and we are in
24427         "gnat setup".
24428
24429         * vms_conv.ads: (Command_Type): New command Setup.
24430
24431         * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
24432
24433         * vms_data.ads: Add qualifiers/switches for new built-in command
24434         "setup".
24435
24436 2004-07-25  Richard Henderson  <rth@redhat.com>
24437
24438         * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
24439         DECL_IGNORED_P on RESULT_DECL.
24440
24441 2004-07-20  Olivier Hainque  <hainque@act-europe.fr>
24442
24443         * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
24444         allocation and potentially overflowing update with
24445         Tailored_Exception_Information. Use the sec-stack free procedural
24446         interface to output Exception_Information instead.
24447
24448         * a-except.adb (To_Stderr): New subprogram for character, and string
24449         version moved from a-exextr to be visible from other separate units.
24450         (Tailored_Exception_Information): Remove the procedural version,
24451         previously used by the default Last_Chance_Handler and not any more.
24452         Adjust various comments.
24453
24454         * a-exexda.adb: Generalize the exception information procedural
24455         interface, to minimize the use of secondary stack and the need for
24456         local buffers when the info is to be output to stderr:
24457         (Address_Image): Removed.
24458         (Append_Info_Character): New subprogram, checking for overflows and
24459         outputing to stderr if buffer to fill is of length 0.
24460         (Append_Info_String): Output to stderr if buffer to fill is of length 0.
24461         (Append_Info_Address, Append_Info_Exception_Name,
24462         Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
24463         Append_Info_Basic_Exception_Traceback,
24464         Append_Info_Exception_Information): New subprograms.
24465         (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
24466         (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
24467         Exception_Info_Maxlength, Exception_Name_Length,
24468         Exception_Message_Length): New subprograms.
24469         (Exception_Information): Use Append_Info_Exception_Information.
24470         (Tailored_Exception_Information): Use
24471         Append_Info_Basic_Exception_Information.
24472         Export services for the default Last_Chance_Handler.
24473
24474         * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
24475         other separate units.
24476
24477 2004-07-20  Vincent Celier  <celier@gnat.com>
24478
24479         * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
24480
24481 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
24482
24483         * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
24484         emit itype references for the designated types of component types that
24485         are declared outside of the full record declaration, and that may
24486         denote a partial view of that record type.
24487
24488 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
24489
24490         PR ada/15607
24491         * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
24492         which is the designated type in an access component declaration, to the
24493         list of incomplete dependents of the parent type, to avoid elaboration
24494         issues with out-of-scope subtypes.
24495         (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
24496         full view of the parent.
24497
24498 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
24499
24500         PR ada/15610
24501         * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
24502         entities that are hidden, such as references to generic actuals
24503         outside an instance.
24504
24505 2004-07-20  Javier Miranda  <miranda@gnat.com>
24506
24507         * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
24508         support to the new notation.
24509         (Analyze_Selected_Component): Add call to Try_Object_Operation.
24510
24511 2004-07-20  Jose Ruiz  <ruiz@act-europe.fr>
24512
24513         * s-taprob.adb: Adding the elaboration code required for initializing
24514         the tasking soft links that are common to the full and the restricted
24515         run times.
24516
24517         * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
24518         restricted run time has been moved to the package
24519         System.Soft_Links.Tasking.
24520
24521         * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
24522         restricted run time has been moved to the package
24523         System.Soft_Links.Tasking.
24524
24525         * Makefile.rtl: Add entry for s-solita.o in run-time library list.
24526
24527         * s-solita.ads, s-solita.adb: New files.
24528
24529 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24530
24531         * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
24532         Case_Statement_to_gnu): Split off from gnat_to_gnu.
24533         (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
24534         Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
24535         Exception_Handler_to_gnu_zcx): Likewise.
24536
24537 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
24538
24539         * gigi.h (builtin_function): Declare.
24540
24541 2004-07-15  Robert Dewar  <dewar@gnat.com>
24542
24543         * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
24544         reformatting
24545
24546         * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
24547         access values as an example of a warning.
24548
24549         * gnat_rm.texi: Document new attribute Has_Access_Values
24550
24551         * gnat-style.texi: Document that box comments belong on nested
24552         subprograms
24553
24554         * sem_util.ads (Has_Access_Values): Improved documentation
24555
24556         * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
24557
24558         * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
24559         (Process_Interface_Name): Call to this new procedure
24560         (Set_Extended_Import_Export_External_Name): Call to this new procedure
24561
24562         * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
24563
24564         * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
24565
24566         * einfo.ads: Minor comment typo fixed
24567
24568 2004-07-15  Jose Ruiz  <ruiz@act-europe.fr>
24569
24570         * snames.adb: Add _atcb.
24571
24572         * snames.ads: Add Name_uATCB.
24573
24574         * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
24575         (in the expanded code) when using the restricted run time.
24576
24577         * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
24578         a in parameter in order to allow ATCBs to be preallocated (in the
24579         expanded code).
24580
24581         * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
24582         order to allow ATCBs to be preallocated. In case of error, the ATCB is
24583         deallocated in System.Tasking.Stages.
24584
24585         * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
24586         order to allow ATCBs to be preallocated.
24587
24588         * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
24589         here. It was previously done in Initialize_ATCB.
24590
24591         * rtsfind.ads: Make the Ada_Task_Control_Block visible.
24592
24593         * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
24594         Restricted run time.
24595
24596         * exp_ch3.adb: When using the Restricted run time, pass the
24597         preallocated Ada_Task_Control_Block when creating a task.
24598
24599 2004-07-15  Ed Schonberg  <schonberg@gnat.com>
24600
24601         * sem_util.adb (Normalize_Actuals): If there are no actuals on a
24602         function call that is itself an actual in an enclosing call, diagnose
24603         problem here rather than assuming that resolution will catch it.
24604
24605         * sem_ch7.adb (Analyze_Package_Specification): If the specification is
24606         the local copy of a generic unit for a formal package, and the generic
24607         is a child unit, install private part of ancestors before compiling
24608         private part of spec.
24609
24610         * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
24611         use scope entities rather than tree structures, to handle properly
24612         parent units that are instances rewritten as bodies for inlining
24613         purposes.
24614
24615         * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
24616         Remove_Parents): Handle properly a parent unit that is an
24617         instantiation, when the unit has been rewritten as a body for inlining
24618         purposes.
24619
24620         * par.adb (Goto_List): Global variable to collect goto statements in a
24621         given unit, for use in detecting natural loops.
24622
24623         * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
24624         use in detecting natural loops.
24625
24626         * par-labl.adb (Find_Natural_Loops): Recognize loops create by
24627         backwards goto's, and rewrite as a infinite loop, to improve locality
24628         of temporaries.
24629
24630         * exp_util.adb (Force_Evaluation): Recognize a left-hand side
24631         subcomponent that includes an indexed reference, to prevent the
24632         generation of copies that would miscompile the desired assignment
24633         statement.
24634         (Build_Task_Image_Decls): Add a numeric suffix to
24635         generated name for string variable, to avoid spurious conflicts with
24636         the name of the type of a single protected object.
24637
24638         * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
24639         loop with an explicit exit statement, to avoid generating an
24640         out-of-range value with 'Succ leading to spurious constraint_errors
24641         when compiling with -gnatVo.
24642
24643 2004-07-15  Thomas Quinot  <quinot@act-europe.fr>
24644
24645         * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
24646         might not be analyzed yet, even if its Etype is already set (case of an
24647         unchecked conversion built using Unchecked_Convert_To, for example).
24648         If the prefix has already been analyzed, this will be a nop anyway.
24649
24650         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
24651         controller type, or an assignment of a record type with controlled
24652         components, copy only user data, and leave the finalization chain
24653         pointers untouched.
24654
24655 2004-07-15  Vincent Celier  <celier@gnat.com>
24656
24657         * make.adb (Collect_Arguments): Improve error message when attempting
24658         to compile a source not part of any project, when -x is not used.
24659
24660         * prj.ads: (Defined_Variable_Kind): New subtype
24661
24662         * prj-attr.adb (Register_New_Package): Two new procedures to register
24663         a package with or without its attributes.
24664         (Register_New_Attribute): Mew procedure to register a new attribute in a
24665         package.
24666         New attribute oriented subprograms: Attribute_Node_Id_Of,
24667         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
24668         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
24669         Next_Attribute.
24670         New package oriented subprograms: Package_Node_Id_Of,
24671         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
24672
24673         * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
24674         type.
24675         (Package_Node_Id): Now a private, self initialized type
24676         (Register_New_Package): New procedure to register a package with its
24677         attributes.
24678         New attribute oriented subprograms: Attribute_Node_Id_Of,
24679         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
24680         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
24681         Next_Attribute.
24682         New package oriented subprograms: Package_Node_Id_Of,
24683         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
24684
24685         * prj-dect.adb (Parse_Attribute_Declaration,
24686         Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
24687
24688         * prj-makr.adb (Make): Parse existing project file before creating
24689         other files. Fail if there was an error during parsing.
24690
24691         * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
24692         new spec of Prj.Attr.
24693
24694         * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
24695         to new spec of Prj.Attr.
24696
24697 2004-07-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24698
24699         * utils2.c: Fix typo in comment.
24700
24701 2004-07-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24702
24703         * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
24704         * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
24705
24706 2004-07-14  Andreas Schwab  <schwab@suse.de>
24707
24708         * trans.c (gnat_init_stmt_group): Remove duplicate definition.
24709
24710 2004-07-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24711
24712         * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
24713         object type.
24714         (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
24715         TYPE_STUB_DECL.
24716
24717         * misc.c (gnat_types_compatible_p): New function.
24718         (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
24719         (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
24720
24721         * trans.c (gigi): Move processing of main N_Compilation_Unit here.
24722         (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
24723         (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
24724         (mark_visited): Don't mark dummy type.
24725         (tree_transform <N_Procedure_Call_Statement>): Unless this is an In
24726         parameter, we must remove any LJM building from GNU_NAME.
24727         (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
24728         (pos_to_constructor): Use int_const_binop.
24729         (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
24730         PARM_DECL.
24731
24732         * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
24733         (gnat_pushlevel): Set TREE_USE on BLOCK node.
24734         (gnat_install_builtins): Add __builtin_memset.
24735
24736 2004-07-13  Olivier Hainque  <hainque@act-europe.fr>
24737
24738         * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
24739         for a renaming, stabilize the initialization expression if we are at a
24740         local level.  At the local level, uses of the renaming may be performed
24741         by a direct dereference of the initializing expression, and we don't
24742         want possible variables there to be evaluated for every use.
24743
24744         * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
24745         Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
24746         them on the way.  Account for the fact that we may introduce side
24747         effects in the process.
24748
24749 2004-07-13  Richard Henderson  <rth@redhat.com>
24750
24751         * misc.c (default_pass_by_ref): Use pass_by_reference.
24752
24753 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
24754
24755         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
24756         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
24757
24758 2004-07-08  Richard Henderson  <rth@redhat.com>
24759
24760         * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
24761         commentary.
24762
24763 2004-07-06  Vincent Celier  <celier@gnat.com>
24764
24765         * vms_conv.ads: Minor reformatting.
24766         Alphabetical order for enumerated values of type Command_Type, to have
24767         the command in alphabetical order for the usage.
24768
24769         * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
24770         the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
24771
24772         * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
24773
24774         * makegpr.adb (Global_Archive_Exists): New global Boolean variable
24775         (Add_Archive_Path): Only add the global archive if there is one.
24776         (Build_Global_Archive): Set Global_Archive_Exists depending if there is
24777         or not any object file to put in the global archive, and don't build
24778         a global archive if there is none.
24779         (X_Switches): New table
24780         (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
24781         in the X_Switches table, if any.
24782         (Initialize): Make sure the X_Switches table is empty
24783         (Scan_Arg): Record -X switches in table X_Switches
24784
24785         * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
24786
24787         * make.adb: Minor comment fix
24788
24789         * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
24790         invoked with directory information, add the directory in front of the
24791         path.
24792
24793         * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
24794         invoked with directory information, add the directory in front of the
24795         path.
24796
24797         * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
24798         when Keep_Temporary_Files is False.
24799         (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
24800         directory information, add the directory in front of the path.
24801         When not on VMS, handle new switch -dn before the command to set
24802         Keep_Temporary_Files to True.
24803         (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
24804         everywhere.
24805
24806         * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
24807         invoked with directory information, add the directory in front of the
24808         path.
24809
24810 2004-07-06  Thomas Quinot  <quinot@act-europe.fr>
24811
24812         * snames.ads, snames.adb (Name_Stub): New name for the distributed
24813         systems annex.
24814
24815         * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
24816         New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
24817
24818         * g-socket.adb (To_Timeval): Fix incorrect conversion of
24819         Selector_Duration to Timeval for the case of 0.0.
24820
24821         * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
24822         documentation from Evolve_And_Then.
24823
24824 2004-07-06  Jose Ruiz  <ruiz@act-europe.fr>
24825
24826         * s-taprop-tru64.adb, s-taprop-os2.adb,
24827         s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
24828
24829 2004-07-06  Robert Dewar  <dewar@gnat.com>
24830
24831         * s-osinte-hpux.ads, s-osinte-freebsd.ads,
24832         s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
24833         s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
24834         s-interr-sigaction.adb, s-taprop-irix-athread.adb,
24835         s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
24836         s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
24837         s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
24838         s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
24839         a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
24840         a-tags.ads, bindgen.ads, checks.adb, checks.adb,
24841         csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
24842         exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
24843         g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
24844         i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
24845         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
24846         sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
24847         sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
24848         s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
24849         s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
24850         s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
24851         vms_data.ads: Minor reformatting,
24852         Fix bad box comment format.
24853
24854         * gnat_rm.texi: Fix minor grammatical error
24855
24856         * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
24857
24858         * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
24859         more cases of discriminated records to be recognized as not needing a
24860         secondary stack.
24861         (Has_Access_Values): New function.
24862
24863         * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
24864
24865         * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
24866         Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
24867         with LRM terminology).
24868         Change terminology in comments primitive type => elementary type.
24869
24870 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
24871
24872         PR ada/15602
24873         * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
24874         parameters do not impose any requirements on the presence of a body.
24875
24876 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
24877
24878         PR ada/15593
24879         * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
24880         compilation unit and is in an open scope at the point of instantiation,
24881         assume that a body may be present later.
24882
24883 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
24884
24885         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
24886         Improve error message when specified size is not supported.
24887
24888         * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
24889         is never a primitive operation.
24890
24891 2004-07-05  Andreas Schwab  <schwab@suse.de>
24892
24893         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
24894         RECORD_OR_UNION_CHECK.
24895         (TYPE_CONTAINS_TEMPLATE_P): Likewise.
24896
24897 2004-07-04  Kelley Cook  <kcook@gcc.gnu.org>
24898
24899         * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
24900         dependency on xgnatugn, instead build it via a submake.
24901         (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
24902
24903 2004-07-04  Richard Henderson  <rth@redhat.com>
24904
24905         * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
24906
24907 2004-07-01  Richard Henderson  <rth@redhat.com>
24908
24909         * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
24910         * utils.c (max_size): Likewise.
24911
24912 2004-06-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24913
24914         * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
24915         and rest_of_type_compilation; add arg to create_*_decl.
24916         (annotate_decl_with_node): Deleted.
24917         (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
24918         * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
24919         (get_current_block_context, gnat_pushdecl): New declarations.
24920         (gnat_init_stmt_group): Likewise.
24921         (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
24922         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
24923         (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
24924         (gnat_init): Call gnat_init_stmt_group.
24925         * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
24926         (gnu_pending_elaboration_list): Deleted.
24927         (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
24928         (gigi): Rearrange initialization calls and move some to last above.
24929         (gnat_to_gnu): If statement and not in procedure, go into elab proc.
24930         Delete calls to add_decl_expr; add arg to create_*_decl.
24931         (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
24932         (gnat_to_gnu, case N_Subprogram_Body): Move some code to
24933         begin_subprog_body and call it.
24934         Don't push and pop ggc context.
24935         (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
24936         (add_stmt): Remove handling of DECL_EXPR from here.
24937         If not in function, mark visited.
24938         (add_decl_expr): Put global at top level.
24939         Check for cases of DECL_INITIAL we have to handle here.
24940         (process_type): Add extra arg to create_type_decl.
24941         (build_unit_elab): Rework to just gimplify.
24942         * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
24943         (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
24944         (get_pending_elaborations, pending_elaborations_p): Likewise.
24945         (push_pending_elaborations, pop_pending_elaborations): Likewise.
24946         (get_elaboration_location, insert_elaboration_list): Likewise.
24947         (gnat_binding_level): Renamed from ada_binding_level.
24948         (init_gnat_to_gnu): Don't clear pending_elaborations.
24949         (global_bindings_p): Treat as global if no current_binding_level.
24950         (set_current_block_context): New function.
24951         (gnat_pushdecl): Renamed from pushdecl; major rework.
24952         All callers changed.
24953         (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
24954         (finish_record_type): Call call pushdecl for stub decl.
24955         (function_nesting_depth): Deleted.
24956         (begin_subprog_body): Delete obsolete code.
24957         * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
24958
24959 2004-06-28  Robert Dewar  <dewar@gnat.com>
24960
24961         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
24962         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
24963         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
24964         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
24965         a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
24966
24967         * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
24968         deal with problem of inefficient slices on machines with strict
24969         alignment, when the slice is a component of a composite.
24970
24971         * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
24972         machines, we need the check there as well.
24973
24974 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
24975
24976         * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
24977         determine safe copying direction for overlapping slice assignments
24978         when component is controlled.
24979
24980         * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
24981         formal derived type in the actual for a formal package are visible in
24982         the enclosing instance.
24983
24984 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
24985
24986         PR ada/15600
24987         * sem_util.adb (Trace_Components): Diagnose properly an illegal
24988         circularity involving a private type whose completion includes a
24989         self-referential component.
24990         (Enter_Name): Use Is_Inherited_Operation to distinguish a source
24991         renaming or an instantiation from an implicit derived operation.
24992
24993 2004-06-28  Pascal Obry  <obry@gnat.com>
24994
24995         * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
24996         DLL.
24997         (Library_File_Name_For): Idem.
24998
24999 2004-06-28  Matthew Gingell  <gingell@gnat.com>
25000
25001         * g-traceb.ads: Add explanatory note on the format of addresses
25002         expected by addr2line.
25003
25004 2004-06-28  Jerome Guitton  <guitton@act-europe.fr>
25005
25006         * Makefile.in: Force debugging information on s-tasdeb.adb,
25007         a-except.adb and s-assert.adb needed by the debugger.
25008
25009 2004-06-28  Vincent Celier  <celier@gnat.com>
25010
25011         * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
25012         Need_To_Build_Lib.
25013         (Gnatmake): Ditto.
25014
25015         * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
25016
25017         * prj.adb: Minor reformatting
25018         (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
25019
25020         * prj.ads: Comment updates
25021         Minor reformatting
25022         (Project_Data): Change Flag1 to Need_To_Build_Lib.
25023         Remove Flag2: not used.
25024
25025         * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
25026         declaration.
25027
25028         * gnat_ugn.texi: Put a "null;" declaration in one project file example
25029
25030         * gnat_rm.texi: Document Empty declarations "null;".
25031
25032         * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
25033         front of the linker options.
25034         (Link_Foreign): Put the global archives and the libraries in front of
25035         the linker options.
25036
25037 2004-06-28  Javier Miranda  <miranda@gnat.com>
25038
25039         * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
25040         (RTU_Loaded): Code cleanup
25041         (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
25042         withed predefined units.
25043
25044         * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
25045         explicitly withed predefined units.
25046         Fix typo in comment
25047
25048         * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
25049         explicitly withed predefined units.
25050
25051 2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25052
25053         * ada-tree.def (DECL_STMT): Deleted.
25054         * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
25055         (DECL_STMT_VAR): Deleted.
25056         * decl.c: add_decl_stmt now add_decl_expr.
25057         * gigi.h: Likewise.
25058         * trans.c: Likewise.
25059         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
25060         (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
25061         (add_stmt): Only handle padded type here.
25062         (add_stmt_with_node): Allow gnat_node to not be present.
25063         (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
25064         (gnat_gimplify_stmt, case DECL_STMT): Deleted.
25065         (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
25066         make a SAVE_EXPR for the entire fat pointer.
25067         * utils.c (pushdecl): Walk a DECL_EXPR in global case.
25068         (create_index_type): Make a DECL_EXPR.
25069         (end_subprog_body): Don't call allocate_struct_function here but
25070         do clear cfun.
25071
25072 2004-06-25  Pascal Obry  <obry@gnat.com>
25073
25074         * makegpr.adb (Build_Library): Remove parameter Lib_Address and
25075         Relocatable from Build_Dynamic_Library call.
25076
25077         * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
25078         Relocatable are now synonym.
25079
25080         * Makefile.in: Use s-parame-mingw.adb on MingW platform.
25081
25082         * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
25083         Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
25084         call.
25085
25086         * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
25087         Lib_Address and Relocatable.
25088         (Default_DLL_Address): Removed.
25089
25090         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
25091         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
25092         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
25093         (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
25094         (Default_DLL_Address): Removed.
25095
25096         * mlib-tgt-mingw.adb: Ditto.
25097         (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
25098
25099         * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
25100         the initial thread stack size.
25101
25102         * a-strmap.ads: Move package L to private part as it is not used in
25103         the spec. Found while reading code.
25104
25105 2004-06-25  Olivier Hainque  <hainque@act-europe.fr>
25106
25107         * tracebak.c: Introduce support for a GCC infrastructure based
25108         implementation of __gnat_backtrace.
25109
25110         * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
25111         any more. Use accessors instead. This eases maintenance and relaxes
25112         some alignment constraints.
25113         (_GNAT_Exception structure): Remove the Ada specific fields
25114         (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
25115         a-exexpr.adb.
25116         (is_handled_by, __gnat_eh_personality): Replace component references to
25117         exception structure by use of the new accessors.
25118
25119         * init.c (__gnat_initialize): Adjust comments to match the just
25120         reverted meaning of the -static link-time option.
25121
25122         * adaint.c (convert_addresses): Arrange not to define a stub for
25123         mips-irix any more, as we now want to rely on a real version from a
25124         recent libaddr2line.
25125
25126         * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
25127         the personality routine can use them and not have to rely on a C
25128         counterpart of the record anymore. This simplifies maintenance and
25129         relaxes the constraint of having Standard'Maximum_Alignment match
25130         BIGGEST_ALIGNMENT.
25131         Update comments, and add a section on the common header alignment issue.
25132
25133 2004-06-25  Geert Bosch  <bosch@gnat.com>
25134
25135         * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
25136         polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
25137
25138 2004-06-25  Robert Dewar  <dewar@gnat.com>
25139
25140         * gnat_rm.texi: Fix section on component clauses to indicate that the
25141         restriction on byte boundary placement still applies for bit packed
25142         arrays.
25143         Add comment on stack usage from Initialize_Scalars
25144
25145         * gnat_ugn.texi: Add documentation for -gnatyLnnn
25146
25147         * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
25148         limiting nesting level.
25149
25150         * usage.adb: Add line for -gnatyLnnn switch
25151
25152         * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
25153         sem_ch13.adb, exp_aggr.adb: Minor reformatting
25154
25155         * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
25156         type as well as on the subtype. This corrects a problem in freeze in
25157         setting alignments of atomic types.
25158
25159         * sem_eval.ads: Minor comment typo fixed
25160
25161         * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
25162         level.  Minor reformatting.
25163
25164         * fname.adb (Is_Predefined_File_Name): Require a letter after the
25165         minus sign. This means that file names like a--b.adb will not be
25166         considered predefined.
25167
25168         * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
25169         record Test new flag and give diagnostic for bad component clause.
25170         (Freeze_Entity): Set alignment of array from component alignment in
25171         cases where this is safe to do.
25172
25173         * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
25174         arrays.
25175
25176         * cstand.adb: (Create_Standard): Set alignment of String to 1
25177
25178         * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
25179
25180         * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
25181         code in the common constrained array cases.
25182
25183         * a-storio.adb: Change implementation to avoid possible alignment
25184         problems on machines requiring strict alignment (data should be moved
25185         as type Buffer, not type Elmt).
25186
25187         * checks.adb (Apply_Array_Size_Check): Improve these checks by
25188         killing the overflow checks which we really do not need (64-bits is
25189         enough).
25190
25191 2004-06-25  Vincent Celier  <celier@gnat.com>
25192
25193         * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
25194         (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
25195         inconditionally for the main project.
25196         (Recursive_Add_Archives.Add_Archive_Path): New procedure
25197         (Link_Executables.Check_Time_Stamps): New procedure
25198         (Link_Executables.Link_Foreign): New procedure
25199         Changes made to reduce nesting level of this package
25200         (Check): New procedure
25201         (Add_Switches): When not in quiet output, check that a switch is not
25202         the concatenation of several valid switches. If it is, issue a warning.
25203         (Build_Global_Archive): If the global archive is rebuilt, linking need
25204         to be done.
25205         (Compile_Sources): Rebuilding a library archive does not imply
25206         rebuilding the global archive.
25207         (Build_Global_Archive): New procedure
25208         (Build_Library): New name for Build_Archive, now only for library
25209         project
25210         (Check_Archive_Builder): New procedure
25211         (Create_Global_Archive_Dependency_File): New procedure
25212         (Gprmake): Call Build_Global_Archive before linking
25213         * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
25214         throughout.
25215         (Scan_Arg): Display the Copyright notice when -v is used
25216
25217         * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
25218         for gnatls.
25219
25220         * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
25221         COMPILE.
25222         Add new GNAT LIST qualifier /FILES=
25223         Added qualifier /DIRECTORY= to GNAT METRIC
25224         Added qualifier /FILES= to GNAT METRIC
25225         Added qualifier /FILES to GNAT PRETTY
25226
25227         * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
25228         to take into account both versions of the switch.
25229
25230         * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
25231         always be the last switch to the gcc driver. Disable switch storing so
25232         that switches automatically added by the gcc driver are not put in the
25233         ALI file.
25234
25235         * prj.adb (Project_Empty): Take into account changes in components of
25236         Project_Data.
25237
25238         * prj.ads (Languages_Processed): New enumaration value All_Languages.
25239
25240         * prj.ads (Project_Data): Remove component Lib_Elaboration: never
25241         used. Split Boolean component Ada_Sources_Present in two Boolean
25242         components Ada_Sources_Present and Other_Sources_Present.
25243         Minor reformatting
25244
25245         * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
25246         instead of Sources_Present.
25247         (Set_Ada_Paths.Add.Recursive_Add): Ditto
25248
25249         * prj-nmsc.adb: Minor reformatting
25250         (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
25251         (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
25252         Check_Ada_Naming_Scheme.
25253         Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
25254         throughout.
25255
25256         * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
25257         In_Limited.
25258         Make sure that all cycles where there is at least one "limited with"
25259         are detected.
25260         (Parse_Single_Project): New Boolean parameter In_Limited
25261
25262         * prj-proc.adb (Recursive_Check): When Process_Languages is
25263         All_Languages, call first Prj.Nmsc.Ada_Check, then
25264         Prj.Nmsc.Other_Languages_Check.
25265
25266         * prj-proc.adb (Process): Use Ada_Sources_Present or
25267         Other_Sources_Present (instead of Sources_Present) depending on
25268         Process_Languages.
25269
25270         * lang-specs.h: Keep -g and -m switches in the same order, and as the
25271         last switches.
25272
25273         * lib.adb (Switch_Storing_Enabled): New global Boolean flag
25274         (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
25275         False.
25276         (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
25277         False.
25278
25279         * lib.ads (Disable_Switch_Storing): New procedure.
25280
25281         * make.adb: Modifications to reduce nesting level of this package.
25282         (Check_Standard_Library): New procedure
25283         (Gnatmake.Check_Mains): New procedure
25284         (Gnatmake.Create_Binder_Mapping_File): New procedure
25285         (Compile_Sources.Compile): Add switch -gnatez as the last option
25286         (Display): Never display -gnatez
25287
25288         * Makefile.generic:
25289         When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
25290
25291         * gnatcmd.adb (Check_Project): New function
25292         (Process_Link): New procedure to reduce nesting depth
25293         (Check_Files): New procedure to reduce the nesting depth.
25294         For GNAT METRIC, include the inherited sources in extending projects.
25295         (GNATCmd): When GNAT LS is invoked with a project file and no files,
25296         add the list of files from the sources of the project file. If this list
25297         is too long, put it in a temp text files and use switch -files=
25298         (Delete_Temp_Config_Files): Delete the temp text file that contains
25299         a list of source for gnatpp or gnatmetric, if one has been created.
25300         (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
25301         in the project file is too large, create a temporary text file that
25302         list them and pass it to the tool with "-files=<temp text file>".
25303         (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
25304
25305         * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
25306         generated file is in not in Ada.
25307
25308         * gnatls.adb: Remove all parameters And_Save that are no longer used.
25309         (Scan_Ls_Arg): Add processing for -files=
25310         (Usage): Add line for -files=
25311
25312         * g-os_lib.adb (On_Windows): New global constant Boolean flag
25313         (Normalize_Pathname): When on Windows and the path starts with a
25314         directory separator, make sure that the resulting path will start with
25315         a drive letter.
25316
25317         * clean.adb (Clean_Archive): New procedure
25318         (Clean_Project): When there is non-Ada code, delete the global archive,
25319         the archive dependency files, the object files and their dependency
25320         files, if they exist.
25321         (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
25322
25323 2004-06-25  Thomas Quinot  <quinot@act-europe.fr>
25324
25325         * sinfo.ads: Fix typo in comment.
25326
25327         * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
25328         the TSS for remote access-to-subprogram types, since these TSS are
25329         always present once the type has been analyzed.
25330         (RAS_E_Dereference): Same.
25331
25332         * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
25333         reference raises Bad_Attribute, mark the reference as analyzed so the
25334         node (and any children resulting from rewrites that could have occurred
25335         during the analysis that ultimately failed) is not analyzed again.
25336
25337         * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
25338
25339         * exp_dist.adb: Minor comment fix.
25340
25341         * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
25342         type is an anonymous access type, no unchecked deallocation of the
25343         allocated object can occur. If the object is controlled, attach it with
25344         a count of 1. This allows attachment to the Global_Final_List, if
25345         no other relevant list is available.
25346         (Get_Allocator_Final_List): For an anonymous access type that is
25347         the type of a discriminant or record component, the corresponding
25348         finalisation list is the one of the scope of the type.
25349
25350 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
25351
25352         * sem_ch3.adb (Replace_Type): When computing the signature of an
25353         inherited subprogram, use the first subtype if the derived type
25354         declaration has no constraint.
25355
25356         * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
25357         before applying previous optimization. Minor code cleanup.
25358
25359         * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
25360         placed at the beginning of an unpacked record without explicit
25361         alignment, a slice of it will be aligned and does not need a copy when
25362         used as an actual.
25363
25364 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
25365
25366         PR ada/15591
25367         PR ada/15592
25368         * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
25369         reference is written with expressions mimicking parameters.
25370
25371 2004-06-25  Hristian Kirtchev  <kirtchev@gnat.com>
25372
25373         PR ada/15589
25374         * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
25375         STEP 2a. The constraints of a full type declaration of a derived record
25376         type are checked for conformance with those declared in the
25377         corresponding private extension declaration. The message
25378         "not conformant with previous declaration" is emitted if an error is
25379         detected.
25380
25381 2004-06-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
25382
25383         * g-traceb.ads: Document the need for -E binder switch in the spec.
25384
25385         * g-trasym.ads: Document the need for -E binder switch in the spec.
25386
25387 2004-06-25  Jose Ruiz  <ruiz@act-europe.fr>
25388
25389         * sem_prag.adb: Add handling of pragma Detect_Blocking.
25390
25391         * snames.h, snames.ads, snames.adb: Add entry for pragma
25392         Detect_Blocking.
25393
25394         * s-rident.ads: Change reference to pragma Detect_Blocking.
25395
25396         * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
25397         system.ads.
25398
25399         * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
25400         to indicate whether pragma Detect_Blocking is active.
25401
25402         * par-prag.adb: Add entry for pragma Detect_Blocking.
25403
25404         * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
25405         of not handling WITH.
25406         Note that this replaces the previous update which was incorrect.
25407
25408 2004-06-25  Javier Miranda  <miranda@gnat.com>
25409
25410         * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
25411         use-clauses to have a clean environment.
25412
25413         * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
25414         the installation of the use-clauses to stablish a clean environment in
25415         case of compilation of a separate unit; otherwise the call to
25416         use_one_package is protected by the barrier Applicable_Use.
25417
25418         * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
25419         the installation of the use-clauses to stablish a clean environment in
25420         case of compilation of a separate unit.
25421         (End_Use_Clauses): Minor comment cleanup.
25422
25423 2004-06-25  Sergey Rybin  <rybin@act-europe.fr>
25424
25425         * gnat_ugn.texi: Add description of the gnatpp 'files' switch
25426
25427 2004-06-23  Richard Henderson  <rth@redhat.com>
25428
25429         * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
25430
25431 2004-06-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25432
25433         * decl.c (elaborate_expression, elaborate_expression_1): Arguments
25434         now bool instead of int.
25435         (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
25436         * trans.c (gnu_switch_label_stack): New function.
25437         (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
25438         elaboration of renamed entity returns.
25439         (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
25440         (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
25441         (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
25442         (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
25443         DECL_SIZE_UNIT and simplify variable-sized case.
25444         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
25445         Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
25446         (gnat_stabilize_reference): Add arg to COMPONENT_REF.
25447         (build_unit_elab): Disable for now.
25448         * utils.c (mark_visited): New function.
25449         (pushdecl): Walk tree to call it for global decl.
25450         (update_pointer_to): Update all variants of pointer and ref types.
25451         Add arg to COMPONENT_REF.
25452         (convert): Likewise.
25453         Move check for converting between variants lower down.
25454         * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
25455         (build_allocator): Don't force type of MODIFY_EXPR.
25456         (gnat_mark_addressable, case VAR_DECL): Unconditionally call
25457         put_var_into_stack.
25458
25459 2004-06-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25460
25461         * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
25462         * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
25463         * decl.c (gnat_to_gnu_entity): Also set force_global for imported
25464         subprograms.
25465         * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
25466         all callers changed.
25467         (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
25468         the way that EXIT_STMT finds the loop label.
25469         (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
25470         (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
25471         (add_stmt): Use annotate_with_locus insted of setting directly.
25472         (pos_to_construct): Set TREE_PURPOSE of each entry to index.
25473         (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
25474         * utils.c (gnat_install_builtins): Install __builtin_memcmp.
25475         (build_vms_descriptor): Add extra args to ARRAY_REF.
25476         (convert): Use VIEW_CONVERT_EXPR between aggregate types.
25477         * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
25478         New cases.
25479         (build_binary_op): Don't make explicit CONVERT_EXPR.
25480         Add extra rgs to ARRAY_REF.
25481
25482 2004-06-14  Pascal Obry  <obry@gnat.com>
25483
25484         * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
25485         Windows.  Fix minor typo.
25486
25487         * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
25488         which is now supported on Windows. With this implementation using the
25489         Library Project feature is no different on Windows than on UNIX.
25490
25491 2004-06-14  Vincent Celier  <celier@gnat.com>
25492
25493         * makegpr.adb (Compile_Sources): Nothing to do when there are no
25494         non-Ada sources.
25495
25496         * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
25497
25498         * prj-part.adb (Parse_Single_Project): When a duplicate project name is
25499         found, show the project name and the path of the previously parsed
25500         project file.
25501
25502 2004-06-14  Ed Schonberg  <schonberg@gnat.com>
25503
25504         * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
25505         array, avoid copying the actual before the call.
25506
25507 2004-06-14  Thomas Quinot  <quinot@act-europe.fr>
25508
25509         * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
25510         Instead, allocate memory on worst-case alignment assumptions, and then
25511         return an aligned address within the allocated zone.
25512
25513 2004-06-14  Robert Dewar  <dewar@gnat.com>
25514
25515         * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
25516         elab entities in predefined units in No_Run_Time_Mode.
25517         (Gen_Adainit_C): Same fix
25518         (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
25519         units in No_Run_Time_Mode
25520         (Gen_Elab_Calls_C): Same fix
25521
25522         * symbols-vms-alpha.adb: Minor reformatting
25523
25524         * g-debpoo.ads: Minor reformatting
25525
25526         * lib.adb (In_Same_Extended_Unit): Version working on node id's
25527
25528         * lib.ads (In_Same_Extended_Unit): Version working on node id's
25529
25530         * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
25531         working on nodes.
25532
25533         * make.adb: Minor reformatting
25534
25535         * par-ch12.adb: Minor reformatting
25536
25537         * par-prag.adb: Add dummy entry for pragma Profile_Warnings
25538
25539         * prj-strt.adb: Minor reformatting
25540
25541         * restrict.ads, restrict.adb: Redo handling of profile restrictions to
25542         be more general.
25543
25544         * sem_attr.adb: Minor reformatting
25545
25546         * sem_ch7.adb: Minor reformatting
25547
25548         * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
25549         for type in the same unit as the object declaration.
25550
25551         * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
25552         static string expressions and not just string literals.
25553         Minor reformatting
25554         (Set_Warning): Reset restriction warning flag for restriction pragma
25555         Implement pragma Profile_Warnings
25556         Implement pragma Profile (Restricted)
25557         Give obolescent messages for old restrictions and pragmas
25558
25559         * snames.h, snames.ads, snames.adb: Add new entry for pragma
25560         Profile_Warnings.
25561
25562         * s-rident.ads: Add declarations for restrictions required by profile
25563         Restricted and profile Ravenscar.
25564
25565         * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
25566
25567         * gnat_ugn.texi: Correct some missing entries in the list of GNAT
25568         configuration pragmas.
25569
25570 2004-06-11  Vincent Celier  <celier@gnat.com>
25571
25572         * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
25573         gnatsym, when symbol policy is Restricted.
25574
25575         * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
25576         gnatsym, when symbol policy is Restricted.
25577
25578         * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
25579         read the symbol file.
25580         (Finalize): Fail in symbol policy Restricted if a symbol in the original
25581         symbol file is not in the object files. Do not create a new symbol file
25582         when symbol policy is Restricted.
25583
25584         * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
25585         in Scng.
25586
25587         * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
25588         Restricted.
25589         (Usage): Line for new switch -R
25590
25591         * make.adb (Initialize): When the platform is not VMS, add the
25592         directory where gnatmake is invoked in the front of the path, if
25593         gnatmake is invoked with directory information.  Change the Scan_Args
25594         while loop to a for loop.
25595         (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
25596         if Depth is equal or greater than the proposed depth, there is nothing
25597         to do.
25598         (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
25599         instead of 0.
25600
25601         * prj.ads: Add new symbol policy Restricted.
25602
25603         * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
25604         with the new parameters Check_All_Labels and Case_Location.
25605
25606         * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
25607         (Library_Symbol_File needs to be defined).
25608
25609         * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
25610         and Case_Location If Check_All_Labels is True, check that all values of
25611         the string type are used, and output warning(s) if they are not.
25612
25613         * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
25614         and Case_Location.
25615
25616         * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
25617
25618         * gnat_ugn.texi: Update documentation about the library directory in
25619         Library Projects.
25620
25621         * makegpr.adb (Display_Command): In verbose mode, also display the
25622         value of the CPATH env var, when the compiler is gcc.
25623         (Initialize): Change the Scan_Args while loop to a for loop
25624         (Compile_Individual_Sources): Change directory to object directory
25625         before compilations.
25626
25627         * symbols.ads: New symbol policy Restricted.
25628
25629 2004-06-11  Olivier Hainque  <hainque@act-europe.fr>
25630
25631         * a-except.adb (Raise_After_Setup family): Remove. The responsibility
25632         is now taken care of internally in the Exception_Propagation package
25633         and does not require clients assistance any more.
25634
25635         * a-exexpr.adb (Is_Setup_And_Not_Propagated,
25636         Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
25637         functions. Helpers to maintain a predicate required in the handling of
25638         occurrence transfer between tasks.
25639         This is now handled internally and does not require clients assistance
25640         for the setup/propagate separation anymore.
25641         (Setup_Exception, Propagate_Exception): Simplify the Private_Data
25642         allocation strategy, handle the Setup_And_Not_Propagated predicate and
25643         document.
25644
25645         * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
25646         raise_after_setup, now that everything is handled internally within the
25647         setup/propagation engine.
25648
25649 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
25650
25651         * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
25652         Add additional conditions for the case of an actual being a simple
25653         name or literal. Improve inlining by preventing the generation
25654         of temporaries with a short lifetime (one use).
25655
25656 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
25657
25658         PR ada/15587
25659         * einfo.ads: Minor comment updates for Has_Completion and
25660         E_Constant list of flags.
25661
25662         * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
25663         and constant redeclarations now set the Has_Completion flag of their
25664         defining identifiers.
25665
25666         * sem_ch7.adb (Analyze_Package_Spec): Add procedure
25667         Inspect_Deferred_Constant_Completion.
25668         Used to detect private deferred constants that have not been completed
25669         either by a constant redeclaration or pragma Import. Emits error message
25670         "constant declaration requires initialization expression".
25671
25672         * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
25673         completes a deferred constant.
25674
25675 2004-06-11  Geert Bosch  <bosch@gnat.com>
25676
25677         * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
25678
25679         * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
25680         calculating exponent for scaling denormal numbers.
25681         (Leading_Part): Properly raise Constraint_Error for zero or negative
25682         Adjustment.
25683         (Remainder): Properly raise Constraint_Error for zero divisor.
25684
25685 2004-06-11  Thomas Quinot  <quinot@act-europe.fr>
25686
25687         * sem_util.adb: Minor reformatting.
25688
25689         * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
25690         dereference when accessing the entry parameter record.
25691         (Check_Array_Type): Always check for possible implicit dereference.
25692         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
25693         Abort if a pointer is still present (denoting that an implicit
25694         dereference was left in the tree by the front-end).
25695
25696         * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
25697         dereference when accessing the entry parameter record.
25698         (Check_Array_Type): Always check for possible implicit dereference.
25699         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
25700         Abort if a pointer is still present (denoting that an implicit
25701         dereference was left in the tree by the front-end).
25702
25703 2004-06-11  Emmanuel Briot  <briot@act-europe.fr>
25704
25705         * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
25706         message, like the compiler itself does. Easier to parse the output.
25707
25708         * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
25709
25710         * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
25711         be base names, and not includes directories.
25712
25713 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
25714
25715         * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
25716         so that dependencies are properly taken into account by make.
25717
25718 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
25719
25720         PR ada/15622
25721         * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
25722         exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
25723
25724 2004-06-11  Jerome Guitton  <guitton@act-europe.fr>
25725
25726         * Makefile.in (install-gnatlib): install target-specific run-time files.
25727
25728         * Make-lang.in: Remove obsolete targets.
25729
25730 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
25731
25732         * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
25733         specification, to catch misuses of program unit names.
25734
25735         * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
25736         superfluous conversions in an instance.
25737
25738 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
25739
25740         PR ada/15403
25741         * sem_ch12.adb (Save_References): If operator node has been folded to
25742         enumeration literal, associated_node must be discarded.
25743
25744 2004-06-11  Jose Ruiz  <ruiz@act-europe.fr>
25745
25746         * s-stchop-vxworks.adb: Add required pragma Convention to
25747         Task_Descriptor because it is updated by a C function.
25748
25749 2004-06-08  Arnaud Charlet  <charlet@act-europe.fr>
25750
25751         PR ada/15568
25752         * Makefile.in: Remove target specific SO_OPT on IRIX
25753
25754 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25755
25756         * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
25757         (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
25758         (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
25759         (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
25760         (STMT_STMT, USE_STMT): New statement codes.
25761         (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
25762         * ada-tree.h: Reflect above changes.
25763         (struct tree_loop_id): Deleted.
25764         (union lang_tree_node, struct lang_decl, struct lang_type):
25765         Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
25766         and DECL_LANGUAGE_SPECIFIC to reflect these changes.
25767         (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
25768         (IS_ADA_STMT): New macro.
25769         * decl.c (annotate_decl_with_node): New function.
25770         (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
25771         (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
25772         Call add_stmt_with_node to do needed assignments.
25773         Add call to update setjmp buffer directly, not via EXPR_STMT.
25774         (maybe_variable): Argment GNAT_NODE deleted.
25775         * gigi.h (maybe_variable): Likewise.
25776         (make_transform, add_stmt_with_node, set_block_for_group): New.
25777         (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
25778         (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
25779         (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
25780         (set_lineno, set_lineno_from_sloc): Likewise.
25781         (record_code_position, insert_code_for): Likewise.
25782         (gnat_poplevel): Now returns void.
25783         (end_subprog_body): Now takes argument.
25784         * misc.c (cgraph.h, tree-inline.h): New includes.
25785         (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
25786         (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
25787         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
25788         (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
25789         (gnat_parse_file): Don't set immediate_size_expand.
25790         Call cgraph functions.
25791         (gnat_expand_expr): Remove most cases.
25792         (record_code_position, insert_code_for): Remove from here.
25793         * trans.c (toplev.h, tree-gimple.h): Now included.
25794         (discard_file_names): Deleted.
25795         (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
25796         (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
25797         (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
25798         (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
25799         (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
25800         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
25801         (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
25802         (set_block_for_group, add_stmt_list): Likewise.
25803         (start_stmt_group): Renamed from start_block_stmt.
25804         (end_stmt_group): Likewise, from end_block_stmt.
25805         (build_stmt_group): Likewise, from build_block_stmt, also add arg.
25806         (gigi): Don't set discard_file_names or call set_lineno.
25807         Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
25808         (tree_transform): Deleted, now renamed to be gnat_to_gnu.
25809         Numerous changes throughout to reflect new names and complete
25810         function-at-a-time implementation.
25811         (gnat_expand_stmt): Delete or comment out all cases.
25812         (process_inlined_subprograms): Use add_stmt.
25813         (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
25814         call set_lineno; also remove unneeded block handling.
25815         (process_type): Remove unneeded block handling.
25816         (build_unit_elab): Remove calls to deleted functions.
25817         * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
25818         (tree-dump.h): Likewise.
25819         (struct ada_binding_level): Add field jmpbuf_decl.
25820         (gnat_define_builtin, gnat_install_builtins): New.
25821         (gnat_gimplify_function, gnat_finalize): Likewise.
25822         (gnat_poplevel): No longer return BLOCK, set it instead.
25823         Remove code dealing with nested functions.
25824         (gnat_init_decl_processing): Also set size_type_node.
25825         Call gnat_install_builtins.
25826         (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
25827         (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
25828         Remove special-case for "main".
25829         (end_subprog_body): Add arg and rework for tree-ssa.
25830         (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
25831         Add case for BOOLEAN_TYPE.
25832         * utils2.c (rtl.h): Now include.
25833         (build_call_raise): Test Debug_Flag_NN directly.
25834         (build_call_alloc_dealloc): Don't use local stack allocation for now.
25835         (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
25836         (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
25837
25838 2004-06-07  Robert Dewar  <dewar@gnat.com>
25839
25840         * a-direct.ads, einfo.ads: Minor comment updates
25841
25842         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
25843         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
25844         s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
25845         s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
25846         s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
25847
25848         * s-interr-sigaction.adb: Remove unreferenced variable
25849         (Attached_Interrupts).  Minor reformatting.
25850         Avoid use of variable I (replace by J).
25851
25852         * par-ch10.adb: Fix text of one error message
25853
25854         * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
25855         exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
25856         exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
25857         opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
25858         par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
25859         par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
25860         sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
25861         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
25862         sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
25863         sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
25864         snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
25865         2005 support.
25866
25867 2004-06-07  Doug Rupp  <rupp@gnat.com>
25868
25869         * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
25870
25871         * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
25872
25873         * mlib-tgt-vms-ia64.adb: New file.
25874
25875         * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
25876         Add mlib-tgt-vms-ia64.adb
25877         Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
25878         Move to alpha specific ifeq section.
25879         Add VMS specific versions of symbols.adb
25880         Renaming of 5q vms files.
25881
25882         * 5qsystem.ads renamed to system-vms_64.ads.
25883
25884 2004-06-07  Vincent Celier  <celier@gnat.com>
25885
25886         * a-calend.ads: Add a GNAT Note comment after function Time_Of to
25887         explain that when a time of day corresponding to the non existing hour
25888         on the day switching to DST is specified, Split may return a different
25889         value for Seconds.
25890
25891         * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
25892         to GNAT PRETTY.
25893
25894         * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
25895         (Normalize_Pathname): Only resolve VMS logical names when on VMS.
25896
25897         * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
25898         to False.
25899         If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
25900         the linking options.
25901         (Build_Library.Check_Libs): On VMS, if there is a dependency on
25902         g-trasym.ads, set Gtrasymobj_Needed to True.
25903
25904         * prj-attr.adb: Add new package Metrics for gnatmetric
25905
25906         * prj-nmsc.adb (Record_Other_Sources): Put source file names in
25907         canonical case to take into account files with upper case characters on
25908         Windows.
25909         (Ada_Check): Load the reference symbol file name in the name buffer to
25910         check it, not the symbol file name.
25911
25912         * snames.ads, snames.adb: Add standard name Metrics (name of project
25913         file package for gnatmetric).
25914
25915         * vms_conv.ads: Add Metric to Comment_Type
25916
25917         * vms_conv.adb (Initialize): Add component dor Metric in Command_List
25918
25919         * vms_data.ads: Add qualifiers for GNAT METRIC
25920
25921         * makegpr.adb (Link_Executables): Take into account the switches
25922         specified in package Linker of the main project.
25923
25924 2004-06-07  Thomas Quinot  <quinot@act-europe.fr>
25925
25926         * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
25927         the index of the last element is Units.Last, not Units.Table'Last
25928         (which is usually not a valid index within the actually allocated
25929         storage for the table).
25930
25931         * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
25932         determines whether to generate a call to a checked storage pool
25933         Dereference action.
25934         Generate such a call only for a dereference that either comes from
25935         source, or is the result of rewriting a dereference that comes from
25936         source.
25937
25938 2004-06-07  Romain Berrendonner  <berrendo@act-europe.fr>
25939
25940         * bindgen.adb (Gen_Output_File): Add support for GAP builds.
25941
25942 2004-06-07  Eric Botcazou  <ebotcazou@act-europe.fr>
25943
25944         (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
25945         file level, elaborate the stride for inner dimensions in alignment
25946         units, not bytes.
25947
25948         * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
25949         in a comment.
25950
25951 2004-06-07  Javier Miranda  <miranda@gnat.com>
25952
25953         * exp_ch6.adb: Correct wrong modification in previous patch
25954
25955 2004-06-07  Vasiliy Fofanov  <fofanov@act-europe.fr>
25956
25957         * g-trasym.ads: Corrected comment to properly reflect level of support
25958         on VMS.
25959
25960 2004-06-07  Hristian Kirtchev  <kirtchev@gnat.com>
25961
25962         * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
25963         includes case of a variable referenced on the left hand side of an
25964         assignment, therefore remove redundant code. Variables and prefixes of
25965         indexed or selected components are now marked as referenced on left
25966         hand side. Warnings are now properly emitted when variables or prefixes
25967         are assigned but not read.
25968
25969         * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
25970         left hand side referenced variables. Private access types do not
25971         produce the warning "variable ... is assigned but never read".
25972         Add also additional checks to left hand side referenced variables.
25973         Aliased, renamed objects and access types do not produce the warning
25974         "variable ... is assigned but never read" since other entities may read
25975         the memory location.
25976
25977 2004-06-07  Jerome Guitton  <guitton@act-europe.fr>
25978
25979         * Makefile.in: In the powerpc/vxworks-specific section, restore
25980         EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
25981         by mistake).
25982
25983 2004-06-07  Ed Schonberg  <schonberg@gnat.com>
25984
25985         * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
25986         predefined operators.
25987         Removes spurious type errors from g-trasym-vms.adb.
25988
25989         * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
25990         distinct from the operator appearing in the source, call appropriate
25991         routine to insert conversions when needed, and complete resolution of
25992         node.
25993         (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
25994         interpretations for rewritten right operand.
25995         (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
25996         the other operand is overloaded and the context is a type conversion.
25997
25998 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25999
26000         * ada-tree.def (BLOCK_STMT): Now has two operands.
26001         (BREAK_STMT): New.
26002
26003         * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
26004
26005         * gigi.h: (gnat_poplevel): Now returns a tree.
26006
26007         * trans.c (end_block_stmt): Add arg; all callers changed.
26008         (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
26009         (start_block_stmt): Clear BLOCK_STMT_BLOCK.
26010         (add_stmt): Set TREE_TYPE.
26011         (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
26012         (gnat_expand_stmt, case BREAK_STMT): New case.
26013
26014         * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
26015
26016 2004-06-07  Jose Ruiz  <ruiz@act-europe.fr>
26017
26018         * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
26019         procedure Set_Stack_Size that is not needed.
26020
26021 2004-06-07  Sergey Rybin  <rybin@act-europe.fr>
26022
26023         * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
26024         used for gnatpp input file and for the files upon which it depends
26025
26026 2004-06-07  Ben Brosgol  <brosgol@gnat.com>
26027
26028         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
26029
26030 2004-06-07  Arnaud Charlet  <charlet@act-europe.fr>
26031
26032         * gnatvsn.ads: Bump version numbers appropriately.
26033         Add new build type.
26034
26035 2004-06-07  Pascal Obry  <obry@gnat.com>
26036
26037         * gnat_ugn.texi: Improve comments about imported names and link names
26038         on Windows. Add a note about the requirement to use -k gnatdll's option
26039         when working with a DLL which has stripped stdcall symbols (no @nn
26040         suffix).
26041
26042 2004-05-27  Vincent Celier  <celier@gnat.com>
26043
26044         * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
26045         COMMENTS_LAYOUT=UNTOUCHED
26046
26047         * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to
26048         symbols-vms-alpha.adb
26049
26050 2004-05-27  Thomas Quinot  <quinot@act-europe.fr>
26051
26052         * sem.ads: Clarify documentation on checks suppression.
26053
26054         * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.
26055
26056 2004-05-27  Ed Schonberg  <schonberg@gnat.com>
26057
26058         * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in
26059         the case of multiple derivations.
26060         (Is_Object_Reference): For a selected component, verify that the prefix
26061         is itself an object and not a value.
26062
26063         * sem_ch12.adb (Same_Instantiated_Constant): New name for
26064         Same_Instantiated_Entity.
26065         (Same_Instantiated_Variable): Subsidiary to
26066         Check_Formal_Package_Instance, to recognize actuals for in-out generic
26067         formals that are obtained from a previous formal package.
26068         (Instantiate_Subprogram_Body): Emit proper error when
26069         generating code and the proper body of a stub is missing.
26070
26071         * sem_ch4.adb (Remove_Address_Interpretations): If the operation still
26072         has a universal interpretation, do the disambiguation here.
26073
26074         * exp_ch4.adb (Expand_N_Type_Conversion,
26075         Expand_N_Unchecked_Type_Conversion): Special handling when target type
26076         is Address, to avoid typing anomalies when Address is a visible integer
26077         type.
26078
26079         * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address
26080         to determine whether a subprogram should not be marked Pure, even when
26081         declared in a pure package.
26082
26083 2004-05-27  Jose Ruiz  <ruiz@act-europe.fr>
26084
26085         * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.
26086
26087         * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length
26088         Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.
26089         Update the documentation about the Ravenscar profile, following the
26090         definition found in AI-249.
26091
26092         * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when
26093         setting the Profile (Ravenscar). This must be done in addition to
26094         setting the required restrictions.
26095
26096         * rtsfind.ads: Add the set of operations defined in package
26097         Ada.Interrupts.
26098
26099         * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment
26100         restriction.
26101
26102 2004-05-27  Eric Botcazou  <ebotcazou@act-europe.fr>
26103
26104         lang-specs.h: Always require -c or -S and always redirect to /dev/null
26105         if -gnatc or -gnats is passed.
26106
26107 2004-05-27  Hristian Kirtchev  <kirtchev@gnat.com>
26108
26109         * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as
26110         a significant reference. Warnings are now properly emitted when a
26111         discriminated type is not referenced.
26112
26113         * lib-xref.adb (Generate_Reference): A deferred constant completion,
26114         record representation clause or record type discriminant does not
26115         produce a reference to its corresponding entity. Warnings are now
26116         properly emitted when deferred constants and record types are not
26117         referenced.
26118
26119 2004-05-27  Geert Bosch  <bosch@gnat.com>
26120
26121         * Makefile.in: Use long version of libm routines on ia64 gnu/linux.
26122         Fixes ACATS Annex G tests.
26123
26124 2004-05-27  Robert Dewar  <dewar@gnat.com>
26125
26126         * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not
26127         handling WITH
26128
26129 2004-05-27  Arnaud Charlet  <charlet@act-europe.fr>
26130
26131         * s-interr.adb (Server_Task): Take into account case of early return
26132         from sigwait under e.g. linux.
26133
26134 2004-05-27  Sergey Rybin  <rybin@act-europe.fr>
26135
26136         * gnat_ugn.texi: Add description for the new gnatpp options:
26137          -rnb - replace the original source without creating its backup copy
26138          -c0 - do not format comments
26139
26140 2004-05-24  Geert Bosch  <bosch@gnat.com>
26141
26142         * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi
26143         with 192 bits of precision, sufficient to reduce a double-extended
26144         arguments X with a maximum relative error of T'Machine_Epsilon, for X
26145         in -2.0**32 .. 2.0**32.
26146         (Cos, Sin):  Always reduce arguments of 1/4 Pi or larger, to prevent
26147         reduction by the processor, which only uses a 68-bit approximation of
26148         Pi.
26149         (Tan): Always reduce arguments and compute function either using
26150         the processor's fptan instruction, or by dividing sin and cos as needed.
26151
26152 2004-05-24  Doug Rupp  <rupp@gnat.com>
26153
26154         * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid
26155         gcc error on 32/64 bit VMS.
26156
26157 2004-05-24  Olivier Hainque  <hainque@act-europe.fr>
26158
26159         * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,
26160         since this is what we get for stack overflows although not documented
26161         as such.
26162         Document the issues which may require adjustments to our signal
26163         handlers.
26164
26165 2004-05-24  Ed Schonberg  <schonberg@gnat.com>
26166
26167         * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the
26168         enclosing dynamic scope if the instantiation is within a generic unit.
26169
26170 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
26171
26172         * exp_dbug.ads: Fix typo.
26173
26174         * Makefile.in: s-osinte-linux-ia64.ads was misnamed.
26175         Rename it to its proper name: system-linux-ia64.ads
26176         (stamp-gnatlib1): Remove extra target specific run time files when
26177         setting up the rts directory.
26178
26179 2004-05-24  Javier Miranda  <miranda@gnat.com>
26180
26181         * einfo.ads, einfo.adb (Limited_Views): Removed.
26182         (Limited_View): New attribute that replaces the previous one. It is
26183         now a bona fide package with the limited-view list through the
26184         first_entity and first_private attributes.
26185
26186         * sem_ch10.adb (Install_Private_With_Clauses): Give support to
26187         limited-private-with clause.
26188         (Install_Limited_Withed_Unit): Install the private declarations of a
26189         limited-private-withed package. Update the installation of the shadow
26190         entities according to the new structure (see Build_Limited_Views)
26191         (Build_Limited_Views): Replace the previous implementation of the
26192         limited view by a package entity that references the first shadow
26193         entity plus the first shadow private entity (required for limited-
26194         private-with clause)
26195         (New_Internal_Shadow_Entity): Code cleanup.
26196         (Remove_Limited_With_Clause): Update the implementation to undo the
26197         new work carried out by Build_Limited_Views.
26198         (Build_Chain): Complete documentation.
26199         Replace Ada0Y by Ada 0Y in comments
26200         Minor reformating
26201
26202         * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access
26203         types the level of accessibility depends on the enclosing type
26204         declaration.
26205
26206         * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow
26207         entities. Complete documentation of previous change.
26208
26209 2004-05-24  Robert Dewar  <dewar@gnat.com>
26210
26211         * namet.adb: Minor reformatting
26212         Avoid use of name I (replace by J)
26213         Minor code restructuring
26214
26215         * sem_ch6.adb: Minor reformatting
26216
26217         * lib-writ.adb: Do not set restriction as active if this is a
26218         Restriction_Warning case.
26219
26220         * sem_prag.adb: Reset restriction warning flag if real pragma
26221         restriction encountered.
26222
26223         * s-htable.adb: Minor reformatting
26224         Change rotate count to 3 in Hash (improves hash for small strings)
26225
26226         * 5qsystem.ads: Add comments for type Address (no literals allowed).
26227
26228         * gnat_ugn.texi: Add new section of documentation "Code Generation
26229         Control", which describes the use of -m switches.
26230
26231 2004-05-24  Eric Botcazou  <ebotcazou@act-europe.fr>
26232
26233         trans.c (tree_transform) <N_Identifier>: Do the dereference directly
26234         through the DECL_INITIAL for renamed variables.
26235
26236 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
26237
26238         * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads
26239
26240 2004-05-19  Joel Brobecker  <brobecker@gnat.com>
26241
26242         * exp_dbug.ads: Correct comments concerning handling of overloading,
26243         since we no longer use $ anymore.
26244
26245 2004-05-19  Sergey Rybin  <rybin@act-europe.fr>
26246
26247         * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
26248         ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
26249         with illegal subunits.
26250
26251 2004-05-19  Ed Schonberg  <schonberg@gnat.com>
26252
26253         * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
26254         body with front-end inlining enabled, check whether an inline pragma
26255         appears immediately after the body and applies to it.
26256
26257         * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
26258         enabled and the pragma appears after the body of the subprogram.
26259
26260 2004-05-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26261
26262         Part of function-at-a-time conversion
26263
26264         * misc.c (adjust_decl_rtl): Deleted.
26265         (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
26266         Define.
26267
26268         * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
26269         (add_decl_stmt, add_stmt, block_has_vars): New functions.
26270         (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.
26271
26272         * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
26273         when making a decl.
26274         (gnat_to_gnu_entity): Likewise.
26275         Use add_stmt to update setjmp buffer.
26276         Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
26277         flush_addressof.
26278         No longer call adjust_decl_rtl.
26279         (DECL_INIT_BY_ASSIGN_P): New macro.
26280         (DECL_STMT_VAR): Likewise.
26281
26282         * trans.c (gigi): Call start_block_stmt to make the outermost
26283         BLOCK_STMT.
26284         (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
26285         Call start_block_stmt and end_block_stmt temporarily.
26286         Use gnat_expand_stmt instead of expand_expr_stmt.
26287         (add_decl_stmt): New function.
26288         (tree_transform): Call it.
26289         (add_stmt): Also emit initializing assignment for DECL_STMT if needed.
26290         (end_block_stmt): Set type and NULL_STMT.
26291         (gnat_expand_stmt): Make recursize call instead of calling
26292         expand_expr_stmt.
26293         (gnat_expand_stmt, case DECL_STMT): New case.
26294         (set_lineno_from_sloc): Do nothing if global.
26295         (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
26296         (start_block_stmt, add_stmt, end_block_stmt): New functions.
26297         (build_block_stmt): Call them.
26298         (gnat_to_code): Don't expand NULL_STMT.
26299         (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
26300         args.
26301         (tree_transform): Likewise.
26302         (tree_transform, case N_Null_Statement): Return NULL_STMT.
26303         (gnat_expand_stmt, case NULL_STMT): New case.
26304         (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
26305         IF_STMT_TRUE.
26306
26307         * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
26308         TREE_ADDRESSABLE.
26309
26310         * utils.c (create_var_decl): Do not call expand_decl or
26311         expand_decl_init.
26312         Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
26313         Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
26314         here.
26315         (struct e_stack): Add chain_next to GTY.
26316         (struct binding_level): Deleted.
26317         (struct ada_binding_level): New struct.
26318         (free_block_chain): New.
26319         (global_binding_level, clear_binding_level): Deleted.
26320         (global_bindings_p): Rework to see if no chain.
26321         (kept_level_p, set_block): Deleted.
26322         (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
26323         new data structure and work directly on BLOCK node.
26324         (gnat_poplevel): Similarly.
26325         (get_decls): Look at BLOCK_VARS.
26326         (insert_block): Work directly on BLOCK node.
26327         (block_has_var): New function.
26328         (pushdecl): Rework for new binding structures.
26329         (gnat_init_decl_processing): Rename and rework calls to pushlevel and
26330         poplevel.
26331         (build_subprog_body): Likewise.
26332         (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.
26333
26334         * ada-tree.def (DECL_STMT, NULL_STMT): New codes.
26335
26336         * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
26337         (DECL_STMT_VAR): Likewise.
26338
26339 2004-05-17  Robert Dewar  <dewar@gnat.com>
26340
26341         * restrict.ads, restrict.adb (Process_Restriction_Synonym): New
26342         procedure
26343
26344         * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
26345         of restriction synonyums by using
26346         Restrict.Process_Restriction_Synonyms.
26347
26348         * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym
26349
26350         * s-restri.ads (Tasking_Allowed): Correct missing comment
26351
26352         * s-rident.ads: Add entries for restriction synonyms
26353
26354         * ali.adb: Fix some problems with badly formatted ALI files that can
26355         result in infinite loops.
26356
26357         * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
26358         s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
26359         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
26360         s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
26361         s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
26362         s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
26363         s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
26364         s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
26365         s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
26366         a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
26367         exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
26368         s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
26369         s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
26370         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
26371         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
26372         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
26373         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
26374         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
26375         s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
26376         s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
26377         to Task_Id (minor cleanup).
26378
26379 2004-05-17  Vincent Celier  <celier@gnat.com>
26380
26381         * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
26382         directory separator.
26383
26384         * prj-proc.adb (Recursive_Process): Inherit attribute Languages from
26385         project being extended, if Languages is not declared in extending
26386         project.
26387
26388 2004-05-17  Javier Miranda  <miranda@gnat.com>
26389
26390         * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
26391         limited view of a visible sibling.
26392
26393 2004-05-14  Robert Dewar  <dewar@gnat.com>
26394
26395         * gnat_ugn.texi: Minor change to -gnatS documentation
26396
26397         * sprint.adb: Remove some instances of Assert (False) and for this
26398         purpose replace them by output of a ??? string.
26399
26400         * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
26401         Assert (False).
26402
26403         * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
26404         flag processing. This was suppressing required dependencies in
26405         No_Run_Time mode and is not needed since the binder does not generate
26406         references for things in libgnat anyway.
26407
26408         * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
26409         warning.
26410
26411 2004-05-14  Thomas Quinot  <quinot@act-europe.fr>
26412
26413         * gnat_ugn.texi: Document AIX-specific issue with initialization of
26414         resolver library.
26415
26416         * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
26417         action for the case of an actual parameter in an init proc call.
26418
26419 2004-05-14  Ed Schonberg  <schonberg@gnat.com>
26420
26421         * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
26422         subtype, check visible entities in base type.
26423
26424         * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
26425         actions if the object is a renaming.
26426
26427         * sem_ch12.adb (Same_Instantiated_Entity): Predicate for
26428         Check_Formal_Package_Instance, to determine more precisely when the
26429         formal and the actual denote the same entity.
26430
26431 2004-05-14  Javier Miranda  <miranda@gnat.com>
26432
26433         * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262
26434
26435         * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
26436         corresponding to a private_with must be removed from visibility; it
26437         will be made visible later, just before we analyze the private part of
26438         the package.
26439         (Check_Private_Child_Unit): Allow private_with clauses in public
26440         siblings.
26441         (Install_Siblings): Make visible the private entities of private-withed
26442         siblings.
26443         (Install_Withed_Unit): Do not install the private withed unit if we
26444         are compiling a package declaration and the Private_With_OK flag was
26445         not set by the caller. These declarations will be installed later,
26446         just before we analyze the private part of the package.
26447
26448         * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
26449         during the evaluation of the expression that initializes the object,
26450         decorate it with the expected type to avoid cascade errors.
26451         Code cleanup.
26452
26453         * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
26454         subprogram we have to install the private_with clauses after its
26455         specification has been analyzed (as documented in AI-262.TXT).
26456
26457         * sem_ch8.adb (Has_Private_With): New function. Determines if the
26458         current compilation unit has a private with on a given entity.
26459         (Find_Direct_Name): Detect the Beaujolais problem described in
26460         AI-262.TXT
26461
26462         * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
26463         provides the functionality of the function Is_Ancestor that was
26464         previously available in sem_ch10. It has been renamed to avoid
26465         overloading.
26466
26467         * sprint.adb (Sprint_Node_Actual): Print limited_with clauses
26468
26469 2004-05-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26470
26471         * utils.c (build_vms_descriptor): Use SImode pointers.
26472
26473 2004-05-14  Vasiliy Fofanov  <fofanov@act-europe.fr>
26474
26475         * gnat_ugn.texi: Revised chapter "GNAT and Libraries".
26476
26477 2004-05-14  GNAT Script  <nobody@gnat.com>
26478
26479         * Make-lang.in: Makefile automatically updated
26480
26481 2004-05-14  Arnaud Charlet  <charlet@act-europe.fr>
26482
26483         Renaming of target specific files for clarity
26484
26485         * Makefile.in: Rename GNAT target specific files.
26486
26487         * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
26488         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,
26489         3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,
26490         3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,
26491         3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,
26492         3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,
26493         42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,
26494         4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,
26495         4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,
26496         4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,
26497         4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,
26498         4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,
26499         51osinte.adb, 51osinte.ads, 51system.ads,
26500         52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,
26501         55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,
26502         56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,
26503         56tpopsp.adb, 57system.ads, 58system.ads,
26504         5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,
26505         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
26506         5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,
26507         5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,
26508         5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,
26509         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
26510         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,
26511         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
26512         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
26513         5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,
26514         5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,
26515         5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,
26516         5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,
26517         5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,
26518         5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,
26519         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
26520         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
26521         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
26522         5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,
26523         5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,
26524         5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,
26525         5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,
26526         5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,
26527         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
26528         5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,
26529         5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,
26530         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
26531         5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,
26532         5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
26533         5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,
26534         5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,
26535         5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,
26536         5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,
26537         5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,
26538         5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,
26539         5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,
26540         7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,
26541         7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,
26542         7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,
26543         7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.
26544
26545         * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,
26546         a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,
26547         a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,
26548         a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,
26549         a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,
26550         a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,
26551         a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,
26552         a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,
26553         a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
26554         a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,
26555         g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,
26556         g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,
26557         g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,
26558         g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,
26559         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,
26560         g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
26561         g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,
26562         g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,
26563         interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,
26564         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,
26565         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
26566         mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,
26567         s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,
26568         s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,
26569         s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,
26570         s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,
26571         s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,
26572         s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,
26573         s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,
26574         s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,
26575         s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,
26576         s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,
26577         s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,
26578         s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,
26579         s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,
26580         s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
26581         s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,
26582         s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,
26583         s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,
26584         s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,
26585         s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,
26586         s-osinte-vms.ads, s-osinte-vxworks.adb,
26587         s-osinte-vxworks.ads, s-osprim-mingw.adb,
26588         s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,
26589         s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,
26590         s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,
26591         s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,
26592         s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,
26593         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
26594         s-stchop-vxworks.adb, s-taprop-dummy.adb,
26595         s-taprop-hpux-dce.adb, s-taprop-irix.adb,
26596         s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
26597         s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,
26598         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
26599         s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,
26600         s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,
26601         s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,
26602         s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,
26603         s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,
26604         s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,
26605         s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,
26606         s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,
26607         s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,
26608         s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,
26609         s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,
26610         s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,
26611         s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
26612         s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,
26613         symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,
26614         system-hpux.ads, system-interix.ads, system-irix-n32.ads,
26615         system-irix-o32.ads, system-linux-x86_64.ads,
26616         system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
26617         system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,
26618         system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,
26619         system-unixware.ads, system-vms.ads, system-vms-zcx.ads,
26620         system-vxworks-alpha.ads, system-vxworks-m68k.ads,
26621         system-vxworks-mips.ads, system-vxworks-ppc.ads,
26622         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files
26623         above.
26624
26625 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
26626
26627         * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
26628
26629 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
26630
26631         Merge from tree-ssa-20020619-branch.
26632
26633         * config-lang.in (boot_language, build_by_default): Set
26634         to no.
26635         * utils.c (unchecked_convert): Use OEP_ONLY_CONST.
26636         (max_size): Add static chain op for call_expr.
26637
26638 2004-05-12  Richard Sandiford  <rsandifo@redhat.com>
26639
26640         PR target/15331
26641         * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.
26642
26643 2004-05-11  Roger Sayle  <roger@eyesopen.com>
26644
26645         * utils.c (max_size): Use MIN_EXPR to find the minimum value of a
26646         COND_EXPR.
26647
26648 2004-05-10  Doug Rupp  <rupp@gnat.com>
26649
26650         * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
26651         system.aux_dec.
26652
26653         * s-auxdec.ads: Add Short_Address subtype (moved here from System).
26654
26655         * Makefile.in: [VMS]: Add translation for 5qauxdec.ads.
26656
26657         * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
26658         Fixes undefined symbols in IA64 gnatlib.
26659
26660         * 5vinmaop.adb: Reference s-auxdec for Short_Address.
26661
26662         * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
26663         Short_Address). This will be moved to system.auxdec.
26664
26665 2004-05-10  Thomas Quinot  <quinot@act-europe.fr>
26666
26667         * sem_util.adb: Replace test for presence of a node that is always
26668         present with a call to Discard_Node.
26669
26670         * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
26671         Analyze on the library unit node after generation of distribution stub
26672         constructs.  The call was a no-op because Unit_Node has already been
26673         Analyzed, and the tree fragments for the distribution stubs are
26674         analyzed as they are inserted in Exp_Dist.
26675         Update comment regarding to distribution stubs to reflect that we
26676         do not generate stub in separate files anymore.
26677
26678         * einfo.ads: Clarify the fact that a tagged private type has the
26679         E_Record_Type_With_Private Ekind.
26680
26681         * erroutc.adb: Minor reformatting
26682
26683         * erroutc.ads (Max_Msg_Length): Increase to cover possible larger
26684         values if line length is increased using -gnatyM (noticed during code
26685         reading).
26686
26687         * eval_fat.adb: Minor reformatting
26688         Put spaces around exponentiation operator
26689
26690 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
26691
26692         PR ada/15005
26693         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
26694         has been rewritten as an explicit dereference, retrieve type of
26695         original node to check for possibly unconstrained record type.
26696
26697 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
26698
26699         * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
26700         overriding, use the operation of the parent unconditionally.
26701
26702         * sem_ch4.adb (Remove_Address_Interpretations): Remove address
26703         operation when either operand is a literal, to avoid further
26704         ambiguities.
26705
26706         * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
26707         overridden by a previous explicit declaration, mark the previous entity
26708         as overriding.
26709
26710         * sem_disp.adb (Check_Dispatching_Operation): New predicate
26711         Is_Visibly_Controlled, to determine whether a declaration of a
26712         primitive control operation for a derived type overrides an inherited
26713         one. Add warning if the explicit declaration does not override.
26714
26715 2004-05-10  Vincent Celier  <celier@gnat.com>
26716
26717         * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
26718         some cases when the sources are no longer present.
26719
26720         * make.adb (Collect_Arguments): Fail if an external source, not part
26721         of any project need to be compiled, when switch -x has not been
26722         specified.
26723
26724         * makeusg.adb: Document new switch -x
26725
26726         * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
26727         defaulted to False.
26728
26729         * switch-m.adb (Scan_Make_Switches): New switch -x
26730
26731         * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
26732         gnatmake switch -x.
26733
26734         * gnat_ugn.texi: Document new gnatmake switch -x
26735
26736 2004-05-10  Eric Botcazou  <ebotcazou@act-europe.fr>
26737
26738         * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.
26739
26740         * utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
26741         (process_attributes): Likewise.
26742
26743 2004-05-10  Joel Brobecker  <brobecker@gnat.com>
26744
26745         * s-inmaop.ads: Fix spelling mistake in one of the comments.
26746
26747 2004-05-10  Robert Dewar  <dewar@gnat.com>
26748
26749         * gnat_ugn.texi: Document that for config pragma files, the maximum
26750         line length is always 32767.
26751
26752         * gnat_rm.texi: For pragma Eliminate, note that concatenation of string
26753         literals is now allowed.
26754
26755         * gnat-style.texi: Remove statement about splitting long lines before
26756         an operator rather than after, since we do not follow this rule at all.
26757         Clarify rule (really lack of rule) for spaces around exponentiation
26758
26759         * sem_elim.adb: Allow concatenation of string literals as well as a
26760         single string literal for pragma arguments.
26761
26762         * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function
26763
26764         * a-textio.adb (Terminate_Line): Do not add line feed if nothing
26765         written for append case.
26766
26767         * frontend.adb: Changes to avoid checking max line length in config
26768         pragma files.
26769
26770         * g-os_lib.ads: Minor reformatting
26771
26772         * mlib-utl.adb: Do not define Max_Line_Length locally (definition was
26773         wrong in any case. Instead use standard value. Noticed during code
26774         reading.
26775
26776         * opt.ads (Max_Line_Length): New field, used to implement removal of
26777         limitation on length of lines when scanning config pragma files.
26778
26779         * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
26780         makeutl.ads, makeutl.adb: Minor reformatting
26781
26782         * scn.adb: Do not check line length while scanning config pragma files
26783         Do not check line length while scanning out license information
26784
26785         * scng.adb: Changes to avoid line length checks while parsing config
26786         pragma files.
26787
26788 2004-05-10  GNAT Script  <nobody@gnat.com>
26789
26790         * Make-lang.in: Makefile automatically updated
26791
26792 2004-05-05  Arnaud Charlet  <charlet@act-europe.fr>
26793
26794         * osint.adb (Find_Program_Name): Fix handling of VMS version
26795         number.
26796
26797 2004-05-05  Emmanuel Briot  <briot@act-europe.fr>
26798
26799         * g-os_lib.ads (Invalid_Time): New constant
26800
26801         * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now
26802         return OS_Time instead of time_t to match what is imported by Ada.
26803         Now return -1 if the file doesn't exist, instead of a random value
26804
26805 2004-05-05  Robert Dewar  <dewar@gnat.com>
26806
26807         * usage.adb: Add line for -gnatR?s switch
26808
26809         * sem_ch13.adb, exp_ch2.adb: Minor reformatting
26810
26811         * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size
26812         and for Match (Data_First, Data_last)
26813
26814         * lib-writ.adb (Write_With_Lines): Ensure that correct index number is
26815         written when we are dealing with multi-unit files.
26816
26817 2004-05-05  Jerome Guitton  <guitton@act-europe.fr>
26818
26819         * Makefile.in: Remove unused targets and variables.
26820
26821 2004-05-05  Vincent Celier  <celier@gnat.com>
26822
26823         * switch-m.adb: New gnatmake switch -eI
26824
26825         * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and
26826         of new gnatmake switch -eInnn.
26827
26828         * makegpr.adb: Take into account new parameters Index and Src_Index in
26829         Prj.Util.
26830
26831         * clean.adb: Implement support for multi-unit sources, including new
26832         switch -i.
26833
26834         * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter
26835         Src_Index.
26836
26837         * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0
26838         (Extract_From_Q): New out parameter Index
26839         (Mark, Is_Marked): Subprograms moved to Makeutl
26840         (Switches_Of): New parameter Source_Index
26841         (Add_Switch): New parameter Index
26842         (Check): New parameter Source_Index
26843         (Collect_Arguments): New parameter Source_Index
26844         (Collect_Arguments_And_Compile): New parameter Source_Index
26845         (Compile): New parameter Source_Index
26846         Put subprograms in alphabetical order
26847         Add support for multi-source sources, including in project files.
26848
26849         * makeutl.ads, makeutl.adb (Unit_Index_Of): New function
26850         (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from
26851         Make.
26852
26853         * makeusg.adb: New gnatmake switch -eInnn
26854
26855         * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to
26856         Prj.Util.Value_Of.
26857
26858         * opt.ads (Main_Index): New variable, defaulted to 0.
26859
26860         * osint.ads, osinte.adb (Add_File): New parameter Index
26861         (Current_Source_Index): New function
26862
26863         * prj.adb: Take into account new components Index and Src_Index
26864
26865         * prj.ads (String_Element): New component Index
26866         (Variable_Value): New component Index
26867         (Array_Element): New component Src_Index
26868
26869         * prj-attr.adb: Indicate that optional index may be specified for
26870         attributes Main, Executable, Spec, Body and some of Switches.
26871
26872         * prj-attr.ads (Attribute_Kind): New values for optional indexes
26873         (Attribute_Record): New component Optional_Index
26874
26875         * prj-com.ads (File_Name_Data): New component Index
26876
26877         * prj-dect.adb (Parse_Attribute_Declaration): Process optional index
26878
26879         * prj-env.adb (Put): Output optional index
26880
26881         * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and
26882         attributes Spec and Body.
26883
26884         * prj-nmsc.adb: Process optional indexes
26885
26886         * prj-pp.adb: Ouput "at" for optional indexes
26887
26888         * prj-proc.adb: Take into account optional indexes
26889
26890         * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter
26891         Optional_Index. For string literal,
26892         process optional index when Optional_Index is True.
26893         (Parse_Expresion): New Boolean parameter Optional_Index
26894
26895         * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function
26896         (Set_Source_Index_Of): New procedure
26897
26898         * prj-util.adb (Executable_Of, Value_Of): Take into account optional
26899         index.
26900
26901         * prj-util.ads (Executable_Of): New parameter Index
26902         (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):
26903         New parameter Src_Index, defaulted to 0.
26904
26905 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
26906
26907         PR ada/15257
26908         * sem_ch3.adb (Access_Definition): If this is an access parameter
26909         whose designated type is imported through a limited_with clause, do
26910         not add the enclosing subprogram to the list of private dependents of
26911         the type.
26912
26913 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
26914
26915         PR ada/15258
26916         * sem_ch6.adb (Base_Types_Match): True if one type is imported through
26917         a limited_with clause, and the other is its non-limited view.
26918
26919 2004-05-05  Thomas Quinot  <quinot@act-europe.fr>
26920
26921         * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
26922
26923         * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
26924         exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
26925         Stand.Boolean_Literals to produce references to entities
26926         Standard_False and Standard_True from compile-time computed boolean
26927         values.
26928
26929         * stand.ads (Boolean_Literals): New variable, provides the entity
26930         values for False and True, for use by the expander.
26931
26932 2004-05-05  Doug Rupp  <rupp@gnat.com>
26933
26934         * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype
26935         5vinmaop.adb: Unchecked convert Short_Address vice Address
26936
26937         * adaint.c, raise.c: Caste CRTL function return value
26938         to avoid gcc error on 32/64 bit IVMS.
26939
26940         * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and
26941         target = IA64/VMS.
26942
26943         * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.
26944
26945         * 5qsystem.ads (Address): Declare as Long_Integer
26946         (Short_Address): Declare as 32 bit subtype of Address
26947         Declare  abstract address operations to avoid gratuitous ambiguities.
26948
26949 2004-05-05  Jose Ruiz  <ruiz@act-europe.fr>
26950
26951         * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)
26952         instead of the old Boolean_Entry_Barriers.
26953         Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.
26954
26955 2004-05-05  GNAT Script  <nobody@gnat.com>
26956
26957         * Make-lang.in: Makefile automatically updated
26958
26959 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
26960
26961         * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.
26962
26963 2004-05-03  Olivier Hainque  <hainque@act-europe.fr>
26964
26965         PR ada/15152
26966         * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
26967         alone. Replacing object references by literals is inappropriate in a
26968         so low level context.
26969
26970 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
26971
26972         * a-exexpr.adb: Add comments
26973
26974 2004-05-03  Joel Brobecker  <brobecker@gnat.com>
26975
26976         * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to
26977         declare the Ancestor_Tags array in Type_Specific_Data with a small size
26978         without risking a bounds check error when accessing one of its
26979         components.
26980         (Type_Specific_Data): Define Ancestor_Tags as a small array.
26981         This prevents us from hitting a limitation during the debug info
26982         generation when using stabs.
26983
26984         * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a
26985         small array.
26986         This prevents us from hitting a limitation during the debug info
26987         generation when using stabs.
26988
26989 2004-05-03  Eric Botcazou  <ebotcazou@act-europe.fr>
26990
26991         lang-specs.h: Remove -gnatz* from specs.
26992
26993 2004-05-03  Vincent Celier  <celier@gnat.com>
26994
26995         * gprmake.adb, makegpr.ads, makegpr.adb: New files.
26996
26997         * Make-lang.in, Makefile.in: Add gprmake
26998
26999 2004-05-03  Thomas Quinot  <quinot@act-europe.fr>
27000
27001         * sem_aggr.adb: Fix typo in comment.
27002
27003 2004-05-03  Robert Dewar  <dewar@gnat.com>
27004
27005         * make.adb: Minor reformatting
27006
27007         * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function
27008
27009         * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address
27010         so that it works when address is not a private type.
27011
27012         * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal
27013         properly with rewritten unchecked conversions. This prevents
27014         order-of-elaboration issues that can otherwise arise.
27015         (Minimum_Size): Don't check size of access types under VMS
27016
27017         * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove
27018         interpretations of integer literals as type System.Address.
27019
27020         * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function
27021         (Is_Descendent_Of): New function
27022
27023 2004-05-03  Jose Ruiz  <ruiz@act-europe.fr>
27024
27025         * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
27026         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.
27027         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.
27028
27029         * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead
27030         of the old Max_Entry_Queue_Depth.
27031
27032         * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
27033         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length
27034         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment
27035
27036         * snames.ads: New entry for proper handling of Boolean_Entry_Barriers.
27037         New entry for proper handling of Max_Entry_Queue_Depth.
27038         New entry for proper handling of No_Dynamic_Interrupts.
27039
27040         * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that
27041         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
27042         Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes
27043         the GNAT specific restriction Max_Entry_Queue_Depth.
27044         Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes
27045         the GNAT specific restriction No_Dynamic_Interrupts.
27046
27047         * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers
27048         instead of the old Boolean_Entry_Barriers.
27049         Use the new restriction No_Dynamic_Attachment instead of the old
27050         No_Dynamic_Interrupts.
27051
27052         * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that
27053         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
27054
27055         * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead
27056         of the old Max_Entry_Queue_Depth.
27057
27058 2004-05-03  GNAT Script  <nobody@gnat.com>
27059
27060         * Make-lang.in: Makefile automatically updated
27061
27062 2004-04-29  Ed Schonberg  <schonberg@gnat.com>
27063
27064         * checks.adb (Enable_Range_Check): If the prefix of an index component
27065         is an access to an unconstrained array, perform check unconditionally.
27066
27067 2004-04-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27068
27069         * decl.c (gnat_to_gnu_field): Also call make_packable_type if
27070         Component_Clause.
27071
27072 2004-04-29  Olivier Hainque  <hainque@act-europe.fr>
27073
27074         * init.c (__gnat_install_handler, __gnat_error_handler): Remove
27075         alternate stack setting. There was no support for the tasking cases
27076         and the changes eventually caused a number of side-effect failures in
27077         the non-tasking case too.
27078
27079 2004-04-29  Eric Botcazou  <ebotcazou@act-europe.fr>
27080
27081         lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
27082         -gnats is passed.
27083
27084 2004-04-29  Vincent Celier  <celier@gnat.com>
27085
27086         * make.adb (Gnatmake): Increase max size of argument array for
27087         gnatbind for the potential addition of -F.
27088         If there are Stand-Alone Library projects, invoke gnatbind with -F to
27089         be sure that elaboration flags will be checked.
27090
27091         * switch-c.adb: Correct call to Scan_Pos for -gnateI
27092
27093 2004-04-29  Thomas Quinot  <quinot@act-europe.fr>
27094
27095         * sem_warn.adb (Check_References): Move '<access-variable> may be
27096         null' warning out of under Warn_On_No_Value_Assigned.
27097
27098 2004-04-29  Ed Falis  <falis@gnat.com>
27099
27100         * gnat_ugn.texi: Fixed texi error
27101
27102 2004-04-29  Robert Dewar  <dewar@gnat.com>
27103
27104         * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
27105         abstract operations if they come from predefined files.
27106
27107         * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
27108         Dynamic, not RM).
27109
27110         * s-addope.adb: Correct obvious error in mod function
27111
27112 2004-04-28  Andrew W. Reynolds  <awreynolds@mac.com>
27113
27114         * Makefile.in: Add target pairs for powerpc darwin*
27115         tasking support.
27116
27117         * a-intnam-darwin.ads, s-osinte-darwin.adb,
27118         s-osinte-darwin.ads, system-darwin-ppc.ads: New files.
27119
27120 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
27121
27122         * Makefile.in: Add target macro definitions for s390*-linux*.
27123         * system-linux-s390.ads: New file.
27124         * system-linux-s390x.ads: New file.
27125
27126 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
27127
27128         * gnat_ugn.texi: Correct argument to @setfilename.
27129
27130 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
27131
27132         * a-exexpr.adb (Unwind_Word): New data type.
27133         (Unwind_Exception): Use it as type of Private1 and Private2.
27134
27135         * raise.c (db_action_for): Fix debug printf.
27136
27137 2004-04-27  Ed Schonberg  <schonberg@gnat.com>
27138
27139         * a-wtmoio.ads: Formal type must be a modular type, not a signed
27140         integer type.
27141
27142 2004-04-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27143
27144         * decl.c (gnat_to_gnu_entity, case object): Call
27145         __builtin_update_setjmp_buf.
27146
27147         * gigi.h (update_setjmp_buf): Deleted.
27148         (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.
27149
27150         * misc.c: (update_setjmp_buf): Deleted.
27151
27152         * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue
27153         around block of RTL.
27154
27155         * utils.c (init_gigi_decls): Initialize update_setjmp_buf.
27156
27157 2004-04-26  Thomas Quinot  <quinot@act-europe.fr>
27158
27159         * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local
27160         subprogram for which no pragma All_Calls_Remote applies, store the
27161         address of the real subprogram in the underlying record type, so local
27162         dereferences do not go through the PCS.
27163
27164 2004-04-26  Robert Dewar  <dewar@gnat.com>
27165
27166         * i-c.ads: Add some type qualifications to avoid ambiguities when
27167         compiling with s-auxdec.ads and a non-private address type.
27168
27169 2004-04-26  Arnaud Charlet  <charlet@act-europe.fr>
27170
27171         * Makefile.rtl: Fix error in previous check-in:
27172         Add s-addope.o to non tasking object list (rather than tasking object
27173         list).
27174
27175 2004-04-26  Javier Miranda  <miranda@gnat.com>
27176
27177         * sem_aggr.adb: Fix typo in comments
27178         (Resolve_Aggr_Expr): Propagate the type to the nested aggregate.
27179         Required to check the null-exclusion attribute.
27180
27181         * sem_attr.adb (Resolve_Attribute): Check the accessibility level in
27182         case of anonymous access types in record and array components. For a
27183         component definition the level is the same of the enclosing composite
27184         type.
27185
27186         * sem_ch3.adb (Analyze_Component_Declaration): In case of components
27187         that are anonymous access types the level of accessibility depends on
27188         the enclosing type declaration. In order to have this information, set
27189         the scope of the anonymous access type to the enclosing record type
27190         declaration.
27191         (Array_Type_Declaration): In case of components that are anonymous
27192         access types the level of accessibility depends on the enclosing type
27193         declaration. In order to have this information, set the scope of the
27194         anonymous access type to the enclosing array type declaration.
27195
27196         * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous
27197         access type.
27198
27199         * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that
27200         renaming of anonymous access-to-constant types allowed if and only if
27201         the renamed object is access-to-constant.
27202
27203         * sem_util.adb (Type_Access_Level): In case of anonymous access types
27204         that are component_definition or discriminants of a nonlimited type,
27205         the level is the same as that of the enclosing component type.
27206
27207 2004-04-26  Sergey Rybin  <rybin@act-europe.fr>
27208
27209         * sem_elim.adb: Some minor code reorganization from code reading. Fix
27210         misprint in the function name (File_Name_Match).
27211
27212 2004-04-23  Laurent GUERBY <laurent@guerby.net>
27213
27214         * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
27215         install.
27216
27217 2004-04-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
27218
27219         * Make-lang.in (GNATBIND_OBJS): Add s-addope.o.
27220
27221 2004-04-23  Emmanuel Briot  <briot@act-europe.fr>
27222
27223         * adaint.c (__gnat_try_lock): No longer requires that the parent
27224         directory be writable, the directory itself is enough.
27225         (gnat_is_absolute_path): Change profile, so that the call from
27226         GNAT.OS_Lib can be made more efficient.
27227
27228         * adaint.h (gnat_is_absolute_path): Change profile, so that the call
27229         from GNAT.OS_Lib can be made more efficient.
27230
27231         * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid
27232         one copy of the file name. Found by code reading.
27233
27234 2004-04-23  Vincent Celier  <celier@gnat.com>
27235
27236         * gnat_ugn.texi: Add documentation for gnatmake switch -eL
27237         Correct documentation on gnatmake switches transmitted to the compiler
27238
27239         * ali.ads: Minor comment fix
27240
27241 2004-04-23  Javier Miranda  <miranda@gnat.com>
27242
27243         * sem_ch6.adb: (Confirming Types): Code cleanup
27244
27245         * decl.c (gnat_to_gnu_entity): Give support to anonymous access to
27246         subprogram types: E_Anonymous_Access_Subprogram_Type and
27247         E_Anonymous_Access_Protected_Subprogram_Type.
27248
27249 2004-04-23  Thomas Quinot  <quinot@act-europe.fr>
27250
27251         * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating
27252         whether a pragma All_Calls_Remote applies to the subprogram on which
27253         'Access is taken.
27254         No functional change is introduced by this revision; the new parameter
27255         will be used to allow calls to local RCI subprograms to be optimized
27256         to not use the PCS in the case where no pragma All_Calls_Remote applies,
27257         as is already done in the PolyORB implementation of the DSA.
27258
27259         * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating
27260         whether a pragma All_Calls_Remote applies to the subprogram on which
27261         'Access is taken.
27262         No functional change is introduced by this revision; the new parameter
27263         will be used to allow calls to local RCI subprograms to be optimized
27264         to not use the PCS in the case where no pragma All_Calls_Remote applies,
27265         as is already done in the PolyORB implementation of the DSA.
27266
27267 2004-04-23  Robert Dewar  <dewar@gnat.com>
27268
27269         * Makefile.rtl: Add entry for s-addope.o in run time library list
27270         * Make-lang.in: Add entry for s-addope.o to GNAT1 objects
27271         * s-addope.ads, s-addope.adb: New files.
27272
27273         * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
27274         s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
27275         s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
27276         System.Address to be non-private and signed.
27277
27278         * sem_elim.adb: Minor reformatting (fairly extensive)
27279         Some minor code reorganization from code reading
27280         Add a couple of ??? comments
27281
27282 2004-04-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27283
27284         * trans.c (tree_transform, build_unit_elab): Don't call getdecls.
27285         (tree_transform, case N_If_Statement): Remove non-determinism.
27286
27287         * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.
27288
27289 2004-04-23  Sergey Rybin  <rybin@act-europe.fr>
27290
27291         * gnat_rm.texi: Small fixes in the changes made in the 'pragma
27292         Eliminate' section.
27293
27294         * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is
27295         no longer used as a parameter name for Eliminate pragma).
27296
27297 2004-04-22  Laurent GUERBY <laurent@guerby.net>
27298
27299         PR optimization/14984
27300         PR optimization/14985
27301         * trans.c (gigi): Fix non determinism leading to bootstrap
27302         comparison failures.
27303
27304 2004-04-21  Pascal Obry  <obry@gnat.com>
27305
27306         * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])
27307         passed to spawnvp() to properly handle program pathname with spaces on
27308         Win32.
27309
27310 2004-04-21  Emmanuel Briot  <briot@act-europe.fr>
27311
27312         * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.
27313         (Allocate, Deallocate, Free_Physically): Make sure the tasks are
27314         unlocked in case of exceptions.
27315
27316 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
27317
27318         * gigi.h (get_target_no_dollar_in_label): Remove extern declaration.
27319         This function does not exist anymore.
27320
27321 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
27322
27323         * gnatbind.adb, gnatlink.adb: Update name of imported C symbol.
27324
27325         * link.c: Move variables to the __gnat name space.
27326
27327         * Makefile.in: list link.o explicitly when needed.
27328
27329         * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.
27330
27331 2004-04-21  Javier Miranda  <miranda@gnat.com>
27332
27333         * einfo.adb (Original_Access_Type): New subprogram
27334         (Set_Original_Access_Type): New subprogram
27335         (Write_Field21_Name): Write the name of the new field
27336
27337         * einfo.ads (Original_Access_Type): New field present in access to
27338         subprogram types.
27339         Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and
27340         E_Anonymous_Access_Protected_Subprogram_Type.
27341
27342         * lib-xref.adb (Output_One_Ref): Give support to anonymous access to
27343         subprogram types.
27344
27345         * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding
27346         to anonymous access to subprogram types.
27347
27348         * sem_attr.adb (Resolve_Attribute): Give support to anonymous access
27349         to subprogram types.
27350
27351         * sem_ch3.adb (Access_Definition): Complete decoration of entities
27352         corresponding to anonymous access to subprogram types.
27353         (Analyze_Component_Declaration): Add new actual to the call to
27354         subprogram replace_anonymous_access_to_protected_subprogram.
27355         (Array_Type_Declaration): Add new actual to the call to subprogram
27356         replace_anonymous_access_to_protected_subprogram.
27357         (Process_Discriminants): Add new actual to the call to subprogram
27358         replace_anonymous_access_to_protected_subprogram.
27359         (Replace_Anonymous_Access_To_Protected_Subprogram): New formal.
27360
27361         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
27362         formal.
27363
27364         * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous
27365         access to subprogram types.
27366
27367         * sem_util.adb (Has_Declarations): Addition of package_specification
27368         nodes.
27369
27370 2004-04-21  Ed Schonberg  <schonberg@gnat.com>
27371
27372         * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate
27373         inlined flags to renamed entity only if in current unit.
27374
27375 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
27376
27377         * s-parint.ads: Add DSA implementation marker.
27378
27379         * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the
27380         value of System.Partition_Interface.DSA_Implementation to determine
27381         what version of the distributed systems annex is available (no
27382         implementation, GLADE, or PolyORB).
27383
27384 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
27385
27386         * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.
27387
27388 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27389
27390         * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node
27391         with new type if alias sets differ.
27392         Fixes ACATS c41103b.
27393
27394 2004-04-21  Vincent Celier  <celier@gnat.com>
27395
27396         * prj.ads: Remove FORTRAN as an accepted language: not tested yet.
27397         Add array Lang_Args for the language specific compiling argument
27398         switches.
27399
27400         * gnat_ugn.texi: Explain in more details when a library is rebuilt.
27401
27402 2004-04-21  Sergey Rybin  <rybin@act-europe.fr>
27403
27404         * gnat_rm.texi: Update the descripton of the Eliminate pragma
27405         according to the recent changes in the format of the parameters of the
27406         pragma (replacing Homonym_Number with Source_Location).
27407
27408 2004-04-19  Arnaud Charlet  <charlet@act-europe.fr>
27409
27410         * 5isystem.ads: Removed, unused.
27411
27412         * gnat_rm.texi: Redo 1.13 change.
27413
27414 2004-04-19  Robert Dewar  <dewar@gnat.com>
27415
27416         * s-stoele.ads: Clean up definition of Storage_Offset (the new
27417         definition is cleaner, avoids the kludge of explicit Standard operator
27418         references, and also is consistent with a visible System.Address with
27419         no visible operations.
27420
27421         * s-geveop.adb: Add declarations to avoid assumption of visible
27422         operations on type System.Address (since these might not be available
27423         if Address is a non-private type for which the operations
27424         are made abstract).
27425
27426         * sem_eval.adb: Minor reformatting
27427
27428         * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
27429         s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
27430         reformatting (new function spec format).
27431
27432         * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
27433         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
27434         s-caun64.adb: Add declarations to avoid assumption of visible
27435         operations on type System.Address (since these might not be available
27436         if Address is a non-private type for which the operations are made
27437         abstract).
27438
27439         * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.
27440
27441         * exp_intr.adb: Minor comment update
27442
27443         * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.
27444
27445         * 5omastop.adb: Add declarations to avoid assumption of visible
27446         operations on type System.Address (since these might not be available
27447         if Address is a non-private type for which the operations
27448         are made abstract).
27449
27450 2004-04-19  Vincent Celier  <celier@gnat.com>
27451
27452         * switch-m.adb: (Scan_Make_Switches): Process new switch -eL
27453
27454         * prj-pars.ads (Parse): New Boolean parameter Process_Languages,
27455         defaulted to Ada.
27456
27457         * prj-proc.adb (Process): New Boolean parameter Process_Languages,
27458         defaulted to Ada.
27459         Call Check with Process_Languages.
27460         (Check): New Boolean parameter Process_Languages. Call Recursive_Check
27461         with Process_Languages.
27462         (Recursive_Check): New Boolean parameter Process_Languages. Call
27463         Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
27464         Process_Languages.
27465
27466         * prj-proc.ads (Process): New Boolean parameter Process_Languages,
27467
27468         * prj-util.ads, prj-util.adb (Executable_Of): New Boolean
27469         parameter Ada_Main, defaulted to True.
27470         Check for Ada specific characteristics only when Ada_Main is True.
27471
27472         * opt.ads: (Follow_Links): New Boolean flag for gnatmake
27473
27474         * prj.adb: (Project_Empty): Add new Project_Data components.
27475
27476         * prj.ads: New types and tables for non Ada languages.
27477         (Project_Data): New components Languages, Impl_Suffixes,
27478         First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
27479         Include_Path, Include_Data_Set.
27480
27481         * prj-env.ads, prj-env.adb: Minor reformatting
27482
27483         * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
27484         Put subprograms in alphabetical order
27485
27486         * prj-pars.adb (Parse): New Boolean parameter Process_Languages,
27487         defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
27488         Opt.Follow_Links.
27489
27490         * mlib-prj.adb: Back out modification in last version, as they are
27491         incorrect.
27492         (Build_Library.Check_Libs): Remove useless pragma Warnings (Off)
27493
27494         * make.adb: (Mains): Moved to package Makeutl
27495         (Linker_Opts): Moved to package Makeutl
27496         (Is_External_Assignment): Moved to package Makeutl
27497         (Test_If_Relative_Path): Moved to package Makeutl
27498         (Gnatmake): Move sorting of linker options to function
27499         Makeutl.Linker_Options_Switches.
27500
27501         * makeutl.ads, makeutl.adb: New files.
27502
27503         * Makefile.in: Add makeutl.o to the object files for gnatmake
27504
27505         * makeusg.adb: Add line for new switch -eL.
27506
27507         * gnatls.adb (Image): New function.
27508         (Output_Unit): If in verbose mode, output the list of restrictions
27509         specified by pragmas Restrictions.
27510
27511         * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
27512         Text_IO.
27513
27514         * a-calend.adb (Split): Shift the date by multiple of 56 years, if
27515         needed, to put it in the range 1970 (included) - 2026 (excluded).
27516         (Time_Of): Do not shift Unix_Min_Year (1970).
27517         Shift the date by multiple of 56 years, if needed, to put it in the
27518         range 1970 (included) - 2026 (excluded).
27519
27520         * adaint.h, adaint.c (__gnat_set_executable): New function.
27521
27522 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27523
27524         * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
27525         and pop GC context.
27526         (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
27527         (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
27528         (tree_transform, case N_Procedure_Call_Statement): Build a tree.
27529         (tree_transform, case N_Code_Statement): Likewise.
27530         (gnat_expand_stmt, case LABEL_STMT): Don't look at
27531         LABEL_STMT_FIRST_IN_EH.
27532         (gnat_expand_stmt, case ASM_STMT): New case.
27533
27534         * utils2.c (build_unary_op): Properly set TREE_READONLY of
27535         UNCONSTRAINED_ARRAY_REF.
27536
27537         * utils.c (poplevel): Temporarily push/pop GC context around inline
27538         function expansion.
27539
27540         * decl.c (maybe_variable): Properly set TREE_READONLY of
27541         UNCONSTRAINED_ARRAY_REF.
27542         (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.
27543
27544         * ada-tree.def: (ASM_STMT): New.
27545
27546         * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
27547         (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
27548         ASM_STMT_INPUT): New.
27549         (ASM_STMT_CLOBBER): Likewise.
27550
27551 2004-04-19  Thomas Quinot  <quinot@act-europe.fr>
27552
27553         * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
27554         general rcheck mechanism to raise Program_Error for E.4(18), instead
27555         of a custom raiser in System.Partition_Interface.
27556         Part of general cleanup work before PolyORB integration.
27557
27558         * snames.ads, snames.adb: Add new runtime library entities and names
27559         for PolyORB DSA.
27560
27561         * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
27562         exp_dist.
27563         (Build_Subprogram_Id): New subprogram provided by exp_dist
27564         Code reorganisation in preparation for PolyORB integration.
27565
27566         * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
27567         exp_dist.
27568         (Build_Subprogram_Id): New subprogram provided by exp_dist
27569
27570         * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
27571         actual parameter types for call to dereference of an
27572         access-to-subprogram type.
27573
27574         * rtsfind.ads: Add new runtime library entities and names for PolyORB
27575         DSA.
27576
27577         * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
27578         instead, which has the same behaviour here since we never pass it a
27579         NULL pointer.
27580
27581         * link.c (run_path_option, Solaris case): Use -Wl, as for other
27582         platforms.
27583
27584         * Makefile.in: adjust object file lists for gnatlink and gnatmake
27585         to account for new dependency upon Interfaces.C.Strings + link.o
27586         For x86 FreeBSD, use 86numaux.
27587
27588         * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
27589         from Mlib.Tgt to Mlib.
27590
27591         * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
27592         target-independent.
27593
27594         * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
27595         target-specific versions of this subprogram, now implemented as a
27596         target-independent function in Mlib.
27597
27598         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
27599         5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
27600         (Linker_Library_Path_Option): Remove target-specific versions of this
27601         subprogram, now implemented as a target-independent function in Mlib.
27602
27603         * atree.adb: (Allocate_Initialize_Node): New subprogram.
27604         Factors out node table slots allocation.
27605         (Fix_Parents): New subprogram.
27606         Encapsulate the pattern of fixing up parent pointers for syntactic
27607         children of a rewritten node.
27608         (New_Copy_Tree): Use New_Copy to copy non-entity nodes.
27609         (Rewrite): Use New_Copy when creating saved copy of original node.
27610         (Replace): Use Copy_Node to copy nodes.
27611
27612 2004-04-19  Javier Miranda  <miranda@gnat.com>
27613
27614         * sprint.adb (Sprint_Node_Actual): Give support to the new
27615         Access_To_Subprogram node available in Access_Definition nodes. In
27616         addition, give support to the AI-231 node fields: null-exclusion,
27617         all-present, constant-present.
27618
27619         * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram
27620
27621         * sinfo.ads, sinfo.adb:
27622         New field Access_To_Subprogram_Definition in Access_Definition nodes
27623
27624         * sem_ch6.adb (Process_Formals): Move here the code that creates and
27625         decorates internal subtype declaration corresponding to the
27626         null-excluding formal. This code was previously in Set_Actual_Subtypes.
27627         In addition, carry out some code cleanup on this code. In case of
27628         access to protected subprogram call
27629         Replace_Anonymous_Access_To_Protected_Subprogram.
27630         (Set_Actual_Subtypes): Code cleanup.
27631
27632         * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
27633         Find_Type in case of anonymous access renamings. Add warning in case of
27634         null-excluding attribute used in anonymous access renaming.
27635
27636         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
27637         subprogram
27638
27639         * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
27640         subprogram.
27641         (Access_Definition): In case of anonymous access to subprograms call
27642         the corresponding semantic routine to decorate the node.
27643         (Access_Subprogram_Declaration): Addition of some comments indicating
27644         some code that probably should be added here. Detected by comparison
27645         with the access_definition subprogram.
27646         (Analyze_Component_Declaration): In case of access to protected
27647         subprogram call Replace_Anonymous_Access_To_Protected.
27648         (Array_Type_Declaration): In case of access to protected subprogram call
27649         Replace_Anonymous_Access_To_Protected_Subprogram.
27650         (Process_Discriminants): In case of access to protected subprogram call
27651         Replace_Anonymous_Access_To_Protected_Subprogram.
27652
27653         * par.adb (P_Access_Definition): New formal that indicates if the
27654         null-exclusion part was present.
27655         (P_Access_Type_Definition): New formal that indicates if the caller has
27656         already parsed the null-excluding part.
27657
27658         * par-ch3.adb (P_Subtype_Declaration): Code cleanup.
27659         (P_Identifier_Declarations): Code cleanup and give support to renamings
27660         of anonymous access to subprogram types.
27661         (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
27662         (P_Array_Type_Definition): Give support to AI-254.
27663         (P_Component_Items): Give support to AI-254.
27664         (P_Access_Definition): New formal that indicates if the header was
27665         already parsed by the caller.
27666         (P_Access_Type_Definition): New formal that indicates if the caller has
27667         already parsed the null-excluding part.
27668
27669         * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
27670         call to P_Access_Definition.
27671
27672 2004-04-19  Geert Bosch  <bosch@gnat.com>
27673
27674         * checks.adb (Apply_Float_Conversion_Check): New procedure to implement
27675         the delicate semantics of floating-point to integer conversion.
27676         (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.
27677
27678         * eval_fat.adb (Machine_Mantissa): Moved to spec.
27679         (Machine_Radix): New function.
27680
27681         * eval_fat.ads (Machine_Mantissa): Moved from body for use in
27682         conversion checks.
27683         (Machine_Radix): New function also for use in conversion checks.
27684
27685 2004-04-19  Ed Schonberg  <schonberg@gnat.com>
27686
27687         * par-prag.adb (Source_File_Name_Project): Fix typo in error message.
27688
27689         * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
27690         to decorate the access-to-protected subprogram and the equivalent type.
27691
27692         * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
27693         to anonymous access to subprogram types.
27694
27695         * exp_ch4.adb (Expand_N_In): Preserve Static flag before
27696         constant-folding, for legality checks in contexts that require an RM
27697         static expression.
27698
27699         * exp_ch6.adb (Expand_N_Function_Call): If call may generate large
27700         temporary but stack checking is not enabled, increment serial number
27701         to so that symbol generation is consistent with and without stack
27702         checking.
27703
27704         * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
27705         independent on whether stack checking is enabled, caller must check
27706         the corresponding flag.
27707
27708         * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
27709         range checks.
27710         (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
27711         parent if it has discriminants.
27712         (Build_Derived_Private_Type): Constructed full view does
27713         not come from source.
27714         (Process_Discriminants): Default discriminants on a tagged type are
27715         legal if this is the internal completion of a private untagged
27716         derivation.
27717
27718         * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
27719         no constraint checks, because it corresponds to an existing object.
27720
27721         * sem_prag.adb (Process_Convention): Pragma applies
27722         only to subprograms in the same declarative part, i.e. the same unit,
27723         not the same scope.
27724
27725         * sem_res.adb (Valid_Conversion): In an instance or inlined body,
27726         ignore type mismatch on a numeric conversion if expression comes from
27727         expansion.
27728
27729 2004-04-19  Sergey Rybin  <rybin@act-europe.fr>
27730
27731         * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
27732         Homonym_Number parameter, add processing for Source_Location parameter
27733         corresponding.
27734         (Check_Eliminated): Remove the check for homonym numbers, add the check
27735         for source location traces.
27736
27737         * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
27738         with Arg_Source_Location corresponding to the changes in the format of
27739         the pragma.
27740
27741         * sem_prag.adb: (Analyze_Pragma): Changes in the processing of
27742         Eliminate pragma corresponding to the changes in the format of the
27743         pragma: Homonym_Number is replaced with Source_Location, two ways of
27744         distinguishing homonyms are mutially-exclusive.
27745
27746 2004-04-19  Joel Brobecker  <brobecker@gnat.com>
27747
27748         * get_targ.ads (Get_No_Dollar_In_Label): Remove.
27749
27750         * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
27751         No_Dollar_In_Label, no longer necessary, as it is always True.
27752         (Strip_Suffixes): Likewise.
27753
27754 2004-04-19  Gary Dismukes  <dismukes@gnat.com>
27755
27756         * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
27757         modulus for compatibility with size clause on targets with 16-bit
27758         Integer.
27759
27760         * layout.adb (Discrimify): In the case of private types, set Vtyp to
27761         full type to fix type mismatches on calls to size functions for
27762         discriminant-dependent array components.
27763
27764 2004-04-19  Jerome Guitton  <guitton@act-europe.fr>
27765
27766         * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
27767         lib.
27768
27769 2004-04-19  Pascal Obry  <obry@gnat.com>
27770
27771         * mdll-utl.adb (Locate): New version is idempotent.
27772
27773 2004-04-17  Laurent Guerby <laurent@guerby.net>
27774
27775         PR ada/14988 (partial)
27776         * impunit.adb: Fix typo.
27777
27778 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
27779
27780         * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,
27781         and install-rts-cert targets.  Remove all gnatlib and gnattools
27782         targets and all other rts-* targets (moved to libada).  Remove (now)
27783         unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND,
27784         TRACE, GNATLIBFLAGS, GNATLIBCFLAGS.
27785
27786 2004-04-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27787
27788         * trans.c (tree_transform): Shortcut returning error_mark_node for
27789         statements in annotate_only_mode.
27790         (tree_transform, case N_Label, case N_Return_Statement,
27791         N_Goto_Statement): Make statement tree instead of generating code.
27792         (tree_transform, case N_Assignment_Statement): No longer check
27793         type_annotate_only.
27794         (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
27795         RETURN_STMT): New.
27796         (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
27797         New fcns.
27798         (gnat_to_gnu): Collect any RTL generated and deal with it.
27799         (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
27800         (tree_transform case N_If_Statement): Rewrite to make IF_STMT.
27801         (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.
27802
27803         * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.
27804
27805         * ada-tree.def (EXPR_STMT): Fix typo in name.
27806         (BLOCK_STMT, IF_STMT): New nodes.
27807
27808         * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
27809         LABEL_STMT_FIRST_IN_EH): New macros.
27810         (RETURN_STMT_EXPR): Likewise.
27811
27812         * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
27813         IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.
27814
27815 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
27816
27817         * atree.ads: Correct documentation on extended nodes.
27818
27819         * link.c: Set run_path_option for FreeBSD.
27820
27821 2004-04-08  Vincent Celier  <celier@gnat.com>
27822
27823         * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
27824         one of the ALI file, do not link with DEC lib.
27825
27826         * par.adb Remove the last two characters ("%s" or "%b") when checking
27827         if a language defined unit may be recompiled.
27828
27829 2004-04-08  Ed Schonberg  <schonberg@gnat.com>
27830
27831         * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
27832         removal of abstract operation leaves no possible interpretation for
27833         expression.
27834
27835         * sem_eval.adb (Eval_Qualified_Expression): Use
27836         Set_Raises_Constraint_Error on node when needed, so that it does not
27837         get optimized away by subsequent optimizations.
27838
27839         * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
27840         operands even when they are not wrapped in a type conversion.
27841
27842 2004-04-08  Olivier Hainque  <hainque@act-europe.fr>
27843
27844         * sem_prag.adb (Set_Exported): Warn about making static as result of
27845         export only when the export is coming from source. This may be not
27846         be true e.g. on VMS where we expand export pragmas for exception codes
27847         together with imported or exported exceptions, and we don't want the
27848         user to be warned about something he didn't write.
27849
27850 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
27851
27852         * sem_util.adb (Note_Possible_Modification): Reorganize to remove code
27853         duplication between normal entities and those declared as renamings.
27854         No functional change.
27855
27856         * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
27857         inline functions returning an unconstrained result.
27858
27859 2004-04-08  Eric Botcazou  <ebotcazou@act-europe.fr>
27860
27861         * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
27862         conform to what other front-ends do.
27863
27864 2004-04-08  Doug Rupp  <rupp@gnat.com>
27865
27866         * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
27867         libraries.
27868
27869 2004-04-06  Pascal Obry  <obry@gnat.com>
27870
27871         * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32.
27872
27873         * osint.adb (Program_Name): Do not look past a directory separator.
27874
27875 2004-04-06  Thomas Quinot  <quinot@act-europe.fr>
27876
27877         * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists).
27878
27879         * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of
27880         requirement for preserving a copy of the original assignment node.
27881
27882         * sinfo.ads: Update comment (Original_Tree -> Original_Node).
27883
27884 2004-04-06  Olivier Hainque  <hainque@act-europe.fr>
27885
27886         (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits
27887         when supported.
27888
27889 2004-04-06  Ed Schonberg  <schonberg@gnat.com>
27890
27891         * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to
27892         operator calls in functional notation, and apply
27893         Universal_Interpretation to operands, not to their type.
27894
27895 2004-04-06  Robert Dewar  <dewar@gnat.com>
27896
27897         * 5wdirval.adb: Minor reformatting
27898
27899 2004-04-06  Ed Falis  <falis@gnat.com>
27900
27901         * gnat_rm.texi: Improve a reference to the GCC manual
27902
27903 2004-04-05  Vincent Celier  <celier@gnat.com>
27904
27905         * adaint.h, adaint.c: Add function __gnat_named_file_length
27906
27907         * impunit.adb: Add Ada.Directories to the list
27908
27909         * Makefile.in: Add VMS and Windows versions of
27910         Ada.Directories.Validity package body.
27911
27912         * Makefile.rtl: Add a-direct and a-dirval
27913
27914         * mlib-tgt.ads: Minor comment update.
27915
27916         * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
27917         a-direct.ads, a-direct.adb: New files.
27918
27919 2004-04-05  Vincent Celier  <celier@gnat.com>
27920
27921         PR ada/13620
27922         * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
27923         just to the compiler.
27924
27925 2004-04-05  Robert Dewar  <dewar@gnat.com>
27926
27927         * a-except.adb (Exception_Name_Simple): Make sure lower bound of
27928         returned string is 1.
27929
27930         * ali-util.adb: Use proper specific form for Warnings (Off, entity)
27931
27932         * eval_fat.ads: Minor reformatting
27933
27934         * g-curexc.ads: Document that lower bound of returned string values
27935         is always one.
27936
27937         * gnatlink.adb: Add ??? comment for previous change
27938         (need to document why this is VMS specific)
27939
27940         * s-stoele.ads: Minor reformatting
27941
27942         * tbuild.ads: Minor reformatting throughout (new function specs)
27943
27944         * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
27945         after WITH.
27946
27947         * scng.adb: Minor reformatting
27948
27949 2004-04-05  Geert Bosch  <bosch@gnat.com>
27950
27951         * eval_fat.adb (Machine): Remove unnecessary suppression of warning.
27952         (Leading_Part): Still perform truncation to machine number if the
27953         specified radix_digits is greater or equal to machine_mantissa.
27954
27955 2004-04-05  Javier Miranda  <miranda@gnat.com>
27956
27957         * par-ch3.adb: Complete documentation of previous change
27958         Correct wrong syntax documentation of the OBJECT_DECLARATION rule
27959         (aliased must appear before constant).
27960
27961         * par-ch4.adb: Complete documentation of previous change.
27962
27963         * par-ch6.adb: Complete documentation of previous change.
27964
27965         * sinfo.ads: Fix typo in commment.
27966
27967 2004-04-05  Ed Schonberg  <schonberg@gnat.com>
27968
27969         * sem_ch3.adb (Inherit_Components): If derived type is private and has
27970         stored discriminants, use its discriminants to constrain parent type,
27971         as is done for non-private derived record types.
27972
27973         * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
27974         Ada 2005 AI-310: an abstract non-dispatching operation is not a
27975         candidate interpretation in an overloaded call.
27976
27977         * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
27978         expression is Null and target type is not an access type (e.g. a
27979         non-private address type).
27980
27981 2004-04-05  Thomas Quinot  <quinot@act-europe.fr>
27982
27983         * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
27984         statement whose right-hand side is an inlined call, save a copy of the
27985         original assignment subtree to preserve enough consistency for
27986         Analyze_Assignment to proceed.
27987
27988         * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
27989         complete assignment subtree which is now unnecessary, as the expansion
27990         of inlined call has been improved to preserve a consistent assignment
27991         tree.  Note_Possible_Modification must be called only
27992         after checks have been applied, or else unnecessary checks will
27993         be generated.
27994
27995         * sem_util.adb (Note_Possible_Modification): Reorganise the handling
27996         of explicit dereferences that do not Come_From_Source:
27997          - be selective on cases where we must go back to the dereferenced
27998            pointer (an assignment to an implicit dereference must not be
27999            recorded as modifying the pointer);
28000          - do not rely on Original_Node being present (Analyze_Assignment
28001            calls Note_Possible_Modification on a copied tree).
28002
28003         * sem_warn.adb (Check_References): When an unset reference to a pointer
28004         that is never assigned is encountered, prefer '<pointer> may be null'
28005         warning over '<pointer> is never assigned a value'.
28006
28007 2004-04-05  Ramon Fernandez  <fernandez@gnat.com>
28008
28009         * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
28010         the ABI.
28011
28012 2004-04-05  Olivier Hainque  <hainque@act-europe.fr>
28013
28014         * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
28015         libexc. We currently don't reference anything in this library and
28016         linking it in triggers linker warnings we don't want to see.
28017
28018         * init.c: Update comments.
28019
28020 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28021
28022         * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
28023         * utils.c (create_field_decl): Likewise.
28024         * utils2.c (build_unary_op, gnat_build_constructor): Likewise.
28025
28026 2004-04-02  Arnaud Charlet  <charlet@act-europe.fr>
28027
28028         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.
28029         Replace ifinfo by ifnottex, to make makeinfo --html happy again.
28030         Add info directory entry and category.
28031
28032 2004-04-02  Jan Hubicka  <jh@suse.cz>
28033
28034         * utils.c: Include function.h
28035         (end_subprog_body): Clear DECL_STRUCT_FUNCTION.
28036
28037 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
28038
28039         PR ada/14150
28040         * Make-lang.in: Clean up generation of documentation
28041
28042         * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version
28043
28044         * xgnatug.adb: Removed, replaced by xgnatugn.adb
28045
28046         * xgnatugn.adb: Replaces xgnatug.adb
28047
28048         * gnat_ug.texi: Removed, replaced by gnat_ugn.texi
28049
28050         * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version
28051
28052         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
28053         gnat_ug_wnt.texi: Removed.
28054
28055 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
28056
28057         * utils2.c: Update copyright notice.
28058
28059 2004-04-01  Robert Dewar  <dewar@gnat.com>
28060
28061         * checks.adb: Minor reformatting throughout
28062         Note that prev checkin added RM reference to alignment warning
28063
28064 2004-04-01  Ed Schonberg  <schonberg@gnat.com>
28065
28066         * exp_aggr.adb (Get_Component_Val): Treat a string literal as
28067         non-static when building aggregate for bit-packed array.
28068
28069         * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a
28070         function call that is itself the actual in a procedure call, build
28071         temporary for it.
28072
28073         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is
28074         a string literal, create a temporary for it, constant folding only
28075         handles scalars here.
28076
28077 2004-04-01  Vincent Celier  <celier@gnat.com>
28078
28079         * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC,
28080         Error_Msg_SP): New empty procedures to instantiate the Scanner.
28081         (Style, Scanner): Instantiations of Styleg and Scng to be able to scan
28082         tokens.
28083         (Accumulate_Checksum, Initialize_Checksum): Remove procedures.
28084         (Get_File_Checksum): Use the instantiated scanner to scan all the tokens
28085         and get the checksum.
28086
28087         * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is
28088         already in the Q.
28089         Increase the Marking_Label at the end of the Multiple_Main_Loop,
28090         instead of at the beginning.
28091
28092         * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~'
28093         directly.
28094         (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if
28095         on VMS.
28096
28097         * osint.ads (Multi_Unit_Index_Character): New Character global variable
28098
28099         * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character,
28100         not '~' directly.
28101
28102         * par.adb: Remove test on file name to detect language defined units.
28103         Add test on unit name, after parsing, to detect language defined units
28104         that are not compiled with -gnatg (except System.RPC and its children)
28105
28106         * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the
28107         following units without style checking.
28108
28109         * switch-c.adb: Change -gnatC to -gnateI
28110
28111         * usage.adb: Document new switch -gnateInnn
28112
28113         * scng.adb (Accumulate_Token_Checksum): New procedure
28114         (Scan): Call Accumulate_Token_Checksum after each identifier, reserved
28115         word or literal number.
28116         (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral
28117         numbers.
28118
28119 2004-04-01  Thomas Quinot  <quinot@act-europe.fr>
28120
28121         * a-tasatt.adb,
28122         g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb,
28123         switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb,
28124         5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb,
28125         5vtpopde.adb: Add missing 'constant' keywords.
28126
28127 2004-04-01  Javier Miranda  <miranda@gnat.com>
28128
28129         * par-ch4.adb: (P_Allocator): Code cleanup
28130
28131         * sem_ch3.adb (Access_Definition): Properly set the null-excluding
28132         attribute.
28133
28134         * sinfo.ads: Complete documentation of previous change
28135
28136 2004-04-01  Pascal Obry  <obry@gnat.com>
28137
28138         * gnatlink.adb (Process_Binder_File): Remove duplicate linker options
28139         only on VMS.  This special handling was done because an old GNU/ld bug
28140         on Windows which has been fixed.
28141
28142 2004-04-01  GNAT Script  <nobody@gnat.com>
28143
28144         * Make-lang.in: Makefile automatically updated
28145
28146 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28147
28148         * decl.c (gnat_to_gnu_entity, make_type_from_size):
28149         Use TYPE_UNSIGNED, not TREE_UNSIGNED.
28150         * trans.c (tree_transform, convert_with_check): Likewise.
28151         * utils.c (gnat_signed_or_unsigned_type): Likewise.
28152         (build_vms_descriptor, unchecked_convert): Likewise.
28153         * utils2.c (nonbinary_modular_operation): Likewise.
28154
28155 2004-03-29  Javier Miranda  <miranda@gnat.com>
28156
28157         * checks.adb (Null_Exclusion_Static_Checks): New subprogram
28158         (Install_Null_Excluding_Check): Local subprogram that determines whether
28159         an access node requires a runtime access check and if so inserts the
28160         appropriate run-time check.
28161         (Apply_Access_Check): Call Install_Null_Excluding check if required
28162         (Apply_Constraint_Check): Call Install_Null_Excluding check if required
28163
28164         * checks.ads: (Null_Exclusion_Static_Checks): New subprogram
28165
28166         * einfo.ads: Fix typo in comment
28167
28168         * exp_ch3.adb (Build_Assignment): Generate conversion to the
28169         null-excluding type to force the corresponding run-time check.
28170         (Expand_N_Object_Declaration): Generate conversion to the null-excluding
28171         type to force the corresponding run-time check.
28172
28173         * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to
28174         the null-excluding type to force the corresponding run-time check.
28175
28176         * exp_ch6.adb (Expand_Call): Do not generate the run-time check in
28177         case of access types unless they have the null-excluding attribute.
28178
28179         * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing
28180         part.
28181
28182         * exp_util.ads: Fix typo in comment
28183
28184         * par.adb (P_Null_Exclusion): New subprogram
28185         (P_Subtype_Indication): New formal that indicates if the null-excluding
28186         part has been scanned-out and it was present
28187
28188         * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231
28189
28190         * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram
28191         (Aggregate_Constraint_Checks): Generate conversion to the null-excluding
28192         type to force the corresponding run-time check
28193         (Resolve_Aggregate): Propagate the null-excluding attribute to the array
28194         components
28195         (Resolve_Array_Aggregate): Carry out some static checks
28196         (Resolve_Record_Aggregate.Get_Value): Carry out some static check
28197
28198         * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null
28199         attribute must be set only if specified by means of the null-excluding
28200         part. In addition, we must also propagate the access-constant attribute
28201         if present.
28202         (Access_Subprogram_Declaration, Access_Type_Declaration,
28203         Analyze_Component_Declaration, Analyze_Object_Declaration,
28204         Array_Type_Declaration, Process_Discriminants,
28205         Analyze_Subtype_Declaration): Propagate the null-excluding attribute
28206         and carry out some static checks.
28207         (Build_Derived_Access_Type): Set the null-excluding attribute
28208         (Derived_Type_Declaration, Process_Subtype): Carry out some static
28209         checks.
28210
28211         * sem_ch4.adb (Analyze_Allocator): Carry out some static checks
28212
28213         * sem_ch5.adb (Analyze_Assignment): Carry out some static checks
28214
28215         * sem_ch6.adb (Process_Formals): Carry out some static checks.
28216         (Set_Actual_Subtypes): Generate null-excluding subtype if the
28217         null-excluding part was present; it is not required to be done here in
28218         case of anonymous access types.
28219         (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null
28220         value.
28221
28222         * sem_res.adb (Resolve_Actuals): Carry out some static check
28223         (Resolve_Null): Allow null in anonymous access
28224
28225         * sinfo.adb: New subprogram Null_Exclusion_Present
28226         All_Present and Constant_Present available on access_definition nodes
28227
28228         * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,
28229         object_declaration, derived_type_definition, component_definition,
28230         discriminant_specification, access_to_object_definition,
28231         access_function_definition, allocator, access_procedure_definition,
28232         access_definition, parameter_specification, All_Present and
28233         Constant_Present flags available on access_definition nodes.
28234
28235 2004-03-29  Robert Dewar  <dewar@gnat.com>
28236
28237         * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
28238         gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,
28239         opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,
28240         par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,
28241         sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,
28242         sem_prag.adb: Updates to handle multiple units/file
28243
28244         * par.adb: Change test for s-rpc to s-rp for detecting rpc and children
28245
28246         * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,
28247         sem_util.adb: Minor reformatting
28248
28249         * sem_ch12.adb: Add comment for previous change
28250
28251 2004-03-29  Laurent Pautet  <pautet@act-europe.fr>
28252
28253         * osint.adb (Executable_Prefix): Set Exec_Name to the current
28254         executable name when not initialized. Otherwise, use its current value.
28255
28256         * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to
28257         initialize it to another executable name than the current one. This
28258         allows to configure paths for an executable name (gnatmake) different
28259         from the current one (gnatdist).
28260
28261 2004-03-29  Ed Schonberg  <schonberg@gnat.com>
28262
28263         * exp_ch6.adb (Expand_Call): A call to a function declared in the
28264         current unit cannot be inlined if it appears in the body of a withed
28265         unit, to avoid order of elaboration problems in gigi.
28266
28267         * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging
28268         information for protected (wrapper) operation as well, to simplify gdb
28269         use.
28270
28271         * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a
28272         protected body, indicate that the entity for the generated spec comes
28273         from source, to ensure that references are properly generated for it.
28274         (Build_Body_To_Inline): Do not inline a function that returns a
28275         controlled type.
28276
28277         * sem_prag.adb (Process_Convention): If subprogram is overloaded, only
28278         apply convention to homonyms that are declared explicitly.
28279
28280         * sem_res.adb (Make_Call_Into_Operator): If the operation is a function
28281         that renames an equality operator and the operands are overloaded,
28282         resolve them with the declared formal types, before rewriting as an
28283         operator.
28284
28285 2004-03-29  GNAT Script  <nobody@gnat.com>
28286
28287         * Make-lang.in: Makefile automatically updated
28288
28289 2004-03-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
28290
28291         * memtrack.adb: Log realloc calls, which are treated as free followed
28292         by alloc.
28293
28294 2004-03-25  Vincent Celier  <celier@gnat.com>
28295
28296         * prj-makr.adb (Process_Directories): Detect when a file contains
28297         several units. Do not include such files in the config pragmas or
28298         in the naming scheme.
28299
28300         * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.
28301         Resolve links only when not in Trusted_Mode.
28302         (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):
28303         Do not resolve links for the display names.
28304
28305         * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not
28306         resolve links when computing the display names.
28307
28308 2004-03-25  Thomas Quinot  <quinot@act-europe.fr>
28309
28310         * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag
28311         attribute reference does not denote a subtype, it can be any
28312         expression that has a classwide type, potentially after an implicit
28313         dereference.  In particular, the prefix can be a view conversion for
28314         a classwide type (for which Is_Object_Reference holds), but it can
28315         also be a value conversion for an access-to-classwide type. In the
28316         latter case, there is an implicit dereference, and the original node
28317         for the prefix does not verify Is_Object_Reference.
28318
28319         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view
28320         conversion of a discriminant-dependent component of a mutable object
28321         is one itself.
28322
28323 2004-03-25  Ed Schonberg  <schonberg@gnat.com>
28324
28325         * freeze.adb (Freeze_Entity): When an inherited subprogram is
28326         inherited, has convention C, and has unconstrained array parameters,
28327         place the corresponding warning on the derived type declaration rather
28328         than the original subprogram.
28329
28330         * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default
28331         indication on renaming declaration, if formal has a box and actual
28332         is absent.
28333
28334         * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to
28335         determine whether to generate an implicit or explicit reference to
28336         the renamed entity.
28337
28338         * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a
28339         subprogram renaming comes from a defaulted formal subprogram in an
28340         instance.
28341
28342 2004-03-25  Gary Dismukes  <dismukes@gnat.com>
28343
28344         * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default
28345         value expressions to ensure that calls within a component definition
28346         will be checked (since those are evaluated during the record type's
28347         elaboration).
28348
28349 2004-03-25  Arnaud Charlet  <charlet@act-europe.fr>
28350
28351         * s-tpobop.adb: Code clean up:
28352         (Requeue_Call): Extract from PO_Service_Entries to remove duplicated
28353         code.
28354         (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.
28355
28356 2004-03-25  Jose Ruiz  <ruiz@act-europe.fr>
28357
28358         * Makefile.in: Clean up in the ravenscar run time.
28359
28360 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28361
28362         * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value
28363         of No_Strict_Aliasing to build_pointer_type_for_mode.
28364         * utils.c (update_pointer_to): Walk pointer and ref chains.
28365
28366 2004-03-22  Cyrille Comar  <comar@act-europe.fr>
28367
28368         * ali.ads: Fix Comment about Dynamic_Elab.
28369
28370         * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab,
28371         Has_RACW, Is_Generic, etc.)
28372         (Output_Object, Gnatls): Take into account ALI files not attached to
28373         an object.
28374
28375 2004-03-22  Vincent Celier  <celier@gnat.com>
28376
28377         * gprep.adb: Change all String_Access to Name_Id
28378         (Is_ASCII_Letter): new function
28379         (Double_File_Name_Buffer): New procedure
28380         (Preprocess_Infile_Name): New procedure
28381         (Process_Files): New procedure
28382         (Gnatprep): Check if output and input are existing directories.
28383         Call Process_Files to do the real job.
28384
28385 2004-03-22  Robert Dewar  <dewar@gnat.com>
28386
28387         * prj-env.adb, prj-nmsc.ads, prj-proc.ads,
28388         s-stache.ads, s-stache.adb: Comment updates. Minor reformatting.
28389
28390 2004-03-22  Sergey Rybin  <rybin@act-europe.fr>
28391
28392         * scn.adb (Contains): Add check for EOF, is needed for a degenerated
28393         case when the source contains only comments.
28394
28395 2004-03-22  Ed Schonberg  <schonberg@gnat.com>
28396
28397         * sem_ch10.adb (Analyze_Compilation_Unit): When generating a
28398         declaration for a child subprogram body that acts as a spec, indicate
28399         that the entity in the declaration needs debugging information.
28400
28401         * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying
28402         full view if the subtype is created for a constrained record component;
28403         gigi has enough information to construct the record, and there is no
28404         place in the tree for the declaration.
28405
28406         * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without
28407         serial number for the dummy body that is built for analysis, to avoid
28408         inconsistencies in the generation of internal names when compiling
28409         with -gnatN.
28410
28411 2004-03-22  Thomas Quinot  <quinot@act-europe.fr>
28412
28413         * sem_util.adb (Is_Object_Reference): A view conversion denotes an
28414         object.
28415
28416 2004-03-22  GNAT Script  <nobody@gnat.com>
28417
28418         * Make-lang.in: Makefile automatically updated
28419
28420 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28421
28422         * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
28423         * trans.c (tree_transform, emit_index_check): Likewise.
28424         * utils.c (build_template): Likewise.
28425         (max_size, convert): Remove handling of WITH_RECORD_EXPR.
28426         (maybe_unconstrained_array, unchecked_convert): Likewise.
28427         * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
28428         (build_unary_op): Likewise.
28429         (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
28430         (fill_vms_descriptor): Likewise.
28431         (build_call_alloc_dealloc): Likewise.
28432         ALIGN is unsigned.
28433         * gigi.h (build_call_alloc_dealloc): Alignment is unsigned.
28434
28435 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
28436
28437         PR other/14630
28438         * gnat_ug.texi: Add info directory category and entry.
28439         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
28440         gnat_ug_wnt.texi: Regenerate.
28441
28442 2004-03-19  Arnaud Charlet  <charlet@act-europe.fr>
28443
28444         * ada-tree.h: Update copyright notice.
28445         Minor reformatting.
28446
28447 2004-03-19  Olivier Hainque  <hainque@act-europe.fr>
28448
28449         * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions
28450         as regular exception objects and not as mere integers representing the
28451         condition code.  The latter approach required some dynamics to mask off
28452         severity bits, which did not fit well into the GCC table based model.
28453         (gnat_to_gnu_entity, objects): Don't supply an external name for VMS
28454         exception data objects. We don't it and it would conflict with the other
28455         external symbol we have to generate for such exceptions.
28456
28457         * trans.c (tree_transform, case N_Exception_Handler): Remove part of
28458         the special code for VMS exceptions, since these are now represented
28459         as regular exceptions objects.
28460
28461 2004-03-19 Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28462
28463         * decl.c (debug_no_type_hash): Remove.
28464         (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.
28465         * misc.c (LANG_HOOK_HASH_TYPE): Redefine.
28466
28467 2004-03-19  Laurent Guerby <laurent@guerby.net>
28468
28469         * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
28470         aggregate, allows bootstrap from 3.3 on powerpc-darwin.
28471
28472 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28473
28474         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
28475         (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
28476         (TYPE_RM_SIZE_INT): Directly use type.values.
28477         (TREE_LOOP_ID): Clean up check.
28478         * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
28479         TYPE_VALUES, not TYPE_FIELDS.
28480         * trans.c (convert_with_check): Delay access of bounds of basetype
28481         until sure is numeric.
28482
28483 2004-03-18  Arnaud Charlet  <charlet@act-europe.fr>
28484
28485         * 5atpopsp.adb: Remove RTEMS from list of platforms using this file.
28486
28487         Code clean up:
28488         * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,
28489         5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use
28490         Specific.Set instead of direct call to e.g pthread_setspecific.
28491
28492 2004-03-18  Thomas Quinot  <quinot@act-europe.fr>
28493
28494         * adaint.c: Update comments.
28495
28496         * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and
28497         GNATLIB_SHARED for FreeBSD.
28498
28499 2004-03-18  Jose Ruiz  <ruiz@act-europe.fr>
28500
28501         * init.c [VxWorks]: Do not fix the stack size for the environment task.
28502         When needed (stack checking) the stack size is retrieved
28503         from the VxWorks kernel.
28504
28505         * Makefile.in: Flag -nostdinc is required when building the run time
28506         for avoiding looking for files in the base compiler.
28507         Add the VxWorks specific version of the package body for
28508         System.Stack_checking.Operations (5zstchop.adb).
28509
28510         * Make-lang.in: Add the object file for
28511         System.Stack_Checking.Operations.
28512
28513         * Makefile.rtl: Add object file for the package
28514         System.Stack_Checking.Operations.
28515
28516         * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.
28517
28518         * s-stache.ads, s-stache.adb: Move the operations related to stack
28519         checking from this package to package System.Stack_Checking.Operations.
28520         This way, stack checking operations are only linked in the final
28521         executable when using the -fstack-check flag.
28522
28523 2004-03-18  Doug Rupp  <rupp@gnat.com>
28524
28525         * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).
28526         Reorganize ifeq's.
28527
28528         * 5qsystem.ads, 5xcrtl.ads: New files.
28529
28530 2004-03-18  Vincent Celier  <celier@gnat.com>
28531
28532         * prj.adb (Reset): Reset hash table Files_Htable
28533
28534         * prj-env.adb (Source_Paths, Object_Paths): New tables.
28535         (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace
28536         the procedures Add_To_Path_File.
28537         (Set_Ada_Paths): Accumulate source and object dirs in the tables,
28538         making sure that each directory is present only once and, for object
28539         dirs, when a directory already present is added, the duplicate is
28540         removed and the directory is always put as the last in the table.
28541         Write the path files at the end of these accumulations.
28542
28543         * prj-nmsc.adb (Record_Source): Add source file name in hash table
28544         Files_Htable for all sources.
28545
28546         * prj-proc.adb (Process): Remove restrictions between not directly
28547         related extending projects.
28548
28549 2004-03-18  Emmanuel Briot  <briot@act-europe.fr>
28550
28551         * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.
28552         (Find_Sources): Minor speed optimization.
28553
28554         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New
28555         parameter Trusted_Mode.
28556
28557 2004-03-18  Sergey Rybin  <rybin@act-europe.fr>
28558
28559         * scn.adb (Determine_License): Take into account a degenerated case
28560         when the source contains only comments.
28561
28562 2004-03-18  Ed Schonberg  <schonberg@gnat.com>
28563
28564         * sem_warn.adb (Check_References): For a warning on a selected
28565         component that does not come from source, locate an uninitialized
28566         component of the record type to produce a more precise error message.
28567
28568 2004-03-15  Jerome Guitton  <guitton@act-europe.fr>
28569
28570         * 3zsoccon.ads: Fix multicast options.
28571
28572         * s-thread.ads: Move unchecked conversion from ATSD_Access to Address
28573         in the spec.
28574
28575 2004-03-15  Robert Dewar  <dewar@gnat.com>
28576
28577         * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when
28578         pragma used for a private type.
28579
28580         * lib-xref.adb (Generate_Reference): Do not generate warning if
28581         reference is in a different unit from the pragma Unreferenced.
28582
28583         * 5vtpopde.adb: Minor reformatting
28584         Fix casing of To_Task_ID
28585
28586         * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing
28587         flag if we have an unchecked conversion to an access type in the same
28588         unit.
28589
28590 2004-03-15  Geert Bosch  <bosch@gnat.com>
28591
28592         * a-ngcoty.adb (Modulus): In alternate formula for large real or
28593         imaginary parts, use Double precision throughout.
28594
28595         * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only
28596         we want to be able to compile run-time with -gnata for testing, but
28597         this may also be instantiated in user code that is compiled with -gnata.
28598
28599 2004-03-15  Olivier Hainque  <hainque@act-europe.fr>
28600
28601         * s-stalib.ads (Exception_Code): New type, to represent Import/Export
28602         codes. Having a separate type for this is useful to enforce consistency
28603         throughout the various run-time units.
28604         (Exception_Data): Use Exception_Code for Import_Code.
28605
28606         * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of
28607         Natural and Integer in various places.
28608         (Register_VMS_Exception): Use Base_Code_In to compute the exception code
28609         with the severity bits masked off.
28610         (Register_VMS_Exception): Handle the additional exception data pointer
28611         argument.
28612
28613         * raise.c (_GNAT_Exception structure): Remove the handled_by_others
28614         component, now reflected by an exported accessor.
28615         (is_handled_by): New routine to compute whether the propagated
28616         occurrence matches some handler choice specification. Extracted out of
28617         get_action_description_for, and expanded to take care of the VMS
28618         specifities.
28619         (get_action_description_for): Use is_handled_by instead of an explicit
28620         complex condition to decide if the current choice at hand catches the
28621         propagated occurrence.
28622
28623         * raise.h (Exception_Code): New type for C.
28624
28625         * rtsfind.ads (RE_Id, RE_Unit_Table): Add
28626         System.Standard_Library.Exception_Code, to allow references from the
28627         pragma import/export expander.
28628
28629         * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For):
28630         New accessors to allow easy access to GNAT exception data
28631         characteristics.
28632         (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the
28633         redundant Handled_By_Others component, helper for the personality
28634         routine which will now be able to call the appropriate exception data
28635         accessor instead.
28636
28637         * cstand.adb (Create_Standard): Adjust the type of the Import_Code
28638         component of Standard_Exception_Type to be the closest possible to
28639         Exception_Code in System.Standard_Library, that we cannot get at this
28640         point. Expand a ??? comment to notify that this type node should
28641         probably be rewritten later on.
28642
28643         * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the
28644         registration call to include a pointer to the exception object in the
28645         arguments.
28646
28647         * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In
28648         instead of int and explicit bitmasks.
28649
28650 2004-03-15  Vincent Celier  <celier@gnat.com>
28651
28652         * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED
28653         equivalent to /STATIC and /NOSTATIC equivalent to /SHARED.
28654
28655         * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no
28656         longer needed now that it is in the spec of
28657         System.Tasking.Task_Attributes.
28658
28659         * adaint.h, adaint.c: (__gnat_create_output_file): New function
28660
28661         * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of =
28662
28663         * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function.
28664
28665         * make.adb (Gnatmake): Do not check the executable suffix; it is being
28666         taken care of in Scan_Make_Arg.
28667         (Scan_Make_Arg): Add the executable suffix only if the argument
28668         following -o, in canonical case, does not end with the executable
28669         suffix.  When in verbose mode and executable file name does not end
28670         with executable suffix, output the executable name, in canonical case.
28671
28672         * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing
28673         to avoid warnings when instantiating Ada.Task_Attributes.
28674         Minor reformating.
28675
28676         * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries
28677         in the correct order.
28678
28679         * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but
28680         redirect standard output and error to a file for the invocation of the
28681         compiler, then read the file.
28682
28683         * prj-nmsc.adb (Find_Sources): Use the Display_Value for each
28684         directory, instead of the Value.
28685         (Find_Source_Dirs): Remove useless code & comments.
28686
28687 2004-03-15  Ed Schonberg  <schonberg@gnat.com>
28688
28689         * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a
28690         tagged type is inherited, and the parent operation is not frozen yet,
28691         force generation of a freeze node for the inherited operation, so the
28692         corresponding dispatch entry is properly initialized.
28693         (Make_Predefined_Primitive_Specs): Check that return type is Boolean
28694         when looking for user-defined equality operation.
28695
28696         * exp_ch4.adb (Expand_Composite_Equality): Check that return type is
28697         boolean when locating primitive equality of tagged component.
28698
28699         * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a
28700         bit-aligned field and the right-hand side a string literal, introduce
28701         a temporary before expanding assignment into a loop.
28702
28703         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for
28704         priority in full, to ensure that any expanded subepxressions of it are
28705         elaborated in the scope of the init_proc.
28706
28707         * exp_prag.adb (Expand_Pragma_Import): Search for initialization call
28708         after object declaration, skipping over code that may have been
28709         generated for validity checks.
28710
28711         * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown
28712         discriminants, ignore the known discriminants of its full view, if
28713         any, to check legality.
28714
28715         * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained
28716         component if type has unknown discriminants.
28717         (Analyze_Private_Extension_Declaration): Discriminant constraint is
28718         null if type has unknown discriminants.
28719
28720         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference
28721         for end label when present.
28722
28723         * s-fileio.adb (Open): When called with a C_Stream, use given name for
28724         temporary file, rather than an empty string.
28725
28726 2004-03-15  Ed Falis  <falis@gnat.com>
28727
28728         * s-thread.adb: Removed, no longer used.
28729
28730 2004-03-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28731
28732         * decl.c (target.h): Now include.
28733         (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE
28734         in new build_pointer_from_mode calls for non-fat/non-thin pointer.
28735         (validate_size): For POINTER_TYPE, get smallest size permitted on
28736         machine.
28737
28738         * fe.h: Sort Einfo decls and add Set_Mechanism.
28739
28740         * Makefile.in: (LIBGNAT_SRCS): Remove types.h.
28741         (ada/decl.o): Depends on target.h.
28742
28743         * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use
28744         FUNCTION_BOUNDARY; always use TYPE_ALIGN.
28745
28746 2004-03-15  Thomas Quinot  <quinot@act-europe.fr>
28747
28748         * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID.
28749
28750         * exp_ch4.adb (Expand_N_Indexed_Component): Do not call
28751         Insert_Dereference_Action when rewriting an implicit dereference into
28752         an explicit one, this will be taken care of during expansion of the
28753         explicit dereference.
28754         (Expand_N_Slice): Same. Always do the rewriting, even for the case
28755         of non-packed slices, since the dereference action generated by
28756         expansion of the explicit dereference is needed in any case.
28757         (Expand_N_Selected_Component): When rewriting an implicit dereference,
28758         analyze and resolve the rewritten explicit dereference so it is seen
28759         by the expander.
28760         (Insert_Dereference_Action): This procedure is now called only for the
28761         expansion of an N_Explcit_Dereference_Node. Do insert a check even for
28762         dereferences that do not come from source (including explicit
28763         dereferences resulting from rewriting implicit ones), but do not
28764         recursively insert a check for the dereference nodes contained within
28765         the check.
28766         (Insert_Dereference_Action): Clarify and correct comment.
28767
28768 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
28769
28770         PR ada/14131
28771         Move language detection to the top level.
28772         * config-lang.in: Build by default.
28773
28774 2004-03-05  Robert Dewar  <dewar@gnat.com>
28775
28776         * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions
28777
28778         * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,
28779         i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,
28780         5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
28781         5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move
28782         unchecked conversion to spec to avoid warnings.
28783
28784         * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id
28785         to Task_ID
28786
28787         * 7stpopsp.adb: Correct casing in To_Task_ID call
28788
28789         * a-strsea.ads, a-strsea.adb: Minor reformatting
28790
28791         * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing
28792
28793         * errout.ads: Switch for VMS is now NO_STRICT_ALIASING.
28794         Adjust Max_Msg_Length to be clearly large enough.
28795
28796         * fe.h: Define In_Same_Source_Unit
28797
28798         * osint.adb: Add pragma Warnings Off to suppress warnings
28799         * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill
28800         aliasing warnings.
28801
28802         * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing
28803
28804         * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma
28805
28806         * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc.
28807
28808         * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set.
28809
28810         * sem_prag.adb: Implement pragma No_Strict_Aliasing.
28811
28812         * sinfo.ads: Remove obsolete comment on validate unchecked conversion
28813         node. We now do generate them for gcc back end.
28814
28815         * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing
28816         warning.
28817
28818         * sinput-c.adb: Fix bad name in header.
28819         Add pragma Warnings Off to suppress aliasing warning.
28820
28821         * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.
28822
28823         * snames.h, snames.ads, snames.adb: Add entry for pragma
28824         No_Strict_Aliasing.
28825
28826 2004-03-05  Vincent Celier  <celier@gnat.com>
28827
28828         * prj-com.ads: Add hash table Files_Htable to check when a file name
28829         is already a source of another project.
28830
28831         * prj-nmsc.adb (Record_Source): Before recording a new source, check
28832         if its file name is not already a source of another project. Report an
28833         error if it is.
28834
28835         * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no
28836         source file name, call gnatpp with all the sources of the main project.
28837
28838         * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number
28839         of file names.
28840
28841         * vms_data.ads: Correct documentation of new /OPTIMIZE keyword
28842         NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:
28843         /RUNTIME_SYSTEM=, converted to --RTS=
28844         /NOTABS, converted to -notabs
28845
28846 2004-03-05  Pascal Obry  <obry@gnat.com>
28847
28848         * make.adb: Minor reformatting.
28849
28850 2004-03-05  Ed Schonberg  <schonberg@gnat.com>
28851
28852         Part of implemention of AI-262.
28853         * par-ch10.adb (P_Context_Clause): Recognize private with_clauses.
28854
28855         * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New
28856         procedure.
28857
28858         * sem_ch3.adb (Analyze_Component_Declaration): Improve error message
28859         when component type is a partially constrained class-wide subtype.
28860         (Constrain_Discriminated_Type): If parent type has unknown
28861         discriminants, a constraint is illegal, even if full view has
28862         discriminants.
28863         (Build_Derived_Record_Type): Inherit discriminants when deriving a type
28864         with unknown discriminants whose full view is a discriminated record.
28865
28866         * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants
28867         flag, to handle properly derivations of tagged types with unknown
28868         discriminants.
28869         (Analyze_Package_Spec, Analyze_Package_Body): Install
28870         Private_With_Clauses before analyzing private part or body.
28871
28872         * einfo.ads: Indicate that both Has_Unknown_Discriminants and
28873         Has_Discriminants can be true for a given type (documentation).
28874
28875 2004-03-05  Arnaud Charlet  <charlet@act-europe.fr>
28876
28877         * s-restri.ads: Fix license (GPL->GMGPL).
28878
28879         * s-tassta.adb: Minor reformatting.
28880
28881         * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
28882         by calls to Exit_One_ATC_Level, since additional clean up is performed
28883         by this function.
28884
28885         * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
28886         by calls to Exit_One_ATC_Level, since additional clean up is performed
28887         by this function.
28888
28889 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28890
28891         * trans.c: Reflect GCC changes to fix bootstrap problem.
28892         Add warning for suspicious aliasing unchecked conversion.
28893
28894 2004-03-05  GNAT Script  <nobody@gnat.com>
28895
28896         * Make-lang.in: Makefile automatically updated
28897
28898 2004-03-02  Emmanuel Briot  <briot@act-europe.fr>
28899
28900         * ali.adb (Read_Instantiation_Instance): Do not modify the
28901         current_file_num when reading information about instantiations, since
28902         this corrupts files in later references.
28903
28904 2004-03-02  Vincent Celier  <celier@gnat.com>
28905
28906         * bcheck.adb (Check_Consistency): Get the full path of an ALI file
28907         before checking if it is read-only.
28908
28909         * bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
28910         of SRC_DIRS and eliminate duplicates.
28911
28912         * gprcmd.adb: Replace command "path" with command "path_sep" to return
28913         the path separator.
28914         (Usage): Document path_sep
28915
28916         * Makefile.generic: For Ada and GNU C++ cases, link directly with the
28917         C++ compiler. No need for a script.
28918         Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
28919         Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
28920         subst.
28921
28922         * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
28923         where there are Ada sources.
28924         (Set_Ada_Paths): Only add to the include path the source dirs of project
28925         with Ada sources.
28926         (Add_To_Path): Add the Display_Values of the directories, not their
28927         Values.
28928
28929         * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
28930         data.
28931
28932         * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
28933         is not No_Name.
28934         (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
28935         Value is canonicalized.
28936         (Language_Independent_Check): Do not copy Value to Display_Value when
28937         canonicalizing Value.
28938
28939         * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
28940         path to find limited with cycles.
28941         (Parse_Single_Project): Use canonical cased path to find the end of a
28942         with cycle.
28943
28944 2004-03-02  Ed Schonberg  <schonberg@gnat.com>
28945
28946         * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
28947         and not a child unit.
28948
28949         * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
28950         appear in a with_clause.
28951
28952         * decl.c (gnat_to_gnu_type): If entity is a generic type, which can
28953         only happen in type_annotate mode, do not try to elaborate it.
28954
28955         * exp_util.adb (Force_Evaluation): If expression is a selected
28956         component on the left of an assignment, use a renaming rather than a
28957         temporary to remove side effects.
28958
28959         * freeze.adb (Freeze_Entity): Do not freeze a global entity within an
28960         inlined instance body, which is analyzed before the end of the
28961         enclosing scope.
28962
28963 2004-03-02  Robert Dewar  <dewar@gnat.com>
28964
28965         * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
28966         sem_ch4.adb: Use new feature for substitution of keywords in VMS
28967
28968         * errout.ads, errout.adb: Implement new circuit for substitution of
28969         keywords in VMS.
28970
28971         * sem_case.adb (Analyze_Choices): Place message properly when case is
28972         a subtype reference rather than an explicit range.
28973
28974         * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
28975
28976 2004-03-02  Doug Rupp  <rupp@gnat.com>
28977
28978         * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.
28979
28980 2004-03-02  Thomas Quinot  <quinot@act-europe.fr>
28981
28982         * s-tporft.adb: Add missing locking around call to Initialize_ATCB.
28983
28984 2004-03-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28985
28986         * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
28987         BLKmode bitfield.
28988
28989 2004-02-25  Robert Dewar  <dewar@gnat.com>
28990
28991         * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads,
28992         55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads,
28993         5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads,
28994         5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads,
28995         5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads,
28996         5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to
28997         the defining instance of the type to avoid aliasing problems.
28998         Fix copyright header.  Fix bad comments in package header.
28999
29000         * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting
29001
29002 2004-02-25  Ed Schonberg  <schonberg@gnat.com>
29003
29004         * exp_ch2.adb (Param_Entity): Handle properly formals that have been
29005         rewritten as references when aliased through an address clause.
29006
29007         * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking
29008         whether call can be interpreted as an indirect call to the result of a
29009         parameterless function call returning an access subprogram.
29010
29011 2004-02-25  Arnaud Charlet  <charlet@act-europe.fr>
29012
29013         Code clean up:
29014         * exp_ch7.adb (Make_Clean): Remove generation of calls to
29015         Unlock[_Entries], since this is now done by Service_Entries directly.
29016
29017         * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto.
29018
29019         * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure
29020         Requeue_Call for better code readability. Change spec and update calls:
29021         PO_Service_Entries now unlock the PO on exit.
29022         (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to
29023         PO_Service_Entries.
29024
29025         * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit.
29026
29027         * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries.
29028
29029 2004-02-25  Sergey Rybin  <rybin@act-europe.fr>
29030
29031         * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the
29032         protected subprogram call and analyzing the result of such expanding
29033         in case when the called protected subprogram is eliminated.
29034
29035         * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope
29036         names.
29037
29038 2004-02-25  Jerome Guitton  <guitton@act-europe.fr>
29039
29040         * Makefile.in: Clean ups.
29041
29042 2004-02-23  Ed Schonberg  <schonberg@gnat.com>
29043
29044         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create
29045         protected operations if original subprogram is flagged as eliminated.
29046         (Expand_N_Subprogram_Body): For a protected operation, create
29047         discriminals for next operation before checking whether the operation
29048         is eliminated.
29049
29050         * exp_ch9.adb (Expand_N_Protected_Body,
29051         Expand_N_Protected_Type_Declaration): Do not generate specs and bodies
29052         for internal protected operations if the original subprogram is
29053         eliminated.
29054
29055         * sem_elim.adb (Check_Eliminated): Handle properly protected operations
29056         declared in a single protected object.
29057
29058 2004-02-23  Vincent Celier  <celier@gnat.com>
29059
29060         * prj-attr.adb: Make attribute Builder'Executable an associative array,
29061         case insensitive if file names are case insensitive, instead of a
29062         standard associative array.
29063
29064         * prj-attr.adb (Initialize): For 'b' associative arrays, do not set
29065         them as case insensitive on platforms where the file names are case
29066         sensitive.
29067
29068         * prj-part.adb (Parse_Single_Project): Make sure, when checking if
29069         project file has already been parsed that canonical path are compared.
29070
29071 2004-02-23  Robert Dewar  <dewar@gnat.com>
29072
29073         * sinput-c.ads: Correct bad unit title in header
29074
29075         * freeze.adb: Minor reformatting
29076
29077 2004-02-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29078
29079         * trans.c (tree_transform, case N_Procedure_Call_Statement): For
29080         nonaddressable COMPONENT_REF that is removing padding that we are
29081         taking the address of, take the address of the padded record instead
29082         if item is variable size.
29083
29084 2004-02-20  Robert Dewar  <dewar@gnat.com>
29085
29086         * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting
29087
29088 2004-02-20  Ed Schonberg  <schonberg@gnat.com>
29089
29090         * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates
29091         itype references for the constrained designated type of a component
29092         whose base type is already frozen.
29093
29094 2004-02-20  Arnaud Charlet  <charlet@act-europe.fr>
29095
29096         * init.c (__gnat_error_handler [tru64]): Rewrite previous change to
29097         avoid GCC warnings.
29098
29099 2004-02-20  Sergey Rybin  <rybin@act-europe.fr>
29100
29101         * sem_ch12.adb (Analyze_Formal_Package): Create a new defining
29102         identifier for a phantom package that rewrites the formal package
29103         declaration with a box. The Add semantic decorations for the defining
29104         identifier from the original node (that represents the formal package).
29105
29106 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
29107
29108         * Make-lang.in (ada/stamp-sdefault): Use the top level
29109         move-if-change.
29110
29111 2004-02-19  Richard Henderson  <rth@redhat.com>
29112
29113         * misc.c (record_code_position): Add third build arg for RTL_EXPR.
29114
29115 2004-02-18  Emmanuel Briot  <briot@act-europe.fr>
29116
29117         * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that
29118         Scan_ALI can be used for multiple ALI files without reinitializing
29119         between calls.
29120
29121 2004-02-18  Robert Dewar  <dewar@gnat.com>
29122
29123         * debug.adb: Minor reformatting.
29124
29125 2004-02-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29126
29127         * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET
29128         to zero if there is an address clause.
29129
29130 2004-02-18  Thomas Quinot  <quinot@act-europe.fr>
29131
29132         * exp_util.adb (Side_Effect_Free): Any literal is side effects free.
29133
29134 2004-02-18  Gary Dismukes  <dismukes@gnat.com>
29135
29136         * layout.adb (Layout_Component_List): Revise generation of call to
29137         discriminant-checking function to pass selections of all of the type's
29138         discriminants rather than just the variant-controlling discriminant.
29139
29140 2004-02-18  Olivier Hainque  <hainque@act-europe.fr>
29141
29142         * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to
29143         fail in the current setup and triggers spurious system error messages.
29144         Pretend it occurred and failed instead.
29145
29146 2004-02-18  Vincent Celier  <celier@gnat.com>
29147
29148         * bld.adb: Mark FLDFLAGS as saved
29149         (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when
29150         it is not the root project.  Put each directory to be
29151         extended between double quotes to prevent it to be expanded on Windows.
29152         (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing
29153         the project file. Set them back to their initial values if they have not
29154         been set in the project file.
29155
29156         * gprcmd.adb: (Gprdebug, Debug): New global variables
29157         (Display_Command): New procedure
29158         (Usage): Document new command "linkopts"
29159         Call Display_Command when env var GPRDEBUG has the value "TRUE"
29160         Implement new command "linkopts"
29161         Remove quotes that may be around arguments for "extend"
29162         Always call Normalize_Pathname with arguments formatted for the platform
29163
29164         * Makefile.generic: Link C/C++ mains with $(FLDFLAGS)
29165         Change @echo to @$(display) in target clean to be able to clean silently
29166
29167         * Makefile.prolog: Save FLDFLAGS and give it an initial empty value
29168
29169         * prj-part.adb (Project_Path_Name_Of): Do not put final result in
29170         canonical case.
29171
29172         * prj-part.adb (Parse_Single_Project): Always call with From_Extended
29173         = Extending_All when current project is an extending all project.
29174
29175         * vms_conv.adb (Output_File_Expected): New Boolean global variable,
29176         set to True only for LINK command, after Unix switch -o.
29177         (Process_Arguments): Set Output_File_Expected to True for LINK command
29178         after Unix switch -o. When Output_File_Expected is True, never add an
29179         extension to a file name.
29180
29181         * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the
29182         option file name, only to the --for-linker= switch.
29183         (Option_File_Name): If option file name do not end with ".opt", append
29184         "/OPTIONS".
29185
29186 2004-02-18  GNAT Script  <nobody@gnat.com>
29187
29188         * Make-lang.in: Makefile automatically updated
29189
29190 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
29191
29192         * Make-lang.in (stamp-sdefault): Do not depend on
29193         move-if-change.
29194
29195 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
29196
29197         * config-lang.in: Disable Ada by default until probe logic for
29198         a bootstrap Ada compiler can be moved to the top level configure
29199         script.
29200
29201 2004-02-12  Olivier Hainque  <hainque@act-europe.fr>
29202
29203         * decl.c (components_to_record): Don't claim that the internal fields
29204         we make to hold the variant parts are semantically addressable, because
29205         they are not.
29206
29207         * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and
29208         adjust the comment describing the modular type form when we can use it.
29209         (Install_PAT): Account for the Esiz renaming.
29210
29211         * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the
29212         sc_onstack context indication before raising the exception to which
29213         the signal is mapped. Allows better handling of later signals possibly
29214         triggered by the resumed user code if the exception is handled.
29215
29216 2004-02-12  Arnaud Charlet  <charlet@act-europe.fr>
29217
29218         * 5zinit.adb: Removed, no longer used.
29219
29220 2004-02-12  Robert Dewar  <dewar@gnat.com>
29221
29222         * ali.adb: Remove separating space between parameters on R line. Makes
29223         format consistent with format used by the binder for Set_Globals call.
29224
29225         * atree.ads, atree.adb: Minor reformatting (new function header format)
29226
29227         * bindgen.adb: Add Run-Time Globals documentation section containing
29228         detailed documentation of the globals passed from the binder file to
29229         the run time.
29230
29231         * gnatls.adb: Minor reformatting
29232
29233         * init.c (__gnat_set_globals): Add note pointing to documentation in
29234         bindgen.
29235
29236         * lib-writ.ads, lib-writ.adb: Remove separating space between
29237         parameters on R line.
29238         Makes format consistent with format used by the binder for Set_Globals
29239         call.
29240
29241         * osint.ads: Add 2004 to copyright notice
29242         Minor reformatting
29243
29244         * snames.ads: Correct capitalization of FIFO_Within_Priorities
29245         Noticed during code reading, documentation issue only
29246
29247         * usage.adb: Remove junk line for obsolete C switch
29248         Noticed during code reading
29249
29250 2004-02-12  Vincent Celier  <celier@gnat.com>
29251
29252         * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd
29253         extend for each directory, so that multiple /** directories are
29254         extended individually.
29255         (Recursive_Process): Set the default for LANGUAGES to ada
29256
29257         * gprcmd.adb: Define new command "ignore", to do nothing.
29258         Implement new comment "path".
29259
29260         * Makefile.generic: Suppress output when SILENT is set
29261         Make sure that when compiler for C/C++ is gcc, the correct -x switch is
29262         used, so that the correct compiler is invoked.
29263         When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/
29264         CXX_INCLUDE_PATH, to avoid failure with too long command lines.
29265
29266 2004-02-12  Jerome Guitton  <guitton@act-europe.fr>
29267
29268         * Makefile.in: Clean ups and remove obsolete targets.
29269
29270 2004-02-12  Ed Schonberg  <schonberg@gnat.com>
29271
29272         * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar
29273         predicate declared in exp_util.
29274
29275         * exp_util.adb: Add comments.
29276
29277         * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from
29278         visibility before compiling context of the subunit.
29279
29280         * sem_res.adb (Check_Parameterless_Call): If the context expects a
29281         value but the name is a procedure, do not attempt to analyze as a call,
29282         in order to obtain more telling diagnostics.
29283
29284         * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing
29285         'Access on parameterless function calls.
29286         (Normalize_Actuals): For a parameterless function call with missing
29287         actuals, defer diagnostic until resolution of enclosing call.
29288
29289         * sem_util.adb (Wrong_Type): If the context type is an access to
29290         subprogram and the expression is a procedure name, suggest a missing
29291         'attribute.
29292
29293 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>,
29294             Nathanael Nerode  <neroden@gcc.gnu.org>
29295
29296         PR ada/6637
29297         PR ada/5911
29298         Merge with libada-branch:
29299         * config-lang.in: Build libada only when ada is built.
29300
29301 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
29302
29303         * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
29304         for a tagged type, verify that both formals have the same type.
29305
29306         * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
29307         temporary when the formal is an in-parameter and the actual a possibly
29308         unaligned slice.
29309
29310         * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
29311         when expansion is disabled, to ensure proper name capture with
29312         overloaded literals.  Condition can be of any boolean type, resolve
29313         accordingly.
29314
29315         * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
29316         renaming is for a formal subprogram with a default operator name, and
29317         there is a usable operator that is visible at the point of
29318         instantiation.
29319
29320 2004-02-09  Robert Dewar  <dewar@gnat.com>
29321
29322         * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
29323         rewrite to ignore errors in ali files, intended to allow tools downward
29324         compatibility with new versions of ali files.
29325
29326         * ali.ads: Add new parameter Ignore_Errors
29327
29328         * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
29329         duplicating the error message giving the file with restrictions.
29330
29331         * debug.adb: Add debug flag I for gnatbind
29332
29333         * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
29334         operators for the case where the operator is a defining operator.
29335
29336         * exp_ch3.adb: Minor reformatting (new function spec format).
29337
29338         * exp_ch4.adb: Add comment for previous change, and make minor
29339         adjustment to loop to always check for improper loop termination.
29340         Minor reformatting throughout (new function spec format).
29341
29342         * gnatbind.adb: Implement -di debug flag for gnatbind
29343
29344         * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
29345
29346         * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
29347
29348         * lib-load.adb: Fix bad assertion.
29349         Found by testing and code reading.
29350         Minor reformatting.
29351
29352         * lib-load.ads: Minor reformatting.
29353
29354         * lib-writ.adb: There is only one R line now.
29355
29356         * lib-writ.ads: Add documentation on making downward compatible changes
29357         to ali files so old tools work with new ali files.
29358         There is only one R line now.
29359         Add documentation on format incompatibilities (with special GPS note)
29360
29361         * namet.ads, namet.adb: (Is_Operator_Name): New procedure
29362
29363         * par-load.adb: Minor reformatting
29364
29365         * sem_ch8.adb: Fix to error message from last update
29366         Minor reformatting and restructuring of code from last update
29367
29368         * par-prag.adb, snames.adb, snames.ads, snames.h,
29369         sem_prag.adb: Implement pragma Profile.
29370
29371         * stylesw.adb: Implement -gnatyN switch to turn off all style check
29372         options.
29373
29374         * usage.adb: Add line for -gnatyN switch
29375
29376         * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
29377
29378 2004-02-09  Albert Lee  <lee@gnat.com>
29379
29380         * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
29381
29382 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
29383
29384         * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
29385         slices.
29386
29387         * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
29388         is nested in an instance that is not frozen yet, to avoid
29389         order-of-elaboration problems in gigi.
29390
29391         * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
29392         body the attribute is legal.
29393
29394 2004-02-09  Robert Dewar  <dewar@gnat.com>
29395
29396         * s-rident.ads: Minor comment correction
29397
29398         * targparm.adb: Remove dependence on uintp completely. There was
29399         always a bug in Make in that it called Targparm before initializing
29400         the Uint package. The old code appeared to get away with this, but
29401         the new code did not! This caused an assertion error in gnatmake.
29402
29403         * targparm.ads: Fix bad comment, restriction pragmas with parameters
29404         are indeed fully supported.
29405
29406 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
29407
29408         * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call.
29409
29410 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
29411
29412         * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
29413         with targetm.calls.promote_prototypes.
29414
29415 2004-02-04  Robert Dewar  <dewar@gnat.com>
29416
29417         * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,
29418         ali.ads, gprcmd.adb: Minor reformatting
29419
29420         * bindgen.adb: Output restrictions string for new style restrictions
29421         handling
29422
29423         * impunit.adb: Add s-rident.ads (System.Rident) and
29424         s-restri (System.Restrictions)
29425
29426         * lib-writ.adb: Fix bug in writing restrictions string (last few
29427         entries wrong)
29428
29429         * s-restri.ads, s-restri.adb: Change name Restrictions to
29430         Run_Time_Restrictions to avoid conflict with package name.
29431         Add circuit to read and acquire run time restrictions.
29432
29433 2004-02-04  Jose Ruiz  <ruiz@act-europe.fr>
29434
29435         * restrict.ads, restrict.adb: Use the new restriction
29436         No_Task_Attributes_Package instead of the old No_Task_Attributes.
29437
29438         * sem_prag.adb: No_Task_Attributes is a synonym of
29439         No_Task_Attributes_Package.
29440
29441         * snames.ads, snames.adb: New entry for proper handling of
29442         No_Task_Attributes.
29443
29444         * s-rident.ads: Adding restriction No_Task_Attributes_Package
29445         (AI-00249) that supersedes the GNAT specific restriction
29446         No_Task_Attributes.
29447
29448 2004-02-04  Ed Schonberg  <schonberg@gnat.com>
29449
29450         * sem_prag.adb:
29451         (Analyze_Pragma, case Warnings): In an inlined body, as in an instance
29452          body, an identifier may be wrapped in an unchecked conversion.
29453
29454 2004-02-04  Vincent Celier  <celier@gnat.com>
29455
29456         * lib-writ.ads: Comment update for the W lines
29457
29458         * bld.adb: (Expression): An empty string list is static
29459
29460         * fname-uf.adb: Minor comment update
29461
29462         * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail
29463
29464         * gnatbind.adb: Initialize Cumulative_Restrictions with the
29465         restrictions on the target.
29466
29467 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
29468
29469         * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of
29470         gen_rtx.
29471
29472 2004-02-02  Arnaud Charlet  <charlet@gnat.com>
29473
29474         * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded.
29475
29476 2004-02-02  Vincent Celier  <celier@gnat.com>
29477
29478         * gprcmd.adb (Check_Args): If condition is false, print the invoked
29479         comment before the usage.
29480         Gprcmd: Fail when command is not recognized.
29481         (Usage): Document command "prefix"
29482
29483         * g-md5.adb (Digest): Process last block.
29484         (Update): Do not process last block. Store remaining characters and
29485         length in Context.
29486
29487         * g-md5.ads (Update): Document that several call to update are
29488         equivalent to one call with the concatenated string.
29489         (Context): Add fields to allow new Update behaviour.
29490
29491         * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,
29492         defaulted to False.
29493         When May_Fail is True and no existing file can be found, return No_File.
29494
29495         * 6vcstrea.adb: Inlined functions are now wrappers to implementation
29496         functions.
29497
29498         * lib-writ.adb (Write_With_Lines): When body file does not exist, use
29499         spec file name instead on the W line.
29500
29501 2004-02-02  Robert Dewar  <dewar@gnat.com>
29502
29503         * ali.adb: Read and acquire info from new format restrictions lines
29504
29505         * bcheck.adb: Add circuits for checking restrictions with parameters
29506
29507         * bindgen.adb: Output dummy restrictions data
29508         To be changed later
29509
29510         * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
29511         exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
29512         freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,
29513         sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,
29514         sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.
29515
29516         * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses
29517         the warning message on access to possibly uninitialized variable S)
29518         Minor changes for new restrictions handling.
29519
29520         * gnatbind.adb: Minor reformatting
29521         Minor changes for new restrictions handling
29522         Move circuit for -r processing here from bcheck (cleaner)
29523
29524         * gnatcmd.adb, gnatlink.adb: Minor reformatting
29525
29526         * lib-writ.adb: Output new format restrictions lines
29527
29528         * lib-writ.ads: Document new R format lines for new restrictions
29529         handling.
29530
29531         * s-restri.ads/adb: New files
29532
29533         * Makefile.rtl: Add entry for s-restri.ads/adb
29534
29535         * par-ch3.adb: Fix bad error messages starting with upper case letter
29536         Minor reformatting
29537
29538         * restrict.adb: Major rewrite throughout for new restrictions handling
29539         Major point is to handle restrictions with parameters
29540
29541         * restrict.ads: Major changes in interface to handle restrictions with
29542         parameters. Also generally simplifies setting of restrictions.
29543
29544         * snames.ads/adb: New entry for proper handling of No_Requeue
29545
29546         * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks
29547         restriction counting.
29548         Other minor changes for new restrictions handling
29549
29550         * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.
29551         Restriction_Warnings now allows full parameter notation
29552         Major rewrite of Restrictions for new restrictions handling
29553
29554 2004-02-02  Javier Miranda  <miranda@gnat.com>
29555
29556         * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y
29557         syntax rule for object renaming declarations.
29558         (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for
29559         component definitions.
29560
29561         * sem_ch3.adb (Analyze_Component_Declaration): Give support to access
29562         components.
29563         (Array_Type_Declaration): Give support to access components. In addition
29564         it was also modified to reflect the name of the object in anonymous
29565         array types. The old code did not take into account that it is possible
29566         to have an unconstrained anonymous array with an initial value.
29567         (Check_Or_Process_Discriminants): Allow access discriminant in
29568         non-limited types.
29569         (Process_Discriminants): Allow access discriminant in non-limited types
29570         Initialize the new Access_Definition field in N_Object_Renaming_Decl
29571         node.  Change Ada0Y to Ada 0Y in comments
29572
29573         * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in
29574         equality operators.
29575         Change Ada0Y to Ada 0Y in comments
29576
29577         * sem_ch8.adb (Analyze_Object_Renaming): Give support to access
29578         renamings Change Ada0Y to Ada 0Y in comments
29579
29580         * sem_type.adb (Find_Unique_Type): Give support to the equality
29581         operators for universal access types
29582         Change Ada0Y to Ada 0Y in comments
29583
29584         * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms
29585
29586         * sinfo.ads (N_Component_Definition): Addition of Access_Definition
29587         field.
29588         (N_Object_Renaming_Declaration): Addition of Access_Definition field
29589         Change Ada0Y to Ada 0Y in comments
29590
29591         * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for
29592         component definition and object renaming nodes
29593         Change Ada0Y to Ada 0Y in comments
29594
29595 2004-02-02  Jose Ruiz  <ruiz@act-europe.fr>
29596
29597         * restrict.adb: Use the new restriction identifier
29598         No_Requeue_Statements instead of the old No_Requeue for defining the
29599         restricted profile.
29600
29601         * sem_ch9.adb (Analyze_Requeue): Check the new restriction
29602         No_Requeue_Statements.
29603
29604         * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)
29605         that supersedes the GNAT specific restriction No_Requeue. The later is
29606         kept for backward compatibility.
29607
29608 2004-02-02  Ed Schonberg  <schonberg@gnat.com>
29609
29610         * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,
29611         5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant
29612         pragma and fix incorrect ones.
29613
29614         * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a
29615         warning if the pragma is redundant.
29616
29617 2004-02-02  Thomas Quinot  <quinot@act-europe.fr>
29618
29619         * 5staprop.adb: Add missing 'constant' keywords.
29620
29621         * Makefile.in: use consistent value for SYMLIB on
29622         platforms where libaddr2line is supported.
29623
29624 2004-02-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29625
29626         * utils.c (end_subprog_body): Do not call rest_of_compilation if just
29627         annotating types.
29628
29629 2004-02-02  Olivier Hainque  <hainque@act-europe.fr>
29630
29631         * init.c (__gnat_install_handler): Setup an alternate stack for signal
29632         handlers in the environment thread. This allows proper propagation of
29633         an exception on stack overflows in this thread even when the builtin
29634         ABI stack-checking scheme is used without support for a stack reserve
29635         region.
29636
29637         * utils.c (create_field_decl): Augment the head comment about bitfield
29638         creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P
29639         here, because the former is not accurate enough at this point.
29640         Let finish_record_type decide instead.
29641         Don't make a bitfield if the field is to be addressable.
29642         Always set a size for the field if the record is packed, to ensure the
29643         checks for bitfield creation are triggered.
29644         (finish_record_type): During last pass over the fields, clear
29645         DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is
29646         not covered by the calls to layout_decl.  Adjust DECL_NONADDRESSABLE_P
29647         from DECL_BIT_FIELD.
29648
29649 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
29650
29651         * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
29652         (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.
29653         (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.
29654
29655 2004-01-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
29656
29657         * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB.
29658
29659         * 5fsystem.ads (Functions_Return_By_DSP): Set to False.
29660         (ZCX_By_Default): Likewise.
29661         (Front_End_ZCX_Support): Likewise.
29662
29663         * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced.
29664         (Initialize_Lock): Mark Level unreferenced.
29665         (Sleep): Mark Reason unreferenced.
29666         (Timed_Sleep): Likewise.
29667         (Wakeup): Likewise.
29668         (Exit_Task): Use Result.
29669         (Check_No_Locks): Mark Self_ID unreferenced.
29670
29671         * 5gtasinf.adb (New_Sproc): Make Attr constant.
29672         (Bound_Thread_Attributes): Make Sproc constant.
29673         (New_Bound_Thread_Attributes): Likewise.
29674
29675 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
29676
29677         * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for
29678         one-dimensional array an slice assignments, when component type is
29679         controlled.
29680
29681         * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,
29682         component type is controlled, and control_actions are in effect, use
29683         TSS procedure rather than generating inline code.
29684
29685         * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional
29686         arrays with controlled components.
29687
29688 2004-01-26  Vincent Celier  <celier@gnat.com>
29689
29690         * gnatcmd.adb (GNATCmd): Add specification of argument file on the
29691         command line for the non VMS case.
29692
29693         * gnatlink.adb (Process_Binder_File): When building object file, if
29694         GNU linker is used, put all object paths between quotes, to prevent ld
29695         error when there are unusual characters (such as '!') in the paths.
29696
29697         * Makefile.generic: When there are sources in Ada and the main is in
29698         C/C++, invoke gnatmake with -B, instead of -z.
29699
29700         * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted
29701         from VMS_Conversion.
29702         (Process_Argument): New procedure, extracted from VMS_Conversion. Add
29703         specification of argument file on the command line.
29704
29705 2004-01-26  Bernard Banner  <banner@gnat.com>
29706
29707         * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64
29708
29709 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
29710
29711         * snames.adb: Update copyright notice.
29712         Add info on slice assignment for controlled arrays.
29713
29714 2004-01-23  Robert Dewar  <dewar@gnat.com>
29715
29716         * exp_aggr.adb: Minor reformatting
29717
29718         * exp_ch9.adb: Minor code clean up
29719         Minor reformatting
29720         Fix bad character in comment
29721
29722         PR ada/13471
29723         * targparm.adb (Get_Target_Parameters): Give clean abort error on
29724         unexpected end of file, along with more detailed message.
29725
29726 2004-01-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29727
29728         * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of
29729         PAT.
29730
29731         * decl.c (copy_alias_set): New function.
29732         (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it.
29733
29734 2004-01-23  Doug Rupp  <rupp@gnat.com>
29735
29736         * Makefile.in (install-gnatlib): Change occurrences of lib$$file to
29737         lib$${file} in case subsequent character is not a separator.
29738
29739 2004-01-23  Vincent Celier  <celier@gnat.com>
29740
29741         * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc
29742         when the GCC version is at least 3.
29743
29744         * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches
29745         Remove all "Opt.", to prepare for opt split
29746
29747         * prj-part.adb (Parse_Single_Project): New Boolean out parameter
29748         Extends_All. Set to True when the project parsed is an extending all
29749         project. Fails for importing an extending all project only when the
29750         imported project is an extending all project.
29751         (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause,
29752         depending on the value of Extends_All returned.
29753
29754         * prj-proc.adb (Process): Check that no project shares its object
29755         directory with a project that extends it, directly or indirectly,
29756         including a virtual project.
29757         Check that no project extended by another project shares its object
29758         directory with another also extended project.
29759
29760         * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for
29761         Kind = N_With_Clause
29762
29763         * prj-tree.ads: Minor reformatting
29764         Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All).
29765
29766 2004-01-23  Ed Schonberg  <schonberg@gnat.com>
29767
29768         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute
29769         applies to a type with an incomplete view, use full view in Name of
29770         clause, for consistency with uses of Get_Attribute_Definition_Clause.
29771
29772 2004-01-23  Arnaud Charlet  <charlet@act-europe.fr>
29773
29774         * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using
29775         SCHED_RR, since other values are not supported by this policy.
29776         (Initialize): Move initialization of mutex attribute to package
29777         elaboration, to prevent early access to this variable.
29778
29779         * Makefile.in: Remove mention of Makefile.adalib, unused.
29780
29781         * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
29782         1ssecsta.ads: Removed, unused.
29783
29784 2004-01-21  Javier Miranda  <miranda@gnat.com>
29785
29786         * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master
29787         entity if already built in the current scope.
29788
29789         * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity
29790         reminder in internal scopes. Required for nested limited aggregates.
29791
29792 2004-01-21  Doug Rupp  <rupp@gnat.com>
29793
29794         * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on
29795         VMS. Replace all occurences of libgnat- and libgnarl- with
29796         libgnat$(hyphen) and libgnarl$(hyphen).
29797         Fixed shared library build problem on VMS.
29798
29799 2004-01-21  Robert Dewar  <dewar@gnat.com>
29800
29801         * mlib-prj.adb: Minor reformatting
29802
29803 2004-01-21  Thomas Quinot  <quinot@act-europe.fr>
29804
29805         * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing
29806         'constant' keywords for declaration of pointers that are not modified.
29807
29808         * exp_pakd.adb: Fix English in comment.
29809
29810 2004-01-21  Ed Schonberg  <schonberg@gnat.com>
29811
29812         PR ada/10889
29813         * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype,
29814         copy all attributes of the parent, including the foreign language
29815         convention.
29816
29817 2004-01-21  Sergey Rybin  <rybin@act-europe.fr>
29818
29819         PR ada/10565
29820         * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check
29821         for 'delay until' statement.
29822
29823 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
29824
29825         * Make-lang.in: Replace $(docdir) with doc.
29826         (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info
29827         doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update
29828         to use consistent MAKEINFO rule.
29829         (ada.man, ada.srcman): Dummy entry.
29830         (ADA_INFOFILES): Define.
29831         (ada.info, ada.srcinfo): New rules.
29832
29833 2004-01-19  Arnaud Charlet  <charlet@act-europe.fr>
29834
29835         * utils.c: Update copyright notice, missed in previous change.
29836
29837 2004-01-19  Vincent Celier  <celier@gnat.com>
29838
29839         * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the
29840         args if Bind is True. Set First_ALI, if not already done.
29841         (Build_Library): For Stand Alone Libraries, extract from one ALI file
29842         an eventual --RTS switch, for gnatbind, and all backend switches +
29843         --RTS, for linking.
29844
29845 2004-01-19  Robert Dewar  <dewar@gnat.com>
29846
29847         * sem_attr.adb, memtrack.adb: Minor reformatting
29848
29849 2004-01-19  Ed Schonberg  <schonberg@gnat.com>
29850
29851         * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions
29852         that rename enumeration literals. This is properly done in sem_eval.
29853
29854         * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls
29855         to functions that rename enumeration literals.
29856
29857         * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to
29858         functions that rename enumeration literals.
29859
29860 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
29861
29862         * Make-lang.in (utils.o): Depend on target.h.
29863         * utils.c: Include target.h.
29864         (process_attributes): Use targetm.have_named_sections instead
29865         of ASM_OUTPUT_SECTION_NAME.
29866
29867 2004-01-16  Andreas Jaeger  <aj@suse.de>
29868
29869         * Makefile.in: Add $(DESTDIR).
29870
29871 2004-01-15  Olivier Hainque  <hainque@act-europe.fr>
29872
29873         * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size
29874         also when not defining if a Size clause applies. That information is
29875         not to be ignored.
29876
29877 2004-01-15  Arnaud Charlet  <charlet@act-europe.fr>
29878
29879         * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up
29880         symbolic links for the shared gnat run time when needed.
29881
29882 2004-01-15  Vasiliy Fofanov  <fofanov@act-europe.fr>
29883
29884         * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened
29885         for writing, and terminate with an error message if not.
29886
29887 2004-01-15  Ed Schonberg  <schonberg@gnat.com>
29888
29889         * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious
29890         warning on an access to subprogram in an instance, when the target
29891         type is declared in the same generic unit.
29892         (Eval_Attribute): If 'access is known to fail accessibility check,
29893         rewrite as a raise statement.
29894
29895 2004-01-15  GNAT Script  <nobody@gnat.com>
29896
29897         * Make-lang.in: Makefile automatically updated
29898
29899 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
29900
29901         * Make-lang.in (ada.srcextra): Dummy entry.
29902
29903 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
29904
29905         * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.
29906
29907 2004-01-13  Ed Schonberg  <schonberg@gnat.com>
29908
29909         * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled
29910         components that are initialized with aggregates.
29911
29912 2004-01-13  Vincent Celier  <celier@gnat.com>
29913
29914         * gnatlink.adb (Process_Binder_File): To find directory of shared
29915         libgcc, if "gcc-lib" is not a subdirectory, look for the last
29916         subdirectory "lib" in the path of the shared libgnat or libgnarl.
29917
29918         * make.adb (Gnatmake): If GCC version is at least 3, link with
29919         -shared-libgcc, when there is at least one shared library project.
29920
29921         * opt.ads (GCC_Version): New integer constant.
29922
29923         * adaint.c (get_gcc_version): New function.
29924
29925 2004-01-13  Robert Dewar  <dewar@gnat.com>
29926
29927         * sem_dist.adb, sem_res.adb, sem_util.adb,
29928         sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb,
29929         exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting
29930
29931 2004-01-13  Thomas Quinot  <quinot@act-europe.fr>
29932
29933         * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb,
29934         g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object
29935         declarations.
29936
29937 2004-01-12  Arnaud Charlet  <charlet@act-europe.fr>
29938
29939         * misc.c: Remove trailing spaces.
29940         Update copyright notice missed in previous change.
29941
29942         PR ada/13572
29943         * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of
29944         prefix/share/make
29945
29946         * Makefile.generic: Update copyright.
29947         Add license notice.
29948
29949         * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead
29950         of prefix/share/make.
29951
29952         * Makefile.prolog: Update copyright.
29953         Add license notice.
29954
29955 2004-01-12  Laurent Pautet  <pautet@act-europe.fr>
29956
29957         * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb,
29958         3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb,
29959         g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr
29960         instead of String.
29961
29962         * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message
29963         signature.
29964
29965 2004-01-12  Javier Miranda  <miranda@gnat.com>
29966
29967         * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb,
29968         exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb,
29969         sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb,
29970         sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of
29971         Component_Definition node.
29972
29973 2004-01-12  Ed Falis  <falis@gnat.com>
29974
29975         * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit
29976
29977 2004-01-12  Thomas Quinot  <quinot@act-europe.fr>
29978
29979         * link.c: Change default libgnat kind to STATIC for FreeBSD.
29980
29981 2004-01-12  Bernard Banner  <banner@gnat.com>
29982
29983         * Makefile.in: map 86numaux to a-numaux for x86_64
29984
29985 2004-01-12  Ed Schonberg  <schonberg@gnat.com>
29986
29987         * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity
29988         generated to rename a generic actual, go to the actual itself, the
29989         subtype is not a user-visible entity.
29990
29991         * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible
29992         part is a private subtype, reset the visibility of its full view, if
29993         any, to be consistent.
29994
29995         PR ada/13417
29996         * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt
29997         to use a generic package G as a formal package for another generic
29998         declared within G.
29999
30000 2004-01-12  Robert Dewar  <dewar@gnat.com>
30001
30002         * trans.c (Eliminate_Error_Msg): New procedure called to generate msg
30003
30004         * usage.adb: Remove mention of obsolete -gnatwb switch
30005         Noticed during code reading
30006
30007 2004-01-12  Jerome Guitton  <guitton@act-europe.fr>
30008
30009         * 1ssecsta.adb: Minor changes for -gnatwa warnings
30010
30011 2004-01-12  GNAT Script  <nobody@gnat.com>
30012
30013         * Make-lang.in: Makefile automatically updated
30014
30015 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
30016
30017         * misc.c (gnat_expand_expr): Add alt_rtl parameter.
30018
30019 2004-01-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
30020
30021         * link.c [sgi] (shared_libgnat_default): Change to STATIC.
30022
30023 2004-01-05  Kelley Cook  <kcook@gcc.gnu.org>
30024
30025         * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18.
30026         Update comment and copyright date.
30027         * stamp-xgnatug: Delete.
30028
30029 2004-01-05  Robert Dewar  <dewar@gnat.com>
30030
30031         * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may
30032         be modified by the binder generated main program if the -D switch is
30033         used.
30034
30035         * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all
30036         imported functions (since now we expect this to be done for imported
30037         functions)
30038
30039         * 5vtaprop.adb: Add several ??? for sections requiring more comments
30040         Minor reformatting throughout
30041
30042         * 5zinit.adb: Minor reformatting
30043         Add 2004 to copyright date
30044         Minor changes to avoid -gnatwa warnings
30045         Correct some instances of using OR instead of OR ELSE (noted while
30046         doing reformatting)
30047
30048         * sprint.adb: Minor updates to avoid -gnatwa warnings
30049
30050         * s-secsta.ads, s-secsta.adb:
30051         (SS_Get_Max): New function to obtain high water mark for ss stack
30052         Default_Secondary_Stack is not a constant since it may be modified by
30053         the binder generated main program if the -D switch is used.
30054
30055         * switch-b.adb: New -Dnnn switch for binder
30056
30057         * switch-c.adb:
30058         Make -gnatg imply all warnings currently in -gnatwa
30059
30060         * vms_conv.adb: Minor reformatting
30061         Add 2004 to copyright notice
30062         Add 2004 to printed copyright notice
30063
30064         * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb,
30065         3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb,
30066         5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb,
30067         5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb,
30068         5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb,
30069         5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb,
30070         5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb,
30071         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb,
30072         5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb,
30073         5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb,
30074         6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb,
30075         vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb,
30076         xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads,
30077         sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb,
30078         checks.adb, clean.adb, cstand.adb, einfo.ads,
30079         einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb,
30080         exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb,
30081         prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb,
30082         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb,
30083         g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb,
30084         lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb:
30085         Minor reformatting and code clean ups.
30086         Minor changes to prevent -gnatwa warnings
30087
30088         * ali.adb: Minor reformatting and cleanup of code
30089         Acquire new SS indication of secondary stack use from ali files
30090
30091         * a-numaux.ads: Add Pure_Function pragmas for all imported functions
30092         (since now we expect this to be done for imported functions)
30093
30094         * bindgen.adb: Generate call to modify default secondary stack size if
30095         -Dnnn switch given
30096
30097         * bindusg.adb: Add line for new -D switch
30098
30099         * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate
30100         replacement name for Type_May_Have_Non_Bit_Aligned_Components!
30101         Add circuitry for both records and arrays to avoid gigi
30102         processing if the type involved has non-bit-aligned components
30103
30104         * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that
30105         N_String_Literal node always references an E_String_Literal_Subtype
30106         entity. This may not be true in the future.
30107         (Possible_Bit_Aligned_Component): Move processing of
30108         Component_May_Be_Bit_Aligned from exp_ch5 to exp_util
30109
30110         * exp_ch6.adb (Expand_Thread_Body): Pick up
30111         Default_Secondary_Stack_Size as variable so that we get value modified
30112         by possible -Dnnn binder parameter.
30113
30114         * exp_util.adb (Component_May_Be_Bit_Aligned): New function.
30115         (Type_May_Have_Bit_Aligned_Components): New function.
30116
30117         * exp_util.ads (Component_May_Be_Bit_Aligned): New function.
30118         (Type_May_Have_Bit_Aligned_Components): New function.
30119
30120         * fe.h: (Set_Identifier_Casing): Fix prototype.
30121         Add declaration for Sem_Elim.Eliminate_Error_Msg.
30122         Minor reformatting.
30123
30124         * freeze.adb (Freeze_Entity): Add RM reference to error message about
30125         importing constant atomic/volatile objects.
30126         (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram
30127         unless explicit Pure_Function pragma given, to avoid insidious bug of
30128         call to non-pure imported function getting eliminated.
30129
30130         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb,
30131         gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb,
30132         gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting
30133         Add 2004 to printed copyright notice
30134
30135         * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary
30136         stack used.
30137
30138         * Makefile.rtl: Add entry for g-sestin.o
30139         g-sestin.ads: New file.
30140
30141         * mdll.adb: Minor changes to avoid -gnatwa warnings
30142
30143         * mlib-tgt.adb: Minor reformatting
30144
30145         * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND)
30146         New switch Sec_Stack_Used (GNAT, GNATBIND)
30147         Make Default_Secondary_Stack_Size a variable instead of a constant,
30148         so that it can be modified by the new -Dnnn bind switch.
30149
30150         * rtsfind.adb (Load_Fail): Give full error message in configurable
30151         run-time mode if all_errors mode is set. This was not done in the case
30152         of a file not found, which was an oversight.
30153         Note if secondary stack unit is used by compiler.
30154
30155         * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put
30156         ineffective elaborate all pragmas on non-visible packages (this
30157         happened when a renamed subprogram was called). Now the elaborate all
30158         always goes on the package containing the renaming rather than the one
30159         containing the renamed subprogram.
30160
30161         * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure
30162         (Process_Eliminate_Pragma): Add parameter to capture pragma location.
30163
30164         * sem_eval.adb (Eval_String_Literal): Do not assume that string literal
30165         has an Etype that references an E_String_Literal.
30166         (Eval_String_Literal): Avoid assumption that N_String_Literal node
30167         always references an E_String_Literal_Subtype entity. This may not
30168         be true in the future.
30169
30170         * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture
30171         pragma location.
30172
30173         * sem_res.adb (Resolve): Specialize msg for function name used in proc
30174         call.
30175
30176 2004-01-05  Ed Falis  <falis@gnat.com>
30177
30178         * g-debuti.adb: Replaced direct boolean operator with short-circuit
30179         form.
30180
30181 2004-01-05  Vincent Celier  <celier@gnat.com>
30182
30183         * bld.adb: Minor comment updates
30184         (Process_Declarative_Items): Correct incorrect name (Index_Name instead
30185         of Item_Name).
30186
30187         * make.adb (Gnatmake): Special process for files to compile/check when
30188         -B is specified. Fail when there are only foreign mains in attribute
30189         Main of the project file and -B is not specified. Do not skip bind/link
30190         steps when -B is specified.
30191
30192         * makeusg.adb: Document new switch -B
30193
30194         * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag
30195
30196         * switch-m.adb: (Scan_Make_Switches): Process -B switch
30197
30198         * vms_data.ads: Add new GNAT PRETTY qualifier
30199         /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff
30200
30201 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30202
30203         * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer
30204         case.
30205
30206         * misc.c (gnat_printable_name): If VERBOSITY is 2, call
30207         Set_Identifier_Casing.
30208
30209         * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type
30210         has size that overflows.
30211
30212 2004-01-05  Gary Dismukes  <dismukes@gnat.com>
30213
30214         * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid
30215         -gnatwa warning on static condition.
30216
30217 2004-01-05  Doug Rupp  <rupp@gnat.com>
30218
30219         * link.c: (shared_libgnat_default) [VMS]: Change to STATIC.
30220
30221 2004-01-05  Arnaud Charlet  <charlet@act-europe.fr>
30222
30223         * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve
30224         all attributes, including read-only attribute.
30225
30226 2004-01-05  Pascal Obry  <obry@gnat.com>
30227
30228         * bindgen.adb (Gen_Object_Files_Options): Generate the new shared
30229         library naming scheme.
30230
30231         * mlib-prj.adb (Build_Library): Generate different names for the static
30232         or dynamic version of the GNAT runtime. This is needed to support the
30233         new shared library naming scheme.
30234         (Process_Binder_File): Add detection of shared library in binder file
30235         based on the new naming scheme.
30236
30237         * gnatlink.adb (Process_Binder_File): Properly detect the new naming
30238         scheme for the shared runtime libraries.
30239
30240         * Makefile.in:
30241         (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming
30242         scheme.
30243         (install-gnatlib): Do not create symlinks for shared libraries.
30244         (gnatlib-shared-default): Idem.
30245         (gnatlib-shared-dual-win32): New target. Not used for now as the
30246         auto-import feature does not support arrays/records.
30247         (gnatlib-shared-win32): Do not create copy for the shared libraries.
30248         (gnatlib-shared-vms): Fix shared runtime libraries names.
30249
30250         * osint.ads, osint.adb (Shared_Lib): New routine, returns the target
30251         dependent runtime shared library name.
30252
30253 2004-01-05  Vasiliy Fofanov  <fofanov@act-europe.fr>
30254
30255         * osint.adb (Read_Library_Info): Remove bogus check if ALI is older
30256         than the object.
30257
30258 2004-01-05  Ed Schonberg  <schonberg@gnat.com>
30259
30260         * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic
30261         protected objects when allocator has a subtype indication, not a
30262         qualified expression. Note that qualified expressions may have to be
30263         checked when limited aggregates are implemented.
30264
30265         * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is
30266         pure, emit warning.
30267         (Analyze_Pragma, case Pure_Function): If enclosing package is pure and
30268         subprogram is imported, remove warning.
30269
30270 2004-01-05  Geert Bosch  <bosch@gnat.com>
30271
30272         * s-poosiz.adb: Update copyright notice.
30273         (Allocate): Use Task_Lock to protect against concurrent access.
30274         (Deallocate): Likewise.
30275
30276 2004-01-05  Joel Brobecker  <brobecker@gnat.com>
30277
30278         * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???
30279         comment.
30280
30281 2003-12-23  Kelley Cook  <kcook@gcc.gnu.org>
30282
30283         * gnat_ug.texi: Force a CVS commit by updating copyright.
30284         * gnat_ug_vxw.texi: Regenerate.
30285         * gnat_ug_wnt.texi: Regenerate.
30286         * gnat_ug_vms.texi: Regenerate.
30287         * gnat_ug_unx.texi: Regenerate.
30288
30289 2003-12-20  Kazu Hirata  <kazu@cs.umass.edu>
30290
30291         * trans.c: Remove uses of "register" specifier in
30292         declarations of local variables.
30293
30294 2003-12-18  Kelley Cook  <kcook@gcc.gnu.org>
30295
30296         * stamp-xgnatug: New stamp file.
30297         * Make-lang.in (stamp-xgnatug):  New stamp file and comment.
30298         (ada/doctools/xgnatug): Add $(build_exeext).
30299         (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
30300         ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.
30301
30302 2003-12-17  Ed Falis  <falis@gnat.com>
30303
30304         * a-elchha.adb (Tailored_Exception_Information): made Info constant to
30305         eliminate warning.
30306
30307         * a-exextr.adb: Add context clause for
30308         Ada.Exceptions.Last_Chance_Handler.
30309
30310 2003-12-17  Sergey Rybin  <rybin@act-europe.fr>
30311
30312         * cstand.adb (Create_Standard): Change the way how the declaration of
30313         the Duration type is created (making it the same way as it is for all
30314         the other standard types).
30315
30316 2003-12-17  Robert Dewar  <dewar@gnat.com>
30317
30318         * s-crtl.ads: Fix header format
30319         Change Pure to Preelaborate
30320
30321 2003-12-17  Ed Schonberg  <schonberg@gnat.com>
30322
30323         * checks.adb (Selected_Length_Checks): Generate an Itype reference for
30324         the expression type only if it is declared in the current unit.
30325
30326         * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds
30327         are universal and already analyzed, as can occur in constrained
30328         subcomponents that depend on discriminants, when one constraint is a
30329         subtype mark.
30330
30331         * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of
30332         type Any_Fixed is legal as the argument of a conversion, if only one
30333         fixed-point type is in context.
30334
30335 2003-12-17  GNAT Script  <nobody@gnat.com>
30336
30337         * Make-lang.in: Makefile automatically updated
30338
30339 2003-12-15  Robert Dewar  <dewar@gnat.com>
30340
30341         * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default
30342         sec stack size.
30343
30344 2003-12-15  Vincent Celier  <celier@gnat.com>
30345
30346         * gnatchop.adb: (Error_Msg): Do not exit on error for a warning
30347         (Gnatchop): Do not set failure status when reporting the number of
30348         warnings.
30349
30350 2003-12-15  Doug Rupp  <rupp@gnat.com>
30351
30352         * s-ctrl.ads: New file.
30353
30354         * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext).
30355
30356         * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o.
30357         (GNATBIND_OBJS): Add ada/s-crtl.o.
30358
30359         * Makefile.in [VMS]: Clean up ifeq rules.
30360
30361         * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb,
30362         a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb,
30363         g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb,
30364         s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb,
30365         s-tasdeb.adb: Update copyright.
30366         Import System.CRTL.
30367         Make minor modifications to use System.CRTL declared functions instead
30368         of importing locally.
30369
30370 2003-12-15  GNAT Script  <nobody@gnat.com>
30371
30372         * Make-lang.in: Makefile automatically updated
30373
30374 2003-12-11  Ed Falis  <falis@gnat.com>
30375
30376         * 5zinit.adb: Clean up.
30377
30378         * 5zintman.adb (Notify_Exception): replaced case statement with a call
30379         to __gnat_map_signal, imported from init.c to support
30380         signal -> exception mappings that depend on the vxWorks version.
30381
30382         * init.c:
30383         Created and exported __gnat_map_signal to support signal -> exception
30384         mapping that is dependent on the VxWorks version.
30385         Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks
30386
30387 2003-12-11  Vasiliy Fofanv  <fofanov@act-europe.fr>
30388
30389         * 5wosinte.ads: Link with -mthreads switch.
30390
30391 2003-12-11  Arnaud Charlet  <charlet@act-europe.fr>
30392
30393         * init.c (__gnat_install_handler [NetBSD]): Set
30394         __gnat_handler_installed, as done on all other platforms.
30395         Remove duplicated code.
30396
30397 2003-12-11  Jerome Guitton  <guitton@act-europe.fr>
30398
30399         * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a.
30400
30401 2003-12-11  Thomas Quinot  <quinot@act-europe.fr>
30402
30403         * sinfo.ads: Fix inconsistent example code in comment.
30404
30405 2003-12-11  Robert Dewar  <dewar@gnat.com>
30406
30407         * a-tiinau.adb: Add a couple of comments
30408
30409         * sem_ch3.adb: Minor reformatting
30410
30411         * sem_prag.adb:
30412         Fix bad prototype of Same_Base_Type in body (code reading cleanup)
30413         Minor reformatting throughout
30414
30415 2003-12-11  Ed Schonberg  <schonberg@gnat.com>
30416
30417         * exp_ch7.adb (Establish_Transient_Scope): If the call is within the
30418         bounds of a loop, create a separate block in order to generate proper
30419         cleanup actions to prevent memory leaks.
30420
30421         * sem_res.adb (Resolve_Call): After a call to
30422         Establish_Transient_Scope, the call may be rewritten and relocated, in
30423         which case no further processing is needed.
30424
30425         * sem_util.adb: (Wrong_Type): Refine previous fix.
30426          Fixes ACATS regressions.
30427
30428         PR ada/13353
30429         * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
30430         be inlined.
30431
30432 2003-12-08  Jerome Guitton  <guitton@act-europe.fr>
30433
30434         * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb,
30435         i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of
30436         obsolete files.
30437
30438         * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a.
30439         (rts-zfp): Ditto.
30440
30441 2003-12-08  Robert Dewar  <dewar@gnat.com>
30442
30443         * 7sintman.adb: Minor reformatting
30444
30445         * bindgen.adb: Configurable_Run_Time mode no longer suppresses the
30446         standard linker options to get standard libraries linked. We now plan
30447         to provide dummy versions of these libraries to match the appropriate
30448         configurable run-time (e.g. if a library is not needed at all, provide
30449         a dummy empty library).
30450
30451         * targparm.ads: Configurable_Run_Time mode no longer affects linker
30452         options (-L parameters and standard libraries). What we plan to do is
30453         to provide dummy libraries where the libraries are not required.
30454
30455         * gnatbind.adb: Minor comment improvement
30456
30457 2003-12-08  Javier Miranda  <miranda@gnat.com>
30458
30459         * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded
30460         aggregate in the parent. Otherwise constants with limited aggregates
30461         are not supported. Add new formal to pass the component type (Ctype).
30462         It is required to call the corresponding IP subprogram in case of
30463         default initialized components.
30464         (Gen_Assign): In case of default-initialized component, generate a
30465         call to the IP subprogram associated with the component.
30466         (Build_Record_Aggr_Code): Remove the aggregate from the parent in case
30467         of aggregate with default initialized components.
30468         (Has_Default_Init_Comps): Improve implementation to recursively check
30469         all the present expressions.
30470
30471         * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal
30472         to indicate that the initialization call corresponds to a
30473         default-initialized component of an aggregate.
30474         In case of default initialized aggregate with tasks this parameter is
30475         used to generate a null string (this is just a workaround that must be
30476         improved later). In case of discriminants, this parameter is used to
30477         generate a selected component node that gives access to the discriminant
30478         value.
30479
30480         * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New
30481         subprogram, based on Build_Task_Allocate_Block, but adapted to expand
30482         allocated aggregates with default-initialized components.
30483
30484         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if
30485         the box notation is used in positional aggregates.
30486
30487 2003-12-08  Samuel Tardieu  <tardieu@act-europe.fr>
30488
30489         * lib.ads: Fix typo in comment
30490
30491 2003-12-08  Vincent Celier  <celier@gnat.com>
30492
30493         * prj.adb (Project_Empty): New component Unkept_Comments
30494         (Scan): Remove procedure; moved to Prj.Err.
30495
30496         * prj.ads (Project_Data): New Boolean component Unkept_Comments
30497         (Scan): Remove procedure; moved to Prj.Err.
30498
30499         * prj-dect.adb: Manage comments for the different declarations.
30500
30501         * prj-part.adb (With_Record): New component Node
30502         (Parse): New Boolean parameter Store_Comments, defaulted to False.
30503         Set the scanner to return ends of line and comments as tokens, if
30504         Store_Comments is True.
30505         (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that
30506         comments are associated with these nodes. Store the node IDs in the
30507         With_Records.
30508         (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the
30509         With_Records.
30510         (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating
30511         the N_Project node. Call Tree.Save and Tree.Reset before scanning the
30512         current project. Call Tree.Restore afterwards. Set the various nodes
30513         for comment storage (Next_End, End_Of_Line, Previous_Line,
30514         Previous_End).
30515
30516         * prj-part.ads (Parse): New Boolean parameter Store_Comments,
30517         defaulted to False.
30518
30519         * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted
30520         to False. When Truncated is True, truncate the string, never go to the
30521         next line.
30522         (Write_End_Of_Line_Comment): New procedure
30523         (Print): Process comments for nodes N_With_Clause,
30524         N_Package_Declaration, N_String_Type_Declaration,
30525         N_Attribute_Declaration, N_Typed_Variable_Declaration,
30526         N_Variable_Declaration, N_Case_Construction, N_Case_Item.
30527         Process nodes N_Comment.
30528
30529         * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node
30530         without comments and there are some comments, set the flag
30531         Unkept_Comments to True.
30532         (Scan): If there are comments, set the flag Unkept_Comments to True and
30533         clear the comments.
30534         (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment
30535         (Next_End_Nodes: New table
30536         (Comment_Zones_Of): New function
30537         (Scan): New procedure; moved from Prj. Accumulate comments in the
30538         Comments table and set end of line comments, comments after, after end
30539         and before end.
30540         (Add_Comments): New procedure
30541         (Save, Restore, Seset_State): New procedures
30542         (There_Are_Unkept_Comments): New function
30543         (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures
30544         (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New
30545         procedures.
30546         (First_Comment_After, First_Comment_After_End): New functions
30547         (First_Comment_Before, First_Comment_Before_End): New functions
30548         (Next_Comment): New function
30549         (End_Of_Line_Comment, Follows_Empty_Line,
30550         Is_Followed_By_Empty_Line): New functions
30551         (Set_First_Comment_After, Set_First_Comment_After_End): New procedures
30552         (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures
30553         (Set_Next_Comment): New procedure
30554         (Default_Project_Node): Associate comment before if the node can store
30555         comments.
30556
30557         * scans.ads (Token_Type): New enumeration value Tok_Comment
30558         (Comment_Id): New global variable
30559
30560         * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable,
30561         defaulted to False.
30562         (Scan): Store position of start of comment. If comments are tokens, set
30563         Comment_Id and set Token to Tok_Comment when scanning a comment.
30564         (Set_Comment_As_Token): New procedure
30565
30566         * sinput-p.adb: Update Copyright notice
30567         (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan
30568         that no longer exists.
30569
30570 2003-12-08  Javier Miranda  <miranda@gnat.com>
30571
30572         * sem_aggr.adb: Add dependence on Exp_Tss package
30573         Correct typo in comment
30574         (Resolve_Aggregate): In case of array aggregates set the estimated
30575         type of the aggregate before calling resolve. This is needed to know
30576         the name of the corresponding IP in case of limited array aggregates.
30577         (Resolve_Array_Aggregate): Delay the resolution to the expansion phase
30578         in case of default initialized array components.
30579
30580         * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited
30581         types. Required to give support to limited aggregates in generic
30582         formals.
30583
30584 2003-12-08  Ed Schonberg  <schonberg@gnat.com>
30585
30586         * sem_ch3.adb (Check_Initialization): For legality purposes, an
30587         inlined body functions like an instantiation.
30588         (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype
30589         until bounds are analyzed, to diagnose premature use of type.
30590
30591         * sem_util.adb (Wrong_Type): Improve error message when the type of
30592         the expression is used prematurely.
30593
30594 2003-12-08  GNAT Script  <nobody@gnat.com>
30595
30596         * Make-lang.in: Makefile automatically updated
30597
30598 2003-12-08  Arnaud Charlet  <charlet@act-europe.fr>
30599
30600         * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since
30601         they are automatically generated by Make-lang.in and cause nothing but
30602         maintenance troubles.
30603
30604 2003-12-05  Thomas Quinot  <quinot@act-europe.fr>
30605
30606         * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare,
30607         version of this unit).
30608
30609 2003-12-05  Olivier Hainque  <hainque@act-europe.fr>
30610
30611         * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads,
30612         5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads,
30613         5tosinte.ads: Define the SA_SIGINFO constant, to allow references from
30614         the body of System.Interrupt_Management common to several targets.
30615         Update copyright notice when appropriate.
30616
30617         * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO
30618         constant.
30619
30620         * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags,
30621         to ensure that the kernel fills in the interrupted context structure
30622         before calling a signal handler, which is necessary to be able to
30623         unwind past it. Update the copyright notice.
30624
30625 2003-12-05  Jerome Guitton  <guitton@act-europe.fr>
30626
30627         * a-elchha.ads: New file.
30628
30629         * a-elchha.adb: New default last chance handler. Contents taken from
30630         Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate.
30631
30632         * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine
30633         is moved to a-elchha.adb to provide a target-independent default last
30634         chance handler.
30635
30636         * Makefile.rtl: Add a-elchha.o
30637
30638         * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o.
30639
30640 2003-12-05  Ed Schonberg  <schonberg@gnat.com>
30641
30642         * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is
30643         declared in an instance, do not inline the call if the instance is not
30644         frozen yet, to prevent order of elaboration problems.
30645
30646         * sem_prag.adb: Add comments for previous fix.
30647
30648 2003-12-05  Samuel Tardieu  <tardieu@act-europe.fr>
30649
30650         * g-table.adb: Use the right variable in Set_Item.
30651         Update copyright notice.
30652
30653 2003-12-05  Arnaud Charlet  <charlet@act-europe.fr>
30654
30655         * Makefile.in: Remove unused rules.
30656
30657 2003-12-05  Vincent Celier  <celier@gnat.com>
30658
30659         * switch-c.adb (Scan_Front_End_Switches): Remove processing of
30660         -nostdlib. Not needed here after all.
30661
30662 2003-12-03  Thomas Quinot  <quinot@act-europe.fr>
30663
30664         PR ada/11724
30665         * adaint.h, adaint.c, g-os_lib.ads:
30666         Do not assume that the offset argument to lseek(2) is a 32 bit integer,
30667         on some platforms (including FreeBSD), it is a 64 bit value.
30668         Introduce a __gnat_lseek wrapper in adaint.c to allow for portability.
30669
30670 2003-12-03  Arnaud Charlet  <charlet@act-europe.fr>
30671
30672         * gnatvsn.ads (Library_Version): Now contain only the relevant
30673         version info.
30674         (Verbose_Library_Version): New constant.
30675
30676         * g-spipat.adb, g-awk.adb, g-debpoo.adb,
30677         g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb,
30678         s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa.
30679
30680         * gnatlbr.adb: Clean up: replace Library_Version by
30681         Verbose_Library_Version.
30682
30683         * make.adb, lib-writ.adb, exp_attr.adb:
30684         Clean up: replace Library_Version by Verbose_Library_Version.
30685
30686         * 5lintman.adb: Removed.
30687
30688         * Makefile.in:
30689         Update and simplify computation of LIBRARY_VERSION.
30690         Fix computation of GSMATCH_VERSION.
30691         5lintman.adb is no longer used: replaced by 7sintman.adb.
30692
30693 2003-12-03  Robert Dewar  <dewar@gnat.com>
30694
30695         * exp_ch5.adb:
30696         (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new
30697         name. Modified to consider small non-bit-packed arrays as troublesome
30698         and in need of component-by-component assigment expansion.
30699
30700 2003-12-03  Vincent Celier  <celier@gnat.com>
30701
30702         * lang-specs.h: Process nostdlib as nostdinc
30703
30704         * back_end.adb: Update Copyright notice
30705         (Scan_Compiler_Arguments): Process -nostdlib directly.
30706
30707 2003-12-03  Jose Ruiz  <ruiz@act-europe.fr>
30708
30709         * Makefile.in:
30710         When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the
30711         redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always
30712         included in HIE_NONE_TARGET_PAIRS.
30713
30714 2003-12-03  Ed Schonberg  <schonberg@gnat.com>
30715
30716         * sem_attr.adb:
30717         (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it
30718         is legal in an instance, because legality is cheched in the template.
30719
30720         * sem_prag.adb:
30721         (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be
30722         appplied to an unchecked conversion of a formal parameter.
30723
30724         * sem_warn.adb:
30725         (Output_Unreferenced_Messages): Suppress "not read" warnings on imported
30726         variables.
30727
30728 2003-12-03  Olivier Hainque  <hainque@act-europe.fr>
30729
30730         * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New
30731         routines. The second one is new functionality to deal with backtracing
30732         through signal handlers.
30733         (unwind): Split into the two separate subroutines above.
30734         Update the documentation, and deal properly with sizeof (REG) different
30735         from sizeof (void*).
30736
30737 2003-12-01  Nicolas Setton  <setton@act-europe.fr>
30738
30739         * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point,
30740         so that the debugger can reliably access the value of the parameter,
30741         and therefore is able to display the exception name when an exception
30742         breakpoint is reached.
30743
30744 2003-12-01  Thomas Quinot  <quinot@act-europe.fr>
30745
30746         * fmap.adb: Fix typo in warning message.
30747
30748         * g-socket.ads, g-socket.adb: Make Free a visible instance of
30749         Ada.Unchecked_Deallocation (no need to wrap it in a subprogram).
30750
30751 2003-12-01  Vincent Celier  <celier@gnat.com>
30752
30753         * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if
30754         ther is no Afile.
30755         (Build_Library): Get the switches only if Default_Switches is declared
30756         in package Binder.
30757
30758 2003-12-01  Ed Schonberg  <schonberg@gnat.com>
30759
30760         * exp_ch6.adb (Expand_Actuals): When applying validity checks to
30761         actuals that are indexed components, reanalyze actual to ensure that
30762         packed array references are properly expanded.
30763
30764         * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for
30765         attempted assignment to a discriminant.
30766
30767 2003-12-01  Robert Dewar  <dewar@gnat.com>
30768
30769         * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor
30770         reformatting.
30771
30772         * switch-c.adb: Minor reformatting of comments
30773
30774 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
30775
30776         * Makefile.in: Clean ups.
30777
30778 2003-12-01  GNAT Script  <nobody@gnat.com>
30779
30780         * Make-lang.in: Makefile automatically updated
30781
30782 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
30783
30784         * 5wsystem.ads: Disable zero cost exception, not ready yet.
30785
30786 2003-11-29  Ulrich Weigand  <uweigand@de.ibm.com>
30787
30788         * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb
30789         to force serialization.
30790
30791 2003-11-26  Thomas Quinot  <quinot@act-europe.fr>
30792
30793         * g-socket.ads, g-socket.adb:
30794         Clarify documentation of function Stream. Introduce a Free procedure
30795         to release the returned Stream once it becomes unused.
30796
30797         * 5asystem.ads: For Alpha Tru64, enable ZCX by default.
30798
30799 2003-11-26  Arnaud Charlet  <charlet@act-europe.fr>
30800
30801         (Cond_Timed_Wait): Introduce new constant Time_Out_Max,
30802         since NT 4 cannot handle timeout values that are too large,
30803         e.g. DWORD'Last - 1.
30804
30805 2003-11-26  Ed Schonberg  <schonberg@gnat.com>
30806
30807         * exp_ch4.adb:
30808         (Expand_N_Slice): Recognize all cases of slices that appear as actuals
30809         in procedure calls and whose expansion must be deferred.
30810
30811         * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix
30812         is in exp_ch4.
30813
30814         * sem_ch3.adb:
30815         (Build_Derived_Array_Type): Create operator for unconstrained type
30816         if ancestor is unconstrained.
30817
30818 2003-11-26  Vincent Celier  <celier@gnat.com>
30819
30820         * make.adb (Project_Object_Directory): New global variable
30821         (Change_To_Object_Directory): New procedure
30822         (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead
30823         of Change_Dir directly. Do not change working directory to object
30824         directory of main project after each compilation.
30825         (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir
30826         directly.
30827         Change to object directory of main project before binding step.
30828         (Initialize): Initialize Project_Object_Directory to No_Project
30829
30830         * mlib-prj.adb:
30831         (Build_Library): Take into account Builder'Default_Switches ("Ada") when
30832         binding a Stand-Alone Library.
30833
30834         * output.adb: Update Copyright notice
30835         (Write_Char): Output buffer when full
30836
30837 2003-11-26  Robert Dewar  <dewar@gnat.com>
30838
30839         * sem_ch13.adb: (Check_Size): Reset size if size is too small
30840
30841         * sem_ch13.ads:
30842         (Check_Size): Fix documentation to include bit-packed array case
30843
30844         * sem_res.adb: Implement restriction No_Direct_Boolean_Operators
30845
30846         * s-rident.ads: Put No_Direct_Boolean_Operators in proper order
30847
30848         * s-rident.ads: Add new restriction No_Direct_Boolean_Operators
30849
30850 2003-11-24  Arnaud Charlet <charlet@act-europe.fr>
30851
30852         PR ada/13142
30853         * utils.c (init_gigi_decls): Change name of built-in setjmp to
30854         __builtin_setjmp, since this is apparently needed by recent
30855         non Ada changes.
30856
30857 2003-11-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
30858
30859         * adadecode.c: Only include ctype.h if not IN_GCC.
30860         (__gnat_decode): Use ISDIGIT from safe-ctype.h.
30861
30862 2003-11-24  Jose Ruiz  <ruiz@act-europe.fr>
30863
30864         * Makefile.in:
30865         Use 5zintman.ads for VxWorks targets. This file avoid confusion between
30866         signals and interrupts.
30867
30868         * 5zintman.ads: New File.
30869
30870         * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and
30871         add exception signals to the set of unmasked signals.
30872
30873         * 5ztaprop.adb:
30874         Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion
30875         between signals and interrupts.
30876         Add to Unblocked_Signal_Mask the set of signals that are in
30877         Keep_Unmasked.
30878
30879         * 7sinmaop.adb:
30880         Adding a check to see whether the Interrupt_ID we want to unmask is in
30881         the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The
30882         reason is that the index type of the Keep_Unmasked array is not always
30883         Interrupt_ID; it may be a subtype of Interrupt_ID.
30884
30885 2003-11-24  Gary Dismukes  <dismukes@gnat.com>
30886
30887         * exp_util.adb:
30888         (Remove_Side_Effects): Condition constantness of object created for a
30889          an unchecked type conversion on the constantness of the expression
30890          to ensure the correct value for 'Constrained when passing components
30891          of view-converted class-wide objects.
30892
30893 2003-11-24  Robert Dewar  <dewar@gnat.com>
30894
30895         * par-load.adb (Load): Improve handling of misspelled and missing units
30896         Removes several cases of compilation abandoned messages
30897
30898         * lib.adb: (Remove_Unit): New procedure
30899
30900         * lib.ads: (Remove_Unit): New procedure
30901
30902         * lib-load.adb: Minor reformatting
30903
30904 2003-11-24  Vincent Celier  <celier@gnat.com>
30905
30906         * make.adb:
30907         (Gnatmake, Initialize): Call Usage instead of Makeusg directly
30908         (Marking_Label): Label to mark processed source files. Incremented for
30909         each executable.
30910         (Gnatmake): Increase Marking_Labet for each executable
30911         (Is_Marked): Compare against marking label
30912         (Mark): Mark with marking label
30913
30914 2003-11-24  Jerome Guitton  <guitton@act-europe.fr>
30915
30916         * s-thread.ads:
30917         Move the declaration of the TSD for System.Threads to System.Soft_Links.
30918         Add some comments.
30919
30920         * Makefile.in: Added target pair for s-thread.adb for cert runtime.
30921         (rts-cert): build a single relocatable object for the run-time lib.
30922         Fix perms.
30923
30924 2003-11-24  Vasiliy Fofanov  <fofanov@act-europe.fr>
30925
30926         * Make-lang.in:
30927         Use gnatls rather than gcc to obtain the location of GNAT RTL for
30928         crosstools build.
30929
30930 2003-11-24  Sergey Rybin  <rybin@act-europe.fr>
30931
30932         * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we
30933         can not use it as before (that is, as a variable) when dumping it into
30934         the tree file. Add a local variable to store the result of this
30935         function and to be used as the string to be written into the tree.
30936
30937         * scn.adb (Initialize_Scanner): Add comments explaining the recent
30938         changes.
30939
30940         * sinput.adb (Source_First, Source_Last): In case of
30941         Internal_Source_File, replace returning attributes of
30942         Internal_Source_Ptr (which is wrong) with returning attributes of
30943         Internal_Source.
30944
30945 2003-11-24  Ed Schonberg  <schonberg@gnat.com>
30946
30947         * sem_ch3.adb:
30948         (New_Concatenation_Op): Proper name for New_Binary_Operator, only
30949         used for implicit concatenation operators.
30950         Code cleanup.
30951
30952         * sem_elab.adb:
30953         (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in
30954         task bodies that are in the scope of a Suppress pragma.
30955         (Check_A Call): Use the flag to prevent spurious elaboration checks.
30956
30957         * sinfo.ads, sinfo.adb:
30958         New flag No_Elaboration_Check on function/procedure calls, to properly
30959         suppress checks on calls in task bodies that are within a local suppress
30960         pragma.
30961
30962         * exp_ch4.adb:
30963         (Expand_Concatenate_Other): Use the proper integer type for the
30964         expression for the upper bound, to avoid universal_integer computations
30965         when possible.
30966
30967 2003-11-21  Kelley Cook  <kcook@gcc.gnu.org>
30968
30969         * .cvsignore: Delete.
30970
30971 2003-11-21  Andreas Schwab  <schwab@suse.de>
30972
30973         * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True.
30974
30975 2003-11-21  Vasiliy Fofanov  <fofanov@act-europe.fr>
30976
30977         * 5wsystem.ads: Enable zero cost exception.
30978
30979 2003-11-21  Jerome Guitton  <guitton@act-europe.fr>
30980
30981         * 5ztiitho.adb: Remove an unreferenced variable.
30982
30983 2003-11-21  Thomas Quinot  <quinot@act-europe.fr>
30984
30985         * adaint.c: For FreeBSD, use mkstemp.
30986
30987 2003-11-21  Arnaud Charlet  <charlet@act-europe.fr>
30988
30989         * gnatlbr.adb: Now reference Gnat_Static_Version_String.
30990
30991 2003-11-21  Robert Dewar  <dewar@gnat.com>
30992
30993         * bld.adb: Remove useless USE of gnatvsn
30994
30995         * gnatchop.adb: Minor reformatting
30996         Clean up version handling to be more consistent
30997
30998         * gnatxref.adb: Minor reformatting
30999
31000         * gprcmd.adb: Minor reformatting
31001         Fix output of copyright to be more consistent with other tools
31002
31003 2003-11-21  Vincent Celier  <celier@gnat.com>
31004
31005         * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink
31006
31007 2003-11-21  Sergey Rybin  <rybin@act-europe.fr>
31008
31009         * atree.adb (Initialize): Add initializations for global variables
31010         used in New_Copy_Tree.
31011
31012         * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with
31013         Internal_Source_File as the actual).
31014         Put the set of statements creating Any_Character before the set of
31015         statements creating Any_Array to have Any_Character fully initialized
31016         when it is used in creating Any_Array.
31017
31018         * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do
31019         not call Scan in case if the actual is Internal_Source_File
31020         Add 2003 to copyright note.
31021
31022         * sinput.adb (Source_First, Source_Last, Source_Text): Add code for
31023         processing Internal_Source_File.
31024
31025         * types.ads: Add the constant Internal_Source_File representing the
31026         source buffer for artificial source-code-like strings created within
31027         the compiler (the definition of Source_File_Index is changed).
31028
31029 2003-11-20  Arnaud Charlet  <charlet@act-europe.fr>
31030
31031         * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads,
31032         56system.ads: New file, FreeBSD version.
31033
31034 2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
31035
31036         * Make-lang.in (ada.extraclean): Delete.
31037
31038 2003-11-19  Arnaud Charlet  <charlet@act-europe.fr>
31039
31040         * gnatmem.adb: Clean up verbose output.
31041
31042         * gprcmd.adb: Change copyright to FSF.
31043
31044 2003-11-19  Vincent Celier  <celier@gnat.com>
31045
31046         * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy
31047         and Version (ignored).
31048
31049         * symbols.ads: (Policy): New type
31050         (Initialize): New parameter Reference, Symbol_Policy and
31051         Library_Version.
31052         Remove parameter Force.
31053         Minor reformatting.
31054
31055         * snames.ads, snames.adbadb: New standard names
31056         Library_Reference_Symbol_File and Library_Symbol_Policy
31057
31058         * mlib-prj.adb:
31059         (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the
31060         project.
31061
31062         * mlib-tgt.adb:
31063         (Build_Dynamic_Library): New parameter Symbol_Data (ignored)
31064
31065         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data
31066
31067         * prj.adb: (Project_Empty): New component Symbol_Data
31068
31069         * prj.ads: (Policy, Symbol_Record): New types
31070         (Project_Data): New component Symbol_Data
31071
31072         * prj-attr.adb:
31073         New attributes Library_Symbol_File, Library_Symbol_Policy and
31074         Library_Reference_Symbol_File.
31075
31076         * prj-nmsc.adb:
31077         (Ada_Check): When project is a Stand-Alone library project, process
31078         attribute Library_Symbol_File, Library_Symbol_Policy and
31079         Library_Reference_Symbol_File.
31080
31081         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb,
31082         5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb,
31083         5sml-tgt.adb (Build_Dynamic_Library): New parameter
31084         Symbol_Data (ignored).
31085
31086         * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0
31087         (Build_Dynamic_Library): New parameter Symbol_Data. New internal
31088         functions Option_File_Name and Version_String. Set new options of
31089         gnatsym related to symbol file, symbol policy and reference symbol
31090         file.
31091
31092         * 5vsymbol.adb:
31093         Extensive modifications to take into account the reference symbol file,
31094         the symbol policy, the library version and to put in the symbol file the
31095         minor and major IDs.
31096
31097         * bld.adb (Process_Declarative_Items): Put second argument of
31098         gprcmd to_absolute between single quotes, to avoid problems with
31099         Windows.
31100
31101         * bld-io.adb: Update Copyright notice.
31102         (Flush): Remove last character of a line, if it is a back slash, to
31103         avoid make problems.
31104
31105         * gnatsym.adb:
31106         Implement new scheme with reference symbol file and symbol policy.
31107
31108         * g-os_lib.ads: (Is_Directory): Clarify comment
31109
31110 2003-11-19  Robert Dewar  <dewar@gnat.com>
31111
31112         * atree.adb: Move New_Copy_Tree global variables to head of package
31113
31114         * errout.adb: Minor reformatting
31115
31116 2003-11-19  Javier Miranda  <miranda@gnat.com>
31117
31118         * sem_ch4.adb: (Diagnose_Call): Improve error message.
31119         Add reference to Ada0Y (AI-50217)
31120
31121         * sem_ch6.adb, sem_ch8.adb, sem_type.adb,
31122         sem_util.adb: Add reference to AI-50217
31123
31124         * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217
31125
31126         * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287)
31127
31128         * sem_aggr.adb: Complete documentation of AI-287 changes
31129
31130         * par-ch4.adb: Document previous changes.
31131
31132         * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb,
31133         sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to
31134         Ada0Y (AI-50217)
31135
31136         * exp_aggr.adb: Add references to AI-287 in previous changes
31137
31138 2003-11-19  Ed Schonberg  <schonberg@gnat.com>
31139
31140         * exp_ch6.adb:
31141         (Add_Call_By_Copy_Node): Do not original node of rewritten expression
31142         in the rewriting is the result of an inlined call.
31143
31144         * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out
31145         parameter is a type conversion, use original node to construct the
31146         post-call assignment, because expression may have been rewritten, e.g.
31147         if it is a packed array.
31148
31149         * sem_attr.adb:
31150         (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined
31151         body, just as it is in an instance.
31152         Categorization routines
31153
31154         * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram,
31155         Instantiate_Object): Set proper sloc reference for message on missing
31156         actual.
31157
31158 2003-11-19  Thomas Quinot  <quinot@act-europe.fr>
31159
31160         * Makefile.in: Add FreeBSD libgnat pairs.
31161
31162         * usage.adb: Fix typo in usage message.
31163
31164 2003-11-19  Jerome Guitton  <guitton@act-europe.fr>
31165
31166         * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?,
31167         s-thrini.ad? and s-tiitho.adb to the full runtime, to support the
31168         pragma Thread_Body.
31169         Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore.
31170
31171         * s-thread.adb: This file is now a dummy implementation of
31172         System.Thread.
31173
31174 2003-11-19  Sergey Rybin  <rybin@act-europe.fr>
31175
31176         * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available
31177
31178 2003-11-19  Emmanuel Briot  <briot@act-europe.fr>
31179
31180         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
31181         instanciation references in the parent type description.
31182
31183 2003-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31184
31185         * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s".
31186
31187         * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set
31188         TYPE_PRECISION directly from esize.
31189
31190 2003-11-18  Thomas Quinot  <quinot@act-europe.fr>
31191
31192         * cstreams.c:
31193         Use realpath(3) on FreeBSD. Fix typo in comment while we are at it.
31194
31195         * init.c: Initialization routines for FreeBSD
31196
31197         * link.c: Link info for FreeBSD
31198
31199         * sysdep.c: Add the case of FreeBSD
31200
31201 2003-11-17  Jerome Guitton  <guitton@act-europe.fr>
31202
31203         * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is
31204         already called in System.Threads.
31205
31206         * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the
31207         environment task, as it has been moved to System.Threads.Initialization.
31208
31209 2003-11-17  Arnaud Charlet  <charlet@act-europe.fr>
31210
31211         * adaint.c (__gnatlib_install_locks): Only reference
31212         __gnat_install_locks on VMS, since other platforms can avoid using
31213         --enable-threads=gnat
31214
31215 2003-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31216
31217         * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro.
31218
31219         * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set
31220         TYPE_PACKED_ARRAY_TYPE_P.
31221         (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P.
31222
31223         Part of PR ada/12806
31224         * utils.c (float_type_for_precision): Renamed from float_type_for_size.
31225         Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE.
31226
31227 2003-11-17  Vincent Celier  <celier@gnat.com>
31228
31229         * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted
31230         to False.
31231         Do not set exit status to Failure when Warning is True.
31232         (Gnatchop): Make errors "no compilation units found" and
31233         "no source files written" warnings only.
31234
31235         * make.adb (Gnatmake): When using a project file, set
31236         Look_In_Primary_Dir to False.
31237         (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas
31238         and Local_Configuration_Pragmas in the project where they are declared
31239         not an extending project which might have inherited them.
31240
31241         * osint.adb (Locate_File): If Name is already an absolute path, do not
31242         look for a directory.
31243
31244         * par-ch10.adb (P_Compilation_Unit): If source contains no token, and
31245         -gnats (Check_Syntax) is used, issue only a warning, not an error.
31246
31247         * prj.adb (Register_Default_Naming_Scheme): Add new component Project
31248         in objects of type Variable_Value.
31249
31250         * prj.ads: (Variable_Value): New component Project
31251
31252         * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source
31253         is in a project extended by Project.
31254
31255         * prj-proc.adb (Add_Attributes): New parameter Project. Set component
31256         Project of Variable_Values to this new parameter value.
31257         (Expression): Set component Project of Variable_Values.
31258         (Process_Declarative_Items): Call Add_Attributes with parameter Project.
31259         Set the component Project in array elements.
31260
31261 2003-11-17  Sergey Rybin  <rybin@act-europe.fr>
31262
31263         * errout.adb: (Initialize): Add initialization for error nodes.
31264
31265         * sem_ch12.adb (Initialize): Add missing initializations for
31266         Exchanged_Views and Hidden_Entities.
31267
31268 2003-11-17  Ed Schonberg  <schonberg@gnat.com>
31269
31270         * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an
31271         already instantiated tree for use in subsequent inlining.
31272         (Analyze_Associations, Instantiate_Formal_Subprogram,
31273         Instantiate_Object): improve error message for mismatch in
31274         instantiations.
31275
31276         * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle
31277         instantiations of subprograms declared in instances.
31278
31279 2003-11-17  Javier Miranda  <miranda@gnat.com>
31280
31281         * sem_ch4.adb (Analyze_Allocator): Previous modification must be
31282         executed only under the Extensions_Allowed flag.
31283
31284 2003-11-17  Robert Dewar  <dewar@gnat.com>
31285
31286         * a-exexda.adb (Address_Image): Fix documentation to indicate leading
31287         zeroes suppressed.
31288         (Address_Image): Fix bug of returning 0x instead of 0x0
31289         Minor reformatting (function specs).
31290
31291         * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array
31292         (missed case of 33-63)
31293
31294         * freeze.adb, sem_ch13.adb: Properly check size of packed bit array
31295
31296         * s-thread.adb: Add comments for pragma Restriction
31297
31298         * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb,
31299         sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting
31300
31301 2003-11-17  Ed Falis  <falis@gnat.com>
31302
31303         * s-thread.adb: Added No_Tasking restriction for this implementation.
31304
31305 2003-11-17  Emmanuel Briot  <briot@act-europe.fr>
31306
31307         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
31308         instanciation references in the parent type description.
31309
31310 2003-11-17  GNAT Script  <nobody@gnat.com>
31311
31312         * Make-lang.in: Makefile automatically updated
31313
31314 2003-11-16  Jason Merrill  <jason@redhat.com>
31315
31316         * Make-lang.in (ada.tags): Create TAGS.sub files in each directory
31317         and TAGS files that include them for each front end.
31318
31319 2003-11-14  Andreas Jaeger  <aj@suse.de>
31320
31321         * lang.opt: Change -Wno-long-long to -Wlong-long since the latter
31322         is the canonical version.
31323         * misc.c (gnat_handle_option): Likewise.
31324
31325         * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
31326
31327         * 5nsystem.ads: New file for x86_64-linux-gnu.
31328
31329 2003-11-14  Arnaud Charlet  <charlet@act-europe.fr>
31330
31331         * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated.
31332
31333         * comperr.adb: Fix logic in previous change.
31334
31335 2003-11-13  Vincent Celier  <celier@gnat.com>
31336
31337         * 5bml-tgt.adb (Build_Dynamic_Library): Use
31338         Osint.Include_Dir_Default_Prefix instead of
31339         Sdefault.Include_Dir_Default_Name.
31340
31341         * gnatlbr.adb: Update Copyright notice
31342         (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of
31343         Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix
31344         instead of Sdefault.Object_Dir_Default_Name
31345
31346         * gnatlink.adb:
31347         (Process_Binder_File): Never suppress the option following -Xlinker
31348
31349         * mdll-utl.adb:
31350         (Gcc): Use Osint.Object_Dir_Default_Prefix instead of
31351         Sdefault.Object_Dir_Default_Name.
31352
31353         * osint.ads, osint.adb:
31354         (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions
31355         Minor reformatting.
31356
31357         * vms_conv.ads: Minor reformating
31358         Remove GNAT STANDARD and GNAT PSTA
31359
31360         * vms_conv.adb:
31361         Allow GNAT MAKE to have several files on the command line.
31362         (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of
31363         Sdefault.Object_Dir_Default_Name.
31364         Minor Reformating
31365         Remove data for GNAT STANDARD
31366
31367         * vms_data.ads:
31368         Add new compiler qualifier /PRINT_STANDARD (-gnatS)
31369         Remove data for GNAT STANDARD
31370         Remove options and documentation for -gnatwb/-gnatwB: these warning
31371         options no longer exist.
31372
31373 2003-11-13  Ed Falis  <falis@gnat.com>
31374
31375         * 5zthrini.adb: (Init_RTS): Made visible
31376
31377         * 5zthrini.adb:
31378         (Register): Removed unnecessary call to taskVarGet that checked whether
31379          an ATSD was already set as a task var for the argument thread.
31380
31381         * s-thread.adb:
31382         Updated comment to reflect that this is a VxWorks version
31383         Added context clause for System.Threads.Initialization
31384         Added call to System.Threads.Initialization.Init_RTS
31385
31386 2003-11-13  Jerome Guitton  <guitton@act-europe.fr>
31387
31388         * 5zthrini.adb:
31389         (Init_RTS): New procedure, for the initialization of the run-time lib.
31390
31391         * s-thread.adb:
31392         Remove dependancy on System.Init, so that this file can be used in the
31393         AE653 sequential run-time lib.
31394
31395 2003-11-13  Robert Dewar  <dewar@gnat.com>
31396
31397         * bindgen.adb: Minor reformatting
31398
31399 2003-11-13  Ed Schonberg  <schonberg@gnat.com>
31400
31401         * checks.adb:
31402         (Apply_Discriminant_Check): Do no apply check if target type is derived
31403         from source type with no applicable constraint.
31404
31405         * lib-writ.adb:
31406         (Ensure_System_Dependency): Do not apply the style checks that may have
31407         been specified for the main unit.
31408
31409         * sem_ch8.adb:
31410         (Find_Selected_Component): Further improvement in error message, with
31411         RM reference.
31412
31413         * sem_res.adb:
31414         (Resolve): Handle properly the case of an illegal overloaded protected
31415         procedure.
31416
31417 2003-11-13  Javier Miranda  <miranda@gnat.com>
31418
31419         * exp_aggr.adb:
31420         (Has_Default_Init_Comps): New function to check the presence of
31421         default initialization in an aggregate.
31422         (Build_Record_Aggr_Code): Recursively expand the ancestor in case of
31423         extension aggregate of a limited record. In addition, a new formal
31424         was added to do not initialize the record controller (if any) during
31425         this recursive expansion of ancestors.
31426         (Init_Controller): Add support for limited record components.
31427         (Expand_Record_Aggregate): In case of default initialized components
31428         convert the aggregate into a set of assignments.
31429
31430         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment
31431         describing the new syntax.
31432         Nothing else needed to be done because this subprogram delegates part of
31433         its work to P_Precord_Or_Array_Component_Association.
31434         (P_Record_Or_Array_Component_Association): Give support to the new
31435         syntax for default initialization of components.
31436
31437         * sem_aggr.adb:
31438         (Resolve_Aggregate): Relax the strictness of the frontend in case of
31439         limited aggregates.
31440         (Resolve_Record_Aggregate): Give support to default initialized
31441         components.
31442         (Get_Value): In case of default initialized components, duplicate
31443         the corresponding default expression (from the record type
31444         declaration). In case of default initialization in the *others*
31445         choice, do not check that all components have the same type.
31446         (Resolve_Extension_Aggregate): Give support to limited extension
31447         aggregates.
31448
31449         * sem_ch3.adb:
31450         (Check_Initialization): Relax the strictness of the front-end in case
31451         of aggregate and extension aggregates. This test is now done in
31452         Get_Value in a per-component manner.
31453
31454         * sem_ch4.adb (Analyze_Allocator): Don't post an error if the
31455         expression corresponds to a limited aggregate. This test is now done
31456         in Get_Value.
31457
31458         * sinfo.ads, sinfo.adb (N_Component_Association): Addition of
31459         Box_Present flag.
31460
31461         * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if
31462         present in an N_Component_Association node
31463
31464 2003-11-13  Thomas Quinot  <quinot@act-europe.fr>
31465
31466         * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a
31467         type-conformant entry only if they are homographs.
31468
31469 2003-11-13  GNAT Script  <nobody@gnat.com>
31470
31471         * Make-lang.in: Makefile automatically updated
31472
31473 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
31474
31475         * adadecode.c: Use <> form of include for ctype.h.
31476         * sysdep.c [IN_RTS]: Use <> form of include for time.h.
31477
31478 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
31479
31480         * 5gsystem.ads (Functions_Return_By_DSP): Set to False.
31481         Works around PR middle-end/6552.
31482
31483 2003-11-10  Ed Falis  <falis@gnat.com>
31484
31485         * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted
31486
31487         * 5zinit.adb: (Install_Handler): Moved back to spec
31488         (Install_Signal_Handlers): Deleted
31489
31490         * 5zthrini.adb: Added context clause for System.Storage_Elements
31491         (Register): Only handles creation of taskVar; initialization moved to
31492         Thread_Body_Enter.
31493         (Reset_TSD): Deleted; replaced by Thread_Body_Enter
31494         Added declaration of environment task secondary stack and
31495         initialization.
31496
31497         * s-thread.adb: Implement bodies for thread body processing
31498
31499         * s-thread.ads:
31500         Added comment identifying supported targets for pragma Thread_Body.
31501
31502 2003-11-10  Pascal Obry  <obry@gnat.com>
31503
31504         * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
31505         GNAT_MAX_PATH_LEN.
31506
31507         * s-fileio.adb:
31508         (Open): Properly check for string length before copying into the buffer.
31509         Raises Name_Error if buffer is too small. Note that this was a potential
31510         buffer overflow.
31511
31512 2003-11-10  Romain Berrendonner  <berrendo@act-europe.fr>
31513
31514         * bindgen.adb, comperr.adb: Code clean ups.
31515         * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function.
31516
31517 2003-11-10  Sergey Rybin  <rybin@act-europe.fr>
31518
31519         * gnat1drv.adb: Add call to Sem_Elim.Initialize.
31520
31521 2003-11-10  Vincent Celier  <celier@gnat.com>
31522
31523         * gprcmd.adb:
31524         (Gprcmd): Add new command "prefix" to get the prefix of the GNAT
31525         installation.
31526
31527         * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler
31528
31529         * prj.adb: (Project_Empty): Add new boolean component Virtual
31530
31531         * prj.ads: (Virtual_Prefix): New constant string
31532         (Project_Data): New boolean component Virtual
31533
31534         * prj-nmsc.adb (Language_Independent_Check): Adjust error message when
31535         a library project is extended by a virtual extending project.
31536
31537         * prj-part.adb:
31538         Modifications throughout to implement extending-all project, including:
31539         (Virtual_Hash, Processed_Hash): New hash tables
31540         (Create_Virtual_Extending_Project): New procedure
31541         (Look_For_Virtual_Projects_For): New procedure
31542
31543         * prj-proc.adb:
31544         (Process): After checking the projects, if main project is an
31545         extending-all project, set the object directory of all virtual extending
31546         project to the object directory of the main project.
31547         Adjust error message when a virtual extending project has the same
31548         object directory as an project being extended.
31549         (Recursive_Process): If name starts with the virtual prefix, set Virtual
31550         to True in the project data.
31551
31552         * prj-tree.adb:
31553         (Default_Project_Node): Add new boolean component Extending_All
31554         (Is_Extending_All): New function
31555         (Set_Is_Extending_All): New procedure
31556
31557         * prj-tree.ads: (Is_Extending_All): New function
31558         (Set_Is_Extending_All): New procedure
31559         (Project_Node_Record): New boolean component Extending_All
31560
31561         * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
31562
31563         * vms_data.ads:
31564         Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
31565
31566         * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
31567         "gprcmd prefix" to define it.
31568
31569 2003-11-10  Thomas Quinot  <quinot@act-europe.fr>
31570
31571         * einfo.ads: Fix a typo and remove an extraneous word in comments.
31572
31573         * lib-load.adb:
31574         (Create_Dummy_Package_Unit): Set the scope of the entity for the
31575         created dummy package to Standard_Standard, not to itself, to
31576         defend other parts of the front-end against encoutering a cycle in
31577         the scope chain.
31578
31579         * sem_ch10.adb:
31580         (Analyze_With_Clause): When setting the entities for the successive
31581         N_Expanded_Names that constitute the name of a child unit, do not
31582         attempt to go further than Standard_Standard in the chain of scopes.
31583         This case arises from the placeholder units created by
31584         Create_Dummy_Package_Unit in the case of a with_clause for a
31585         nonexistent child unit.
31586
31587 2003-11-10  Ed Schonberg  <schonberg@gnat.com>
31588
31589         * exp_ch6.adb:
31590         (Expand_Thread_Body): Place subprogram on scope stack, so that new
31591         declarations are given the proper scope.
31592
31593         * sem_ch13.adb:
31594         (Check_Expr_Constants): Reject an expression that contains a constant
31595         created during expansion, and that appears after the object to which
31596         the address clause applies.
31597
31598         * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of
31599         Analyze_Iteration_Scheme, to rewrite a loop parameter specification
31600         that uses 'Range of a function call with controlled components, so
31601         that the function result can be finalized before starting the loop.
31602
31603         * sem_ch8.adb:
31604         (Find_Selected_Component): Improve error message when prefix is
31605         an implicit dereference of an incomplete type.
31606
31607 2003-11-10  Robert Dewar  <dewar@gnat.com>
31608
31609         * opt.ads: New Print_Standard flag for -gnatS switch
31610
31611         * sem_ch13.adb: Remove some additional checks for unaligned arrays
31612
31613         * cstand.adb (Create_Standard): Print out package standard if -gnatS
31614         switch set
31615
31616         * debug.adb: Update doc for -gnatds to discuss relationship with new
31617         -gnatS flag
31618
31619         * sinfo.adb: Add new field Entity_Or_Associated_Node
31620
31621         * sinfo.ads: Add new field Entity_Or_Associated_Node
31622         Update documentation for Associated_Node and Entity fields to clarify
31623         relationship and usage.
31624
31625         * sprint.adb:
31626         (Write_Id): Properly process Associated_Node field in generic template
31627
31628         * switch-c.adb:
31629         Recognize new -gnatS switch for printing package Standard
31630         This replaces gnatpsta
31631
31632         * usage.adb:
31633         Add line for  new -gnatS switch for printing package Standard
31634         This replaces gnatpsta
31635
31636 2003-11-10  Andreas Jaeger  <aj@suse.de>
31637
31638         * 7sosprim.adb: tv_usec of struct_timeval and time_t are long
31639         integer.
31640
31641 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
31642
31643         * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed
31644         by gnat1.
31645
31646 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
31647
31648         * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta,
31649         no longer needed.
31650
31651         * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed.
31652
31653         * sysdep.c: Add handling of cygwin.
31654
31655 2003-11-10  GNAT Script  <nobody@gnat.com>
31656
31657         * Make-lang.in: Makefile automatically updated
31658
31659 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
31660
31661         PR 12950
31662         * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New
31663         functions. Used to handle dynamic prefix relocation, via set_std_prefix.
31664         Replace GNAT_ROOT by GCC_ROOT.
31665
31666         * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb
31667
31668 2003-11-06  Zack Weinberg  <zack@codesourcery.com>
31669
31670         * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION
31671         and update for changed meaning of GET_MODE_BITSIZE.
31672
31673 2003-11-04  Doug Rupp  <rupp@gnat.com>
31674
31675         * sysdep.c: Problem discovered during IA64 VMS port.
31676         [VMS] #include <unixio.h> to get proper prototypes.
31677
31678         * adaint.c:
31679         Issues discovered/problems fixed during IA64 VMS port.
31680         [VMS] #define _POSIX_EXIT for proper semantics.
31681         [VMS] #include <unixio.h> for proper prototypes.
31682         [VMS] (fork): #define IA64 version.
31683         (__gnat_os_exit): Remove unnecessary VMS specific code.
31684
31685 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31686
31687         Part of PR ada/12806
31688         * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
31689         tree, not integer.
31690
31691         * decl.c:
31692         (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
31693         not integer.
31694
31695         * targtyps.c, decl.c, misc.c,
31696         gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
31697         routines to work around change in FP sizing semantics in GCC.
31698
31699         * utils.c:
31700         (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.
31701
31702         * gigi.h: (enumerate_modes): New function.
31703
31704         * Make-lang.in: (ada/misc.o): Add real.h.
31705
31706         * misc.c: (enumerate_modes): New function.
31707
31708 2003-11-04  Robert Dewar  <dewar@gnat.com>
31709
31710         * 3vtrasym.adb: Minor reformatting
31711         Use terminology encoded/decoded name, rather than C++ specific notion
31712         of mangling (this is the terminology used throughout GNAT).
31713
31714         * einfo.h: Regenerated
31715
31716         * einfo.ads, einfo.adb: Add new flag Is_Thread_Body
31717
31718         * exp_ch6.adb:
31719         (Expand_N_Subprogram_Body): Handle expansion of thread body procedure
31720
31721         * par-prag.adb: Add dummy entry for Thread_Body pragma
31722
31723         * rtsfind.ads:
31724         Add entries for System.Threads entities for thread body processing
31725
31726         * sem_attr.adb:
31727         (Analyze_Pragma, Access attributes): Check these are not applied to a
31728         thread body, since this is not permitted
31729
31730         * sem_prag.adb: Add processing for Thread_Body pragma.
31731         Minor comment fix.
31732
31733         * sem_res.adb:
31734         (Resolve_Call): Check for incorrect attempt to call a thread body
31735          procedure with a direct call.
31736
31737         * snames.ads, snames.adb: Add entry for Thread_Body pragma
31738         Add names associated with thread body expansion
31739
31740         * snames.h: Add entry for Thread_Body pragma
31741
31742         * s-thread.adb: Add entries for thread body processing
31743         These are dummy bodies so far
31744
31745         * s-thread.ads: Add documentation on thread body handling.
31746         Add entries for thread body processing.
31747
31748 2003-11-04  Javier Miranda  <miranda@gnat.com>
31749
31750         * sem_ch10.adb:
31751         (Build_Limited_Views): Return after posting an error in case of limited
31752         with_clause on subprograms, generics, instances or generic renamings
31753         (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
31754         on subprograms, generics, instances or generic renamings
31755
31756 2003-11-04  Arnaud Charlet  <charlet@act-europe.fr>
31757
31758         * raise.c (setup_to_install): Correct mistake in last revision; two
31759         arguments out of order.
31760
31761         * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
31762         gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
31763         notice, missed in previous change.
31764         Remove trailing blanks and other style errors introduced in previous
31765         change.
31766
31767 2003-11-04  Olivier Hainque  <hainque@act-europe.fr>
31768
31769         * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
31770         rid of the wrapper for a LJM type, ensuring we don't do that if the
31771         field is addressable.  This avoids potential low level type view
31772         mismatches later on, for instance in a by-reference argument passing
31773         process.
31774
31775 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31776
31777         * decl.c (gnat_to_gnu_field): No longer check for BLKmode being
31778         aligned at byte boundary.
31779
31780 2003-11-04  Joel Brobecker  <brobecker@gnat.com>
31781
31782         * decl.c (components_to_record): Do not delete the empty variants from
31783         the end of the union type.
31784
31785 2003-11-04  Ed Schonberg  <schonberg@gnat.com>
31786
31787         * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
31788         operation for a derived type, an explicit declaration may use a local
31789         subtype of Boolean.
31790
31791 2003-11-04  Vincent Celier  <celier@gnat.com>
31792
31793         * make.adb (Gnatmake): Allow main sources on the command line with a
31794         library project when it is only for compilation (no binding or
31795         linking).
31796
31797 2003-11-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
31798
31799         * Makefile.in: Remove many duplicate variables.
31800
31801 2003-11-03  Kelley Cook  <kcook@gcc.gnu.org>
31802
31803         * Make-lang.in (dvi): Move targets to $(docobjdir).
31804         (gnat_ug_vms.dvi): Simplify rule and adjust target.
31805         (gnat_ug_wnt.dvi): Likewise.
31806         (gnat_ug_unx.dvi): Likewise.
31807         (gnat_ug_vxw.dvi): Likewise.
31808         (gnat_rm.dvi): Likewise.
31809         (gnat-style.dvi): Likewise.
31810
31811 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
31812
31813         * gigi.h: Missed commit from update for C90.
31814
31815 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
31816
31817         * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error.
31818
31819 2003-10-31  Andreas Schwab  <schwab@suse.de>
31820
31821         * raise.c (get_action_description_for): Fix typo in last change.
31822
31823 2003-10-31  Nathanael Nerode  <neroden@gcc.gnu.org>
31824
31825         PR ada/12761
31826         * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS,
31827         T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in.
31828
31829 2003-10-30  Kelley Cook  <kcook@gcc.gnu.org>
31830
31831         * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c,
31832         ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c,
31833         gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c,
31834         sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c,
31835         trans.c, utils.c, utils2.c: Convert function prototypes to C90.
31836
31837 2003-10-30  Vasiliy Fofanov  <fofanov@act-europe.fr>
31838
31839         * 3vtrasym.adb:
31840         Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line
31841         numbers when symbol name is too long.
31842
31843 2003-10-30  Ed Falis  <falis@gnat.com>
31844
31845         * g-signal.ads, g-signal.adb: New files
31846
31847         * impunit.adb: (Non_Imp_File_Names): Added "g-signal"
31848
31849         * Makefile.rtl: Introduce GNAT.Signals
31850
31851 2003-10-30  Robert Dewar  <dewar@gnat.com>
31852
31853         * freeze.adb: Minor reformatting
31854
31855         * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified
31856
31857         * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb,
31858         par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb:
31859         New handling of Id_Check parameter to improve recognition of keywords
31860         used as identifiers.
31861         Update copyright notice to include 2003
31862
31863 2003-10-29  Robert Dewar  <dewar@gnat.com>
31864
31865         * 3vtrasym.adb, 5vtraent.ads, sprint.adb,
31866         sem_ch10.adb: Minor reformatting
31867
31868         * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands
31869         (Expand_Assign_Record): Test right hand side for bit unaligned as well
31870
31871 2003-10-29  Vasiliy Fofanov  <fofanov@act-europe.fr>
31872
31873         * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c:
31874         Support for TBK$SYMBOLIZE-based symbolic traceback.
31875
31876 2003-10-29  Jose Ruiz  <ruiz@act-europe.fr>
31877
31878         * exp_disp.adb:
31879         Revert previous change, that did not work well when pragma No_Run_Time
31880         was used in conjunction with a run-time other than ZFP.
31881
31882 2003-10-29  Vincent Celier  <celier@gnat.com>
31883
31884         * make.adb:
31885         (Gnatmake): When there are no Ada mains in attribute Main, disable the
31886          bind and link steps only is switch -z is not used.
31887
31888 2003-10-29  Arnaud Charlet  <charlet@act-europe.fr>
31889
31890         * Makefile.generic: Remove duplicated setting of CC.
31891
31892         * Makefile.prolog: Set CC to gcc by default, to override make's
31893         default (cc).
31894
31895         * einfo.h: Regenerated.
31896
31897 2003-10-29  Ed Schonberg  <schonberg@gnat.com>
31898
31899         * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for
31900         current body, after compiling subunit.
31901
31902         * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype
31903         when in deleted code, because gigi needs properly ordered freeze
31904         actions to annotate types.
31905
31906         * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to
31907         prevent the premature freezing of record type that contains
31908         subcomponents with a private type that does not yet have a completion.
31909
31910 2003-10-29  Javier Miranda  <miranda@gnat.com>
31911
31912         * sem_ch12.adb:
31913         (Analyze_Package_Instantiation): Check that instances can not be used in
31914         limited with_clauses.
31915
31916         * sem_ch8.adb:
31917         (Analyze_Package_Renaming): Check that limited withed packages cannot
31918         be renamed. Improve text on error messages related to limited
31919         with_clauses.
31920
31921         * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute.
31922
31923         * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses.
31924         Update copyright notice.
31925
31926         * sem_ch10.adb: (Build_Limited_Views): Complete its documentation.
31927         (Install_Limited_Context_Clauses): New subprogram that isolates all the
31928         checks required for limited context_clauses and installs the limited
31929         view.
31930         (Install_Limited_Withed_Unit): Complete its documentation.
31931         (Analyze_Context): Check that limited with_clauses are only allowed in
31932         package specs.
31933         (Install_Context): Call Install_Limited_Context_Clauses after the
31934         parents have been installed.
31935         (Install_Limited_Withed_Unit): Add documentation. Mark the installed
31936         package as 'From_With_Type'; this mark indicates that the limited view
31937         is installed. Used to check bad usages of limited with_clauses.
31938         (Build_Limited_Views): Do not add shadow entities to the scope's list
31939         of entities. Do not add real entities to the Non_Limited_Views chain.
31940         Improve error notification.
31941         (Remove_Context_Clauses): Remove context clauses in two phases:
31942         limited views first and regular views later (to maintain the
31943         stack model).
31944         (Remove_Limited_With_Clause): If the package is analyzed then reinstall
31945         its visible entities.
31946
31947 2003-10-29  Thomas Quinot  <quinot@act-europe.fr>
31948
31949         * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible
31950         with any type that Is_Fixed_Point_Type.
31951
31952         * sinfo.ads: Fix documentation for Associated_Node attribute.
31953
31954 2003-10-29  Sergey Rybin  <rybin@act-europe.fr>
31955
31956         * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when
31957         both '-gnatc' and '-gnatt' are specified.
31958
31959         * atree.adb (Initialize): Add initialization for Node_Count (set to
31960         zero).
31961
31962 2003-10-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31963
31964         * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value,
31965         do not consider as Pure.
31966
31967         Part of implementation of function-at-a-time:
31968
31969         * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt.
31970         (tree_transform): Add new argument to build_component_ref.
31971         (tree_transform, case N_Assignment_Statement): Make and return an
31972         EXPR_STMT.
31973         (tree_transform): If result IS_STMT, set flags and return it.
31974         (gnat_expand_stmt, set_lineno_from_sloc): New functions.
31975
31976         * utils2.c (build_simple_component_ref, build_component_ref): Add new
31977         arg, NO_FOLD_P.
31978         (build_binary_op, case EQ_EXPR): Pass additional arg to it.
31979         (build_allocator): Likewise.
31980
31981         * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert):
31982         Add new arg to build_component_ref.
31983         (maybe_unconstrained_array, unchecked_convert): Likewise.
31984
31985         * ada-tree.def (EXPR_STMT): New code.
31986
31987         * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros.
31988
31989         * decl.c (gnat_to_gnu_entity, case object): Add extra arg to
31990         build_component_ref calls.
31991
31992         * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt.
31993
31994         * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions.
31995         (build_component_ref): Add new argument, NO_FOLD_P.
31996
31997 2003-10-27  Arnaud Charlet  <charlet@act-europe.fr>
31998
31999         * Makefile.generic: Add missing substitution on object_deps handling.
32000
32001         PR ada/5909
32002         * Make-lang.in (check-ada): Enable ACATS test suite.
32003
32004 2003-10-27  Robert Dewar  <dewar@gnat.com>
32005
32006         * exp_ch3.adb:
32007         (Freeze_Array_Type): We do not need an initialization routine for types
32008         derived from String or Wide_String. They should be treated the same
32009         as String and Wide_String themselves. This caused problems with the
32010         use of Initialize_Scalars.
32011
32012         * exp_ch5.adb:
32013         (Expand_Assign_Record): Do component-wise assignment of non-byte aligned
32014         composites. This allows use of component clauses that are not byte
32015         aligned.
32016
32017         * sem_prag.adb:
32018         (Analyze_Pragma, case Pack): Generate warning and ignore pack if there
32019         is an attempt to pack an array of atomic objects.
32020
32021         * make.adb, prj-env.adb, prj-env.ads: Minor reformatting
32022
32023 2003-10-27  Pascal Obry  <obry@gnat.com>
32024
32025         * g-dirope.adb:
32026         (Basename): Check for drive letters in a pathname only on DOS based OS.
32027
32028 2003-10-27  Vincent Celier  <celier@gnat.com>
32029
32030         * make.adb:
32031         (Gnatmake): When unable to change dir to the object dir, display the
32032         content of the parent dir of the obj dir, to try to understand why this
32033         happens.
32034
32035 2003-10-27  GNAT Script  <nobody@gnat.com>
32036
32037         * Make-lang.in: Makefile automatically updated
32038
32039 2003-10-27  Ed Schonberg  <schonberg@gnat.com>
32040
32041         * sem_ch12.adb:
32042         (Inline_Instance_Body): Indicate that the save/restore of use_clauses
32043         should not be done in Save/Restore_Scope_Stack, because it is performed
32044         locally.
32045
32046         * sem_ch8.adb:
32047         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
32048         whether use clauses should be removed/restored.
32049
32050         * sem_ch8.ads:
32051         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
32052         whether use clauses should be removed/restored.
32053
32054 2003-10-26  Andreas Jaeger  <aj@suse.de>
32055
32056         * Makefile.in: Remove duplicated lines.
32057
32058 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
32059
32060         * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to
32061         minimize the differences with ACT tree.
32062
32063         * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb,
32064         gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of
32065         Gnatvsn.Gnat_Static_Version_String to reduce differences between
32066         ACT and FSF trees.
32067
32068 2003-10-24  Pascal Obry  <obry@gnat.com>
32069
32070         PR ada/12014
32071         * adadecode.c (ostrcpy): New function.
32072         (__gnat_decode): Use ostrcpy of strcpy.
32073         (has_prefix): Set first parameter a const.
32074         (has_suffix): Set first parameter a const.
32075         Update copyright notice. Fix source name in header.
32076         Removes a trailing space.
32077
32078 2003-10-24  Jose Ruiz  <ruiz@act-europe.fr>
32079
32080         * exp_disp.adb:
32081         Remove the test against being in No_Run_Time_Mode before generating a
32082         call to Register_Tag. It is redundant with the test against the
32083         availability of the function Register_Tag.
32084
32085 2003-10-24  Vincent Celier  <celier@gnat.com>
32086
32087         * g-catiio.adb: (Month_Name): Correct spelling of February
32088
32089         * make.adb: (Mains): New package
32090         (Initialize): Call Mains.Delete
32091         (Gnatmake): Check that each main on the command line is a source of a
32092         project file and, if there are several mains, each of them is a source
32093         of the same project file.
32094         (Gnatmake): When a foreign language is specified in attribute Languages,
32095         no main is specified on the command line and attribute Mains is not
32096         empty, only build the Ada main. If there is no Ada main, just compile
32097         the Ada sources and their closure.
32098         (Gnatmake): If a main is specified on the command line with directory
32099         information, check that the source exists and, if it does, that the path
32100         is the actual path of a source of a project.
32101
32102         * prj-env.adb:
32103         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When
32104         Full_Path is True, return the full path instead of the simple file name.
32105         (Project_Of): New function
32106
32107         * prj-env.ads:
32108         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path,
32109         defaulted to False.
32110         (Project_Of): New function
32111
32112 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
32113
32114         * Makefile.generic:
32115         Ensure objects of main project are always checked and rebuilt if needed.
32116         Set CC to gcc by default.
32117         Prepare new handling of link by creating a global archive (not activated
32118         yet).
32119
32120         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
32121         stringt.h: Update copyright notice. Remove trailing blanks.
32122         Fix source name in header.
32123
32124 2003-10-24  Robert Dewar  <dewar@gnat.com>
32125
32126         * sem_ch12.adb: Minor reformatting
32127
32128         * sem_ch3.adb:
32129         Minor reformatting (including new function return style throughout)
32130
32131         * sem_ch3.ads:
32132         Minor reformatting (including new function return style throughout)
32133
32134 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
32135
32136         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
32137         stringt.h: Update copyright notice. Remove trailing blanks.
32138         Fix source name in header.
32139
32140 2003-10-24  GNAT Script  <nobody@gnat.com>
32141
32142         * Make-lang.in: Makefile automatically updated
32143
32144 2003-10-23  Nathanael Nerode  <neroden@gcc.gnu.org>
32145
32146         * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h,
32147         stringt.h: Convert to ISO C90 declarations and definitions.
32148
32149 2003-10-23  Thomas Quinot  <quinot@act-europe.fr>
32150
32151         PR ada/11978
32152         * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
32153         External_Tag attribute definition clauses.
32154
32155 2003-10-23  Ed Schonberg  <schonberg@gnat.com>
32156
32157         PR ada/7613
32158         * exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
32159         child unit, generate a fully qualified name to avoid spurious errors
32160         when the context contains renamings of different child units with
32161         the same simple name.
32162
32163         * exp_dbug.ads: Add documentation on name qualification for renamings
32164         of child units.
32165
32166 2003-10-23  Robert Dewar  <dewar@gnat.com>
32167
32168         * g-regpat.ads, g-regpat.adb: Minor reformatting
32169
32170 2003-10-23  Jose Ruiz  <ruiz@act-europe.fr>
32171
32172         * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times.
32173
32174 2003-10-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32175
32176         * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to
32177         Machine call.
32178
32179         * urealp.h: (Machine): Update to proper definition.
32180
32181 2003-10-23  Arnaud Charlet  <charlet@act-europe.fr>
32182
32183         * init.c, adaint.c: Minor reformatting.
32184
32185 2003-10-23  Danny Smith  <dannysmith@users.sourceforge.net>
32186
32187         * adaint.c (w32_epoch_offset): Define static const at file level.
32188         (win32_filetime): Replace offset with w32_epoch_offset. Use NULL
32189         rather than t_create, t_access in call to GetFileTime. Use union
32190         to convert between FILETIME and  unsigned long long.
32191         (__gnat_file_time_name): Test for invalid file handle.
32192         (__gnat_set_filetime_name): Support win32 targets using
32193         w32api SetFileTime.
32194
32195 2003-10-22  Danny Smith  <dannysmith@users.sourceforge.net>
32196
32197         * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW.
32198
32199         * ctrl_c.c (__gnat_int_handler): Remove declaration.
32200
32201         * decl.c (creat_concat_name):  Const-ify prefix.
32202
32203         * adaint.c: Include ctype.h if __MINGW32__.
32204         (__gnat_readlink): Mark arguments as possibly unused.
32205         (__gnat_symlink): Likewise.
32206         (__gnat_is_symbolic_link): Likewise.
32207         (__gnat_portable_spawn): Likewise.  Cast last arg of spawnvp to match
32208         declaration
32209         (__gnat_file_time_name): Don't declare struct stat statbuf when
32210         not needed.
32211         (__gnat_is_absolute_path): Add parenthesis around condition of
32212         'if' statement to avoid warning.
32213         (__gnat_plist_init): Specify void as parameter.
32214         (plist_enter): Likewise.
32215         (plist_leave): Likewise.
32216         (remove_handle): Make static. Initialize prev.
32217
32218 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
32219
32220         PR ada/10110
32221         * Makefile.in: Disable build of gnatpsta.
32222         * cstreams.c (__gnat_full_name): Minor improvements and clean up
32223         of previous change.
32224
32225 2003-10-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
32226
32227         * tracebak.c (MAX): Avoid redefinition warning.
32228
32229         * init.c [sgi] (__gnat_error_handler): Remove i, unused.
32230         Change msg to const char *.
32231         (__gnat_install_handler): Remove ss, unused.
32232         [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg
32233         to const char *.
32234         * cstreams.c (__gnat_full_name): Declare p only when used.
32235         (__gnat_full_name) [sgi] Return buffer.
32236
32237 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
32238
32239         * mingw32.h: New file.
32240         * gnat_wrapper.adb: New file.
32241
32242 2003-10-22  Jerome Roussel  <roussel@act-europe.fr>
32243
32244         * g-regpat.ads, g-regpat.adb (Match): new function, to know if a
32245         string match a pre compiled regular expression (the corresponding
32246         version of the function working on a raw regular expression)
32247         Fix typos in various comments
32248         Update copyright notice in spec
32249
32250 2003-10-21  Gary Dismukes  <dismukes@gnat.com>
32251
32252         * exp_ch3.adb:
32253         (Component_Needs_Simple_Initialization): Return False when the type is a
32254         packed bit array. Revise spec comments to document this case.
32255
32256         * exp_prag.adb:
32257         (Expand_Pragma_Import): Set any expression on the imported object to
32258         empty to avoid initializing imported objects (in particular this
32259         covers the case of zero-initialization of bit arrays).
32260         Update copyright notice.
32261
32262 2003-10-21  Ed Schonberg  <schonberg@gnat.com>
32263
32264         * sem_ch12.adb:
32265         (Load_Parent_Of_Generic): If parent is compilation unit, stop search,
32266         a subunit is missing.
32267         (Instantiate_Subprogram_Body): If body of function is missing, set type
32268         of return expression explicitly in dummy body, to prevent cascaded
32269         errors when a subunit is missing.
32270         Fixes PR 5677.
32271
32272         * sem_ch3.adb:
32273         (Access_Subprogram_Declaration): Verify that return type is valid.
32274         Fixes PR 8693.
32275
32276         * sem_elab.adb:
32277         (Check_Elab_Calls): Do not apply elaboration checks if the main unit is
32278         generic.
32279         Fixes PR 12318.
32280
32281         * sem_util.adb:
32282         (Corresponding_Discriminant): If the scope of the discriminant is a
32283         private type without discriminant, use its full view.
32284         Fixes PR 8247.
32285
32286 2003-10-21  Arnaud Charlet  <charlet@act-europe.fr>
32287
32288         * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads,
32289         3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads,
32290         3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads,
32291         55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb,
32292         56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads,
32293         59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads,
32294         5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb,
32295         5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads,
32296         5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads,
32297         5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb,
32298         5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads,
32299         5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb,
32300         5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb,
32301         5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb,
32302         7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb,
32303         a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb,
32304         a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb,
32305         a-stwisu.ads, bld.adb, bld.ads, bld-io.adb,
32306         bld-io.ads, clean.adb, clean.ads, ctrl_c.c,
32307         erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
32308         err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads,
32309         g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb,
32310         g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads,
32311         g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb,
32312         g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb,
32313         g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb,
32314         g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads,
32315         gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb,
32316         g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads,
32317         g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb,
32318         i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl,
32319         prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
32320         prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb,
32321         s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb,
32322         s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb,
32323         s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb,
32324         s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
32325         s-caun64.ads, scng.adb, scng.ads, s-exnint.adb,
32326         s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb,
32327         s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb,
32328         s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads,
32329         socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb,
32330         s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads,
32331         s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads,
32332         s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb,
32333         styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb,
32334         s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads,
32335         tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads,
32336         vms_conv.ads, vms_conv.adb, vms_data.ads,
32337         vxaddr2line.adb: Files added. Merge with ACT tree.
32338
32339         * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads,
32340         5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb,
32341         5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads,
32342         5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c,
32343         g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb,
32344         s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads,
32345         s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
32346         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads,
32347         s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads,
32348         s-expssi.ads, style.adb: Files removed. Merge with ACT tree.
32349
32350         * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
32351         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
32352         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
32353         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
32354         4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads,
32355         4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads,
32356         4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb,
32357         4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads,
32358         51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads,
32359         53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads,
32360         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
32361         5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads,
32362         5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb,
32363         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
32364         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads,
32365         5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads,
32366         5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads,
32367         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
32368         5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads,
32369         5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads,
32370         5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads,
32371         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
32372         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
32373         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
32374         5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb,
32375         5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads,
32376         5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb,
32377         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
32378         5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb,
32379         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
32380         5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
32381         5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads,
32382         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
32383         5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb,
32384         6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb,
32385         7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb,
32386         7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb,
32387         a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads,
32388         a-comlin.adb, adaint.c, adaint.h, ada-tree.def,
32389         a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb,
32390         a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads,
32391         a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads,
32392         ali.adb, ali.ads, ali-util.adb, ali-util.ads,
32393         a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb,
32394         a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb,
32395         a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb,
32396         a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb,
32397         a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads,
32398         a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
32399         a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb,
32400         a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb,
32401         a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb,
32402         a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb,
32403         a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads,
32404         a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads,
32405         atree.adb, atree.ads, a-witeio.adb, a-witeio.ads,
32406         a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb,
32407         a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb,
32408         bcheck.adb, binde.adb, bindgen.adb, bindusg.adb,
32409         checks.adb, checks.ads, cio.c, comperr.adb,
32410         comperr.ads, csets.adb, cstand.adb, cstreams.c,
32411         debug_a.adb, debug_a.ads, debug.adb, decl.c,
32412         einfo.adb, einfo.ads, errout.adb, errout.ads,
32413         eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb,
32414         expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb,
32415         exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb,
32416         exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
32417         exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb,
32418         exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c,
32419         exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
32420         exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb,
32421         exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb,
32422         fe.h, fmap.adb, fmap.ads, fname.adb,
32423         fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb,
32424         freeze.ads, frontend.adb, g-awk.adb, g-awk.ads,
32425         g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
32426         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
32427         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
32428         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
32429         g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads,
32430         g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads,
32431         g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads,
32432         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb,
32433         g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb,
32434         g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h,
32435         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
32436         g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads,
32437         gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb,
32438         gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb,
32439         gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb,
32440         gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb,
32441         gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb,
32442         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb,
32443         g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads,
32444         g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads,
32445         g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads,
32446         g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads,
32447         g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb,
32448         g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb,
32449         g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads,
32450         i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads,
32451         i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c,
32452         inline.adb, interfac.ads, i-pacdec.ads, itypes.adb,
32453         itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h,
32454         layout.adb, lib.adb, lib.ads, lib-list.adb,
32455         lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb,
32456         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
32457         link.c, live.adb, make.adb, make.ads,
32458         Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb,
32459         mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
32460         mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb,
32461         misc.c, mkdir.c, mlib.adb, mlib.ads,
32462         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads,
32463         mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads,
32464         namet.adb, namet.ads, namet.h, nlists.ads,
32465         nlists.h, nmake.adt, opt.adb, opt.ads,
32466         osint.adb, osint.ads, osint-b.adb, osint-c.adb,
32467         par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb,
32468         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
32469         par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
32470         par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb,
32471         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads,
32472         prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads,
32473         prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads,
32474         prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
32475         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
32476         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
32477         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
32478         prj-util.adb, prj-util.ads, raise.c, raise.h,
32479         repinfo.adb, repinfo.h, restrict.adb, restrict.ads,
32480         rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads,
32481         s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb,
32482         s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb,
32483         scans.ads, scn.adb, scn.ads, s-crc32.adb,
32484         s-crc32.ads, s-direio.adb, sem.adb, sem.ads,
32485         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
32486         sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
32487         sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb,
32488         sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
32489         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
32490         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
32491         sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb,
32492         sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb,
32493         sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads,
32494         sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads,
32495         sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb,
32496         s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads,
32497         s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads,
32498         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
32499         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb,
32500         s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb,
32501         s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads,
32502         s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb,
32503         sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb,
32504         sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads,
32505         sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads,
32506         s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads,
32507         s-memory.adb, s-memory.ads, snames.adb, snames.ads,
32508         snames.h, s-osprim.ads, s-parame.ads, s-parint.ads,
32509         s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb,
32510         s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads,
32511         s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads,
32512         s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads,
32513         s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads,
32514         s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads,
32515         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads,
32516         s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
32517         s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb,
32518         s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb,
32519         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb,
32520         s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads,
32521         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
32522         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
32523         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads,
32524         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
32525         stringt.adb, stringt.ads, stringt.h, style.ads,
32526         stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads,
32527         s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb,
32528         s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb,
32529         switch.ads, switch-b.adb, switch-c.adb, switch-m.adb,
32530         s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads,
32531         table.adb, table.ads, targparm.adb, targparm.ads,
32532         targtyps.c, tbuild.adb, tbuild.ads, tracebak.c,
32533         trans.c, tree_io.adb, treepr.adb, treeprs.adt,
32534         ttypes.ads, types.ads, types.h, uintp.adb,
32535         uintp.ads, uintp.h, uname.adb, urealp.adb,
32536         urealp.ads, urealp.h, usage.adb, utils2.c,
32537         utils.c, validsw.adb, validsw.ads, widechar.adb,
32538         xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads,
32539         xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb,
32540         einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb,
32541         gnatvsn.ads: Merge with ACT tree.
32542
32543         * gnatvsn.adb: Rewritten in a simpler and more efficient way.
32544
32545 2003-10-20  Mark Mitchell  <mark@codesourcery.com>
32546
32547         * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir.
32548         (gnat_ug_vmx.info): Likewise.
32549         (gnat_ug_vxw.info): Likewise.
32550         (gnat_ug_wnt.info): Likewise.
32551         (gnat_rm.info): Likewise.
32552         (gnat-style.info): Likewise.
32553
32554         * Make-lang.in (ada.install-info): Remove target.
32555         (info): New target.
32556         (install-info): Likewise.
32557         (gnat_ug_unx.info): Simplify rule.
32558         (gnat_ug_vmx.info): Likewise.
32559         (gnat_ug_vxw.info): Likewise.
32560         (gnat_ug_wnt.info): Likewise.
32561         (gnat_rm.info): Likewise.
32562         (gnat-style.info): Likewise.
32563
32564 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
32565
32566         * Make-lang.in: Replace uses of $(target_alias) with
32567         $(target_noncanonical).
32568         * ada/Makefile.in: Remove unused mention of $(target_alias).
32569
32570 2003-10-06  Mark Mitchell  <mark@codesourcery.com>
32571
32572         * Make-lang.in (ada.info): Replace with ...
32573         (info): ... this.
32574         (ada.dvi): Replace with ...
32575         (dvi): ... this.
32576
32577 2003-09-29  Zack Weinberg  <zack@codesourcery.com>
32578
32579         * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to
32580         initialize dconstp5 and dconstmp5.
32581
32582 2003-09-28  Richard Henderson  <rth@redhat.com>
32583
32584         * trans.c (tree_transform): Update call to expand_asm_operands.
32585
32586 2003-09-21  Richard Henderson  <rth@redhat.com>
32587
32588         * trans.c, utils.c: Revert.
32589
32590 2003-09-21  Richard Henderson  <rth@redhat.com>
32591
32592         * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
32593         change to const.
32594
32595 2003-09-04  Michael Matz  <matz@suse.de>
32596
32597         * misc.c: Include "target.h".
32598         * Make-lang.in (misc.o): Add dependency on target.h.
32599
32600 2003-09-03  DJ Delorie  <dj@redhat.com>
32601
32602         * misc.c (default_pass_by_ref): Convert to calls.return_in_memory
32603         hook.
32604
32605 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
32606
32607         * Makefile.in: Update substitutions to match changes to
32608         configure.  Use include directives instead of @-insertions
32609         to read in host and target fragments.  Add a rule to
32610         regenerate ada/Makefile.
32611
32612 2003-07-18  Neil Booth  <neil@daikokuya.co.uk>
32613
32614         * lang-options.h: Remove.
32615         * lang.opt: Add help text.
32616
32617 2003-07-07  Nathan Sidwell  <nathan@codesourcery.com>
32618
32619         * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note
32620         calls.
32621
32622 2003-07-06  Neil Booth  <neil@daikokuya.co.uk>
32623
32624         * misc.c (gnat_handle_option): Don't handle filenames.
32625
32626 2003-07-04  H.J. Lu <hongjiu.lu@intel.com>
32627
32628         * Make-lang.in: Replace PWD with PWD_COMMAND.
32629         * Makefile.adalib: Likewise.
32630         * Makefile.in: Likewise.
32631
32632 2003-07-04  Matt Kraai  <kraai@alumni.cmu.edu>
32633
32634         * misc.c (gnat_argv): Revert last change.
32635         (gnat_handle_option, gnat_init_options): Copy arguments.
32636
32637 2003-07-03  Neil Booth  <neil@daikokuya.co.uk>
32638
32639         * misc.c (gnat_argv): Make const.
32640
32641 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
32642
32643         * misc.c (save_argc, save_argv): Keep non-static!
32644
32645 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
32646
32647         * misc.c (save_argc, save_argv): Make static.
32648         (gnat_init_options): New prototype.
32649         (gnat_init_options): Update.
32650
32651 2003-07-01  Matt Kraai  <kraai@alumni.cmu.edu>
32652
32653         * gnat_ug.texi: Remove unlikely characters from @vars.
32654         * gnat_ug_vms.texi: Regenerate.
32655
32656 2003-06-27  Nathan Sidwell  <nathan@codesourcery.com>
32657
32658         * misc.c (record_code_position): Adjust emit_note call.
32659
32660 2003-06-26  Neil Booth  <neil@daikokuya.co.uk>
32661
32662         * misc.c (gnat_handle_option): Don't check for missing arguments.
32663
32664 2003-06-20  Nathan Sidwell  <nathan@codesourcery.com>
32665
32666         * utils.c (end_subprog_body): Adjust expand_function_end call.
32667
32668 2003-06-16  Matt Kraai  <kraai@alumni.cmu.edu>
32669
32670         * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test
32671         Bind_Main_Program.
32672
32673 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
32674
32675         * lang.opt: Declare Ada.
32676         * misc.c (gnat_init_options): Update.
32677
32678 2003-06-14  Nathan Sidwell  <nathan@codesourcery.com>
32679
32680         * utils.c (begin_subprog_body): Adjust init_function_start call.
32681
32682 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
32683
32684         * Make-lang.in: Update to use options.c and options.h.
32685         * misc.c: Include options.h not aoptions.h.
32686         (gnat_handle_option): Abort on unrecognized switch.
32687         (gnat_init_options): Request Ada switches.
32688
32689 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
32690
32691         * lang.opt: Add -Wall.
32692         * misc.c (gnat_handle_option): Handle it.
32693
32694 2003-06-12  Neil Booth  <neil@daikokuya.co.uk>
32695
32696         * misc.c (gnat_handle_option): Fix warnings.
32697
32698 2003-06-11  Matt Kraai  <kraai@alumni.cmu.edu>
32699
32700         * Make-lang.in (gnatbind): Remove $(LIBIBERTY).
32701
32702 2003-06-11  Neil Booth  <neil@daikokuya.co.uk>
32703
32704         * Make-lang.in: Update to handle command-line options.
32705         * lang.opt: New file.
32706         * misc.c: Include aoptions.h.
32707         (cl_options_count, cl_options): Remove.
32708         (gnat_handle_option): New.
32709         (gnat_decode_option): Remove.
32710         (LANG_HOOKS_DECODE_OPTION): Remove.
32711         (LANG_HOOKS_HANDLE_OPTION): Override.
32712
32713 2003-06-10  Nathanael Nerode  <neroden@gcc.gnu.org>
32714
32715         * init.c, misc.c, trans.c, utils.c: Remove dead code.
32716
32717 2003-06-09  Nathanael Nerode  <neroden@gcc.gnu.org>
32718
32719         * Makefile.in: Replace "host_canonical" with "host" for autoconf
32720         substitution.
32721
32722 2003-06-08  Neil Booth  <neil@daikokuya.co.uk>
32723
32724         * Make-lang.in: Update.
32725         * misc.c: Include opts.h. Define cl_options_count and cl_options.
32726
32727 2003-06-07  Neil Booth  <neil@daikokuya.co.uk>
32728
32729         * misc.c (gnat_init_options): Update.
32730
32731 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
32732
32733         * Make-lang.in (ada/b_gnatb.o-warn): Remove.
32734         * bindgen.adb (Gen_Main_C): Mark ensure_reference with
32735         __attribute__ ((__unused__)).
32736
32737 2003-06-05  Jan Hubicka  <jh@suse.cz>
32738
32739         * Make-lang.in:  Add support for stageprofile and stagefeedback
32740
32741 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
32742
32743         * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C)
32744         (Gen_Main_C, Gen_Output_File_C): Generate ISO C.
32745
32746 2003-06-04  Matt Kraai  <kraai@alumni.cmu.edu>
32747
32748         * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr):
32749         Remove non-VMS directive.
32750         (Switches for gnatlbr, Optimization Levels): Remove non-VMS
32751         alternatives.
32752         (Examples of gnatls Usage): Remove VMS alternative.
32753
32754 2003-06-04  Olivier Hainque  <hainque@act-europe.fr>
32755
32756         PR ada/9953
32757         * 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
32758         and turn ZCX_By_Default back to False since the underlying support
32759         is not quite there yet.
32760
32761 2003-06-01  Andreas Jaeger  <aj@suse.de>
32762
32763         * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE
32764         and ROUND_TYPE_SIZE_UNIT.
32765
32766 2003-05-22   Geert Bosch <bosch@gnat.com>
32767
32768         * gnat_rm.texi : Remove reference to Ada Core Technologies.
32769
32770 2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>
32771
32772         * trans.c (tree_transform): Use location_t and input_location
32773         directly.
32774         (build_unit_elab): Likewise.
32775         * utils.c (create_label_decl): Likewise.
32776
32777 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
32778
32779         * trans.c (tree_transform, build_unit_elab,
32780         set_lineno): Rename lineno to input_line.
32781         * utils.c (pushdecl, create_label_decl, begin_subprog_body,
32782         end_subprog_body): Likewise.
32783         * utils2.c (build_call_raise): Likewise.
32784
32785 2003-05-01  Laurent Guerby <guerby@acm.org>
32786
32787         PR ada/10546
32788         * 5iosinte.ads: Increase pthread_cond_t size to match recent
32789         LinuxThread and NPTL version, merge from ACT.
32790
32791 2003-04-28  Zack Weinberg  <zack@codesourcery.com>
32792
32793         * utils.c (convert): No need to clear TREE_CST_RTL.
32794
32795 2003-04-23   Geert Bosch <bosch@gnat.com>
32796
32797         * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
32798         1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
32799         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
32800         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
32801         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
32802         4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb,
32803         4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads,
32804         4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads,
32805         4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb,
32806         4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb,
32807         4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb,
32808         4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb,
32809         52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads,
32810         5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads,
32811         5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb,
32812         5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads,
32813         5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb,
32814         5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb,
32815         5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb,
32816         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
32817         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
32818         5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads,
32819         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
32820         5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads,
32821         5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads,
32822         5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb,
32823         5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads,
32824         5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads,
32825         5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb,
32826         5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads,
32827         5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb,
32828         5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb,
32829         5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb,
32830         5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads,
32831         5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads,
32832         5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb,
32833         5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb,
32834         5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads,
32835         5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads,
32836         5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb,
32837         5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb,
32838         5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads,
32839         5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads,
32840         5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb,
32841         6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb,
32842         7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads,
32843         7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads,
32844         9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb,
32845         a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb,
32846         a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads,
32847         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
32848         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
32849         a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads,
32850         a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads,
32851         a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads,
32852         a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb,
32853         a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads,
32854         a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads,
32855         a-intnam.ads, a-intsig.adb, a-intsig.ads, a-ioexce.ads,
32856         a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
32857         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads,
32858         a-lliwti.ads, a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads,
32859         a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, a-ngelfu.ads,
32860         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
32861         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads,
32862         a-nselfu.ads, a-nucoty.ads, a-nudira.adb, a-nudira.ads,
32863         a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads,
32864         a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb,
32865         a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads,
32866         a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads,
32867         a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads,
32868         a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads,
32869         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
32870         a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads,
32871         a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads,
32872         a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads,
32873         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads,
32874         a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads,
32875         a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads,
32876         a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb,
32877         a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb,
32878         a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb,
32879         a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb,
32880         a-ticoau.ads, a-ticoio.adb, a-ticoio.ads, a-tideau.adb,
32881         a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
32882         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.adb,
32883         a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb,
32884         a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
32885         a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb,
32886         a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb,
32887         a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads,
32888         a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb,
32889         a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb,
32890         a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb,
32891         a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb,
32892         a-wtenau.ads, a-wtenio.adb, a-wtenio.ads, a-wtfiio.adb,
32893         a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, a-wtflio.adb,
32894         a-wtflio.ads, a-wtgeau.adb, a-wtgeau.ads, a-wtinau.adb,
32895         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb,
32896         a-wtmoau.ads, a-wtmoio.adb, a-wtmoio.ads, a-wttest.adb,
32897         a-wttest.ads, ada-tree.h, ada.ads, ada.h,
32898         adadecode.c, adadecode.h, ali-util.adb, ali-util.ads,
32899         ali.adb, ali.ads, alloc.ads, argv.c,
32900         atree.adb, atree.ads, atree.h, aux-io.c,
32901         back_end.adb, back_end.ads, bcheck.adb, bcheck.ads,
32902         binde.adb, binde.ads, binderr.adb, binderr.ads,
32903         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads,
32904         butil.adb, butil.ads, cal.c, calendar.ads,
32905         casing.adb, casing.ads, ceinfo.adb, checks.adb,
32906         checks.ads, cio.c, comperr.adb, comperr.ads,
32907         config-lang.in, csets.adb, csets.ads, csinfo.adb,
32908         cstand.adb, cstand.ads, cuintp.c, debug.adb,
32909         debug.ads, debug_a.adb, debug_a.ads, dec-io.adb,
32910         dec-io.ads, dec.ads, deftarg.c, directio.ads,
32911         einfo.adb, einfo.ads, elists.adb, elists.ads,
32912         elists.h, errno.c, errout.adb, errout.ads,
32913         eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb,
32914         exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads,
32915         exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads,
32916         exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads,
32917         exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads,
32918         exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
32919         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads,
32920         exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads,
32921         exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads,
32922         exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
32923         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads,
32924         exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads,
32925         exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads,
32926         exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
32927         exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads,
32928         fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads,
32929         fname-uf.adb, fname-uf.ads, fname.adb, fname.ads,
32930         freeze.adb, freeze.ads, frontend.adb, frontend.ads,
32931         g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads,
32932         g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
32933         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
32934         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
32935         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
32936         g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb,
32937         g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb,
32938         g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb,
32939         g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb,
32940         g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads,
32941         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads,
32942         g-htable.adb, g-htable.ads, g-io.adb, g-io.ads,
32943         g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb,
32944         g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb,
32945         g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads,
32946         g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb,
32947         g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads,
32948         g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb,
32949         g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads,
32950         g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads,
32951         g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads,
32952         g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads,
32953         get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads,
32954         gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads,
32955         gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads,
32956         gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
32957         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb,
32958         gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb,
32959         gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads,
32960         gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb,
32961         hlo.adb, hlo.ads, hostparm.ads, i-c.adb,
32962         i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads,
32963         i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads,
32964         i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
32965         i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb,
32966         i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb,
32967         i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads,
32968         inline.adb, inline.ads, interfac.ads, ioexcept.ads,
32969         itypes.adb, itypes.ads, krunch.adb, krunch.ads,
32970         layout.adb, layout.ads, lib-list.adb, lib-load.adb,
32971         lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads,
32972         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
32973         lib.adb, lib.ads, live.adb, live.ads,
32974         machcode.ads, make.adb, make.ads, makeusg.adb,
32975         makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads,
32976         mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads,
32977         memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb,
32978         mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
32979         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb,
32980         mlib.ads, namet.adb, namet.ads, nlists.adb,
32981         nlists.ads, opt.adb, opt.ads, osint-b.adb,
32982         osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb,
32983         osint-l.ads, osint-m.adb, osint-m.ads, osint.adb,
32984         osint.ads, output.adb, output.ads, par-ch10.adb,
32985         par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb,
32986         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
32987         par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
32988         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb,
32989         par-tchk.adb, par-util.adb, par.adb, par.ads,
32990         prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads,
32991         prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads,
32992         prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads,
32993         prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads,
32994         prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads,
32995         prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads,
32996         prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads,
32997         prj.adb, prj.ads, repinfo.adb, repinfo.ads,
32998         restrict.adb, restrict.ads, rident.ads, rtsfind.adb,
32999         rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb,
33000         s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb,
33001         s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb,
33002         s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads,
33003         s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads,
33004         s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb,
33005         s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads,
33006         s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads,
33007         s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
33008         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads,
33009         s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads,
33010         s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
33011         s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb,
33012         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
33013         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads,
33014         s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads,
33015         s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads,
33016         s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads,
33017         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads,
33018         s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads,
33019         s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads,
33020         s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads,
33021         s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
33022         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads,
33023         s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads,
33024         s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads,
33025         s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb,
33026         s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb,
33027         s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads,
33028         s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads,
33029         s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
33030         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
33031         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads,
33032         s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads,
33033         s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads,
33034         s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
33035         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
33036         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads,
33037         s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads,
33038         s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads,
33039         s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
33040         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
33041         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads,
33042         s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads,
33043         s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads,
33044         s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
33045         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
33046         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads,
33047         s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads,
33048         s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads,
33049         s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
33050         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
33051         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads,
33052         s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads,
33053         s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads,
33054         s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
33055         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads,
33056         s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads,
33057         s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads,
33058         s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb,
33059         s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads,
33060         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads,
33061         s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads,
33062         s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
33063         s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads,
33064         s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads,
33065         s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb,
33066         s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb,
33067         s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb,
33068         s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads,
33069         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
33070         s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads,
33071         s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
33072         s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb,
33073         s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
33074         s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb,
33075         s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb,
33076         s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb,
33077         s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads,
33078         s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads,
33079         s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads,
33080         s-valenu.adb, s-valenu.ads, s-valint.adb, s-valint.ads,
33081         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads,
33082         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
33083         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads,
33084         s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads,
33085         s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads,
33086         s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb,
33087         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
33088         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb,
33089         s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb,
33090         s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
33091         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb,
33092         s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb,
33093         scn-slit.adb, scn.adb, scn.ads, sdefault.ads,
33094         sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads,
33095         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
33096         sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads,
33097         sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads,
33098         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads,
33099         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads,
33100         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
33101         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
33102         sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads,
33103         sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads,
33104         sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads,
33105         sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
33106         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads,
33107         sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads,
33108         sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads,
33109         sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads,
33110         sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb,
33111         sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb,
33112         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb,
33113         sinput-p.ads, sinput.adb, sinput.ads, snames.adb,
33114         snames.ads, sprint.adb, sprint.ads, stand.adb,
33115         stand.ads, stringt.adb, stringt.ads, style.adb,
33116         style.ads, stylesw.adb, stylesw.ads, switch-b.adb,
33117         switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
33118         switch-m.ads, switch.adb, switch.ads, system.ads,
33119         table.adb, table.ads, targparm.adb, targparm.ads,
33120         tbuild.adb, tbuild.ads, text_io.ads, trans.c,
33121         tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads,
33122         tree_io.adb, tree_io.ads, treepr.adb, treepr.ads,
33123         ttypef.ads, ttypes.ads, types.adb, types.ads,
33124         uintp.adb, uintp.ads, uname.adb, uname.ads,
33125         unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads,
33126         usage.adb, usage.ads, validsw.adb, validsw.ads,
33127         widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb,
33128         xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads,
33129         xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header,
33130         formatting and other trivial changes from ACT.
33131
33132 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
33133
33134         * gigi.h, utils2.c (build_constructor):
33135         Rename gnat_build_constructor. Use build_constructor.
33136         * decl.c (gnat_to_gnu_entity)
33137         * trans.c (tree_transform, pos_to_constructor, extract_values)
33138         * ada/utils.c (build_template, convert_to_fat_pointer, convert)
33139         (unchecked_convert)
33140         * ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
33141         (fill_vms_descriptor):
33142         Update to match.
33143
33144 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
33145
33146         * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero.
33147         * misc.c (gnat_tree_size): New function.
33148         (LANG_HOOKS_TREE_SIZE): Override.
33149
33150 2003-04-03  Jason Merrill  <jason@redhat.com>
33151
33152         * misc.c (gnat_adjust_rli): #if 0.
33153
33154 2003-03-31   Geert Bosch <bosch@gnat.com>
33155
33156         PR ada/10020
33157         * link.c : Fix misspelled "const" keyword
33158
33159 2003-03-23  Mark Mitchell  <mark@codesourcery.com>
33160
33161         PR c++/7086
33162         * utils2.c: Adjust calls to put_var_into_stack.
33163
33164 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
33165
33166         * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC.
33167
33168 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
33169
33170         * misc.c (gnat_init): Update for new prototype.
33171
33172 2003-03-05  Olivier Hainque  <hainque@gnat.com>
33173
33174         ada/9961
33175         * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid
33176         warning, and fix return type for the IN_RTS && !SJLJ case.
33177
33178 2003-03-04  Tom Tromey  <tromey@redhat.com>
33179
33180         * Make-lang.in (ada.tags): New target.
33181
33182 2003-03-04  Olivier Hainque  <hainque@act-europe.fr>
33183
33184         ada/9911
33185         * a-except.adb (Unwind_RaiseException): Import a GNAT specific
33186         wrapper, which name remains constant whatever underlying GCC
33187         scheme.
33188
33189         * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing
33190         the stable interface needed for a-except.
33191
33192 2003-03-02  Andreas Jaeger  <aj@suse.de>
33193
33194         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
33195         gnat_ug_wnt.texi: Regenerate.
33196
33197 2003-03-02  Laurent Guerby <guerby@acm.org>
33198
33199         * Makefile.in (install-gnatlib): Match previous change there
33200         so it works.
33201
33202 2003-02-28  Andreas Schwab  <schwab@suse.de>
33203
33204         * Make-lang.in (install-gnatlib): Change to ada directory before
33205         running make instead of using ada/Makefile directly.
33206
33207 2003-02-18  Ben Elliston  <bje@redhat.com>
33208
33209         Part of PR ada/9406
33210         * gnat_ug.texi (Binder output file): Grammar fix.
33211
33212 2003-02-18  Ben Elliston  <bje@redhat.com>
33213
33214         PR other/7350
33215         * 5qtaprop.adb (Sleep): Fix typo in comment.
33216
33217 2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
33218
33219         * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2.
33220         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
33221         gnat_ug_wnt.texi: Regenerate.
33222
33223 2003-02-03  Christian Cornelssen <ccorn@cs.tu-berlin.de>
33224
33225         * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir)
33226         be created if necessary.
33227         (ada.install-common): Let $(DESTDIR)$(bindir) be created
33228         if necessary.  Remove erroneous and redundant gnatchop
33229         installation commands.  Test for gnatdll before attempting
33230         to install it.
33231         (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr,
33232         and gnatdll from all plausible locations.
33233
33234 2003-02-01  Richard Sandiford  <rsandifo@redhat.com>
33235
33236         * utils2.c (build_unary_op): Don't check flag_volatile.
33237         * gnat_ug.texi: Remove -fvolatile from example.
33238         * gnat_ug_vxw.texi: Likewise.
33239
33240 2003-01-29  Laurent Guerby <guerby@acm.org>
33241
33242         PR ada/8344
33243         * final.c: rename to adafinal.c to avoid file name conflicts with gcc file.
33244         * Makefile.in: match previous change.
33245         * Make-lang.in: match previous change.
33246
33247 2003-01-29      Joel Sherrill <joel@OARcorp.com>
33248
33249         * 5rosinte.ads: Add SIGXCPU.
33250         * 5rtpopsp.adb: New file.
33251         * Make-lang.in: Do not build gnatpsta and gnatpsys when cross.
33252         * Makefile.in: Recognize more RTEMS targets and add the RTEMS
33253         specific file 5rtpopsp.adb.
33254         * adaint.h: Add include of <stdio.h> when target is RTEMS.  This
33255         is likely needed for all newlib targets.
33256         * init.c: Add RTEMS specific version of __gnat_initialize().
33257
33258 2003-01-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
33259
33260         * adaint.c, adaint.h, gmem.c, init.c: Update copyright year.
33261
33262 2003-01-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
33263
33264         * init.c (__gnat_error_handler): Make msg const.
33265
33266         * gmem.c (convert_addresses): Move declaration ...
33267         * adaint.h: ... here.
33268         * adaint.c (convert_addresses): Adapt addrs type to match
33269         prototype.
33270
33271         * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format.
33272
33273 2003-01-24  Andreas Schwab  <schwab@suse.de>
33274
33275         * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to
33276         size_t to avoid warning.
33277
33278 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
33279
33280         * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c.
33281
33282 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
33283
33284         * gnat_rm.texi: Remove RCS version number.
33285
33286         * ada-tree.h (union lang_tree_node): Add chain_next option.
33287
33288 2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
33289
33290         * Make-lang.in (ada.install-info, ada.install-common,
33291         ada.uninstall): Prepend $(DESTDIR) to the destination
33292         directory in all (un)installation commands.
33293         * Makefile.in (install-gnatlib, install-rts): Ditto.
33294
33295 2002-12-28  Joseph S. Myers  <jsm@polyomino.org.uk>
33296
33297         * gnat_rm.texi, gnat_ug.texi: Use @copying.
33298         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
33299         gnat_ug_wnt.texi: Regenerate.
33300
33301 2002-12-23  Joseph S. Myers  <jsm@polyomino.org.uk>
33302
33303         * gnat_rm.texi: Include gcc-common.texi.  Use GCC version number
33304         only.
33305         * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
33306         $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
33307         $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
33308         ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
33309         ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
33310         $(srcdir)/doc/include/gcc-common.texi.
33311
33312 2002-12-15   Geert Bosch <bosch@gnat.com>
33313
33314         * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting
33315
33316 2002-12-14   Geert Bosch <bosch@gnat.com>
33317
33318         PR ada/5690
33319         * sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
33320         case of a body created for a Renaming_As_Body, on which
33321         conformance checks are not performed.
33322
33323 2002-11-30  Zack Weinberg  <zack@codesourcery.com>
33324
33325         * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c,
33326         utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when
33327         not already included.
33328         * Make-lang.in: Update dependencies.
33329
33330 2002-11-18  Nathanael Nerode  <neroden@gcc.gnu.org>
33331         * adaint.c (__gnat_tmp_name): Better, but good enough for now,
33332         solution to buffer overflow bug on GNU/Linux.
33333
33334 2002-11-14  Nathanael Nerode  <neroden@gcc.gnu.org>
33335
33336         PR ada/5856
33337         PR ada/6919
33338         * bindgen.adb: Remove all references to Public_Version.
33339         * comperr.adb: Remove all references to Public_Version and
33340         GNATPRO_Version; correct bug reporting instructions.
33341         * comperr.ads: Change to match bug box.
33342         * gnatvsn.ads: Remove all references to Public version and
33343         GNATPRO version.
33344
33345 2002-11-13  Nathanael Nerode  <neroden@gcc.gnu.org>
33346
33347         PR ada/6919
33348         * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
33349         GNU/Linux.
33350
33351         PR ada/6558
33352         * config-lang.in: Remove diff_excludes.
33353
33354 2002-11-05  Graham Stott  <graham.stott@btinternet.com>
33355
33356         PR ada/8358
33357         * trans.c (gnu_pending_elaboration_lists): New GC root.
33358         (build_unit_elab): Use..
33359
33360 2002-10-30   Geert Bosch <bosch@gnat.com>
33361
33362         PR ada/6558
33363         * misc.c : Include optabs.h
33364
33365         * Make-lang.in (misc.o): Add dependency on optabs.h
33366
33367 2002-10-29   Geert Bosch <bosch@gnat.com>
33368
33369         PR ada/6558
33370         * Make-lang.in (gnatbind): Depend on CONFIG_H
33371
33372 2002-10-29  Geert bosch  <bosch@gnat.com>
33373
33374         PR ada/6558
33375         * misc.c: Unrevert misc.c (1.13)
33376
33377 2002-10-28  Nathanael Nerode  <neroden@gcc.gnu.org>
33378
33379         * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update
33380         maintainership comments.
33381
33382 2002-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
33383
33384         PR ada/5904
33385         * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
33386         5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb
33387         5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb
33388         7staprop.adb: Correct statements in comments about
33389         maintainership of GNAT.
33390
33391         PR ada/5904
33392         * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c
33393         gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads
33394         osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb
33395         osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads
33396         s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb
33397         s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb
33398         sinput-d.ads switch-b.adb switch-b.ads switch-c.adb
33399         switch-c.ads switch-m.adb switch-m.ads: Correct statements in
33400         comments about maintainership of GNAT.
33401
33402         PR ada/6919 (forward port of patch for PR ada/5904)
33403         * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads
33404         4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb
33405         4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads
33406         4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads
33407         4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb
33408         4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb
33409         4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb
33410         52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads
33411         5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads
33412         5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads
33413         5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads
33414         5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb
33415         5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads
33416         5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads
33417         5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads
33418         5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads
33419         5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads
33420         5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads
33421         5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb
33422         5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads
33423         5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads
33424         5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb
33425         5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads
33426         5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb
33427         5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb
33428         5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb
33429         5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb
33430         5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb
33431         7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb
33432         a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb
33433         a-chahan.ads a-colien.adb a-colien.ads a-colire.adb
33434         a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads
33435         a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads
33436         a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads
33437         a-except.adb a-except.ads a-excpol.adb a-exctra.adb
33438         a-exctra.ads a-filico.adb a-filico.ads a-finali.adb
33439         a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads
33440         a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb
33441         a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads
33442         a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb
33443         a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb
33444         a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb
33445         a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads
33446         a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads
33447         a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads
33448         a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads
33449         a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb
33450         a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb
33451         a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads
33452         a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads
33453         a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads
33454         a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads
33455         a-ticoio.adb a-ticoio.ads a-tideau.adb a-tideau.ads
33456         a-tideio.adb a-tideio.ads a-tienau.adb a-tienau.ads
33457         a-tienio.adb a-tienio.ads a-tifiio.adb a-tifiio.ads
33458         a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads
33459         a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads
33460         a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads
33461         a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads
33462         a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb
33463         a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads
33464         a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads
33465         a-wtedit.adb a-wtedit.ads a-wtenau.adb a-wtenau.ads
33466         a-wtenio.adb a-wtenio.ads a-wtfiio.adb a-wtfiio.ads
33467         a-wtflau.adb a-wtflau.ads a-wtflio.adb a-wtflio.ads
33468         a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads
33469         a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb
33470         a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h
33471         adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads
33472         alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb
33473         back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads
33474         binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb
33475         bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads
33476         ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads
33477         csets.adb csets.ads csinfo.adb cstand.adb cstand.ads
33478         cstreams.c cuintp.c debug.adb debug.ads debug_a.adb
33479         debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c
33480         einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h
33481         errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c
33482         exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads
33483         exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb
33484         exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads
33485         exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb
33486         exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads
33487         exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb
33488         exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb
33489         exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb
33490         exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb
33491         exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb
33492         exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb
33493         exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads
33494         exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h
33495         final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads
33496         fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb
33497         freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb
33498         g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads
33499         g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h
33500         gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb
33501         gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb
33502         gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb
33503         gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads
33504         gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads
33505         gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads
33506         i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb
33507         i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads
33508         i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads
33509         i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads
33510         impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c
33511         itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h
33512         lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb
33513         lib-load.ads lib-sort.adb lib-util.adb lib-util.ads
33514         lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb
33515         lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb
33516         makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c
33517         namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h
33518         nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb
33519         osint.ads output.adb output.ads par-ch10.adb par-ch11.adb
33520         par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb
33521         par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb
33522         par-endh.adb par-labl.adb par-load.adb par-prag.adb
33523         par-sync.adb par-tchk.adb par-util.adb par.adb par.ads
33524         prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb
33525         prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads
33526         prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads
33527         prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads
33528         prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads
33529         prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h
33530         repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads
33531         rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads
33532         s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads
33533         s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb
33534         s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads
33535         s-direio.adb s-direio.ads s-except.ads s-exctab.adb
33536         s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads
33537         s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads
33538         s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads
33539         s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads
33540         s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads
33541         s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads
33542         s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb
33543         s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads
33544         s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads
33545         s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads
33546         s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb
33547         s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb
33548         s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb
33549         s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb
33550         s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb
33551         s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb
33552         s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb
33553         s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb
33554         s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads
33555         s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb
33556         s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads
33557         s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads
33558         s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads
33559         s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads
33560         s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads
33561         s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads
33562         s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads
33563         s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads
33564         s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads
33565         s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads
33566         s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads
33567         s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads
33568         s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads
33569         s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads
33570         s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads
33571         s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads
33572         s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads
33573         s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads
33574         s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads
33575         s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads
33576         s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads
33577         s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads
33578         s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads
33579         s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads
33580         s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads
33581         s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads
33582         s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads
33583         s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads
33584         s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads
33585         s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads
33586         s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads
33587         s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads
33588         s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads
33589         s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb
33590         s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb
33591         s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb
33592         s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb
33593         s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb
33594         s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb
33595         s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads
33596         s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads
33597         s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads
33598         s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads
33599         s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads
33600         s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads
33601         s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.ads
33602         s-valint.adb s-valint.ads s-vallld.adb s-vallld.ads
33603         s-vallli.adb s-vallli.ads s-valllu.adb s-valllu.ads
33604         s-valrea.adb s-valrea.ads s-valuns.adb s-valuns.ads
33605         s-valuti.adb s-valuti.ads s-valwch.adb s-valwch.ads
33606         s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads
33607         s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb
33608         s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb
33609         s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb
33610         s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb
33611         s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb
33612         s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb
33613         s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads
33614         scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb
33615         sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads
33616         sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb
33617         sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb
33618         sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads
33619         sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb
33620         sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads
33621         sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb
33622         sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb
33623         sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb
33624         sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb
33625         sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb
33626         sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads
33627         sem_type.adb sem_type.ads sem_util.adb sem_util.ads
33628         sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads
33629         sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb
33630         sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb
33631         sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads
33632         snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb
33633         stringt.ads stringt.h style.adb style.ads stylesw.adb
33634         stylesw.ads switch.adb switch.ads sysdep.c system.ads
33635         table.adb table.ads targparm.adb targparm.ads targtyps.c
33636         tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads
33637         tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb
33638         treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads
33639         types.adb types.ads types.h uintp.adb uintp.ads uintp.h
33640         uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb
33641         usage.ads utils.c utils2.c validsw.adb validsw.ads
33642         widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb
33643         xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb
33644         xtreeprs.adb: Correct statements in comments about maintainership
33645         of GNAT.
33646
33647 2002-09-23  Zack Weinberg  <zack@codesourcery.com>
33648
33649         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o.
33650         * Makefile.in (TOOLS_LIBS): Add ../../version.o.
33651         * gnatvsn.ads: Gnat_Version_String is now a function.
33652         * gnatvsn.adb: New file.  When asked for Gnat_Version_String,
33653         copy the C version_string into a String and return it.
33654         * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb,
33655         gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb:
33656         Remove pragma Ident (Gnat_Version_String).  If this was the
33657         sole use of package Gnatvsn, remove the with statement too.
33658         * gnat1drv.adb: Tweak -gnatv output.
33659
33660 2002-09-17  Richard Henderson  <rth@redhat.com>
33661
33662         * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
33663         * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN.
33664         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
33665         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
33666         * config/m68k/m68k.c (floating_exact_log2): Use real_exponent
33667         and real_2expN instead of a loop.
33668         * doc/tm.texi (REAL_VALUE_LDEXP): Remove.
33669         (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove.
33670
33671 2002-08-25  Andre Leis <a.leis@gmx.net>
33672             David Billinghurst (David.Billinghurst@riotinto.com>
33673
33674         * sysdep.c (__gnat_ttyname): include <termios.h> on cygwin
33675
33676 2002-08-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
33677
33678         * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS).
33679         Remove $(CONFIG_H) dependency.
33680
33681 2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
33682
33683         * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
33684
33685 2002-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
33686
33687         * adadecode.c (ada_demangle): Use xstrdup in lieu of
33688         xmalloc/strcpy.
33689         * misc.c (gnat_decode_option): Likewise.
33690
33691 2002-07-15  Florian Weimer  <fw@deneb.enyo.de>
33692
33693         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
33694         function approach did not work well because of a side effect (the
33695         function call could reallocate the table which was being indexed
33696         using its result). Fixes ada/4851. [RESURRECTED]
33697
33698 2002-07-01  Roger Sayle  <roger@eyesopen.com>
33699
33700         * ada/utils.c (builtin_function): Accept an additional parameter.
33701
33702 2002-06-28  Andreas Jaeger  <aj@suse.de>
33703
33704         PR ada/7144
33705         * Makefile.in: Fix typo in comment, patch by Adrian Knoth
33706         <adi@thur.de>.
33707
33708 2002-06-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
33709
33710         * Makefile.in (SHELL): Set to @SHELL@.
33711
33712 2002-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
33713
33714         * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit
33715         array size calculation.
33716
33717 2002-06-04  Andreas Jaeger  <aj@suse.de>
33718
33719         * Make-lang.in (gnatbind): Readd rule that has been lost in last
33720         patch.
33721
33722 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
33723
33724         Merge from pch-branch:
33725
33726         * config-lang.in (gtfiles): Add ada-tree.h.
33727         * ada-tree.h (SET_TYPE_CI_CO_LIST): New.
33728         (SET_TYPE_MODULUS): New.
33729         (SET_TYPE_INDEX): New.
33730         (SET_TYPE_DIGITS_VALUE): New.
33731         (SET_TYPE_RM_SIZE): New.
33732         (SET_TYPE_UNCONSTRAINED_ARRAY): New.
33733         (SET_TYPE_ADA_SIZE): New.
33734         (SET_TYPE_ACTUAL_BOUNDS): New.
33735         (SET_DECL_CONST_CORRESPONDING_VAR): New.
33736         (SET_DECL_ORIGINAL_FIELD): New.
33737         (TREE_LOOP_ID): Correct typo.
33738         * decl.c: Use new macros.
33739         * utils.c: Include debug.h, use new macros.
33740         * utils2.c: Use new macros.
33741
33742         * ada-tree.h: Update all macros for new tree description.
33743         (struct tree_loop_id): New.
33744         (union lang_tree_node): New.
33745         (struct lang_decl): New.
33746         (struct lang_type): New.
33747         * misc.c (gnat_mark_tree): Delete.
33748         (LANG_HOOKS_MARK_TREE): Delete.
33749         * trans.c (tree_transform): No longer any need to cast
33750         for TREE_LOOP_ID.
33751
33752         * utils.c (struct language_function): New dummy structure.
33753
33754         * Makefile.in (decl.o): gt-ada-<filename.h> is in objdir, not srcdir.
33755         (misc.o): Likewise.
33756         (utils.o): Likewise; also gtype-ada.h.
33757         * Make-lang.in (gnat1): Add dependency on s-gtype.
33758         (gnatbind): Add dependency on $(CONFIG_H).
33759         * utils.c: Correct last #include.
33760         (stuct e_stack): Remove unnecessary 'static'.
33761         (mark_e_stack): Remove unused prototype.
33762
33763         * scn-nlit.adb: Remove whitespace after version number to
33764         keep lines under 80 chars.
33765         * snames.adb: Likewise.
33766         * treepr.ads: Likewise.
33767
33768         * Makefile.in (decl.o): Include gt-ada-<filename>.h.
33769         (misc.o): Likewise.
33770         (utils.o): Include gt-ada-<filename>.h and gtype-ada.h.
33771         * config-lang.in (gtfiles): New.
33772         * decl.c: Use gengtype for roots.
33773         * gigi.h: Use gengtype for roots.
33774         * trans.c: Use gengtype for roots.
33775         * utils.c: Use gengtype for roots, marking.  Include gtype-ada.h.
33776
33777 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
33778
33779         * misc.c (gnat_init): Adjust setting of internal_error_function.
33780
33781 2002-06-01  Joseph S. Myers  <jsm28@cam.ac.uk>
33782
33783         * gnat_ug.texi: Use @ifnottex instead of @ifinfo.
33784         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
33785         gnat_ug_wnt.texi: Regenerate.
33786
33787 2002-05-31  Florian Weimer  <fw@deneb.enyo.de>
33788
33789         * 5ntaprop.adb (with System.OS_Primitives): Remove.
33790
33791         * cstreams.c (max_path_len): Move from here ...
33792         * adaint.c (__gnat_max_path_len): ... to here.
33793         * adaint.c (__gnat_max_path_len): Declare.
33794         * g-dirope.adb (Max_Path): Adjust.
33795         * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust.
33796         * i-cstrea.ads (max_path_len): Adjust.
33797         * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust.
33798         * xr_tabls.adb (Dir_Name.Max_Path: Adjust.
33799
33800         * Makefile.in, Make-lang.in: Documentation is now built in
33801         Make-lang.in.  Store Info and generated Texinfo files in the
33802         source directory.
33803         * gnat_ug.texi: Remove CVS keywords, correct version number.
33804         Set file name correctly.
33805
33806         * gnat_ug_*.texi: Add.
33807         * .cvsignore: Ignore generated Texinfo files.
33808
33809 2002-05-30  Zack Weinberg  <zack@codesourcery.com>
33810
33811         * ada.h: Add MI guard macro.
33812         (SUBTYPE): Define constants with an anonymous enum, not static
33813         const variables.
33814         (IN): Cast constants to appropriate type before use.
33815
33816 2002-05-26  Joseph S. Myers  <jsm28@cam.ac.uk>
33817
33818         * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526
33819         (experimental)".
33820
33821 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
33822
33823         * Make-lang.in (CP, ECHO): Copy from Makefile.in.
33824         (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise.
33825         (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise.
33826         (ALL_ADA_CFLAGS): Likewise.
33827         (ADA_INCLUDES): Likewise.
33828         Adapt for new working dir.
33829         (GNATBIND): Use Makefile.in version.
33830         (.SUFFIXES): Copy from Makefile.in.
33831         (ada-warn): Define.
33832         (.adb.o, .ads.o): Copy from Makefile.in.
33833         Added $(OUTPUT_OPTION).
33834         (GNAT1_C_OBJS): Moved from Makefile.in.
33835         Prefix with ada subdir.
33836         (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise.
33837         (EXTRA_GNAT1_OBJS): Moved from Makefile.in.
33838         Adapt for new working dir.
33839         (EXTRA_GNATBIND_OBJS): Likewise.
33840         (ADA_BACKEND): Moved from Makefile.in.
33841         Renamed to avoid conflict with global BACKEND.
33842         Use that one.
33843         (TARGET_ADA_SRCS): Moved from Makefile.in.
33844         (gnat1$(exeext)): Replaced recursive rule with Makefile.in version.
33845         Use ADA_BACKEND.
33846         (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version.
33847         (ada_extra_files): Moved from Makefile.in.
33848         Prefix with ada subdir.
33849         (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise.
33850         (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise.
33851         (ada/nmake.ads): Likewise.
33852         (update-sources): Moved from Makefile.in.
33853         Prefix with ada subdir.
33854         (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise.
33855         (ADA_TREE_H): Likewise.
33856         (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise.
33857         (ada/memtrack.o): Likewise.
33858         (ada/adadecode.o): Likewise.
33859         Update dependencies.
33860         (ada/adaint.o): New.
33861         (ada/argv.o): Moved from Makefile.in.
33862         Prefix with ada subdir.
33863         Update dependencies.
33864         (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise.
33865         (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise.
33866         (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in.
33867         Prefix with ada subdir.
33868         (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise.
33869         (GNAT DEPENDENCIES): Regenerate.
33870         * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by
33871         toplevel Makefile.in.
33872         (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed.
33873         (TARGET_ADA_SRCS): Removed.
33874         (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise.
33875         (GNATBIND_OBJS): Likewise.
33876         (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here.
33877         (BACKEND): Removed.
33878         (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise.
33879         (TREE_H): Likewise.
33880         (ada_extra_files): Likewise.
33881         (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise.
33882         (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise.
33883         (update-sources): Likewise.
33884         (sdefault.adb, stamp-sdefault, sdefault.o): Likewise
33885         (ADA_TREE_H): Likewise.
33886         (adadecoce.o): Likewise.
33887         (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise.
33888         (GNAT DEPENDENCIES): Likewise.
33889
33890 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
33891
33892         * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd.
33893         * Makefile.in: Likewise.
33894
33895 2002-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
33896
33897         * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools):
33898         Restore $(CONFIG_H) and prefix.o dependencies.
33899         (ada.stage[1-4]): Depend on stage?-start.
33900
33901         * Makefile.in (b_gnatb.c): Depend on interfac.o.
33902
33903 2002-05-02  Jim Wilson  <wilson@redhat.com>
33904
33905         * utils.c (finish_record_type): Change record_size to record_type.
33906
33907 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
33908
33909         * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides.
33910         (ALL_ADA_CFLAGS): Define.  Replace ADA_CFLAGS with ALL_ADA_CFLAGS in
33911         ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC.
33912
33913 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
33914
33915         * misc.c (gnat_parse_file): Update.
33916
33917 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
33918
33919         * misc.c (gnat_init): Don't set lang_attribute_common.
33920
33921 2002-04-21  Joseph S. Myers  <jsm28@cam.ac.uk>
33922
33923         * gnat_rm.texi: Use @ifnottex instead of @ifinfo.
33924
33925 2002-04-21  Florian Weimer  <fw@deneb.enyo.de>
33926
33927         * gnat_ug.texi: New file.
33928
33929         * gnat_rm.texi: Do not include texiplus.texi.  Include fdl.texi
33930         instead of gfdl.texi
33931
33932         * xgnatug.adb, ug_words: New files.
33933
33934         * Makefile.in (doc, dvi): New targets.  Build gnat_ug_*,
33935         gnat_rm and gnat-style manuals.
33936
33937 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
33938
33939         * gigi.h (incomplete_type_error): Remove.
33940         * utils.c (incomplete_type_error): Remove.
33941
33942 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
33943
33944         * trans.c (tree_transform): Add has_scope argument to
33945         expand_start_stmt_expr.
33946
33947 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
33948
33949         * gigi.h (truthvalue_conversion): Rename.
33950         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
33951         * trans.c (tree_transform): Update.
33952         * utils2.c (truthvalue_conversion): Rename, update.
33953         (build_binary_op, build_unary_op): Update.
33954
33955 2002-04-04  Laurent Guerby  <guerby@acm.org>
33956
33957         * make.adb: Implement -margs, remove restriction about file name placement.
33958         * makeusg.adb: Documentation update.
33959         * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir).
33960         * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line.
33961
33962 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
33963
33964         * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME.
33965         (builtin_function): Similarly.
33966
33967 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
33968
33969         * decl.c (gnat_to_gnu_entity): Update.
33970         * gigi.h (mark_addressable): Rename.
33971         * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
33972         * trans.c (tree_transform): Update.
33973         * utils.c (create_var_decl): Update.
33974         * util2.c (build_binary_op, build_unary_op,
33975         fill_vms_descriptor): Update.
33976         (mark_addressable): Rename, update.
33977
33978 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
33979
33980         * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
33981         Rename.
33982         * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
33983         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
33984         * trans.c (tree_transform, convert_with_check): Update.
33985         * utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
33986         Rename.
33987
33988 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
33989
33990         * gigi.h (finish_incomplete_decl): Rename.
33991         * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
33992         * utils.c (gnat_init_decl_processing): Don't set hook.
33993         (finish_incomplete_decl): Rename.
33994
33995 2002-03-29  Andreas Schwab  <schwab@suse.de>
33996
33997         * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts
33998         directory.
33999
34000 2001-03-28  Robert Dewar <dewar@gnat.com>
34001
34002         * checks.ads:
34003         (Remove_Checks): New procedure
34004
34005         * checks.adb:
34006         (Remove_Checks): New procedure
34007
34008         * exp_util.adb:
34009         Use new Duplicate_Subexpr functions
34010         (Duplicate_Subexpr_No_Checks): New procedure
34011         (Duplicate_Subexpr_No_Checks_Orig): New procedure
34012         (Duplicate_Subexpr): Restore original form (checks duplicated)
34013         (Duplicate_Subexpr): Call Remove_Checks
34014
34015         * exp_util.ads:
34016         (Duplicate_Subexpr_No_Checks): New procedure
34017         (Duplicate_Subexpr_No_Checks_Orig): New procedure
34018         Add 2002 to copyright notice
34019
34020         * sem_util.adb: Use new Duplicate_Subexpr functions
34021
34022         * sem_eval.adb:
34023         (Eval_Indexed_Component): This is the place to call
34024         Constant_Array_Ref and to replace the value. We simply merge
34025         the code of this function in here, since it is now no longer
34026         used elsewhere. This fixes the problem of the back end not
34027         realizing we were clever enough to see that this was
34028         constant.
34029         (Expr_Val): Remove call to Constant_Array_Ref
34030         (Expr_Rep_Val): Remove call to Constant_Array_Ref
34031         Minor reformatting
34032         (Constant_Array_Ref): Deal with string literals (patch
34033         suggested by Zack Weinberg on the gcc list)
34034
34035 2001-03-28  Ed Schonberg <schonber@gnat.com>
34036
34037         * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig =>
34038         Duplicate_Subexpr_Move_Checks.
34039
34040         * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig =>
34041         Duplicate_Subexpr_Move_Checks.
34042
34043         * sem_eval.adb: (Constant_Array_Ref): Verify that constant
34044         value of array exists before retrieving it (it may a private
34045         protected component in a function).
34046
34047 2002-03-28   Geert Bosch <bosch@gnat.com>
34048
34049         * prj-pp.adb : New file.
34050
34051         * prj-pp.ads : New file.
34052
34053 2002-03-28  Andreas Jaeger  <aj@suse.de>
34054
34055         * Makefile.in (stamp-sdefault): Fix path for Makefile.
34056
34057 2002-03-28  Neil Booth  <neil@daikokuya.demon.co.uk>
34058
34059         * misc.c (gnat_expand_expr): Move prototype.
34060
34061 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
34062
34063         * misc.c (insert_default_attributes): Remove.
34064
34065 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
34066
34067         * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
34068         (gnat_init): Don't set hook.
34069         (gnat_expand_expr): Fix prototype.
34070
34071 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
34072
34073         * misc.c (ggc_p): Remove.
34074
34075 2002-03-27  Geert Bosch  <bosch@gnat.com>
34076
34077         * prj-makr.ads, prj-makr.adb : New files.
34078
34079 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
34080
34081         * misc.c (LANG_HOOKS_MARK_TREE): Redefine.
34082         (lang_mark_tree): Make static, rename.
34083
34084 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
34085
34086         * misc.c (maybe_build_cleanup): Remove.
34087
34088 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
34089
34090         * gigi.h (yyparse): Remove.
34091
34092 2002-03-23  Florian Weimer  <fw@deneb.enyo.de>
34093
34094         * gnat_rm.texi: Sync with ACT version.
34095           (From Ben Brosgol <brosgol@gnat.com>)
34096
34097 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
34098
34099         * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
34100         (gnat_init): Remove old hook.
34101
34102 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
34103
34104         * misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
34105         (yyparse): Rename gnat_parse_file.
34106
34107 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
34108
34109         Delete all lines containing "$Revision:".
34110         * xeinfo.adb: Don't look for revision numbers.
34111         * xnmake.adb: Likewise.
34112         * xsinfo.adb: Likewise.
34113         * xsnames.adb: Likewise.
34114         * xtreeprs.adb: Likewise.
34115
34116 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
34117
34118         * misc.c (gnat_tree_code_type, gnat_tree_code_length,
34119         gnat_tree_code_name): Delete.
34120         (tree_code_type, tree_code_length, tree_code_name): Define.
34121         (gnat_init): Don't try to copy into the various tree_code
34122         arrays.
34123
34124 2002-03-11  Richard Henderson  <rth@redhat.com>
34125
34126         * Makefile.in (.NOTPARALLEL): Add fake tag.
34127
34128 2002-03-07  Geert Bosch  <bosch@gnat.com>
34129
34130         * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads,
34131         s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads,
34132         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads,
34133         switch-m.adb, switch-m.ads : New files.
34134
34135 2002-03-07  Geert Bosch  <bosch@gnat.com>
34136
34137         * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads,
34138         4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads,
34139         4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads,
34140         4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads,
34141         5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb,
34142         5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads,
34143         5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb,
34144         5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads,
34145         5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb,
34146         5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb,
34147         5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads,
34148         5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb,
34149         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads,
34150         5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb,
34151         5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb,
34152         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb,
34153         5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb,
34154         5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb,
34155         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
34156         5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb,
34157         7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb,
34158         Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads,
34159         a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb,
34160         a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads,
34161         a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb,
34162         a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb,
34163         a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb,
34164         a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb,
34165         a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h,
34166         adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb,
34167         atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb,
34168         bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb,
34169         csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c,
34170         einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads,
34171         eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
34172         exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads,
34173         exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
34174         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads,
34175         exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb,
34176         exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads,
34177         expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb,
34178         freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb,
34179         g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads,
34180         g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb,
34181         g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb,
34182         g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb,
34183         g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb,
34184         g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c,
34185         gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb,
34186         gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads,
34187         gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb,
34188         i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads,
34189         impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb,
34190         lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
34191         lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb,
34192         memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads,
34193         mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb,
34194         nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads,
34195         output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb,
34196         par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb,
34197         prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb,
34198         prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb,
34199         prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads,
34200         rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb,
34201         s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads,
34202         s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb,
34203         s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb,
34204         s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb,
34205         s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb,
34206         s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb,
34207         s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads,
34208         s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads,
34209         s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb,
34210         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
34211         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
34212         s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
34213         s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
34214         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
34215         s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb,
34216         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
34217         sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb,
34218         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads,
34219         sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb,
34220         sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb,
34221         sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb,
34222         sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
34223         sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb,
34224         sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb,
34225         sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads,
34226         snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads,
34227         stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads,
34228         table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb,
34229         tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb,
34230         treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads,
34231         types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb,
34232         utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb,
34233         xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes.
34234
34235         * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads,
34236         g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads,
34237         mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads,
34238         osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files
34239
34240         * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb,
34241         5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed
34242
34243         * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed
34244         to mdll-fil.ad[bs] and mdll-util.ad[bs]
34245
34246         * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed
34247         from mdllfile.ad[bs] and mdlltool.ad[bs]
34248
34249 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
34250
34251         * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
34252         lieu of explicit sizeof/sizeof.
34253
34254 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
34255
34256         * misc.c (copy_lang_decl): Remove.
34257
34258 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
34259
34260         * misc.c: Delete traditional-mode-related code copied from the
34261         C front end but not used, or used only to permit the compiler
34262         to link.
34263
34264 2002-02-07  Richard Henderson  <rth@redhat.com>
34265
34266         * adaint.c (__gnat_to_gm_time): First arg is int, not time_t.
34267         * adaint.h (__gnat_to_gm_time): Update prototype.
34268
34269 2002-01-30  Richard Henderson  <rth@redhat.com>
34270
34271         * trans.c (tree_transform) [N_Loop_Statement]: Use
34272         expand_exit_loop_top_cond.
34273
34274 2001-12-23  Richard Henderson  <rth@redhat.com>
34275
34276         * utils.c (end_subprog_body): Push GC context around
34277         rest_of_compilation for nested functions.
34278
34279 2001-12-23  Richard Henderson  <rth@redhat.com>
34280
34281         * 5nosinte.ads: Get definition of "int" from Interfaces.C.
34282
34283 2001-12-23  Florian Weimer  <fw@deneb.enyo.de>
34284
34285         * gnat-style.texi (Declarations and Types): Remove ancient style
34286         rule which was mandated by code generation issues.
34287
34288         * gnat-style.texi (header): Add @dircategory, @direntry.
34289         (title page): Remove date.
34290         (general) Add @./@: where approriate, and two spaces after the
34291         full stop at the end of a sentence.  Use @samp markup when
34292         referring concrete lexical entities (keywords, attribute names
34293         etc.), and @syntax for ARM grammar elements. Use @r for English
34294         text in comments.  Use @emph for emphasis.  Change "if-statements"
34295         etc. to "if statements" (without @samp). Break long lines.  Make
34296         casing of section names consistent.
34297         (Identifiers): Use @samp markup for variable names.
34298         (Comments): Use @samp markup for comment characters. Line-end
34299         comments may follow any Ada code, not just statements.  Fix
34300         misspelling of "Integer" as "integer".
34301         (Loop statements): Do not use variable name "I", use "J".
34302         (Subprogram Declarations): Document alignment.
34303         (Subprogram Bodies, Block statements): Document empty line before
34304         "begin".
34305
34306 2001-12-22  Florian Weimer  <fw@deneb.enyo.de>
34307
34308         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
34309         function approach did not work well because of a side effect (the
34310         function call could reallocate the table which was being indexed
34311         using its result). Fixes ada/4851.
34312
34313 2001-12-19  Robert Dewar <dewar@gnat.com>
34314
34315         * bindgen.adb: Minor reformatting
34316
34317         * cstand.adb: Minor reformatting
34318
34319         * fmap.adb: Minor reformatting
34320         Change name from Add for Add_To_File_Map (Add is much too generic)
34321         Change Path_Name_Of to Mapped_Path_Name
34322         Change File_Name_Of to Mapped_File_Name
34323         Fix copyright dates in header
34324
34325         * fmap.ads:
34326         Change name from Add for Add_To_File_Map (Add is much too generic)
34327         Change Path_Name_Of to Mapped_Path_Name
34328         Change File_Name_Of to Mapped_File_Name
34329         Fix copyright dates in header
34330
34331         * fname-uf.adb: Minor reformatting.  New names of stuff in Fmap.
34332         Add use clause for Fmap.
34333
34334         * make.adb: Minor reformatting
34335
34336         * osint.adb: Minor reformatting.  Change of names in Fmap.
34337         Add use clause for Fmap.
34338
34339         * prj-env.adb: Minor reformatting
34340
34341         * prj-env.ads: Minor reformatting
34342
34343         * switch.adb: Minor reformatting.  Do proper raise of Bad_Switch if
34344         error found (there were odd exceptions to this general rule in
34345         -gnatec/-gnatem processing)
34346
34347 2001-12-19  Olivier Hainque <hainque@gnat.com>
34348
34349         * raise.c (__gnat_eh_personality): Exception handling personality
34350         routine for Ada.  Still in rough state, inspired from the C++ version
34351         and still containing a bunch of debugging artifacts.
34352         (parse_lsda_header, get_ttype_entry): Local (static) helpers, also
34353         inspired from the C++ library.
34354
34355         * raise.c (eh_personality): Add comments. Part of work for the GCC 3
34356         exception handling integration.
34357
34358 2001-12-19  Arnaud Charlet <charlet@gnat.com>
34359
34360         * Makefile.in: Remove use of 5smastop.adb which is obsolete.
34361         (HIE_SOURCES): Add s-secsta.ad{s,b}.
34362         (HIE_OBJS): Add s-fat*.o
34363         (RAVEN_SOURCES): Remove files that are no longer required. Add
34364         interrupt handling files.
34365         (RAVEN_MOD): Removed, no longer needed.
34366
34367 2001-12-19  Robert Dewar <dewar@gnat.com>
34368
34369         * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always
34370         Add 2001 to copyright date
34371
34372         * g-regpat.adb: Change pragma Inline_Always to Inline. There is no
34373         need to force universal inlining for these cases.
34374
34375 2001-12-19  Arnaud Charlet <charlet@gnat.com>
34376
34377         * s-taprob.adb: Minor clean ups so that this unit can be used in
34378         Ravenscar HI.
34379
34380         * exp_ch7.adb: Allow use of secondary stack in HI mode.
34381         Disallow it when pragma Restrictions (No_Secondary_Stack) is specified.
34382
34383 2001-12-19  Vincent Celier <celier@gnat.com>
34384
34385         * prj-tree.ads (Project_Node_Record): Add comments for components
34386         Pkg_Id and Case_Insensitive.
34387
34388 2001-12-19  Pascal Obry <obry@gnat.com>
34389
34390         * g-socket.adb: Minor reformatting. Found while reading code.
34391
34392 2001-12-19  Robert Dewar <dewar@gnat.com>
34393
34394         * prj-tree.ads: Minor reformatting
34395
34396 2001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
34397
34398         * config-lang.in (diff_excludes): Remove.
34399
34400 2001-12-17  Ed Schonberg <schonber@gnat.com>
34401
34402         * sem_res.adb (Resolve_Selected_Component): do not generate a
34403         discriminant check if the selected component is a component of
34404         the argument of an initialization procedure.
34405
34406         * trans.c (tree_transform, case of arithmetic operators): If result
34407         type is private, the gnu_type is the base type of the full view,
34408         given that the full view itself may be a subtype.
34409
34410 2001-12-17  Robert Dewar <dewar@gnat.com>
34411
34412         * sem_res.adb: Minor reformatting
34413
34414         * trans.c (tree_transform, case N_Real_Literal): Add missing third
34415         parameter in call to Machine (unknown horrible effects from this
34416         omission).
34417
34418         * urealp.h: Add definition of Round_Even for call to Machine
34419         Add third parameter for Machine
34420
34421 2001-12-17  Ed Schonberg <schonber@gnat.com>
34422
34423         * sem_warn.adb (Check_One_Unit): Suppress warnings completely on
34424         predefined units in No_Run_Time mode.
34425
34426 2001-12-17  Richard Kenner <kenner@gnat.com>
34427
34428         * misc.c (insn-codes.h): Now include.
34429
34430 2001-12-17  Olivier Hainque <hainque@gnat.com>
34431
34432         * a-except.adb: Preparation work for future integration of the GCC 3
34433         exception handling mechanism
34434         (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines
34435         to factorize previous code sequences and make them externally callable,
34436         e.g. for the Ada personality routine when the GCC 3 mechanism is used.
34437         (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler):
34438         Use the new notification routines.
34439
34440 2001-12-17  Emmanuel Briot <briot@gnat.com>
34441
34442         * prj-tree.ads (First_Choice_Of): Document the when others case
34443
34444 2001-12-17  Arnaud Charlet <charlet@gnat.com>
34445
34446         * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in
34447         HI-E mode, in order to support Ravenscar profile properly.
34448
34449         * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E
34450         mode on 32 bits targets.
34451
34452 2001-12-17  Vincent Celier <celier@gnat.com>
34453
34454         * fmap.adb: Initial version.
34455
34456         * fmap.ads: Initial version.
34457
34458         * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped.
34459         If search is successfully done, add to mapping.
34460
34461         * frontend.adb: Initialize the mapping if a -gnatem switch was used.
34462
34463         * make.adb:
34464         (Gnatmake): Add new local variable Mapping_File_Name.
34465          Create mapping file when using project file(s).
34466          Delete mapping file before exiting.
34467
34468         * opt.ads (Mapping_File_Name): New variable
34469
34470         * osint.adb (Find_File): Use path name found in mapping, if any.
34471
34472         * prj-env.adb (Create_Mapping_File): New procedure
34473
34474         * prj-env.ads (Create_Mapping_File): New procedure.
34475
34476         * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem
34477         (Mapping_File)
34478
34479         * usage.adb: Add entry for new switch -gnatem.
34480
34481         * Makefile.in: Add dependencies for fmap.o.
34482
34483 2001-12-17  Ed Schonberg <schonber@gnat.com>
34484
34485         * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit
34486         is a package instantiation rewritten as a package body.
34487         (Install_Withed_Unit): Undo previous change, now redundant.
34488
34489 2001-12-17  Gary Dismukes <dismukes@gnat.com>
34490
34491         * layout.adb:
34492         (Compute_Length): Move conversion to Unsigned to callers.
34493         (Get_Max_Size): Convert Len expression to Unsigned after calls to
34494         Compute_Length and Determine_Range.
34495         (Layout_Array_Type): Convert Len expression to Unsigned after calls to
34496         Compute_Length and Determine_Range.
34497         Above changes fix problem with length computation for supernull arrays
34498         where Max (Len, 0) wasn't getting applied due to the Unsigned
34499         conversion used by Compute_Length.
34500
34501 2001-12-17  Arnaud Charlet <charlet@gnat.com>
34502
34503         * rtsfind.ads:
34504         (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and
34505          System.Secondary_Stack.
34506         (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar
34507          in HI-E mode.
34508         Remove unused entity RE_Exception_Data.
34509
34510         * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode.
34511
34512         * rident.ads (No_Secondary_Stack): New restriction.
34513
34514 2001-12-17  Joel Brobecker <brobecke@gnat.com>
34515
34516         * gnat_rm.texi: Fix minor typos. Found while reading the section
34517         regarding "Bit_Order Clauses" that was sent to a customer.
34518         Very interesting documentation!
34519
34520 2001-12-17  Robert Dewar <dewar@gnat.com>
34521
34522         * sem_case.adb (Choice_Image): Avoid creating improper character
34523         literal names by using the routine Set_Character_Literal_Name. This
34524         fixes bombs in certain error message cases.
34525
34526 2001-12-17  Arnaud Charlet <charlet@gnat.com>
34527
34528         * a-reatim.adb: Minor reformatting.
34529
34530 2001-12-17  Ed Schonberg <schonber@gnat.com>
34531
34532         * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the
34533         case where the formal is an extension of another formal in the current
34534         unit or in a parent generic unit.
34535
34536 2001-12-17  Arnaud Charlet <charlet@gnat.com>
34537
34538         * s-tposen.adb: Update comments.  Minor reformatting.
34539         Minor code clean up.
34540
34541         * s-tarest.adb: Update comments.  Minor code reorganization.
34542
34543 2001-12-17  Gary Dismukes <dismukes@gnat.com>
34544
34545         * exp_attr.adb (Attribute_Tag): Suppress expansion of <type_name>'Tag
34546         when Java_VM.
34547
34548 2001-12-17  Robert Dewar <dewar@gnat.com>
34549
34550         * exp_attr.adb: Minor reformatting
34551
34552 2001-12-17  Ed Schonberg <schonber@gnat.com>
34553
34554         * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle
34555         derivations nested within a child unit: verify that the parent
34556         type is declared in an outer scope.
34557
34558 2001-12-17  Robert Dewar <dewar@gnat.com>
34559
34560         * sem_ch12.adb: Minor reformatting
34561
34562 2001-12-17  Ed Schonberg <schonber@gnat.com>
34563
34564         * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post
34565         warning if current unit is a predefined one, from which bodies may
34566         have been deleted.
34567
34568 2001-12-17  Robert Dewar <dewar@gnat.com>
34569
34570         * eval_fat.ads: Add comment that Round_Even is referenced in Ada code
34571         Fix header format. Add 2001 to copyright date.
34572
34573         * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference,
34574         which caused CE during compilation if checks were enabled.
34575
34576 2001-12-17  Vincent Celier <celier@gnat.com>
34577
34578         * make.adb:
34579         (Switches_Of): New function
34580         (Test_If_Relative_Path): New procedure
34581         (Add_Switches): Use new function Switches_Of
34582         (Collect_Arguments_And_Compile): Use new function Switches_Of.
34583         When using a project file, test if there are any relative
34584         search path. Fail if there are any.
34585         (Gnatmake): Only add switches for the primary directory when not using
34586         a project file. When using a project file, change directory to the
34587         object directory of the main project file. When using a project file,
34588         test if there are any relative search path. Fail if there are any.
34589         When using a project file, fail if specified executable is relative
34590         path with directory information, and prepend executable, if not
34591         specified as an absolute path, with the exec directory.  Make sure
34592         that only one -o switch is transmitted to the linker.
34593
34594         * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir
34595
34596         * prj-nmsc.adb:
34597         (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc,
34598         when using a non standard naming scheme.
34599         (Check_Ada_Naming_Scheme): Make sure that error messages
34600         do not raise exceptions.
34601         (Is_Illegal_Append): Return True if there is no dot in the suffix.
34602         (Language_Independent_Check): Check the exec directory.
34603
34604         * prj.adb (Project_Empty): Add new component Exec_Directory
34605
34606         * prj.ads:
34607         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults.
34608         (Project_Data): Add component Exec_Directory
34609
34610         * snames.adb: Updated to match snames.ads revision 1.215
34611
34612         * snames.ads: Added Exec_Dir
34613
34614 2001-12-17  Robert Dewar <dewar@gnat.com>
34615
34616         * make.adb: Minor reformatting
34617
34618         * prj-nmsc.adb: Minor reformatting
34619
34620         * snames.adb: Updated to match snames.ads
34621
34622         * snames.ads: Alphebetize entries for project file
34623
34624 2001-12-17  Ed Schonberg <schonber@gnat.com>
34625
34626         * trans.c (process_freeze_entity): Do nothing if the entity is a
34627         subprogram that was already elaborated.
34628
34629 2001-12-17  Richard Kenner <kenner@gnat.com>
34630
34631         * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment
34632         and Esize if object is referenced via pointer.
34633
34634 2001-12-17  Ed Schonberg <schonber@gnat.com>
34635
34636         * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant
34637         is discrete before analyzing choices.
34638
34639 2001-12-17  Joel Brobecker <brobecke@gnat.com>
34640
34641         * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string
34642         containing the name of the Ada Main Program. This string is mainly
34643         intended for the debugger.
34644         (Gen_Output_File_C): Do the equivalent change when generating a C file.
34645
34646 2001-12-17  Robert Dewar <dewar@gnat.com>
34647
34648         * ali.adb: Set new Dummy_Entry field in dependency entry
34649
34650         * ali.ads: Add Dummy_Entry field to source dependency table
34651
34652         * bcheck.adb (Check_Consistency): Ignore dummy D lines
34653
34654         * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files
34655
34656         * lib-writ.ads: Document dummy D lines for missing files.
34657
34658         * types.ads: (Dummy_Time_Stamp): New value for non-existant files
34659
34660 2001-12-17  Robert Dewar <dewar@gnat.com>
34661
34662         * ali.adb: Type reference does not reset current file.
34663
34664         * ali.adb: Recognize and scan renaming reference
34665
34666         * ali.ads: Add spec for storing renaming references.
34667
34668         * lib-xref.ads: Add documentation for handling of renaming references
34669
34670         * lib-xref.adb: Implement output of renaming reference.
34671
34672         * checks.adb:
34673         (Determine_Range): Document local variables
34674         (Determine_Range): Make sure Hbound is initialized. It looks as though
34675          there could be a real problem here with an uninitialized reference
34676          to Hbound, but no actual example of failure has been found.
34677
34678 2001-12-17  Laurent Pautet <pautet@gnat.com>
34679
34680         * g-socket.ads:
34681         Fix comment of Shutdown_Socket and Close_Socket. These functions
34682         should not fail silently because if they are called twice, this
34683         probably means that there is a race condition in the user program.
34684         Anyway, this behaviour is consistent with the rest of this unit.
34685         When an error occurs, an exception is raised with the error message
34686         as exception message.
34687
34688 2001-12-17  Robert Dewar <dewar@gnat.com>
34689
34690         * frontend.adb: Move call to Check_Unused_Withs from Frontend, so
34691         that it happens before modification of Sloc values for -gnatD.
34692
34693         * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend,
34694         so that it happens before modification of Sloc values for -gnatD.
34695
34696         * switch.adb: Minor reformatting
34697
34698 2001-12-15  Richard Henderson  <rth@redhat.com>
34699
34700         * sem_ch7.adb: Wrap comment.
34701
34702 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
34703
34704         * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
34705         5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
34706         5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
34707         5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
34708         5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
34709         7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
34710         a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
34711         a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
34712         cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
34713         exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
34714         exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
34715         g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
34716         gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
34717         make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
34718         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
34719         repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
34720         s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
34721         s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
34722         s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
34723         s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
34724         sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
34725         sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
34726         sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
34727         sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
34728         spelling errors.
34729
34730 2001-12-14  Vincent Celier <celier@gnat.com>
34731
34732         * osint.adb(Create_Debug_File): When an object file is specified,
34733         put the .dg file in the same directory as the object file.
34734
34735 2001-12-14  Robert Dewar <dewar@gnat.com>
34736
34737         * osint.adb: Minor reformatting
34738
34739         * lib-xref.adb (Output_Instantiation): New procedure to generate
34740         instantiation references.
34741
34742         * lib-xref.ads: Add documentation of handling of generic references.
34743
34744         * ali.adb (Read_Instantiation_Ref): New procedure to read
34745         instantiation references
34746
34747         * ali.ads: Add spec for storing instantiation references
34748
34749         * bindusg.adb: Minor reformatting
34750
34751         * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
34752
34753         * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
34754
34755         * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
34756
34757         * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
34758
34759         * csets.ads:
34760         Fix header format
34761         Add 2001 to copyright date
34762         Add entry for Latin-5 (Cyrillic ISO-8859-5)
34763
34764 2001-12-14  Matt Gingell <gingell@gnat.com>
34765
34766         * adaint.c: mktemp is a macro on Lynx and can not be used as an
34767         expression.
34768
34769 2001-12-14  Richard Kenner <kenner@gnat.com>
34770
34771         * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR
34772         if operand is CONSTRUCTOR.
34773
34774 2001-12-14  Ed Schonberg <schonber@gnat.com>
34775
34776         * trans.c (tree_transform, case N_Assignment_Statement): Set lineno
34777         before emiting check on right-hand side, so that exception information
34778         is correct.
34779
34780 2001-12-14  Richard Kenner <kenner@gnat.com>
34781
34782         * utils.c (create_var_decl): Throw away initializing expression
34783         if just annotating types and non-constant.
34784
34785 2001-12-14  Vincent Celier <celier@gnat.com>
34786
34787         * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
34788         Default_Ada_...
34789
34790         * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
34791         Remove functions.
34792         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
34793
34794         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
34795         Remove functions.
34796         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.
34797
34798 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
34799
34800         * ChangeLog: Remove piece of diff output.
34801
34802 2001-12-14  Geert Bosch <bosch@gnat.com>
34803
34804         * config-lang.in: Update copyright notice
34805
34806         * layout.adb: Remove commented out code.
34807
34808         * mdllfile.ads: Update copyright notice. Fix header format.
34809
34810         * sem_case.ads: Likewise.
34811
34812         * sem_ch3.adb: Minor reformatting.
34813
34814 2001-12-12  Geert Bosch <bosch@gnat.com>
34815
34816         * freeze.ads: Update copyright date.
34817
34818         * g-comlin.ads: Minor reformatting.
34819
34820         * gnat-style.texi: Fix typo.
34821
34822 2001-12-12  Geert Bosch <bosch@gnat.com>
34823
34824         *  einfo.h: Regenerate.
34825
34826 2001-12-12  Ed Schonberg <schonber@gnat.com>
34827
34828         * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names
34829         on known node types, rather than untyped fields. Further cleanups.
34830
34831 2001-12-12  Robert Dewar <dewar@gnat.com>
34832
34833         * sem_ch12.adb:
34834         (Save_Entity_Descendant): Minor comment update.
34835         (Copy_Generic_Node): Deal with incorrect reference to Associated_Node
34836          of an N_Attribute_Reference node. As per note below, this does not
34837         eliminate need for Associated_Node in attribute ref nodes.
34838         (Associated_Node): Documentation explicitly mentions attribute
34839         reference nodes, since this field is used in such nodes.
34840
34841         * sem_ch12.adb (Associated_Node): Minor documentation cleanup.
34842
34843 2001-12-12  Robert Dewar <dewar@gnat.com>
34844
34845         * s-stalib.adb: Add more comments on with statements being needed
34846
34847         * par-ch12.adb: Minor reformatting
34848
34849         * prj-dect.ads: Fix copyright header
34850
34851         * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both
34852         inputs fit in 32 bits, but the result still overflows.
34853
34854         * s-fatgen.ads: Minor comment improvement
34855
34856 2001-12-12  Ed Schonberg <schonber@gnat.com>
34857
34858         * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a
34859         formal derived type, look for an inherited component from the full
34860         view of the parent, if any.
34861
34862 2001-12-12  Robert Dewar <dewar@gnat.com>
34863
34864         * checks.ads (Apply_Alignment_Check): New procedure.
34865
34866         * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to
34867         ensure that the alignment of objects with address clauses is
34868         appropriate, and raise PE if not.
34869
34870         * exp_util.ads (Must_Be_Aligned): Removed, replaced by
34871         Exp_Pakd.Known_Aligned_Enough
34872
34873         * mdllfile.ads: Minor reformatting
34874
34875         * mlib-fil.ads: Minor reformatting
34876
34877 2001-12-12  Ed Schonberg <schonber@gnat.com>
34878
34879         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous
34880         fix to any component reference if enclosing record has non-standard
34881         representation.
34882
34883 2001-12-12  Vincent Celier <celier@gnat.com>
34884
34885         * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package
34886         Iteration
34887
34888 2001-12-12  Ed Schonberg <schonber@gnat.com>
34889
34890         * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in
34891         sem_attr.
34892
34893 2001-12-12  Robert Dewar <dewar@gnat.com>
34894
34895         * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
34896
34897 2001-12-12  Emmanuel Briot <briot@gnat.com>
34898
34899         * g-regexp.adb: Remove all debug code, since it isn't required anymore,
34900         and it adds dependencies to system.io.
34901
34902 2001-12-12  Pascal Obry <obry@gnat.com>
34903
34904         * g-dirope.adb (Expand_Path.Var): Correctly detect end of
34905         variable name.
34906
34907 2001-12-11  Ed Schonberg <schonber@gnat.com>
34908
34909         * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
34910         that is the parent of other generics, the instance body replaces the
34911         instance node.  Retrieve the instance of the spec, which is the one
34912         that is visible in clients and within the body.
34913
34914 2001-12-11  Vincent Celier <celier@gnat.com>
34915
34916         * gnatmain.adb: Initial version.
34917
34918         * gnatmain.ads: Initial version.
34919
34920         * prj-attr.adb (Initialisation_Data): Add package Gnatstub.
34921
34922         * snames.adb: Updated to match snames.ads.
34923
34924         * snames.ads: Added Gnatstub.
34925
34926 2001-12-11  Vincent Celier <celier@gnat.com>
34927
34928         * prj-attr.adb (Initialization_Data): Change name from
34929         Initialisation_Data.
34930
34931 2001-12-11  Emmanuel Briot <briot@gnat.com>
34932
34933         * g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
34934         + and * applied to backslashed expressions like \r.
34935
34936 2001-12-11  Vasiliy Fofanov <fofanov@gnat.com>
34937
34938         * g-os_lib.ads: String_List type added, Argument_List type is now
34939         subtype of String_List.
34940
34941 2001-12-11  Robert Dewar <dewar@gnat.com>
34942
34943         * g-os_lib.ads: Change copyright to FSF
34944         Add comments for String_List type
34945
34946 2001-12-11  Vincent Celier <celier@gnat.com>
34947
34948         * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a
34949         string to the buffer).
34950
34951 2001-12-11  Ed Schonberg <schonber@gnat.com>
34952
34953         * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
34954         sem_attr.
34955
34956         * sem_attr.adb: Simplify previous fix for Address.
34957         (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now,
34958         to avoid anomalies where the bound of the type appears to raise
34959         constraint error.
34960
34961 2001-12-11  Robert Dewar <dewar@gnat.com>
34962
34963         * lib-xref.adb (Output_Refs): Make sure pointers are always properly
34964         handled.
34965
34966 2001-12-11  Ed Schonberg <schonber@gnat.com>
34967
34968         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a
34969         renamed unit before checking for recursive instantiations.
34970
34971 2001-12-11  Emmanuel Briot <briot@gnat.com>
34972
34973         * prj.ads: Add comments for some of the fields.
34974
34975 2001-12-11  Robert Dewar <dewar@gnat.com>
34976
34977         * lib-xref.adb (Output_Refs): Don't output type references outside
34978         the main unit if they are not otherwise referenced.
34979
34980 2001-12-11  Ed Schonberg <schonber@gnat.com>
34981
34982         * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify
34983         code and diagnose additional illegal uses
34984
34985         * sem_util.adb (Is_Object_Reference): An indexed component is an
34986         object only if the prefix is.
34987
34988 2001-12-11  Vincent Celier <celier@gnat.com>
34989
34990         * g-diopit.adb: Initial version.
34991
34992         * g-diopit.ads: Initial version.
34993
34994         * g-dirope.adb:
34995         (Expand_Path): Avoid use of Unbounded_String
34996         (Find, Wildcard_Iterator): Moved to child package Iteration
34997
34998         * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
34999
35000 2001-12-11  Robert Dewar <dewar@gnat.com>
35001
35002         * sem_attr.adb: Minor reformatting
35003
35004 2001-12-11  Ed Schonberg <schonber@gnat.com>
35005
35006         * sem_ch3.adb: Clarify some ???.
35007
35008 2001-12-11  Robert Dewar <dewar@gnat.com>
35009
35010         * exp_util.adb (Must_Be_Aligned): Removed, replaced by
35011         Exp_Pakd.Known_Aligned_Enough
35012
35013         * sem_ch13.adb (Check_Address_Alignment): Removed, extended
35014         version is moved to Exp_Ch13.
35015
35016 2001-12-11  Robert Dewar <dewar@gnat.com>
35017
35018         * einfo.ads: Minor reformatting
35019
35020         * exp_ch5.adb: Add comment for previous.change
35021
35022         * ali.adb: New interface for extended typeref stuff.
35023
35024         * ali.ads: New interface for typeref stuff.
35025
35026         * checks.adb (Apply_Alignment_Check): New procedure.
35027
35028         * debug.adb: Add -gnatdM for modified ALI output
35029
35030         * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
35031
35032         * lib-xref.adb: Extend generation of <..> notation to cover
35033         subtype/object types. Note that this is a complete rewrite,
35034         getting rid of the very nasty quadratic algorithm previously
35035         used for derived type output.
35036
35037         * lib-xref.ads: Extend description of <..> notation to cover
35038         subtype/object types. Uses {..} for these other cases.
35039         Also use (..) for pointer types.
35040
35041         * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
35042
35043         * exp_pakd.adb: Minor reformatting.  Note that prevous RH should say:
35044         (Known_Aligned_Enough): Replaces Must_Be_Aligned.
35045
35046 2001-12-11  Vincent Celier <celier@gnat.com>
35047
35048         * gnatcmd.adb:
35049         Changed /COMPILE_ONLY to /ACTIONS=COMPILE
35050         Changed /BIND_ONLY to /ACTIONS=BIND
35051         Changed /LINK_ONLY to /ACTIONS=LINK
35052
35053 2001-12-11  Ed Schonberg  <schonber@gnat.com>
35054
35055         * sem_ch8.adb (Find_Selected_Component): improved search for a
35056         candidate package in case of error.
35057
35058         * sem_ch12.adb (Inline_Instance_Body): place head of use_clause
35059         chain back on scope stack before reinstalling use clauses.
35060
35061         * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
35062         is enabled, do not kill the code for the condition, to preserve
35063         warning.
35064
35065 2001-12-11  Robert Dewar <dewar@gnat.com>
35066
35067         * checks.adb (Insert_Valid_Check): Apply validity check to expression
35068         of conversion, not to result of conversion.
35069
35070 2001-12-11  Ed Schonberg <schonber@gnat.com>
35071
35072         * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag
35073         before freezing parent. If the declarations are mutually recursive,
35074         an access to the current record type may be frozen before the
35075         derivation is complete.
35076
35077 2001-12-05  Vincent Celier <celier@gnat.com>
35078
35079         * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY,
35080         -c /COMPILE_ONLY, -l /LINK_ONLY
35081
35082         * opt.ads:
35083         (Bind_Only): New Flag
35084         (Link_Only): New flag
35085
35086         * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only)
35087         and -l (Link_Only)
35088
35089         * makeusg.adb: Add new switches -b and -l. Update Copyright notice.
35090
35091         * make.adb:
35092         (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
35093         (Gnatmake): Set the step flags. Only perform a step if the
35094         corresponding step flag is True.
35095         (Scan_Make_Arg): Reset the bind and link step flags when -u
35096         or -gnatc has been specified.
35097
35098 2001-12-05  Ed Schonberg <schonber@gnat.com>
35099
35100         * sem_eval.adb (Eval_Concatenation): If left operand is a null string,
35101         get bounds from right operand.
35102
35103         * sem_eval.adb: Minor reformatting
35104
35105         * exp_util.adb (Make_Literal_Range): use bound of literal rather
35106         than Index'First, its lower bound may be different from 1.
35107
35108         * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B
35109         and C48009J
35110
35111 2001-12-05  Vincent Celier <celier@gnat.com>
35112
35113         * prj-nmsc.adb Minor reformatting
35114
35115         * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if
35116         set and libraries are not supported.
35117
35118 2001-12-05  Ed Schonberg <schonber@gnat.com>
35119
35120         * sem_ch3.adb (Build_Derived_Private_Type): set Public status of
35121         private view explicitly, so the back-end can treat as a global
35122         when appropriate.
35123
35124 2001-12-05  Ed Schonberg <schonber@gnat.com>
35125
35126         * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
35127          unit, always replace instance node with new body, for ASIS use.
35128
35129 2001-12-05  Vincent Celier <celier@gnat.com>
35130
35131         * prj-nmsc.adb (Language_Independent_Check): Issue a warning if
35132         libraries are not supported and both attributes Library_Name and
35133         Library_Dir are specified.
35134
35135         * prj-proc.adb (Expression): Set location of Result to location of
35136         first term.
35137
35138         * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
35139         (prj-nmsc is now importing MLib.Tgt)
35140
35141         * prj-proc.adb: Put the change indicated above that was forgotten.
35142
35143 2001-12-05  Robert Dewar <dewar@gnat.com>
35144
35145         * Makefile.in: Add dependencies for System.IO for GNAT.Regexp
35146
35147 2001-12-05  Ed Schonberg <schonber@gnat.com>
35148
35149         * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
35150         constraint, introduce explicit subtype declaration and derive from it.
35151
35152         * sem_ch3.adb: Minor reformatting
35153
35154 2001-12-05  Robert Dewar <dewar@gnat.com>
35155
35156         * checks.adb (Determine_Range): Increase cache size for checks.
35157         Minor reformatting
35158
35159         * exp_ch6.adb: Minor reformatting
35160         (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
35161         a parameter whose root type is System.Address, since treating such
35162         subprograms as pure in the code generator is almost surely a mistake
35163         that will lead to unexpected results.
35164
35165         * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and
35166         change handling of conversions.
35167
35168         * g-regexp.adb: Use System.IO instead of Ada.Text_IO.
35169
35170 2001-12-05  Ed Schonberg <schonber@gnat.com>
35171
35172         * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
35173         aggregate with static wrong size, attach generated Raise node to
35174         declaration.
35175
35176 2001-12-05  Robert Dewar <dewar@gnat.com>
35177
35178         * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute.
35179         Fixes compilation abandoned bomb in B24009B.
35180
35181 2001-12-05  Ed Schonberg <schonber@gnat.com>
35182
35183         * sem_ch12.adb:
35184         Document use of Associated_Node on Selected_Components.
35185         (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
35186         to clarify use of untyped descendant fields.
35187
35188 2001-12-05  Robert Dewar <dewar@gnat.com>
35189
35190         * prj-dect.ads: Add ??? comment
35191         Add 2001 to copyright notice (was not done in after all)
35192
35193         * prj-part.adb: Minor reformatting. Reword one awkward error message.
35194
35195         * prj.ads: Minor reformatting throughout, and add some ??? comments
35196
35197         * snames.ads: Minor reformatting
35198
35199 2001-12-05  Geert Bosch <bosch@gnat.com>
35200
35201         * snames.adb: Autoupdate
35202
35203 2001-12-05  Vincent Celier <celier@gnat.com>
35204
35205         * prj-dect.adb (Parse): Rename parameter Modifying to Extends.
35206
35207         * prj-dect.ads (Parse): Rename parameter Modifying to Extends.
35208
35209         * prj-env.adb: Minor comment changes (modifying -> extends).
35210
35211         * prj-nmsc.adb: Minor comment changes (modifying -> extends).
35212
35213         * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to
35214         Tok_Extends.
35215
35216         * prj.adb (Initialize): Change Modifying to Extends.
35217
35218         * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
35219
35220         * prj.ads: Minor comment change (Modifying -> extending).
35221
35222         * snames.ads: Change modifying to extends.
35223
35224 2001-12-05  Robert Dewar <dewar@gnat.com>
35225
35226         * sem_warn.adb: Remove stuff for conditionals, we are not going to
35227         do this after all.
35228
35229         * sem_warn.ads: Remove stuff for conditionals, we are not going to
35230         do this after all.  Add 2001 to copyright notice
35231
35232 2001-12-04  Geert Bosch <bosch@gnat.com>
35233
35234         *  einfo.h, sinfo.h, treeprs.ads: Regenerate.
35235
35236 2001-12-04  Robert Dewar <dewar@gnat.com>
35237
35238         * errout.adb (Error_Msg): Ignore attempt to put error msg at junk
35239         location if we already have errors. Stops some cases of cascaded
35240         errors.
35241
35242         * errout.adb: Improve comment.
35243
35244 2001-12-04  Robert Dewar <dewar@gnat.com>
35245
35246         * sem_ch12.adb:
35247         (Analyze_Formal_Type_Definition): Defend against Error.
35248         (Analyze_Formal_Subprogram): Defend against Error.
35249
35250         * par-ch12.adb (F_Formal_Type_Declaration): In case of error,
35251         remove following semicolon if present. Removes cascaded error.
35252
35253 2001-12-04  Douglas B. Rupp <rupp@gnat.com>
35254
35255         * bindgen.adb:
35256         (Gen_Exception_Table_Ada): Write "begin" and then return if Num
35257          exceptions equals 0.
35258         (Gen_Exception_Table_C): Return if Num exceptions equals 0.
35259         Fixes PIWG E tests (which have to be run with -gnatL).
35260
35261 2001-12-04  Robert Dewar <dewar@gnat.com>
35262
35263         * einfo.ads: Minor reformatting
35264
35265 2001-12-04  Ed Schonberg <schonber@gnat.com>
35266
35267         * einfo.ads: Block_Node points to the identifier of the block, not to
35268         the block node itself, to preserve the link when the block is
35269         rewritten, e.g. within an if-statement with a static condition.
35270
35271         * inline.adb (Cleanup_Scopes): recover block statement from block
35272         entity using new meaning of Block_Node.
35273
35274         * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to
35275         identifier of block node, rather than to node itself.
35276
35277 2001-12-04  Gary Dismukes <dismukes@gnat.com>
35278
35279         * layout.adb:
35280         (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
35281         (Discrimify): Go back to setting the Etypes of the selected component
35282         because the Vname component does not exist at this point and will
35283         fail name resolution. Also set Analyzed.
35284         Remove with and use of Sem_Res.
35285
35286 2001-12-04  Arnaud Charlet <charlet@gnat.com>
35287
35288         * Makefile.in: (HIE_SOURCES): add s-fat*.
35289
35290 2001-12-04  Robert Dewar <dewar@gnat.com>
35291
35292         * sem_attr.adb:
35293         (Compile_Time_Known_Attribute): New procedure.
35294         (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
35295          proper range check.
35296
35297 2001-12-04  Ed Schonberg <schonber@gnat.com>
35298
35299         * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before
35300         processing discriminants to diagnose illegal default values.
35301
35302 2001-12-04  Ed Schonberg <schonber@gnat.com>
35303
35304         * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide
35305         access discriminant within a type extension that constrains its
35306         parent discriminants.
35307
35308 2001-12-04  Ed Schonberg <schonber@gnat.com>
35309
35310         * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication
35311         is malformed, use instance of Any_Id to allow analysis to proceed.
35312
35313         * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if
35314         type definition is illegal.
35315         (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
35316         misplaced.
35317
35318 2001-12-04  Ed Schonberg <schonber@gnat.com>
35319
35320         * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to
35321         constants.
35322
35323 2001-12-04  Robert Dewar <dewar@gnat.com>
35324
35325         * errout.adb: Minor reformatting
35326
35327 2001-12-04  Robert Dewar <dewar@gnat.com>
35328
35329         * exp_util.adb: Minor reformatting from last change
35330
35331         * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
35332         which is a rewriting of an expression, traverse the original
35333         expression to remove warnings that may have been posted on it.
35334
35335 2001-12-04  Ed Schonberg <schonber@gnat.com>
35336
35337         * exp_util.adb (Must_Be_Aligned): Return false for a component of a
35338         record that has other packed components.
35339
35340 2001-12-04  Douglass B. Rupp <rupp@gnat.com>
35341
35342         * adaint.c: Minor cleanups.
35343
35344 2001-12-04  Douglass B. Rupp <rupp@gnat.com>
35345
35346         * adaint.c: Do not use utime.h on vxworks.
35347
35348 2001-12-04  Arnaud Charlet <charlet@gnat.com>
35349
35350         * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes
35351         more confusion than it solves.
35352
35353 2001-12-04  Geert bosch <bosch@gnat.com>
35354
35355         * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.
35356
35357 2001-12-04  Geert Bosch  <bosch@gnat.com>
35358
35359         * Makefile.in (update-sources): New target.
35360         For use by gcc_release script.
35361
35362 2001-12-04  Ed Schonberg <schonber@gnat.com>
35363
35364         * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as
35365         a configuration pragma, it is now legal wherever a pragma can appear.
35366
35367 2001-12-04  Zack Weinberg  <zack@codesourcery.com>
35368
35369         * Makefile.in: Don't set ALL.  Delete @cross_defines@,
35370         @cross_overrides@, @build_overrides@ stanzas.  INTERNAL_CFLAGS
35371         is now @CROSS@ -DIN_GCC; update comment.
35372
35373 2001-12-04  Robert Dewar <dewar@gnat.com>
35374
35375         * einfo.adb (Has_Pragma_Pure_Function): New flag.
35376         Fix problem that stopped ceinfo from working
35377
35378         * einfo.ads (Has_Pragma_Pure_Function): New flag.
35379
35380         * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.
35381
35382 2001-12-04  Douglas B. Rupp <rupp@gnat.com>
35383
35384         * gnatchop.adb:
35385         (File_Time_Stamp): New procedure.
35386         (Preserve_Mode): New boolean.
35387         (Write_Unit): Pass time stamp.
35388         Implement -p switch (preserve time stamps).
35389
35390         * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
35391
35392         * gnatchop.adb: Do usage info for -p switch
35393
35394         * adaint.h (__gnat_set_file_time_name): New function
35395
35396         * adaint.c (__gnat_set_file_time_name): Implement
35397
35398         * adaint.h: Fix typo
35399
35400 2001-12-03  Robert Dewar <dewar@gnat.com>
35401
35402         * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
35403         have Associated_Node.
35404
35405 2001-12-03  Robert Dewar <dewar@gnat.com>
35406
35407         * prj-proc.adb: Minor reformatting
35408
35409         * make.adb: Minor reformatting
35410
35411 2001-12-03  Geert Bosch <bosch@gnat.com>
35412
35413         * make.adb: Minor reformatting.
35414
35415 2001-12-03 Robert Dewar  <dewar@gnat.com>
35416
35417         * sem_ch12.adb: Minor reformatting
35418
35419 2001-12-03  Ed Schonberg <schonber@gnat.com>
35420
35421         * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
35422         push Standard on the stack before analyzing the instance body,
35423         in order to have a clean visibility environment.
35424
35425         * sem_ch12.adb (Inline_Instance_Body): Remove redundant code.
35426
35427 2001-12-03  Ed Schonberg <schonber@gnat.com>
35428
35429         * sem_ch12.adb (Instantiate_Package_Body): Protect against double
35430         instantiation of a body that contains an inlined body.
35431
35432 2001-12-03  Ed Schonberg <schonber@gnat.com>
35433
35434         * sem_ch12.adb:
35435         (Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
35436         to prevent freezing within formal packages.
35437         (Freeze_Subprogram_Body): If body comes from another instance that
35438         appeared before its own body, place freeze node at end of current
35439         declarative part, to prevent a back-end crash.
35440         (Inline_Instance_Body): Handle properly a package instance within
35441         a subprogram instance that is a child unit.
35442
35443 2001-12-01  Graham Stott  <grahams@redhat.com>
35444
35445         * Makefile.in (misc.o): Add missing $(srcdir) prefix
35446         and add optabs.h dependency.
35447
35448         * misc.c: Include optabs.h
35449         (gnat_tree_code_type): Make static and const.
35450         (gnat_tree_code_length): Likewise.
35451         (gnat_tree_code_name): Likewise.
35452         (update_setjmp_buf): Obtain operands mode from insn_data.
35453
35454 2001-11-29  Richard Henderson  <rth@redhat.com>
35455
35456         * init.c: Remove obsolete dwarf2 frame.h section.
35457
35458 2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
35459
35460         * Make-lang.in (ada.generated-manpages): New dummy target.
35461
35462 2001-11-29  Ed Schonberg <schonber@gnat.com>
35463
35464         * g-os_lib.adb (Add_To_Command): use explicit loop to move string
35465         into Command, an array conversion is illegal here. Uncovered by
35466         ACATS B460005.
35467
35468 2001-11-28  Geert Bosch <bosch@gnat.com>
35469
35470         * init.c: Minor whitespace changes.
35471
35472 2001-11-28  Doug Rupp <rupp@gnat.com>
35473
35474         * init.c: (__gnat_install_handler,VMS): Increase size of alternate
35475         signal stack.
35476
35477 2001-11-28  Zack Weinberg  <zack@codesourcery.com>
35478
35479         * misc.c (gnat_expand_constant): Move declaration above
35480         definition of lang_hooks.
35481         (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
35482         (gnat_init): lang_expand_constant no longer exists.
35483
35484         (internal_error_function): Remove #ifdef HAVE_VPRINTF.  We
35485         always have vprintf.
35486         (gnat_init): Always call set_internal_error_function.
35487
35488 2001-11-27  Andreas Jaeger  <aj@suse.de>
35489
35490         * Makefile.in (stamp-tool_src_dir): Use symbolic link.
35491
35492 2001-11-27  Laurent Guerby  <guerby@acm.org>
35493
35494         * Makefile.in: Regenerate Ada dependencies.
35495
35496 2001-11-26  Richard Henderson  <rth@redhat.com>
35497
35498         * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
35499         gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
35500         gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.
35501
35502 2001-11-25  Laurent Guerby  <guerby@acm.org>
35503
35504         * sysdep.c (rts_get_*): Fix style.
35505
35506 2001-11-19  Laurent Guerby  <guerby@acm.org>
35507
35508         * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
35509         since it is of no apparent use and cause warnings.
35510
35511 2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
35512
35513         * misc.c (gnat_decode_option, gnat_init_options): Make definitions
35514         static too.
35515         (gnat_init): Don't return NULL.
35516         (finish_parse): Remove.
35517
35518 2001-11-17  Laurent Guerby  <guerby@acm.org>
35519
35520         * Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
35521         * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
35522         * io-aux.c: Provide K&R prototypes to all functions, reformat code.
35523         * lang-spec.h: Add missing struct field to silence warnings.
35524         * sysdep.c (rts_get_*): Provide K&R prototype.
35525         * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
35526         * traceback.c (Unlock_Task, Lock_Task): Likewise.
35527         * tracebak.c (__gnat_backtrace): Remove unused variable.
35528         * utils.c (end_subprog_body): Move to K&R style.
35529
35530 Thu Nov 15 18:16:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35531
35532         * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.
35533
35534 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
35535
35536         * misc.c (gnat_init): Change prototype.  Include the
35537         functionality of the old init_parse and init_decl_processing.
35538         (gnat_init_decl_processing): New prototype.
35539         (init_parse): Remove.
35540         * utils.c (init_decl_processing): Rename gnat_init_decl_processing.
35541
35542 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
35543
35544         * misc.c (gnat_print_decl, gnat_print_type): Renamed.
35545         (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
35546         (print_lang_statistics, lang_print_xnode, print_lang_identifier,
35547         set_yydebug): Remove.
35548
35549 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
35550
35551         * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
35552         (struct lang_hooks): Constify.
35553         (language_string, lang_identify): Remove.
35554         * utils.c (init_decl_processing): Update.
35555
35556 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
35557
35558         * misc.c: Include langhooks-def.h.
35559         * Makefile.in: Update.
35560
35561 2001-10-30  Robert Dewar <dewar@gnat.com>
35562
35563         * style.adb:
35564         (Check_Identifier): Rewrite circuit to be compatible with use of letters
35565         in the upper half of ASCII.
35566         (Check_Identifier): Minor reformatting
35567
35568 2001-10-30  Geert Bosch <bosch@gnat.com>
35569
35570         * (Associated_Node, Set_Associated_Node): Do not check for
35571         Freeze_Entity.
35572
35573 2001-10-30  Robert Dewar <dewar@gnat.com>
35574
35575         * a-reatim.ads: Minor reformatting
35576
35577 2001-10-30  Robert Dewar <dewar@gnat.com>
35578
35579         * gnatdll.adb: Minor reformatting throughout. Many ??? added for
35580         undocumented declarations.
35581
35582 2001-10-30  Pascal Obry <obry@gnat.com>
35583
35584         * gnatdll.adb (Parse_Command_Line): handle -g option to be passed
35585         to the binder and linker.
35586         Minor style fix.
35587
35588         * mdll.ads: Fix layout.  Update copyright notice.
35589
35590         * mdll.adb: Fix layout.  Update copyright notice.
35591
35592 2001-10-30  Robert Dewar <dewar@gnat.com>
35593
35594         * usage.adb: Minor fix to output for -gnaty.
35595
35596 2001-10-30  Ed Schonberg <schonber@gnat.com>
35597
35598         * a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
35599         to accommodate all its possible values.
35600
35601         * a-reatim.adb (Split): Special-case handling of Time_Span_First
35602         and of small absolute values of T.
35603
35604 2001-10-30  Richard Kenner <kenner@gnat.com>
35605
35606         * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
35607         set_mem_attributes since not needed and wrong if RESULT if a REG;
35608         fixes ACATS failures.
35609
35610 2001-10-30  Geert Bosch <bosch@gnat.com>
35611
35612         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
35613         s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.
35614
35615 2001-10-30  Robert Dewar <dewar@gnat.com>
35616
35617         * bindusg.adb: Undocument -f switch.
35618
35619         * gnatcmd.adb: Remove /FULL_ELABORATION.
35620
35621         * opt.ads (Force_RM_Elaboration_Order): Document that this is
35622         obsolescent.
35623
35624         * gnatbind.adb: Output new warning for use of obsolescent -f switch.
35625
35626         * gnatbind.adb: Minor update of warning msg.
35627
35628 2001-10-30  Vincent Celier <celier@gnat.com>
35629
35630         * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
35631         for project file switches (-P (/PROJECT_FILE=),
35632          -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
35633         or MEDIUM or HIGH)
35634
35635 2001-10-30  Geert Bosch <bosch@gnat.com>
35636
35637         * decl.c: Minor whitespace fixes.
35638
35639 2001-10-30  Richard Kenner <kenner@gnat.com>
35640
35641         * utils2.c (build_allocator): Test for SIZE overflow in array case too
35642
35643 2001-10-30  Geert Bosch <bosch@gnat.com>
35644
35645         * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
35646         Found due to GCC 3.0 warning of using uninitialized value.
35647
35648         * layout.adb:
35649         (Get_Max_Size): Use variant record for tracking value/expression.
35650          Makes logic clearer and prevents warnings for uninitialized variables.
35651         (Layout_Array_Type): Use variant record for tracking value/expression.
35652          Makes logic clearer and prevents warnings for uninitialized variables.
35653
35654 2001-10-30  Robert Dewar <dewar@gnat.com>
35655
35656         * lib.adb: Minor reformatting
35657
35658         * s-taprop.ads: Minor reformatting
35659
35660 2001-10-29  Laurent Guerby  <guerby@acm.org>
35661
35662         * init.c:
35663         (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
35664         const.
35665         (_gnat_error_handler): Make MSG const.
35666
35667 2001-10-29  Richard Kenner <kenner@gnat.com>
35668
35669         * sysdep.c: Fix localtime_r problem on LynxOS.
35670         Also remove #elif to avoid warnings.
35671
35672         * misc.c (yyparse): Don't set up and register jmpbuf; remove decls
35673         used by this.
35674
35675         * decl.c (annotate_value): Make SIZE unsigned to avoid warning.
35676
35677 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
35678
35679         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
35680         exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
35681         g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
35682         g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
35683         layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
35684         s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
35685         sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
35686         sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
35687         sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
35688         types.ads, urealp.adb: Fix spelling errors.
35689
35690 2001-10-27  Laurent Guerby <guerby@acm.org>
35691
35692         * trans.c (gigi): Fix non determinism leading to bootstrap
35693         comparison failures for debugging information.
35694
35695 2001-10-26  Florian Weimer  <fw@deneb.enyo.de>
35696
35697         * gnat_rm.texi: Use @./@: where appropriate.
35698
35699 2001-10-26  Robert Dewar <dewar@gnat.com>
35700
35701         * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.
35702
35703 2001-10-26  Richard Kenner <kenner@gnat.com>
35704
35705         * gmem.c (__gnat_gmem_read_next): Properly check for EOF
35706
35707 2001-10-26  Richard Kenner <kenner@gnat.com>
35708
35709         * decl.c (validate_size): Modify message for bad size to avoid
35710         implication that compiler is modifying the size.
35711
35712 2001-10-26  Robert Dewar <dewar@gnat.com>
35713
35714         * prj-util.adb: Minor reformatting. Fix bad header format.
35715
35716 2001-10-26  Robert Dewar <dewar@gnat.com>
35717
35718         * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.
35719
35720         * sinfo.ads: Clarify use of Associated_Node (documentation only).
35721
35722         * sem_ch12.adb: Change Node4 to Associated_Node. Change
35723         Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
35724         much more narrowly in places where needed. These are cleanups.
35725
35726 2001-10-26  Joel Brobecker <brobecke@gnat.com>
35727
35728         * 5zosinte.ads (null_pthread): new constant.
35729
35730         * 5ztaprop.adb:
35731         (Initialize_TCB): Initialize thread ID to null, to be able to verify
35732          later that this field has been set.
35733         (Finalize_TCB): ditto.
35734         (Suspend_Task): Verify that the thread ID is not null before using it.
35735         (Resume_Task): ditto.
35736
35737         * s-tasdeb.adb:
35738         (Resume_All_Tasks): Lock the tasks list before using it.
35739         (Suspend_All_Tasks): ditto.
35740
35741 2001-10-26  Richard Kenner <kenner@gnat.com>
35742
35743         * decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
35744         Make constant variant of designated type for Is_Access_Constant.
35745         Call update_pointer_to with main variant.
35746
35747         * trans.c (process_freeze_entity, process_type):
35748         Call update_pointer_to on main variant.
35749
35750         * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
35751         If main variant, update all other variants.
35752
35753         * utils2.c (build_unary_op, case INDIRECT_REF): No longer set
35754         TREE_STATIC.
35755
35756 2001-10-26  Robert Dewar <dewar@gnat.com>
35757
35758         * prj-util.adb: Minor reformatting
35759
35760 2001-10-26  Robert Dewar <dewar@gnat.com>
35761
35762         * prj-util.adb: Minor reformatting
35763
35764 2001-10-26  Robert Dewar <dewar@gnat.com>
35765
35766         * prj-attr.adb: Minor reformatting throughout
35767
35768 2001-10-26  Robert Dewar <dewar@gnat.com>
35769
35770         * prj-attr.ads: Minor reformatting
35771         Add ??? comment (this whole spec has almost no comments)
35772
35773 2001-10-26  Vincent Celier <celier@gnat.com>
35774
35775         * g-os_lib.adb (Normalize_Pathname): Preserve the double slash
35776         ("//") that precede the drive letter on Interix.
35777
35778 2001-10-26  Geert Bosch <bosch@gnat.com>
35779
35780         * gnat_rm.texi: Add GNAT Reference Manual.
35781
35782 2001-10-25  Robert Dewar <dewar@gnat.com>
35783
35784         * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
35785         is Error. Similar change for other renaming cases.
35786
35787 2001-10-25  Robert Dewar <dewar@gnat.com>
35788
35789         * s-atacco.ads: Add pragma Inline_Always for functions.
35790         Fix header format. Add copyright 2001
35791
35792 2001-10-25  Ed Schonberg <schonber@gnat.com>
35793
35794         * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
35795         return Error rather than Empty so that analysis can proceed.
35796
35797 2001-10-25  Ed Schonberg <schonber@gnat.com>
35798
35799         * sem_util.adb (Enter_Name): better handling of cascaded error
35800         messages when a unit appears in its own context.
35801
35802 2001-10-25  Ed Schonberg <schonber@gnat.com>
35803
35804         * sem_util.adb (Defining_Entity): in case of error, attach created
35805         entity to specification, so that semantic analysis can proceed.
35806
35807 2001-10-25  Robert Dewar <dewar@gnat.com>
35808
35809         * sem_util.adb
35810         (Defining_Entity): Deal with Error.
35811         (Process_End_Label): Deal with bad end label for.
35812
35813 2001-10-25  Ed Schonberg <schonber@gnat.com>
35814
35815         * sem_elab.adb (Check_A_Call): refine message when call is in an
35816         instance but callee is not declared in the generic unit.
35817
35818 2001-10-25  Ed Schonberg <schonber@gnat.com>
35819
35820         * sem_elab.adb (Check_A_Call): check for renaming before finding the
35821         enclosing unit, which may already be different from the calling unit.
35822
35823 2001-10-25  Geert Bosch <bosch@gnat.com>
35824
35825         * 4gintnam.ads: fix header format.
35826
35827 2001-10-25  Ed Schonberg <schonber@gnat.com>
35828
35829         * sem_res.adb (Resolve_Call): if the call is actually an indexing
35830         operation on the result of a parameterless call, perform elaboration
35831         check after the node has been properly rewritten.
35832
35833         * sem_ch12.adb (Copy_Generic_Node): after the proper body has been
35834         inlined within the generic tree, the defining identifier is not a
35835         compilation_unit.
35836
35837 2001-10-25  Ed Schonberg <schonber@gnat.com>
35838
35839         * sem_res.adb (Resolve): special-case resolution of Null in an
35840          instance or an inlined body to avoid view conflicts.
35841
35842         * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
35843          compatibility by retrieving the access type of the generic copy.
35844
35845 2001-10-25  Robert Dewar <dewar@gnat.com>
35846
35847         * sem_ch3.adb:
35848         (Analyze_Number_Declaration): Handle error expression.
35849         (Signed_Integer_Type_Declaration): Handle error bound.
35850         (Analyze_Subtype_Indication): Handle error range.
35851
35852         * sem_util.adb (Get_Index_Bounds): Check for Error.
35853
35854 2001-10-25  Robert Dewar <dewar@gnat.com>
35855
35856         * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
35857         in no run time mode.
35858
35859 2001-10-25  Pascal Obry <obry@gnat.com>
35860
35861         * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
35862         mode case for ALLOC case.
35863
35864         * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
35865         all platforms. Improvement of last change.
35866
35867 2001-10-25  Robert Dewar <dewar@gnat.com>
35868
35869         * exp_ch4.adb (Expand_N_Allocator): Minor reformatting.
35870
35871 2001-10-25  Geert Bosch  <bosch@gnat.com>
35872
35873         * osint.adb (Is_Relative): Remove duplicate.
35874
35875 2001-10-25  Pascal Obry <obry@gnat.com>
35876
35877         * osint.adb (Read_Default_Search_Dirs): correctly detect relative
35878         pathnames in UNIX and DOS style with drive letter.
35879         (Is_Relative): new routine.
35880
35881         * osint.adb: Minor reformatting
35882
35883         * osint.adb (Is_Relative): implementation using
35884         GNAT.OS_Lib.Is_Absolute_Path. Better fix.
35885
35886 2001-10-25  Pascal Obry <obry@gnat.com>
35887
35888         * g-dirope.adb (Basename): correctly compute offset between the
35889         original Path and the translated one.
35890
35891         * g-dirope.adb: (Base_Name): add some comments.
35892
35893 2001-10-25  Robert Dewar <dewar@gnat.com>
35894
35895         * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
35896         in HIE mode, avoids compilation abandoned message
35897
35898         * exp_imgv.adb: Correct typo in previous change
35899
35900         * exp_imgv.adb: Correct typo in previous change (not my day!)
35901
35902 2001-10-25  Robert Dewar <dewar@gnat.com>
35903
35904         * s-tpinop.ads: Add 2001 to copyright notice. Fix header format.
35905
35906 2001-10-25  Pascal Obry <obry@gnat.com>
35907
35908         * g-awk.ads: Move all pragma inlines next to the routine
35909          declarations. This is more uniform with other GNAT spec.
35910
35911 2001-10-22  Geert Bosch  <bosch@gnat.com>
35912
35913         * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.
35914
35915 2001-10-19  Geert Bosch  <bosch@gnat.com>
35916
35917         * Makefile.in (tools, gnattools): Remove gnatmem.
35918
35919 2001-10-17  Richard Henderson  <rth@redhat.com>
35920
35921         * Makefile.in (misc.o): Depend on langhooks.h.
35922         * misc.c: Include it.
35923         (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
35924         (LANG_HOOKS_DECODE_OPTION): New.
35925         (lang_hooks): Use LANG_HOOKS_INITIALIZER.
35926
35927 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
35928
35929         * trans.c (tree_transform): Adjust to recent change in
35930         expand_asm_operands to implement named asm operands.
35931
35932 2001-10-11  Ed Schonberg  <schonber@gnat.com>
35933
35934         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
35935         renaming of discriminant for mutable record type.
35936
35937 2001-10-11  Robert Dewar  <dewar@gnat.com>
35938
35939         * validsw.adb: Properly save -gnatVn status.
35940
35941 2001-10-11  Robert Dewar <dewar@gnat.com>
35942
35943         * usage.adb: Add lines for V switch.
35944
35945         * gnatcmd.adb (COMPILE): Revise translations for -gnatV
35946         (/VALIDITY_CHECKING).
35947
35948 2001-10-11  Ed Schonberg <schonber@gnat.com>
35949
35950         * sem_type.adb (Add_One_Interp): an operator for a type declared in
35951         an extension of System is known to be visible.
35952
35953 2001-10-11  Ed Schonberg <schonber@gnat.com>
35954
35955         * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
35956         properly. Fixes regression on ACATS C34005G.
35957
35958 2001-10-11  Robert Dewar <dewar@gnat.com>
35959
35960         * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
35961         loop in generic instance, since this is likely not very useful.
35962
35963 2001-10-11  Robert Dewar <dewar@gnat.com>
35964
35965         * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
35966         the error message for high integrity mode.
35967
35968         * rtsfind.adb (RTE): Give message if we try to find an entity that
35969         is not available in high integrity mode.
35970
35971         * rtsfind.ads:
35972         (OK_To_Use_In_HIE_Mode): New array.
35973         (RTE): May return Empty in high integrity mode.
35974
35975         * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
35976         OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
35977
35978         * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
35979         unit if not inlined always and in no runtime mode. Fixes problem
35980         caused by new Rtsfind changes.
35981
35982         * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
35983         body is deleted.
35984
35985         * rtsfind.adb (RTE): Make sure we do not try to load unit after
35986         giving message for entity not available in high integrity mode.
35987
35988 2001-10-11  Pascal Obry <obry@gnat.com>
35989
35990         * impunit.adb: Add GNAT.CRC32.
35991
35992 2001-10-11  Ed Schonberg <schonber@gnat.com>
35993
35994         * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
35995         properly the case where one universal operand in a non-static
35996         exponentiation of a real literal.
35997
35998 2001-10-11  Ed Schonberg <schonber@gnat.com>
35999
36000         * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
36001         clause, return the gobal finalization list, for lack of anthing else.
36002
36003 2001-10-11  Ed Schonberg <schonber@gnat.com>
36004
36005         * exp_ch7.adb (Make_Transient_Block): if statement is within
36006         exception handler, always use new transient scope to place Clean
36007         procedure.
36008
36009 2001-10-11  Pascal Obry <obry@gnat.com>
36010
36011         * Makefile.in:
36012         (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
36013         (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
36014         (GNATLS_RTL_OBJS): add g-crc32.o
36015         (GNATMAKE_RTL_OBJS): add g-crc32.o
36016
36017         * ali-util.adb:
36018         (CRC_Match): new function.
36019         (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
36020         instead of the previous simple checksum algorithm.
36021         (Time_Stamp_Mismatch): use CRC_Match for comparison.
36022         (Set_Source_Table): idem.
36023
36024         * ali-util.ads:
36025         (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
36026         instead of simple checksum.
36027         (CRC_Match): new function.
36028         (CRC_Error): new constant.
36029
36030         * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
36031         a CRC now and not a simple checksum. A CRC uses lower-case hex
36032         letters, fixes ambiguity in parsing.
36033
36034         * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
36035         is what this variable will store.
36036
36037         * bcheck.adb: Change reference to chechsum in comments by CRC.
36038         (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
36039         rename All_Checksum_Match to All_CRC_Match. Change due to API
36040         renaming since now GNAT does not use a simple checksum but a
36041         CRC using GNAT.CRC32.
36042
36043         * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
36044         now and not anymore a simple checksum.
36045
36046         * lib-load.adb: Use Source_CRC instead of Source_Checksum in many
36047         places.
36048
36049         * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.
36050
36051         * scans.adb:
36052         (Restore_Scan_State): rename Checksum to CRC.
36053         (Save_Scan_State): idem.
36054
36055         * scans.ads:
36056         With GNAT.CRC32.
36057         (Checksum): rename to CRC.
36058         (Saved_Scan_State): Save_Checksum field renamed to Save_CRC
36059
36060         * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
36061         GNAT.CRC32).  Update copyright notice.
36062
36063         * scn-slit.adb: Rename many Accumulate_Checksum to Update (from
36064         GNAT.CRC32).  Update copyright notice.
36065
36066         * scn.adb:
36067         (Accumulate_Checksum): removed.
36068         (Update): new procedure. Add a wide-character into the CRC.
36069
36070         * sinput-l.adb:
36071         (Complete_Source_File_Entry): use CRC32 instead of simple checksum.
36072         (Load_File): fix initialization of S (change Source_Checksum to
36073         Source_CRC)
36074
36075         * sinput-p.adb (Load_Project_File): rename Source_Checksum to
36076         Source_CRC in S initialization.
36077
36078         * sinput.adb (Source_Checksum): renamed to Source_CRC.
36079
36080         * sinput.ads (Source_Checksum): renamed to Source_CRC.
36081         Update comments for the CRC.
36082
36083         * types.adb (Hex): Use lowercase for the letter part.
36084
36085         * types.ads (Get_Hex_String): Returns the hexadecimal representation
36086         for a word. This is currently used only for CRC. In previous version,
36087         the checksum was using a representation with all letter being
36088         upper-case. With the new implementation (using CRC) we do not remove
36089         the 32th bit of the CRC, so we can have an upper-case starting letter
36090         in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
36091         It is ambigous since the CRC was optional and could be followed by
36092         options like EB, EE. So now this routines uses lower-case letter for
36093         the hexadecimal representation. Strange enough only lower case letters
36094         where checked in Scan_ALI (even if this was not a possible case).
36095
36096         * gnatvsn.ads (Library_Version): changed to 3.15a.
36097
36098         * s-crc32.ads: Initial version from GNAT.CRC32. This is the version
36099         for the compiler.
36100
36101         * s-crc32.adb: Initial version from GNAT.CRC32. This is the version
36102         for the compiler.
36103
36104         * ali-util.adb: Redo previous change to avoid using word CRC everywhere
36105         Add 2001 to copyright notice
36106         (Accumulate_Checksum): Modify to use System.CRC32.
36107
36108         * ali-util.ads: Redo changes of previous revision to continue to use
36109         the word Checksum. Add 2001 to copyright notice.
36110
36111         * ali.adb: Undo some of previous changes, not needed.
36112         Keep the change for lower case letters in the checksum.
36113
36114         * ali.ads: Undo previous change not needed.
36115
36116         * bcheck.adb: Undo most of previous change, not needed.
36117         But do use Checksums_Match for checksum comparison.
36118
36119         * gnatls.adb: Undo most of previous change, not needed.
36120         But do use Checksums_Match for comparing checksums.
36121
36122         * lib-load.adb: Undo previous change, not needed.
36123
36124         * lib-writ.adb: Undo previous change, not needed.
36125
36126         * lib-writ.ads: Document that checksums use lower case,
36127         not upper case letters.
36128
36129         * scans.adb: Undo previous change, not needed
36130
36131         * scans.ads: Undo previous change, not needed.
36132
36133         * scn-nlit.adb: Undo previous changes, not needed.
36134
36135         * scn-slit.adb: Undo previous change, not needed.  Fix header format.
36136
36137         * scn.adb:
36138         (Accumulate_Checksum): Use System.CRC32.
36139         (Initialize_Checksum): New procedure.
36140         Remove other changes of previous revision.
36141
36142         * sinput-p.adb: Undo previous change, not needed.
36143
36144         * sinput.adb: Undo previous change, not needed.
36145
36146         * sinput-l.adb: Undo previous change, not needed.
36147
36148         * sinput.ads: Undo previous change, not needed.  Keep only comment
36149         on new checksum algorithm
36150
36151         * Makefile.in: Add s-crc32 as needed, remove g-crc32.
36152         Also remove a-tags and a-stream from GNAT sources.
36153
36154         * ali.adb (Scan_ALI): fix typo introduce in latest check-in.
36155
36156         * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.
36157
36158 2001-10-11  Geert Bosch  <bosch@gnat.com>
36159
36160         * einfo.h: Regenerate.
36161
36162         * nmake.ads: Regenerate.
36163
36164         * nmake.adb: Regenerate.
36165
36166         * sinfo.h: Regenerate.
36167
36168         * treeprs.adb: Regenerate.
36169
36170 2001-10-10  Geert Bosch  <bosch@gnat.com>
36171
36172         * gnat-style.texi: New file describing coding guidelines for Ada.
36173
36174 2001-10-10  Ed Schonberg <schonber@gnat.com>
36175
36176         * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
36177         is Flag174.
36178
36179 2001-10-10  Geert Bosch  <bosch@gnat.com>
36180
36181         * snames.ads: Add new names for project facility.
36182
36183         * snames.adb: Update to reflect snames.ads changes.
36184
36185         * snames.h: Update to reflect snames.ads changes.
36186
36187 2001-10-10  Vincent Celier <celier@gnat.com>
36188
36189         * make.adb:
36190         (Add_Switches): reflect the changes for the switches attributes
36191         Default_Switches indexed by the programming language,
36192         Switches indexed by the file name.
36193         (Collect_Arguments_And_Compile): Idem.
36194         Reflect the attribute name changes.
36195
36196         * prj-attr.adb:
36197         (Initialisation_Data): Change the names of some packages and
36198         attributes.
36199         (Initialize): process case insensitive associative arrays.
36200
36201         * prj-attr.ads:
36202         (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.
36203
36204         * prj-dect.adb:
36205         (Parse_Attribute_Declaration): For case insensitive associative
36206          arrays, set the index string to lower case.
36207
36208         * prj-env.adb:
36209         Reflect the changes of the project attributes.
36210
36211         * prj-nmsc.adb:
36212         Replace Check_Naming_Scheme by Ada_Check and
36213         Language_Independent_Check.
36214
36215         * prj-nmsc.ads:
36216         Replaced Check_Naming_Scheme by 2 procedures:
36217         Ada_Check and Language_Independent_Check.
36218
36219         * prj-proc.adb:
36220         (Process_Declarative_Items): For case-insensitive associative
36221         arrays, set the index string to lower case.
36222         (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
36223         Prj.Nmsc.Check_Naming_Scheme.
36224
36225         * prj-tree.adb:
36226         (Case_Insensitive): New function
36227         (Set_Case_Insensitive): New procedure
36228
36229         * prj-tree.ads:
36230         (Case_Insensitive): New function
36231         (Set_Case_Insensitive): New procedure
36232         (Project_Node_Record): New flag Case_Insensitive.
36233
36234         * prj-util.adb:
36235         (Value_Of): new function to get the string value of a single
36236         string variable or attribute.
36237
36238         * prj-util.ads:
36239         (Value_Of): new function to get the string value of a single
36240         string variable or attribute.
36241
36242         * prj.adb:
36243         (Ada_Default_Spec_Suffix): New function
36244         (Ada_Default_Impl_Suffix): New function
36245         Change definitions of several constants to reflect
36246         new components of record types.
36247
36248         * prj.ads:
36249         (Naming_Data): Change several components to reflect new
36250         elements of naming schemes.
36251         (Project_Data): New flags Sources_Present and
36252         Language_Independent_Checked.
36253         (Ada_Default_Spec_Suffix): New function.
36254         (Ada_Default_Impl_Suffix): New function.
36255
36256         * snames.ads:
36257         Modification of predefined names for project manager: added
36258         Implementation, Specification_Exceptions, Implementation_Exceptions,
36259         Specification_Suffix, Implementation_Suffix, Separate_Suffix,
36260         Default_Switches, _Languages, Builder, Cross_Reference,
36261         Finder. Removed Body_Part, Specification_Append, Body_Append,
36262         Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
36263         Gnatlink.
36264
36265         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
36266         Add comments.
36267
36268         * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
36269         not that it is Nil_Variable_Value.
36270
36271         * prj.ads: Add ??? for uncommented declarations
36272
36273 2001-10-10  Ed Schonberg <schonber@gnat.com>
36274
36275         * sem_prag.adb: (Analyze_Pragma, case External): If entity is a
36276         constant, do not indicate possible modification, so that gigi can
36277         treat it as a bona fide constant.
36278
36279 2001-10-10  Robert Dewar <dewar@gnat.com>
36280
36281         * sem_prag.adb: Add processing for pragma External.
36282
36283         * snames.ads: Add entry for pragma External.
36284
36285         * par-prag.adb: Add pragma External.
36286
36287         * snames.adb: Updated to match snames.ads.
36288
36289 2001-10-10  Ed Schonberg <schonber@gnat.com>
36290
36291         * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
36292         a dynamic task if the allocator appears in an indexed assignment
36293         or selected component assignment.
36294
36295         * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
36296         For a dynamic task in an assignment statement, use target of
36297         assignment to generate meaningful name.
36298
36299 2001-10-10  Ed Schonberg <schonber@gnat.com>
36300
36301         * einfo.adb (Write_Field19_Name): Body_Entity is also defined for
36302         a generic package.
36303
36304         * einfo.ads: Body_Entity is also defined for generic package.
36305         Documentation change only
36306
36307         * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
36308         others_choice for a discriminated component initialization,
36309         convert discriminant references into the corresponding discriminals.
36310
36311         * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
36312         only if original type is private and expression has to be wrapped
36313         in a conversion.
36314
36315         * checks.adb:
36316         (Apply_Constraint_Check): Do not perform length check
36317         if expression is an aggregate with only an others_choice.
36318         (Length_N_Cond): two references to the same in_parameter
36319         (typically the discriminal in an init_proc) denote the same value.
36320         Two useful optimization uncovered by bugfixes above.
36321
36322 2001-10-10  Robert Dewar <dewar@gnat.com>
36323
36324         * xeinfo.adb: Change int to char in translation of enumeration types.
36325         This fixes a problem in the C representation of component alignment.
36326         Add 2001 to copyright notice
36327
36328 2001-10-10  Richard Kenner <kenner@gnat.com>
36329
36330         * decl.c: (validate_size): Do check size of object of integral type
36331         if it is a packed array type.
36332
36333 2001-10-10  Richard Kenner <kenner@gnat.com>
36334
36335         * decl.c: (gnat_to_gnu_entity, case object): Also materialize
36336         VAR_DECL for constant if not Is_Public but -O0.
36337
36338 2001-10-10  Richard Kenner  <kenner@gnat.com>
36339
36340         * misc.c (struct lang_hooks): Add new initializer to match GCC change.
36341
36342 2001-10-10  Geert Bosch  <bosch@gnat.com>
36343
36344         * xnmake.adb (XNmake): Fix handling of -s/-b options.  No longer
36345         use '/' as switch character, allowing for absolute file names.
36346
36347 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
36348
36349         * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
36350         FSF address.
36351
36352 2001-10-08  Geert Bosch  <bosch@gnat.com>
36353
36354         * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
36355         Automatically build utilities when files need to be regenerated.
36356
36357 2001-10-08  Geert Bosch  <bosch@gnat.com>
36358
36359         * xsnames.adb: New utility for updating snames.ads and snames.adb
36360
36361 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
36362
36363         * Make-lang.in (ADAFLAGS): Add -W -Wall.
36364         (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
36365         (gnat1): Also depend on attribs.o.
36366         (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
36367         * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
36368         (ADAC): Set to @ADAC@ in stage1, $(CC) later.
36369         (ADAFLAGS): Add -W -Wall.
36370         (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
36371         take out CFLAGS.
36372
36373         (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
36374         s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
36375         s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
36376         Use $(ADAC), not $(CC), as compilation command.
36377
36378         (gnattools): Depend directly on tools to build, don't use
36379         recursive make.
36380         (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.
36381
36382         * einfo.h, sinfo.h: New files (autogenerated).
36383
36384 2001-10-08  Richard Henderson  <rth@redhat.com>
36385
36386         * comperr.adb (Abort_In_Progress): New.
36387         (Compiler_Abort): Use it to prevent recursion.
36388
36389 2001-10-08  Robert Dewar <dewar@gnat.com>
36390
36391         * atree.adb: Set Error_Posted in Error node, helps error recovery.
36392
36393         * par-endh.adb (Output_End_Expected): We should also not test
36394         Error_Posted on the Error node, since now it is always set.
36395
36396         * cstand.adb (Create_Standard): Set Etype of Error to Any_Type
36397         to help error recovery. Part of general work on 9407-004.
36398
36399         * par.adb: Add ??? for misuse of error
36400
36401         * sem_res.adb:
36402         (Resolve): Defend against Error, fixes 9407-003.
36403         (Resolve_Discrete_Subtype_Indication): Defend against Error.
36404
36405         * sinfo.ads (N_Error): Now has Etype field (which will be set
36406         to Any_Type to help error recovery).
36407
36408 2001-10-08  Richard Kenner (kenner@gnat.com)
36409
36410         * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
36411         Consistently set MEM attributes from expression; fixes
36412         bootstrap failure on x86.
36413
36414 2001-10-08  Geert Bosch  (bosch@gnat.com)
36415
36416         * 5oosinte.adb: Add 2001 to copyright notice.
36417
36418 2001-10-08  Geert Bosch  (bosch@gnat.com)
36419
36420         * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].
36421
36422         * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].
36423
36424 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
36425
36426         * 5oosinte.adb: Fix spelling error of "separate" as "seperate".
36427
36428 2001-10-05  Geert Bosch  (bosch@gnat.com)
36429
36430         * adaint.h: Small formatting fix.
36431
36432 2001-10-04  Geert Bosch  <bosch@gnat.com>
36433
36434         * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
36435         Arg is int, not FILE *, in dummy version of functions.
36436
36437         * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
36438         Arg is int, not FILE *.
36439
36440 2001-10-04  Geert Bosch  <bosch@gnat.com>
36441
36442         * 3lsoccon.ads: Added file, missed with initial check ins.
36443
36444         * 4lintnam.ads: Fix header format.
36445         Change Linux to GNU/Linux.
36446
36447         * 5iosinte.adb: Change Linux to GNU/Linux.
36448
36449         * 5iosinte.ads: Change Linux to GNU/Linux.
36450
36451         * 5itaprop.adb: Change Linux to GNU/Linux.
36452
36453         * 5itaspri.ads: Change Linux to GNU/Linux.
36454         Update copyright notice.
36455
36456         * 5lintman.adb: Change Linux to GNU/Linux.
36457
36458         * 5lml-tgt.adb: Change Linux to GNU/Linux.
36459
36460         * 5losinte.ads: Change Linux to GNU/Linux.
36461
36462         * 5lsystem.ads: Change Linux to GNU/Linux.
36463
36464         * 5qosinte.adb: Change Linux to GNU/Linux.
36465
36466         * 5qosinte.ads: Change Linux to GNU/Linux.
36467
36468         * 5qparame.ads: Change Linux to GNU/Linux.
36469
36470         * 5qtaprop.adb: Change Linux to GNU/Linux.
36471
36472         * 5qtaspri.ads: Change Linux to GNU/Linux.
36473         Add 2001 to copyright notice.
36474
36475         * 5vintman.ads: Change Linux to GNU/Linux.
36476         Fix header format.  Add 2001 to copyright notice.
36477
36478         * g-soccon.ads: Change Linux to GNU/Linux.
36479
36480         * g-trasym.ads: Change Linux to GNU/Linux.
36481         Add 2001 to copyright notice.
36482
36483         * memtrack.adb: Change Linux to GNU/Linux.
36484
36485         * s-intman.ads: Change Linux to GNU/Linux.
36486         Add 2001 to copyright notice.  Fix header format.
36487
36488         * s-stache.adb: Change Linux to GNU/Linux.
36489
36490         * adaint.c: Change Linux to GNU/Linux.
36491
36492         * cio.c: Change Linux to GNU/Linux.
36493
36494         * cstreams.c: Change Linux to GNU/Linux.
36495
36496         * init.c: Change Linux to GNU/Linux.
36497
36498         * gmem.c: Change Linux to GNU/Linux.
36499
36500         * tracebak.c: Change Linux to GNU/Linux.
36501
36502
36503 2001-10-02  Geert Bosch  <bosch@gnat.com>
36504
36505         * misc.c (insert_default_attributes): Add dummy version.