OSDN Git Service

Fix commit date in previous set of changes.
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2
3         * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
4
5         * trans.c (struct stmt_group): Delete field GLOBAL.
6         (gnat_init_stmt_group): Do not initialize it.
7         (call_to_gnu): Use save_expr, not protect_multiple_eval.
8         (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
9         (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
10         (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
11         (start_stmt_group): Likewise.
12         (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
13
14         * utils2.c (ggc.h): Include.
15         (build_call_raise): Call build_int_cst, not build_int_2.
16
17         * utils.c (gnat_init_decl_processing): Fix arg to
18         build_common_tree_nodes.
19         (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
20         (gnat_define_builtin): Set built_in_decls.
21         (init_gigi_decls): Call build_int_cst, not build_int_2.
22
23         * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
24         (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
25         (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
26         (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
27         SET_TYPE_MODULE): Use them.
28         (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
29         (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
30         (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
31         SET_TYPE_ADA_SIZE): Likewise.
32         (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
33         (DECL_CONST_CORRESPONDING_VAR,
34         SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
35         (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
36         (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
37         (TYPE_RM_SIZE_NUM): New macro.
38         (TYPE_RM_SIZE): Modified to use above.
39
40         * cuintp.c: (build_cst_from_int): New function.
41         (UI_To_gnu): Use it.
42
43         * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
44         (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
45         (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
46         MIN_EXPR for the size, copy it into new.
47
48 2004-09-01  Robert Dewar  <dewar@gnat.com>
49
50         * exp_ch6.adb (Expand_Call): Properly handle validity checks for
51         packed indexed component where array is an IN OUT formal. This
52         generated garbage code previously.
53
54         * gnat_ugn.texi: Document -fverbose-asm
55
56         * gnat-style.texi: Minor updates (note that boolean constants and
57         variables are joined with AND/OR rather than short circuit forms).
58
59 2004-09-01  Ed Schonberg  <schonberg@gnat.com>
60
61         * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
62         it is an upward conversion of an untagged type with no representation
63         change.
64
65 2004-09-01  Thomas Quinot  <quinot@act-europe.fr>
66
67         * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
68         System.Partition_Interface.
69
70         * checks.adb (Apply_Access_Checks): Do not generate checks when
71         expander is not active (but check for unset reference to prefix of
72         dereference).
73
74         * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
75         pragma Debug as an if statement with a constant condition, for
76         consistent treatment of entity references contained within the
77         enclosed procedure call.
78
79 2004-09-01  Vincent Celier  <celier@gnat.com>
80
81         * bindgen.adb: (Set_EA_Last): New procedure
82         (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
83         Set_EA_Last.
84         (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
85         (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
86         linked without errors.
87         (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
88         ST and EA.
89         (Gen_Exception_Table_C): Correct same bugs
90
91         * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
92
93         * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
94         on Windows, make sure that the drive letter is in upper case.
95
96         * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
97         Windows, when the drive letter is added and Case_Sensitive is True, the
98         drive letter is forced to upper case.
99
100         * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
101         to Options_2 for the call to MLib.Utl.Gcc.
102
103         * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
104         directory separator when defining BASE_DIR.
105
106 2004-09-01  Pascal Obry  <obry@gnat.com>
107
108         * gprcmd.adb (Extend): Do not output trailing directory separator. This
109         is not needed and it confuses Windows GNU/make which does not report
110         directory terminated by a slash as a directory.
111         (gprcmd): Idem for "pwd" internal command.
112
113         * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
114         target names rewrite to fix regressions with recent version of
115         GNU/make. Starting with GNU/make 3.80 the pipe character was not
116         handled properly anymore.
117
118 2004-09-01  Andreas Schwab  <schwab@suse.de>
119
120         * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
121         * raise.c [!IN_RTS]: Undef abort.
122
123 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
124
125         * utils2.c (build_allocator): Use ssize_int.
126
127         * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
128
129 2004-08-27  Andreas Schwab  <schwab@suse.de>
130
131         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
132
133 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
134             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
135         
136         * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
137
138 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
139
140         * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
141         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
142         * utils.c (init_gigi_decls): Likewise.
143         * utils2.c (build_call_raise, build_allocator): Likewise.
144         
145 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
146
147         * utils.c (gnat_init_decl_processing): Adjust
148         build_common_tree_nodes call.
149
150 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
151
152         * utils2.c (build_allocator): Use build_int_cst for negative
153         size types.
154
155 2004-08-18  Richard Henderson  <rth@redhat.com>
156
157         * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
158
159 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
160
161         * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
162         call.s
163         * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
164         (gnat_to_gnu): Likewise.
165
166 2004-08-16  Pascal Obry  <obry@gnat.com>
167
168         * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
169         backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
170         option and not mdll anymore. Update comment.
171
172 2004-08-16  Pascal Obry  <obry@gnat.com>
173
174         * bld.adb (Put_Include_Project): Properly handle directory separators
175         on Windows.
176
177 2004-08-16  Ed Schonberg  <schonberg@gnat.com>
178
179         * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
180         decreasing the number of allocated junk nodes while searching for the
181         appropriate subprogram.
182
183 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
184
185         * cuintp.c (UI_To_gnu): Use build_int_cst..
186         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
187         * utils.c (init_gigi_decls): Likewise.
188         * utils2.c (build_call_raise): Likewise.
189
190 2004-08-13  Olivier Hainque  <hainque@act-europe.fr>
191
192         * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
193         for a global aliased object with a variable size and an unconstrained
194         nominal subtype, pretend there is no initializer if the one we have is
195         incomplete, and avoid referencing an inexistant component in there. The
196         part we have will be rebuilt anyway and the reference may confuse
197         further operations.
198
199 2004-08-13  Thomas Quinot  <quinot@act-europe.fr>
200
201         * einfo.ads: Minor reformatting
202
203         * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
204         restrictions in the ALI if we only want to warn about violations.
205
206 2004-08-13  Vincent Celier  <celier@gnat.com>
207
208         * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
209         when creating a new Unit_Record in table Units.
210
211         * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
212         that are violated, if any.
213
214         * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
215         add directory separator if path already ends with a directory separator.
216
217 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
218
219         * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
220         unit, this is an attempt to inline a construct that is not available in
221         the current restricted mode, so abort rather than trying to continue.
222
223         * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
224         discriminants that rename those of the parent, recover names of
225         original discriminants for the constraint on the full view of the
226         parent.
227         (Complete_Private_Subtype): Do not create a subtype declaration if the
228         subtype is an itype.
229
230         * gnat_rm.texi: Added section on implementation of discriminated
231         records with default values for discriminants.
232
233 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
234
235         PR ada/15601
236         * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
237         the second operand is overloaded.
238
239 2004-08-10  Richard Henderson  <rth@redhat.com>
240
241         * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
242         add __builtin_alloca.
243
244 2004-08-10  Richard Henderson  <rth@redhat.com>
245
246         * config-lang.in (boot_language): Yes.
247
248 2004-08-09  Thomas Quinot  <quinot@act-europe.fr>
249
250         * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
251         from complaining on potential uninitialized reference.
252         Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
253         new specification and test explicitly for non-zero return value.
254
255         * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
256         returning C.int, to avoid using a derived boolean type.
257
258         * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
259         Duplicate_Subexpr_No_Checks in preference to direct use of
260         Remove_Side_Effects and New_Copy_Tree.
261         Clear Comes_From_Source on prefix of 'Size attribute reference.
262
263         * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
264         g-socthi-vxworks.adb: Change calls to
265         GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
266         and test explicitly for non-zero return value.
267
268         * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads: 
269         (Is_Socket_In_Set): Declare imported function as returning C.int, to
270         avoid using a derived boolean type.
271
272 2004-08-09  Albert Lee  <lee@gnat.com>
273
274         * system-irix-n32.ads: Refine tasking priority constants for IRIX.
275
276 2004-08-09  Pascal Obry  <obry@gnat.com>
277
278         * gnat_ugn.texi: Document new way to build DLLs on Windows using
279         GCC's -shared option.
280
281         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
282         Options_2 parameter (options put after object files).
283
284 2004-08-09  Olivier Hainque  <hainque@act-europe.fr>
285
286         * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
287         ignore overflows on low and high bounds of an index to also account for
288         differences in signedness between sizetype and gnu_index_subtype.
289         These are as legitimate as the ones caused by a lower TYPE_PRECISION
290         on sizetype.
291
292 2004-08-09  Robert Dewar  <dewar@gnat.com>
293
294         * s-solita.ads, s-solita.adb: Minor reformatting
295
296         * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
297         Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
298         obsolescent section
299         Add note that No_Implicit_Conditionals does not suppress
300         run time constraint checks.
301
302         * vms_conv.ads: Minor reformatting
303
304         * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
305         and necessary for following change).
306         (Mark): Return new format Mark_Id containing sec stack address
307         (Release): Use sec stack address from Mark_Id avoiding Self call
308
309         * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
310         pointer (cleanup and necessary for following change).
311         Define Mark_Id as record containing address of secondary stack, that way
312         Release does not need to find the stack again, decreasing the number of
313         calls to Self and improving efficiency.
314
315         * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
316
317         * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
318         case variable into the individual case branches when possible.
319
320         * sem_ch11.adb: Minor reformatting
321
322         * prj.ads: Correct spelling of suffixs
323
324         * prj-nmsc.adb: Minor reformatting
325         Correct spelling suffixs throughout (also in identifiers)
326
327         * freeze.adb: Minor spelling correction
328
329         * exp_ch2.adb: Cleanups to handling of Current_Value
330         (no functional effect).
331
332         * bld.adb: Correct spelling of suffixs
333
334         * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
335
336 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
337
338         PR ada/15408
339
340         * sem_ch7.adb (Install_Private_Declarations): In the body of the
341         package or of a child, private entities are both immediately_visible
342         and not hidden.
343
344 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
345
346         * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
347         there are no range checks on the value of the literal.
348
349         * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
350         wrapped is the triggering alternative of an asynchronous select, action
351         statements mustbe inserted before the select itself.
352
353         * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
354         case where the prefix is a protected function call.
355         (Resolve_Attribute, case 'Access): The attribute reference on a
356         subprogram is legal in a generic body if the subprogram is declared
357         elsewhere.
358
359 2004-08-09  Vincent Celier  <celier@gnat.com>
360
361         * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
362         languages, otherwise building the library may fail with unresolved
363         symbols.
364         (Compile_Sources): Do not build libraries if -c switch is used
365
366         * gnatlink.adb (Process_Args): New switches -M and -Mmap
367         (Write_Usage): If map file creation is supported, output new switches
368         -M and -Mmap.
369         (Gnatlink): When -M is specified, add the necessary switch(es) to the
370         gcc call, when supported.
371
372         * Makefile.in: Added indepsw.o to the object list for gnatlink
373         Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
374
375         * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
376         indepsw.adb, indepsw.ads: New files.
377
378 2004-08-09  Bernard Banner  <banner@gnat.com>
379
380         * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
381
382         * Makefile.in: add section for vxworks x86
383
384 2004-08-09  Hristian Kirtchev  <kirtchev@gnat.com>
385
386         * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
387         per-object constrained components where the discriminant is of an
388         Access type.
389         (Build_Record_Init_Proc): Add condition to prevent the inheritance of
390         the parent initialization procedure for derived Unchecked_Unions.
391         Instead, derived Unchecked_Unions build their own initialization
392         procedure.
393         (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
394         Check the body of the subprogram for details.
395         (Freeze_Record_Type): Prevent the inheritance of discriminant checking
396         functions for derived Unchecked_Union types by introducing a condition.
397         Allow the creation of TSS equality functions for Unchecked_Unions.
398         (Make_Eq_Case): Rename formal parameter Node to E in function signature.
399         Add formal parameter Discr to function signature. Discr is used to
400         control the generated case statement for Unchecked_Union types.
401         (Make_Eq_If): Rename formal parameter Node to E in function signature.
402
403         * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
404         Unchecked_Unions.
405         Check the body of the subprogram for details.
406         (Expand_Composite_Equality): Augment composite type equality to include
407         correct handling of Unchecked_Union components.
408         (Expand_N_In): Add condition to detect illegal membership tests when the
409         subtype mark is a constrained Unchecked_Union and the expression lacks
410         inferable discriminants, and build a Raise_Program_Error node.
411         (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
412         to detect types that contain components of unconstrained Unchecked_Union
413         subtype. Add condition to detect equality between types that have an
414         unconstrained Unchecked_Union component, and build a Raise_Program_Error
415         node. Add condition to detect equality between Unchecked_Union types
416         that lack inferable discriminants, and build a Raise_Program_Error node.
417         Otherwise build a TSS equality function call.
418         (Expand_N_Type_Conversion): Add condition to detect illegal conversions
419         from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
420         with the operand lacking inferable discriminants, and build a Raise_
421         Program_Error node.
422         (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
423         composite equality.
424         (Has_Inferable_Discriminants): Implement new predicate for objects and
425         expressions of Unchecked_Union type. Check the body of subprogram for
426         details.
427         (Has_Unconstrained_UU_Components): Add function
428         Component_Is_Unconstrained_UU. It is used to detect whether a single
429         component is of an unconstrained Unchecked_Union subtype. Add function
430         Variant_Is_Unconstrained_UU. It is used to detect whether a single
431         component inside a variant is of an unconstrained Unchecked_Union type.
432
433         * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
434         inferred discriminant values. Add condition to generate a case
435         statement with an inferred discriminant as the switch.
436         (Make_Component_List_Assign): Introduce a Boolean flag that determines
437         the behaviour of the subprogram in the presence of an Unchecked_Union.
438         Add condition to trigger the usage of the inferred discriminant value
439         as the generated case statement switch.
440         (Make_Field_Assign): Introduce a Boolean flag that determines the
441         behaviour of the subprogram in the presence of an Unchecked_Union. Add
442         condition to trigger the usage of the inferred discriminant value as
443         the right-hand side of the generated assignment.
444
445         * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
446         parameter generation when dealing with Unchecked_Unions.
447
448         * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
449         checks for Unchecked_Unions.
450
451         * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
452
453         * exp_attr.adb (Expand_N_Attribute_Reference): Produce
454         Raise_Program_Error nodes for the execution of Read and Write
455         attributes of Unchecked_Union types and the execution of Input and
456         Output attributes of Unchecked_Union types that lack default
457         discriminant values.
458
459         * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
460         Unchecked_Union. Add procedure Check_Component. It is used to inspect
461         per-object constrained components of Unchecked_Unions for being
462         Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
463         check individual components withing a variant.
464
465         * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
466         comparison of Unchecked_Unions.
467         (Resolve_Equality_OP): Remove guard that prevents equality between
468         Unchecked_Unions.
469
470         * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
471         of component subtypes for Unchecked_Union components.
472         (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
473         since it is the actual subtype.
474
475         * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
476         pass of Unchecked_Union subtypes as generic actuals to formal types
477         that lack known_discriminant_parts or that are derived Unchecked_Union
478         types, and do nothing. In any other case, produce an error message.
479
480         * sem_ch3.adb (Analyze_Component_Declaration): Add function
481         Contains_POC. It determines whether a constraint uses the discriminant
482         of an enclosing record type.
483         Add condition to detect per-object constrained component and set the
484         appropriate flag.
485         (Derived_Type_Declaration): Remove guard that prevents derivation from
486         Unchecked_Union types.
487         (Process_Subtype): Remove quard that prevents the creation of Unchecked_
488         Union subtypes.
489
490         * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
491         references to Unchecked_Union discriminants.
492
493         * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
494         formal generation when dealing with Unchecked_Unions.
495         (Set_Actual_Subtypes): Add condition to prevent generation of actual
496         subtypes for Unchecked_Unions.
497
498         * sem_ch7.adb (Analyze_Package_Specification): Add procedure
499         Inspect_Unchecked_Union_Completion. It is used to detect incorrect
500         completions of discriminated partial views by Unchecked_Unions and
501         produce an error message.
502
503 2004-08-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
504
505         * trans.c (struct stmt_group): New field, GLOBAL.
506         (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
507         (struct elab_info): New struct.
508         (elab_info_list, gnu_elab_proc_stack): New variables.
509         (Compilation_Unit_to_gnu): New procedure.
510         (gigi): Call it and also handle elaboration procs we've saved.
511         (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
512         global field from parent.
513         (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
514         (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
515         (start_stmt_group): Initialize global field from parent.
516         (add_decl_expr): Set to global for current statement group.
517         (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
518         post.
519
520         * utils.c (global_bindings_p): True when no current_function_decl; no
521         longer check current_binding_level.
522
523 2004-08-09  Ben Brosgol  <brosgol@gnat.com>
524
525         * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
526         choice.
527
528         * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
529
530 2004-08-06  Andreas Schwab  <schwab@suse.de>
531
532         * utils.c (gnat_define_builtin): Remove second parameter of
533         make_decl_rtl.
534         (begin_subprog_body): Likewise.
535
536 2004-07-26  Arnaud Charlet  <charlet@act-europe.fr>
537
538         * sem_util.adb (Requires_Transient_Scope): Temporarily disable
539         optimization, not supported by the tree-ssa back-end.
540
541 2004-07-26  Olivier Hainque  <hainque@act-europe.fr>
542
543         * s-mastop-irix.adb: Update comments.
544
545         * a-except.adb (Exception_Information): Raise Constraint_Error if
546         exception Id is Null_Id.
547         This is required behavior, which is more reliably and clearly checked
548         at the top level interface level.
549
550 2004-07-26  Javier Miranda  <miranda@gnat.com>
551
552         * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
553         call if a component has no default_expression and the box is used.
554
555         * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
556         default_expression and you use box, it behaves as if you had declared a
557         stand-alone object.
558         (Resolve_Record_Aggregate): If a component has no default_expression and
559         you use box, it behaves as if you had declared a stand-alone object.
560
561         * sem_ch10.adb (Install_Siblings): Do not make visible the private
562         entities of private-with siblings.
563
564 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
565
566         * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
567         for a component of an itype, set the parent pointer for analysis,
568         there is no list in which to insert it.
569
570         * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
571         bona-fide renamings, not for inherited operations.
572
573         * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
574         actual for a formal that is an access parameter, create local
575         finalization list even if the expression is not an aggregate.
576
577 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
578
579         PR ada/16213
580         * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
581         Diagnose properly illegal subprogram renamings that are library units.
582
583 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
584
585         PR ada/15588
586         * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
587         conversion rewritten as an unchecked conversion, check that original
588         expression is a variable.
589
590         * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
591         unchecked_conversion, create new node rather than rewriting in place,
592         to preserve original construct.
593
594 2004-07-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
595
596         * gigi.h (gnat_expand_body): Deleted.
597
598         * Make-lang.in: (trans.o): Depends on function.h.
599
600         * misc.c: (gnat_expand_body): Moved to here.
601
602         * trans.c (gnat_expand_body_1): Deleted.
603         (gnat_expand_body): Moved from here.
604         (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
605         (add_stmt): Check for marked visited with global_bindings_p.
606         (gnat_gimplify_expr, case COMPONENT_REF): New case.
607         (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
608
609         * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
610         VIEW_CONVERT_EXPR if not operation type.
611
612         * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
613         fat pointer.
614
615         * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
616         changes: reformatting of negation operators, removing unneeded
617         inequality comparison with zero, converting equality comparisons with
618         zero to negations, changing int/0/1 to bool/false/true, replace calls
619         to gigi_abort with abort, and various other similar changes.
620
621 2004-07-26  Vincent Celier  <celier@gnat.com>
622
623         * gnatcmd.adb (GNATCmd): Add processing for new built-in command
624         "setup".
625
626         * make.adb (Gnatmake): Fail when a library is not present and there is
627         no object directory.
628
629         * mlib-prj.adb (Check_Library): No need to check if the library needs
630         to be rebuilt if there is no object directory, hence no object files
631         to build the library.
632
633         * opt.ads (Setup_Projects): New Boolean flag.
634
635         * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
636         Location.
637         Create directory when Kind /= "" and in "gnat setup". Report error if
638         directory cannot be created.
639         (Ada_Check): Create library interface copy dir if it does not exist
640         and we are in "gnat setup".
641         (Find_Sources): No error if in "gnat setup" and no Ada sources were
642         found.
643         (Language_Independent_Check): Create object directory, exec directory
644         and/or library directory if they do not exist and we are in
645         "gnat setup".
646
647         * vms_conv.ads: (Command_Type): New command Setup.
648
649         * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
650
651         * vms_data.ads: Add qualifiers/switches for new built-in command
652         "setup".
653
654 2004-07-25  Richard Henderson  <rth@redhat.com>
655
656         * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
657         DECL_IGNORED_P on RESULT_DECL.
658
659 2004-07-20  Olivier Hainque  <hainque@act-europe.fr>
660
661         * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
662         allocation and potentially overflowing update with
663         Tailored_Exception_Information. Use the sec-stack free procedural
664         interface to output Exception_Information instead.
665
666         * a-except.adb (To_Stderr): New subprogram for character, and string
667         version moved from a-exextr to be visible from other separate units.
668         (Tailored_Exception_Information): Remove the procedural version,
669         previously used by the default Last_Chance_Handler and not any more.
670         Adjust various comments.
671
672         * a-exexda.adb: Generalize the exception information procedural
673         interface, to minimize the use of secondary stack and the need for
674         local buffers when the info is to be output to stderr:
675         (Address_Image): Removed.
676         (Append_Info_Character): New subprogram, checking for overflows and
677         outputing to stderr if buffer to fill is of length 0.
678         (Append_Info_String): Output to stderr if buffer to fill is of length 0.
679         (Append_Info_Address, Append_Info_Exception_Name,
680         Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
681         Append_Info_Basic_Exception_Traceback,
682         Append_Info_Exception_Information): New subprograms.
683         (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
684         (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
685         Exception_Info_Maxlength, Exception_Name_Length,
686         Exception_Message_Length): New subprograms.
687         (Exception_Information): Use Append_Info_Exception_Information.
688         (Tailored_Exception_Information): Use
689         Append_Info_Basic_Exception_Information.
690         Export services for the default Last_Chance_Handler.
691
692         * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
693         other separate units.
694
695 2004-07-20  Vincent Celier  <celier@gnat.com>
696
697         * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
698
699 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
700
701         * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
702         emit itype references for the designated types of component types that
703         are declared outside of the full record declaration, and that may
704         denote a partial view of that record type.
705
706 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
707
708         PR ada/15607
709         * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
710         which is the designated type in an access component declaration, to the
711         list of incomplete dependents of the parent type, to avoid elaboration
712         issues with out-of-scope subtypes.
713         (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
714         full view of the parent.
715
716 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
717
718         PR ada/15610
719         * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
720         entities that are hidden, such as references to generic actuals
721         outside an instance.
722
723 2004-07-20  Javier Miranda  <miranda@gnat.com>
724
725         * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
726         support to the new notation.
727         (Analyze_Selected_Component): Add call to Try_Object_Operation.
728
729 2004-07-20  Jose Ruiz  <ruiz@act-europe.fr>
730
731         * s-taprob.adb: Adding the elaboration code required for initializing
732         the tasking soft links that are common to the full and the restricted
733         run times.
734
735         * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
736         restricted run time has been moved to the package
737         System.Soft_Links.Tasking.
738
739         * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
740         restricted run time has been moved to the package
741         System.Soft_Links.Tasking.
742
743         * Makefile.rtl: Add entry for s-solita.o in run-time library list.
744
745         * s-solita.ads, s-solita.adb: New files.
746
747 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
748
749         * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
750         Case_Statement_to_gnu): Split off from gnat_to_gnu.
751         (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
752         Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
753         Exception_Handler_to_gnu_zcx): Likewise.
754
755 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
756
757         * gigi.h (builtin_function): Declare.
758
759 2004-07-15  Robert Dewar  <dewar@gnat.com>
760
761         * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
762         reformatting
763
764         * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
765         access values as an example of a warning.
766
767         * gnat_rm.texi: Document new attribute Has_Access_Values
768
769         * gnat-style.texi: Document that box comments belong on nested
770         subprograms
771
772         * sem_util.ads (Has_Access_Values): Improved documentation
773
774         * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
775
776         * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
777         (Process_Interface_Name): Call to this new procedure
778         (Set_Extended_Import_Export_External_Name): Call to this new procedure
779
780         * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
781
782         * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
783
784         * einfo.ads: Minor comment typo fixed
785
786 2004-07-15  Jose Ruiz  <ruiz@act-europe.fr>
787
788         * snames.adb: Add _atcb.
789
790         * snames.ads: Add Name_uATCB.
791
792         * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
793         (in the expanded code) when using the restricted run time.
794
795         * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
796         a in parameter in order to allow ATCBs to be preallocated (in the
797         expanded code).
798
799         * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
800         order to allow ATCBs to be preallocated. In case of error, the ATCB is
801         deallocated in System.Tasking.Stages.
802
803         * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
804         order to allow ATCBs to be preallocated.
805
806         * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
807         here. It was previously done in Initialize_ATCB.
808
809         * rtsfind.ads: Make the Ada_Task_Control_Block visible.
810
811         * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
812         Restricted run time.
813
814         * exp_ch3.adb: When using the Restricted run time, pass the
815         preallocated Ada_Task_Control_Block when creating a task.
816
817 2004-07-15  Ed Schonberg  <schonberg@gnat.com>
818
819         * sem_util.adb (Normalize_Actuals): If there are no actuals on a
820         function call that is itself an actual in an enclosing call, diagnose
821         problem here rather than assuming that resolution will catch it.
822
823         * sem_ch7.adb (Analyze_Package_Specification): If the specification is
824         the local copy of a generic unit for a formal package, and the generic
825         is a child unit, install private part of ancestors before compiling
826         private part of spec.
827
828         * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
829         use scope entities rather than tree structures, to handle properly
830         parent units that are instances rewritten as bodies for inlining
831         purposes.
832
833         * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
834         Remove_Parents): Handle properly a parent unit that is an
835         instantiation, when the unit has been rewritten as a body for inlining
836         purposes.
837
838         * par.adb (Goto_List): Global variable to collect goto statements in a
839         given unit, for use in detecting natural loops.
840
841         * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
842         use in detecting natural loops.
843
844         * par-labl.adb (Find_Natural_Loops): Recognize loops create by
845         backwards goto's, and rewrite as a infinite loop, to improve locality
846         of temporaries.
847
848         * exp_util.adb (Force_Evaluation): Recognize a left-hand side
849         subcomponent that includes an indexed reference, to prevent the
850         generation of copies that would miscompile the desired assignment
851         statement.
852         (Build_Task_Image_Decls): Add a numeric suffix to
853         generated name for string variable, to avoid spurious conflicts with
854         the name of the type of a single protected object.
855
856         * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
857         loop with an explicit exit statement, to avoid generating an
858         out-of-range value with 'Succ leading to spurious constraint_errors
859         when compiling with -gnatVo.
860
861 2004-07-15  Thomas Quinot  <quinot@act-europe.fr>
862
863         * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
864         might not be analyzed yet, even if its Etype is already set (case of an
865         unchecked conversion built using Unchecked_Convert_To, for example).
866         If the prefix has already been analyzed, this will be a nop anyway.
867
868         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
869         controller type, or an assignment of a record type with controlled
870         components, copy only user data, and leave the finalization chain
871         pointers untouched.
872
873 2004-07-15  Vincent Celier  <celier@gnat.com>
874
875         * make.adb (Collect_Arguments): Improve error message when attempting
876         to compile a source not part of any project, when -x is not used.
877
878         * prj.ads: (Defined_Variable_Kind): New subtype
879
880         * prj-attr.adb (Register_New_Package): Two new procedures to register
881         a package with or without its attributes.
882         (Register_New_Attribute): Mew procedure to register a new attribute in a
883         package.
884         New attribute oriented subprograms: Attribute_Node_Id_Of,
885         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
886         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
887         Next_Attribute.
888         New package oriented subprograms: Package_Node_Id_Of,
889         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
890
891         * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
892         type.
893         (Package_Node_Id): Now a private, self initialized type
894         (Register_New_Package): New procedure to register a package with its
895         attributes.
896         New attribute oriented subprograms: Attribute_Node_Id_Of,
897         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
898         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
899         Next_Attribute.
900         New package oriented subprograms: Package_Node_Id_Of,
901         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
902
903         * prj-dect.adb (Parse_Attribute_Declaration,
904         Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
905
906         * prj-makr.adb (Make): Parse existing project file before creating
907         other files. Fail if there was an error during parsing.
908
909         * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
910         new spec of Prj.Attr.
911
912         * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
913         to new spec of Prj.Attr.
914
915 2004-07-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
916
917         * utils2.c: Fix typo in comment.
918
919 2004-07-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
920
921         * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
922         * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
923
924 2004-07-14  Andreas Schwab  <schwab@suse.de>
925
926         * trans.c (gnat_init_stmt_group): Remove duplicate definition.
927
928 2004-07-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
929
930         * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
931         object type.
932         (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
933         TYPE_STUB_DECL.
934
935         * misc.c (gnat_types_compatible_p): New function.
936         (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
937         (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
938
939         * trans.c (gigi): Move processing of main N_Compilation_Unit here.
940         (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
941         (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
942         (mark_visited): Don't mark dummy type.
943         (tree_transform <N_Procedure_Call_Statement>): Unless this is an In     
944         parameter, we must remove any LJM building from GNU_NAME.
945         (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
946         (pos_to_constructor): Use int_const_binop.
947         (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
948         PARM_DECL.
949
950         * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
951         (gnat_pushlevel): Set TREE_USE on BLOCK node.
952         (gnat_install_builtins): Add __builtin_memset.
953
954 2004-07-13  Olivier Hainque  <hainque@act-europe.fr>
955
956         * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
957         for a renaming, stabilize the initialization expression if we are at a
958         local level.  At the local level, uses of the renaming may be performed
959         by a direct dereference of the initializing expression, and we don't
960         want possible variables there to be evaluated for every use.
961
962         * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
963         Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
964         them on the way.  Account for the fact that we may introduce side
965         effects in the process.
966
967 2004-07-13  Richard Henderson  <rth@redhat.com>
968
969         * misc.c (default_pass_by_ref): Use pass_by_reference.
970
971 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
972
973         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
974         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
975
976 2004-07-08  Richard Henderson  <rth@redhat.com>
977
978         * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
979         commentary.
980
981 2004-07-06  Vincent Celier  <celier@gnat.com>
982
983         * vms_conv.ads: Minor reformatting.
984         Alphabetical order for enumerated values of type Command_Type, to have
985         the command in alphabetical order for the usage.
986
987         * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
988         the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
989
990         * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
991
992         * makegpr.adb (Global_Archive_Exists): New global Boolean variable
993         (Add_Archive_Path): Only add the global archive if there is one.
994         (Build_Global_Archive): Set Global_Archive_Exists depending if there is
995         or not any object file to put in the global archive, and don't build
996         a global archive if there is none.
997         (X_Switches): New table
998         (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
999         in the X_Switches table, if any.
1000         (Initialize): Make sure the X_Switches table is empty
1001         (Scan_Arg): Record -X switches in table X_Switches
1002
1003         * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
1004
1005         * make.adb: Minor comment fix
1006
1007         * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
1008         invoked with directory information, add the directory in front of the
1009         path.
1010
1011         * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
1012         invoked with directory information, add the directory in front of the
1013         path.
1014
1015         * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
1016         when Keep_Temporary_Files is False.
1017         (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
1018         directory information, add the directory in front of the path.
1019         When not on VMS, handle new switch -dn before the command to set
1020         Keep_Temporary_Files to True.
1021         (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
1022         everywhere.
1023
1024         * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
1025         invoked with directory information, add the directory in front of the
1026         path.
1027
1028 2004-07-06  Thomas Quinot  <quinot@act-europe.fr>
1029
1030         * snames.ads, snames.adb (Name_Stub): New name for the distributed
1031         systems annex.
1032
1033         * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
1034         New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
1035
1036         * g-socket.adb (To_Timeval): Fix incorrect conversion of
1037         Selector_Duration to Timeval for the case of 0.0.
1038
1039         * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
1040         documentation from Evolve_And_Then.
1041
1042 2004-07-06  Jose Ruiz  <ruiz@act-europe.fr>
1043
1044         * s-taprop-tru64.adb, s-taprop-os2.adb,
1045         s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
1046
1047 2004-07-06  Robert Dewar  <dewar@gnat.com>
1048
1049         * s-osinte-hpux.ads, s-osinte-freebsd.ads,
1050         s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
1051         s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
1052         s-interr-sigaction.adb, s-taprop-irix-athread.adb,
1053         s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
1054         s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
1055         s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
1056         s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
1057         a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
1058         a-tags.ads, bindgen.ads, checks.adb, checks.adb,
1059         csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
1060         exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
1061         g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
1062         i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
1063         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
1064         sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
1065         sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
1066         s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
1067         s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
1068         s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
1069         vms_data.ads: Minor reformatting,
1070         Fix bad box comment format.
1071
1072         * gnat_rm.texi: Fix minor grammatical error
1073
1074         * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
1075
1076         * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
1077         more cases of discriminated records to be recognized as not needing a
1078         secondary stack.
1079         (Has_Access_Values): New function.
1080
1081         * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
1082
1083         * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
1084         Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
1085         with LRM terminology).
1086         Change terminology in comments primitive type => elementary type.
1087
1088 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
1089
1090         PR ada/15602
1091         * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
1092         parameters do not impose any requirements on the presence of a body.
1093
1094 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
1095
1096         PR ada/15593
1097         * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
1098         compilation unit and is in an open scope at the point of instantiation,
1099         assume that a body may be present later.
1100
1101 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
1102
1103         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
1104         Improve error message when specified size is not supported.
1105
1106         * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
1107         is never a primitive operation.
1108
1109 2004-07-05  Andreas Schwab  <schwab@suse.de>
1110
1111         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
1112         RECORD_OR_UNION_CHECK.
1113         (TYPE_CONTAINS_TEMPLATE_P): Likewise.
1114
1115 2004-07-04  Kelley Cook  <kcook@gcc.gnu.org>
1116
1117         * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
1118         dependency on xgnatugn, instead build it via a submake.
1119         (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
1120
1121 2004-07-04  Richard Henderson  <rth@redhat.com>
1122
1123         * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
1124
1125 2004-07-01  Richard Henderson  <rth@redhat.com>
1126
1127         * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
1128         * utils.c (max_size): Likewise.
1129
1130 2004-06-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1131
1132         * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
1133         and rest_of_type_compilation; add arg to create_*_decl.
1134         (annotate_decl_with_node): Deleted.
1135         (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
1136         * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
1137         (get_current_block_context, gnat_pushdecl): New declarations.
1138         (gnat_init_stmt_group): Likewise.
1139         (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
1140         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
1141         (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
1142         (gnat_init): Call gnat_init_stmt_group.
1143         * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
1144         (gnu_pending_elaboration_list): Deleted.
1145         (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
1146         (gigi): Rearrange initialization calls and move some to last above.
1147         (gnat_to_gnu): If statement and not in procedure, go into elab proc.
1148         Delete calls to add_decl_expr; add arg to create_*_decl.
1149         (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
1150         (gnat_to_gnu, case N_Subprogram_Body): Move some code to 
1151         begin_subprog_body and call it.
1152         Don't push and pop ggc context.
1153         (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
1154         (add_stmt): Remove handling of DECL_EXPR from here.
1155         If not in function, mark visited.
1156         (add_decl_expr): Put global at top level.
1157         Check for cases of DECL_INITIAL we have to handle here.
1158         (process_type): Add extra arg to create_type_decl.
1159         (build_unit_elab): Rework to just gimplify.
1160         * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
1161         (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
1162         (get_pending_elaborations, pending_elaborations_p): Likewise.
1163         (push_pending_elaborations, pop_pending_elaborations): Likewise.
1164         (get_elaboration_location, insert_elaboration_list): Likewise.
1165         (gnat_binding_level): Renamed from ada_binding_level.
1166         (init_gnat_to_gnu): Don't clear pending_elaborations.
1167         (global_bindings_p): Treat as global if no current_binding_level.
1168         (set_current_block_context): New function.
1169         (gnat_pushdecl): Renamed from pushdecl; major rework.
1170         All callers changed.
1171         (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
1172         (finish_record_type): Call call pushdecl for stub decl.
1173         (function_nesting_depth): Deleted.
1174         (begin_subprog_body): Delete obsolete code.
1175         * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
1176         
1177 2004-06-28  Robert Dewar  <dewar@gnat.com>
1178
1179         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
1180         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
1181         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
1182         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
1183         a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
1184
1185         * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
1186         deal with problem of inefficient slices on machines with strict
1187         alignment, when the slice is a component of a composite.
1188
1189         * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
1190         machines, we need the check there as well.
1191
1192 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
1193
1194         * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
1195         determine safe copying direction for overlapping slice assignments
1196         when component is controlled.
1197
1198         * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
1199         formal derived type in the actual for a formal package are visible in
1200         the enclosing instance.
1201
1202 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
1203
1204         PR ada/15600
1205         * sem_util.adb (Trace_Components): Diagnose properly an illegal
1206         circularity involving a private type whose completion includes a
1207         self-referential component.
1208         (Enter_Name): Use Is_Inherited_Operation to distinguish a source
1209         renaming or an instantiation from an implicit derived operation.
1210
1211 2004-06-28  Pascal Obry  <obry@gnat.com>
1212
1213         * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
1214         DLL.
1215         (Library_File_Name_For): Idem.
1216
1217 2004-06-28  Matthew Gingell  <gingell@gnat.com>
1218
1219         * g-traceb.ads: Add explanatory note on the format of addresses
1220         expected by addr2line.
1221
1222 2004-06-28  Jerome Guitton  <guitton@act-europe.fr>
1223
1224         * Makefile.in: Force debugging information on s-tasdeb.adb,
1225         a-except.adb and s-assert.adb needed by the debugger.
1226
1227 2004-06-28  Vincent Celier  <celier@gnat.com>
1228
1229         * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
1230         Need_To_Build_Lib.
1231         (Gnatmake): Ditto.
1232
1233         * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
1234
1235         * prj.adb: Minor reformatting
1236         (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
1237
1238         * prj.ads: Comment updates
1239         Minor reformatting
1240         (Project_Data): Change Flag1 to Need_To_Build_Lib.
1241         Remove Flag2: not used.
1242
1243         * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
1244         declaration.
1245
1246         * gnat_ugn.texi: Put a "null;" declaration in one project file example
1247
1248         * gnat_rm.texi: Document Empty declarations "null;".
1249
1250         * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
1251         front of the linker options.
1252         (Link_Foreign): Put the global archives and the libraries in front of
1253         the linker options.
1254
1255 2004-06-28  Javier Miranda  <miranda@gnat.com>
1256
1257         * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
1258         (RTU_Loaded): Code cleanup
1259         (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
1260         withed predefined units.
1261
1262         * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
1263         explicitly withed predefined units.
1264         Fix typo in comment
1265
1266         * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
1267         explicitly withed predefined units.
1268
1269 2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1270
1271         * ada-tree.def (DECL_STMT): Deleted.
1272         * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
1273         (DECL_STMT_VAR): Deleted.
1274         * decl.c: add_decl_stmt now add_decl_expr.
1275         * gigi.h: Likewise.
1276         * trans.c: Likewise.
1277         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
1278         (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
1279         (add_stmt): Only handle padded type here.
1280         (add_stmt_with_node): Allow gnat_node to not be present.
1281         (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
1282         (gnat_gimplify_stmt, case DECL_STMT): Deleted.
1283         (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
1284         make a SAVE_EXPR for the entire fat pointer.
1285         * utils.c (pushdecl): Walk a DECL_EXPR in global case.
1286         (create_index_type): Make a DECL_EXPR.
1287         (end_subprog_body): Don't call allocate_struct_function here but
1288         do clear cfun.
1289
1290 2004-06-25  Pascal Obry  <obry@gnat.com>
1291
1292         * makegpr.adb (Build_Library): Remove parameter Lib_Address and
1293         Relocatable from Build_Dynamic_Library call.
1294
1295         * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
1296         Relocatable are now synonym.
1297
1298         * Makefile.in: Use s-parame-mingw.adb on MingW platform.
1299
1300         * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
1301         Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
1302         call.
1303
1304         * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
1305         Lib_Address and Relocatable.
1306         (Default_DLL_Address): Removed.
1307
1308         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, 
1309         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb, 
1310         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
1311         (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
1312         (Default_DLL_Address): Removed.
1313
1314         * mlib-tgt-mingw.adb: Ditto.
1315         (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
1316
1317         * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
1318         the initial thread stack size.
1319
1320         * a-strmap.ads: Move package L to private part as it is not used in
1321         the spec. Found while reading code.
1322
1323 2004-06-25  Olivier Hainque  <hainque@act-europe.fr>
1324
1325         * tracebak.c: Introduce support for a GCC infrastructure based
1326         implementation of __gnat_backtrace.
1327
1328         * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
1329         any more. Use accessors instead. This eases maintenance and relaxes
1330         some alignment constraints.
1331         (_GNAT_Exception structure): Remove the Ada specific fields
1332         (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
1333         a-exexpr.adb.
1334         (is_handled_by, __gnat_eh_personality): Replace component references to
1335         exception structure by use of the new accessors.
1336
1337         * init.c (__gnat_initialize): Adjust comments to match the just
1338         reverted meaning of the -static link-time option.
1339
1340         * adaint.c (convert_addresses): Arrange not to define a stub for
1341         mips-irix any more, as we now want to rely on a real version from a
1342         recent libaddr2line.
1343
1344         * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
1345         the personality routine can use them and not have to rely on a C
1346         counterpart of the record anymore. This simplifies maintenance and
1347         relaxes the constraint of having Standard'Maximum_Alignment match
1348         BIGGEST_ALIGNMENT.
1349         Update comments, and add a section on the common header alignment issue.
1350
1351 2004-06-25  Geert Bosch  <bosch@gnat.com>
1352
1353         * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
1354         polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
1355
1356 2004-06-25  Robert Dewar  <dewar@gnat.com>
1357
1358         * gnat_rm.texi: Fix section on component clauses to indicate that the
1359         restriction on byte boundary placement still applies for bit packed
1360         arrays.
1361         Add comment on stack usage from Initialize_Scalars
1362
1363         * gnat_ugn.texi: Add documentation for -gnatyLnnn
1364
1365         * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
1366         limiting nesting level.
1367
1368         * usage.adb: Add line for -gnatyLnnn switch
1369
1370         * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
1371         sem_ch13.adb, exp_aggr.adb: Minor reformatting
1372
1373         * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
1374         type as well as on the subtype. This corrects a problem in freeze in
1375         setting alignments of atomic types.
1376
1377         * sem_eval.ads: Minor comment typo fixed
1378
1379         * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
1380         level.  Minor reformatting.
1381
1382         * fname.adb (Is_Predefined_File_Name): Require a letter after the
1383         minus sign. This means that file names like a--b.adb will not be
1384         considered predefined.
1385
1386         * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
1387         record Test new flag and give diagnostic for bad component clause.
1388         (Freeze_Entity): Set alignment of array from component alignment in
1389         cases where this is safe to do.
1390
1391         * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
1392         arrays.
1393
1394         * cstand.adb: (Create_Standard): Set alignment of String to 1
1395
1396         * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
1397
1398         * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
1399         code in the common constrained array cases.
1400
1401         * a-storio.adb: Change implementation to avoid possible alignment
1402         problems on machines requiring strict alignment (data should be moved
1403         as type Buffer, not type Elmt).
1404
1405         * checks.adb (Apply_Array_Size_Check): Improve these checks by
1406         killing the overflow checks which we really do not need (64-bits is
1407         enough).
1408
1409 2004-06-25  Vincent Celier  <celier@gnat.com>
1410
1411         * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
1412         (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
1413         inconditionally for the main project.
1414         (Recursive_Add_Archives.Add_Archive_Path): New procedure
1415         (Link_Executables.Check_Time_Stamps): New procedure
1416         (Link_Executables.Link_Foreign): New procedure
1417         Changes made to reduce nesting level of this package
1418         (Check): New procedure
1419         (Add_Switches): When not in quiet output, check that a switch is not
1420         the concatenation of several valid switches. If it is, issue a warning.
1421         (Build_Global_Archive): If the global archive is rebuilt, linking need
1422         to be done.
1423         (Compile_Sources): Rebuilding a library archive does not imply
1424         rebuilding the global archive.
1425         (Build_Global_Archive): New procedure
1426         (Build_Library): New name for Build_Archive, now only for library
1427         project
1428         (Check_Archive_Builder): New procedure
1429         (Create_Global_Archive_Dependency_File): New procedure
1430         (Gprmake): Call Build_Global_Archive before linking
1431         * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
1432         throughout.
1433         (Scan_Arg): Display the Copyright notice when -v is used
1434
1435         * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
1436         for gnatls.
1437
1438         * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
1439         COMPILE.
1440         Add new GNAT LIST qualifier /FILES=
1441         Added qualifier /DIRECTORY= to GNAT METRIC
1442         Added qualifier /FILES= to GNAT METRIC
1443         Added qualifier /FILES to GNAT PRETTY
1444
1445         * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
1446         to take into account both versions of the switch.
1447
1448         * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
1449         always be the last switch to the gcc driver. Disable switch storing so
1450         that switches automatically added by the gcc driver are not put in the
1451         ALI file.
1452
1453         * prj.adb (Project_Empty): Take into account changes in components of
1454         Project_Data.
1455
1456         * prj.ads (Languages_Processed): New enumaration value All_Languages.
1457
1458         * prj.ads (Project_Data): Remove component Lib_Elaboration: never
1459         used. Split Boolean component Ada_Sources_Present in two Boolean
1460         components Ada_Sources_Present and Other_Sources_Present.
1461         Minor reformatting
1462
1463         * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
1464         instead of Sources_Present.
1465         (Set_Ada_Paths.Add.Recursive_Add): Ditto
1466
1467         * prj-nmsc.adb: Minor reformatting
1468         (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
1469         (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
1470         Check_Ada_Naming_Scheme.
1471         Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
1472         throughout.
1473
1474         * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
1475         In_Limited.
1476         Make sure that all cycles where there is at least one "limited with"
1477         are detected.
1478         (Parse_Single_Project): New Boolean parameter In_Limited
1479
1480         * prj-proc.adb (Recursive_Check): When Process_Languages is
1481         All_Languages, call first Prj.Nmsc.Ada_Check, then
1482         Prj.Nmsc.Other_Languages_Check.
1483
1484         * prj-proc.adb (Process): Use Ada_Sources_Present or
1485         Other_Sources_Present (instead of Sources_Present) depending on
1486         Process_Languages.
1487
1488         * lang-specs.h: Keep -g and -m switches in the same order, and as the
1489         last switches.
1490
1491         * lib.adb (Switch_Storing_Enabled): New global Boolean flag
1492         (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
1493         False.
1494         (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
1495         False.
1496
1497         * lib.ads (Disable_Switch_Storing): New procedure.
1498
1499         * make.adb: Modifications to reduce nesting level of this package.
1500         (Check_Standard_Library): New procedure
1501         (Gnatmake.Check_Mains): New procedure
1502         (Gnatmake.Create_Binder_Mapping_File): New procedure
1503         (Compile_Sources.Compile): Add switch -gnatez as the last option
1504         (Display): Never display -gnatez
1505
1506         * Makefile.generic: 
1507         When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
1508
1509         * gnatcmd.adb (Check_Project): New function
1510         (Process_Link): New procedure to reduce nesting depth
1511         (Check_Files): New procedure to reduce the nesting depth.
1512         For GNAT METRIC, include the inherited sources in extending projects.
1513         (GNATCmd): When GNAT LS is invoked with a project file and no files,
1514         add the list of files from the sources of the project file. If this list
1515         is too long, put it in a temp text files and use switch -files=
1516         (Delete_Temp_Config_Files): Delete the temp text file that contains
1517         a list of source for gnatpp or gnatmetric, if one has been created.
1518         (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
1519         in the project file is too large, create a temporary text file that
1520         list them and pass it to the tool with "-files=<temp text file>".
1521         (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
1522
1523         * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
1524         generated file is in not in Ada.
1525
1526         * gnatls.adb: Remove all parameters And_Save that are no longer used.
1527         (Scan_Ls_Arg): Add processing for -files=
1528         (Usage): Add line for -files=
1529
1530         * g-os_lib.adb (On_Windows): New global constant Boolean flag
1531         (Normalize_Pathname): When on Windows and the path starts with a
1532         directory separator, make sure that the resulting path will start with
1533         a drive letter.
1534
1535         * clean.adb (Clean_Archive): New procedure
1536         (Clean_Project): When there is non-Ada code, delete the global archive,
1537         the archive dependency files, the object files and their dependency
1538         files, if they exist.
1539         (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
1540
1541 2004-06-25  Thomas Quinot  <quinot@act-europe.fr>
1542
1543         * sinfo.ads: Fix typo in comment.
1544
1545         * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
1546         the TSS for remote access-to-subprogram types, since these TSS are
1547         always present once the type has been analyzed.
1548         (RAS_E_Dereference): Same.
1549
1550         * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
1551         reference raises Bad_Attribute, mark the reference as analyzed so the
1552         node (and any children resulting from rewrites that could have occurred
1553         during the analysis that ultimately failed) is not analyzed again.
1554
1555         * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
1556
1557         * exp_dist.adb: Minor comment fix.
1558
1559         * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
1560         type is an anonymous access type, no unchecked deallocation of the
1561         allocated object can occur. If the object is controlled, attach it with
1562         a count of 1. This allows attachment to the Global_Final_List, if
1563         no other relevant list is available.
1564         (Get_Allocator_Final_List): For an anonymous access type that is
1565         the type of a discriminant or record component, the corresponding
1566         finalisation list is the one of the scope of the type.
1567
1568 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
1569
1570         * sem_ch3.adb (Replace_Type): When computing the signature of an
1571         inherited subprogram, use the first subtype if the derived type
1572         declaration has no constraint.
1573
1574         * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
1575         before applying previous optimization. Minor code cleanup.
1576
1577         * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
1578         placed at the beginning of an unpacked record without explicit
1579         alignment, a slice of it will be aligned and does not need a copy when
1580         used as an actual.
1581
1582 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
1583
1584         PR ada/15591
1585         PR ada/15592
1586         * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
1587         reference is written with expressions mimicking parameters.
1588
1589 2004-06-25  Hristian Kirtchev  <kirtchev@gnat.com>
1590
1591         PR ada/15589
1592         * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
1593         STEP 2a. The constraints of a full type declaration of a derived record
1594         type are checked for conformance with those declared in the
1595         corresponding private extension declaration. The message
1596         "not conformant with previous declaration" is emitted if an error is
1597         detected.
1598
1599 2004-06-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
1600
1601         * g-traceb.ads: Document the need for -E binder switch in the spec.
1602
1603         * g-trasym.ads: Document the need for -E binder switch in the spec.
1604
1605 2004-06-25  Jose Ruiz  <ruiz@act-europe.fr>
1606
1607         * sem_prag.adb: Add handling of pragma Detect_Blocking.
1608
1609         * snames.h, snames.ads, snames.adb: Add entry for pragma
1610         Detect_Blocking.
1611
1612         * s-rident.ads: Change reference to pragma Detect_Blocking.
1613
1614         * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
1615         system.ads.
1616
1617         * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
1618         to indicate whether pragma Detect_Blocking is active.
1619
1620         * par-prag.adb: Add entry for pragma Detect_Blocking.
1621
1622         * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
1623         of not handling WITH.
1624         Note that this replaces the previous update which was incorrect.
1625
1626 2004-06-25  Javier Miranda  <miranda@gnat.com>
1627
1628         * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
1629         use-clauses to have a clean environment.
1630
1631         * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
1632         the installation of the use-clauses to stablish a clean environment in
1633         case of compilation of a separate unit; otherwise the call to
1634         use_one_package is protected by the barrier Applicable_Use.
1635
1636         * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
1637         the installation of the use-clauses to stablish a clean environment in
1638         case of compilation of a separate unit.
1639         (End_Use_Clauses): Minor comment cleanup.
1640
1641 2004-06-25  Sergey Rybin  <rybin@act-europe.fr>
1642
1643         * gnat_ugn.texi: Add description of the gnatpp 'files' switch
1644
1645 2004-06-23  Richard Henderson  <rth@redhat.com>
1646
1647         * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
1648
1649 2004-06-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1650
1651         * decl.c (elaborate_expression, elaborate_expression_1): Arguments
1652         now bool instead of int.
1653         (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
1654         * trans.c (gnu_switch_label_stack): New function.
1655         (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
1656         elaboration of renamed entity returns.
1657         (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
1658         (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
1659         (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
1660         (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
1661         DECL_SIZE_UNIT and simplify variable-sized case.
1662         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
1663         Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
1664         (gnat_stabilize_reference): Add arg to COMPONENT_REF.
1665         (build_unit_elab): Disable for now.
1666         * utils.c (mark_visited): New function.
1667         (pushdecl): Walk tree to call it for global decl.
1668         (update_pointer_to): Update all variants of pointer and ref types.
1669         Add arg to COMPONENT_REF.
1670         (convert): Likewise.
1671         Move check for converting between variants lower down.
1672         * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
1673         (build_allocator): Don't force type of MODIFY_EXPR.
1674         (gnat_mark_addressable, case VAR_DECL): Unconditionally call
1675         put_var_into_stack.
1676
1677 2004-06-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1678
1679         * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
1680         * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
1681         * decl.c (gnat_to_gnu_entity): Also set force_global for imported
1682         subprograms.
1683         * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
1684         all callers changed.
1685         (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
1686         the way that EXIT_STMT finds the loop label.
1687         (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
1688         (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
1689         (add_stmt): Use annotate_with_locus insted of setting directly.
1690         (pos_to_construct): Set TREE_PURPOSE of each entry to index.
1691         (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
1692         * utils.c (gnat_install_builtins): Install __builtin_memcmp.
1693         (build_vms_descriptor): Add extra args to ARRAY_REF.
1694         (convert): Use VIEW_CONVERT_EXPR between aggregate types.
1695         * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
1696         New cases.
1697         (build_binary_op): Don't make explicit CONVERT_EXPR.
1698         Add extra rgs to ARRAY_REF.
1699
1700 2004-06-14  Pascal Obry  <obry@gnat.com>
1701
1702         * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
1703         Windows.  Fix minor typo.
1704
1705         * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
1706         which is now supported on Windows. With this implementation using the
1707         Library Project feature is no different on Windows than on UNIX.
1708
1709 2004-06-14  Vincent Celier  <celier@gnat.com>
1710
1711         * makegpr.adb (Compile_Sources): Nothing to do when there are no
1712         non-Ada sources.
1713
1714         * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
1715
1716         * prj-part.adb (Parse_Single_Project): When a duplicate project name is
1717         found, show the project name and the path of the previously parsed
1718         project file.
1719
1720 2004-06-14  Ed Schonberg  <schonberg@gnat.com>
1721
1722         * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
1723         array, avoid copying the actual before the call.
1724
1725 2004-06-14  Thomas Quinot  <quinot@act-europe.fr>
1726
1727         * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
1728         Instead, allocate memory on worst-case alignment assumptions, and then
1729         return an aligned address within the allocated zone.
1730
1731 2004-06-14  Robert Dewar  <dewar@gnat.com>
1732
1733         * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
1734         elab entities in predefined units in No_Run_Time_Mode.
1735         (Gen_Adainit_C): Same fix
1736         (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
1737         units in No_Run_Time_Mode
1738         (Gen_Elab_Calls_C): Same fix
1739
1740         * symbols-vms-alpha.adb: Minor reformatting
1741
1742         * g-debpoo.ads: Minor reformatting
1743
1744         * lib.adb (In_Same_Extended_Unit): Version working on node id's
1745
1746         * lib.ads (In_Same_Extended_Unit): Version working on node id's
1747
1748         * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
1749         working on nodes.
1750
1751         * make.adb: Minor reformatting
1752
1753         * par-ch12.adb: Minor reformatting
1754
1755         * par-prag.adb: Add dummy entry for pragma Profile_Warnings
1756
1757         * prj-strt.adb: Minor reformatting
1758
1759         * restrict.ads, restrict.adb: Redo handling of profile restrictions to
1760         be more general.
1761
1762         * sem_attr.adb: Minor reformatting
1763
1764         * sem_ch7.adb: Minor reformatting
1765
1766         * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
1767         for type in the same unit as the object declaration.
1768
1769         * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
1770         static string expressions and not just string literals.
1771         Minor reformatting
1772         (Set_Warning): Reset restriction warning flag for restriction pragma
1773         Implement pragma Profile_Warnings
1774         Implement pragma Profile (Restricted)
1775         Give obolescent messages for old restrictions and pragmas
1776
1777         * snames.h, snames.ads, snames.adb: Add new entry for pragma
1778         Profile_Warnings.
1779
1780         * s-rident.ads: Add declarations for restrictions required by profile
1781         Restricted and profile Ravenscar.
1782
1783         * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
1784
1785         * gnat_ugn.texi: Correct some missing entries in the list of GNAT
1786         configuration pragmas.
1787
1788 2004-06-11  Vincent Celier  <celier@gnat.com>
1789
1790         * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
1791         gnatsym, when symbol policy is Restricted.
1792
1793         * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
1794         gnatsym, when symbol policy is Restricted.
1795
1796         * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
1797         read the symbol file.
1798         (Finalize): Fail in symbol policy Restricted if a symbol in the original
1799         symbol file is not in the object files. Do not create a new symbol file
1800         when symbol policy is Restricted.
1801
1802         * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
1803         in Scng.
1804
1805         * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
1806         Restricted.
1807         (Usage): Line for new switch -R
1808
1809         * make.adb (Initialize): When the platform is not VMS, add the
1810         directory where gnatmake is invoked in the front of the path, if
1811         gnatmake is invoked with directory information.  Change the Scan_Args
1812         while loop to a for loop.
1813         (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
1814         if Depth is equal or greater than the proposed depth, there is nothing
1815         to do.
1816         (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
1817         instead of 0.
1818
1819         * prj.ads: Add new symbol policy Restricted.
1820
1821         * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
1822         with the new parameters Check_All_Labels and Case_Location.
1823
1824         * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
1825         (Library_Symbol_File needs to be defined).
1826
1827         * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
1828         and Case_Location If Check_All_Labels is True, check that all values of
1829         the string type are used, and output warning(s) if they are not.
1830
1831         * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
1832         and Case_Location.
1833
1834         * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
1835
1836         * gnat_ugn.texi: Update documentation about the library directory in
1837         Library Projects.
1838
1839         * makegpr.adb (Display_Command): In verbose mode, also display the
1840         value of the CPATH env var, when the compiler is gcc.
1841         (Initialize): Change the Scan_Args while loop to a for loop
1842         (Compile_Individual_Sources): Change directory to object directory
1843         before compilations.
1844
1845         * symbols.ads: New symbol policy Restricted.
1846
1847 2004-06-11  Olivier Hainque  <hainque@act-europe.fr>
1848
1849         * a-except.adb (Raise_After_Setup family): Remove. The responsibility
1850         is now taken care of internally in the Exception_Propagation package
1851         and does not require clients assistance any more.
1852
1853         * a-exexpr.adb (Is_Setup_And_Not_Propagated,
1854         Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
1855         functions. Helpers to maintain a predicate required in the handling of
1856         occurrence transfer between tasks.
1857         This is now handled internally and does not require clients assistance
1858         for the setup/propagate separation anymore.
1859         (Setup_Exception, Propagate_Exception): Simplify the Private_Data
1860         allocation strategy, handle the Setup_And_Not_Propagated predicate and
1861         document.
1862
1863         * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
1864         raise_after_setup, now that everything is handled internally within the
1865         setup/propagation engine.
1866
1867 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
1868
1869         * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
1870         Add additional conditions for the case of an actual being a simple
1871         name or literal. Improve inlining by preventing the generation
1872         of temporaries with a short lifetime (one use).
1873
1874 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
1875
1876         PR ada/15587
1877
1878         * einfo.ads: Minor comment updates for Has_Completion and
1879         E_Constant list of flags.
1880
1881         * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
1882         and constant redeclarations now set the Has_Completion flag of their
1883         defining identifiers.
1884
1885         * sem_ch7.adb (Analyze_Package_Spec): Add procedure
1886         Inspect_Deferred_Constant_Completion.
1887         Used to detect private deferred constants that have not been completed
1888         either by a constant redeclaration or pragma Import. Emits error message
1889         "constant declaration requires initialization expression".
1890
1891         * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
1892         completes a deferred constant.
1893
1894 2004-06-11  Geert Bosch  <bosch@gnat.com>
1895
1896         * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
1897
1898         * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
1899         calculating exponent for scaling denormal numbers.
1900         (Leading_Part): Properly raise Constraint_Error for zero or negative
1901         Adjustment.
1902         (Remainder): Properly raise Constraint_Error for zero divisor.
1903
1904 2004-06-11  Thomas Quinot  <quinot@act-europe.fr>
1905
1906         * sem_util.adb: Minor reformatting.
1907
1908         * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
1909         dereference when accessing the entry parameter record.
1910         (Check_Array_Type): Always check for possible implicit dereference.
1911         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
1912         Abort if a pointer is still present (denoting that an implicit
1913         dereference was left in the tree by the front-end).
1914
1915         * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
1916         dereference when accessing the entry parameter record.
1917         (Check_Array_Type): Always check for possible implicit dereference.
1918         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
1919         Abort if a pointer is still present (denoting that an implicit
1920         dereference was left in the tree by the front-end).
1921
1922 2004-06-11  Emmanuel Briot  <briot@act-europe.fr>
1923
1924         * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
1925         message, like the compiler itself does. Easier to parse the output.
1926
1927         * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
1928
1929         * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
1930         be base names, and not includes directories.
1931
1932 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
1933
1934         * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
1935         so that dependencies are properly taken into account by make.
1936
1937 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
1938
1939         PR ada/15622
1940         * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
1941         exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
1942
1943 2004-06-11  Jerome Guitton  <guitton@act-europe.fr>
1944
1945         * Makefile.in (install-gnatlib): install target-specific run-time files.
1946
1947         * Make-lang.in: Remove obsolete targets.
1948
1949 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
1950
1951         * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
1952         specification, to catch misuses of program unit names.
1953
1954         * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
1955         superfluous conversions in an instance.
1956
1957 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
1958
1959         PR ada/15403
1960
1961         * sem_ch12.adb (Save_References): If operator node has been folded to
1962         enumeration literal, associated_node must be discarded.
1963
1964 2004-06-11  Jose Ruiz  <ruiz@act-europe.fr>
1965
1966         * s-stchop-vxworks.adb: Add required pragma Convention to
1967         Task_Descriptor because it is updated by a C function.
1968
1969 2004-06-08  Arnaud Charlet  <charlet@act-europe.fr>
1970
1971         PR ada/15568
1972
1973         * Makefile.in: Remove target specific SO_OPT on IRIX
1974
1975 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1976
1977         * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
1978         (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
1979         (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
1980         (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
1981         (STMT_STMT, USE_STMT): New statement codes.
1982         (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
1983         * ada-tree.h: Reflect above changes.
1984         (struct tree_loop_id): Deleted.
1985         (union lang_tree_node, struct lang_decl, struct lang_type):
1986         Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
1987         and DECL_LANGUAGE_SPECIFIC to reflect these changes.
1988         (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
1989         (IS_ADA_STMT): New macro.
1990         * decl.c (annotate_decl_with_node): New function.
1991         (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
1992         (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
1993         Call add_stmt_with_node to do needed assignments.
1994         Add call to update setjmp buffer directly, not via EXPR_STMT.
1995         (maybe_variable): Argment GNAT_NODE deleted.
1996         * gigi.h (maybe_variable): Likewise.
1997         (make_transform, add_stmt_with_node, set_block_for_group): New.
1998         (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
1999         (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
2000         (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
2001         (set_lineno, set_lineno_from_sloc): Likewise.
2002         (record_code_position, insert_code_for): Likewise.
2003         (gnat_poplevel): Now returns void.
2004         (end_subprog_body): Now takes argument.
2005         * misc.c (cgraph.h, tree-inline.h): New includes.
2006         (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
2007         (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
2008         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
2009         (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
2010         (gnat_parse_file): Don't set immediate_size_expand.
2011         Call cgraph functions.
2012         (gnat_expand_expr): Remove most cases.
2013         (record_code_position, insert_code_for): Remove from here.
2014         * trans.c (toplev.h, tree-gimple.h): Now included.
2015         (discard_file_names): Deleted.
2016         (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
2017         (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
2018         (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
2019         (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
2020         (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
2021         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
2022         (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
2023         (set_block_for_group, add_stmt_list): Likewise.
2024         (start_stmt_group): Renamed from start_block_stmt.
2025         (end_stmt_group): Likewise, from end_block_stmt.
2026         (build_stmt_group): Likewise, from build_block_stmt, also add arg.
2027         (gigi): Don't set discard_file_names or call set_lineno.
2028         Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
2029         (tree_transform): Deleted, now renamed to be gnat_to_gnu.
2030         Numerous changes throughout to reflect new names and complete
2031         function-at-a-time implementation.
2032         (gnat_expand_stmt): Delete or comment out all cases.
2033         (process_inlined_subprograms): Use add_stmt.
2034         (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
2035         call set_lineno; also remove unneeded block handling.
2036         (process_type): Remove unneeded block handling.
2037         (build_unit_elab): Remove calls to deleted functions.
2038         * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
2039         (tree-dump.h): Likewise.
2040         (struct ada_binding_level): Add field jmpbuf_decl.
2041         (gnat_define_builtin, gnat_install_builtins): New.
2042         (gnat_gimplify_function, gnat_finalize): Likewise.
2043         (gnat_poplevel): No longer return BLOCK, set it instead.
2044         Remove code dealing with nested functions.
2045         (gnat_init_decl_processing): Also set size_type_node.
2046         Call gnat_install_builtins.
2047         (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
2048         (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
2049         Remove special-case for "main".
2050         (end_subprog_body): Add arg and rework for tree-ssa.
2051         (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
2052         Add case for BOOLEAN_TYPE.
2053         * utils2.c (rtl.h): Now include.
2054         (build_call_raise): Test Debug_Flag_NN directly.
2055         (build_call_alloc_dealloc): Don't use local stack allocation for now.
2056         (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
2057         (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
2058
2059 2004-06-07  Robert Dewar  <dewar@gnat.com>
2060
2061         * a-direct.ads, einfo.ads: Minor comment updates
2062
2063         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
2064         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
2065         s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
2066         s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
2067         s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
2068
2069         * s-interr-sigaction.adb: Remove unreferenced variable
2070         (Attached_Interrupts).  Minor reformatting.
2071         Avoid use of variable I (replace by J).
2072
2073         * par-ch10.adb: Fix text of one error message
2074
2075         * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
2076         exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
2077         exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
2078         opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
2079         par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
2080         par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
2081         sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
2082         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
2083         sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
2084         sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
2085         snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
2086         2005 support.
2087
2088 2004-06-07  Doug Rupp  <rupp@gnat.com>
2089
2090         * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
2091
2092         * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
2093
2094         * mlib-tgt-vms-ia64.adb: New file.
2095
2096         * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
2097         Add mlib-tgt-vms-ia64.adb
2098         Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
2099         Move to alpha specific ifeq section.
2100         Add VMS specific versions of symbols.adb
2101         Renaming of 5q vms files.
2102
2103         * 5qsystem.ads renamed to system-vms_64.ads.
2104
2105 2004-06-07  Vincent Celier  <celier@gnat.com>
2106
2107         * a-calend.ads: Add a GNAT Note comment after function Time_Of to
2108         explain that when a time of day corresponding to the non existing hour
2109         on the day switching to DST is specified, Split may return a different
2110         value for Seconds.
2111
2112         * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
2113         to GNAT PRETTY.
2114
2115         * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
2116         (Normalize_Pathname): Only resolve VMS logical names when on VMS.
2117
2118         * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
2119         to False.
2120         If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
2121         the linking options.
2122         (Build_Library.Check_Libs): On VMS, if there is a dependency on
2123         g-trasym.ads, set Gtrasymobj_Needed to True.
2124
2125         * prj-attr.adb: Add new package Metrics for gnatmetric
2126
2127         * prj-nmsc.adb (Record_Other_Sources): Put source file names in
2128         canonical case to take into account files with upper case characters on
2129         Windows.
2130         (Ada_Check): Load the reference symbol file name in the name buffer to
2131         check it, not the symbol file name.
2132
2133         * snames.ads, snames.adb: Add standard name Metrics (name of project
2134         file package for gnatmetric).
2135
2136         * vms_conv.ads: Add Metric to Comment_Type
2137
2138         * vms_conv.adb (Initialize): Add component dor Metric in Command_List
2139
2140         * vms_data.ads: Add qualifiers for GNAT METRIC
2141
2142         * makegpr.adb (Link_Executables): Take into account the switches
2143         specified in package Linker of the main project.
2144
2145 2004-06-07  Thomas Quinot  <quinot@act-europe.fr>
2146
2147         * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
2148         the index of the last element is Units.Last, not Units.Table'Last
2149         (which is usually not a valid index within the actually allocated
2150         storage for the table).
2151
2152         * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
2153         determines whether to generate a call to a checked storage pool
2154         Dereference action.
2155         Generate such a call only for a dereference that either comes from
2156         source, or is the result of rewriting a dereference that comes from
2157         source.
2158
2159 2004-06-07  Romain Berrendonner  <berrendo@act-europe.fr>
2160
2161         * bindgen.adb (Gen_Output_File): Add support for GAP builds.
2162
2163 2004-06-07  Eric Botcazou  <ebotcazou@act-europe.fr>
2164
2165         (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
2166         file level, elaborate the stride for inner dimensions in alignment
2167         units, not bytes.
2168
2169         * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
2170         in a comment.
2171
2172 2004-06-07  Javier Miranda  <miranda@gnat.com>
2173
2174         * exp_ch6.adb: Correct wrong modification in previous patch
2175
2176 2004-06-07  Vasiliy Fofanov  <fofanov@act-europe.fr>
2177
2178         * g-trasym.ads: Corrected comment to properly reflect level of support
2179         on VMS.
2180
2181 2004-06-07  Hristian Kirtchev  <kirtchev@gnat.com>
2182
2183         * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
2184         includes case of a variable referenced on the left hand side of an
2185         assignment, therefore remove redundant code. Variables and prefixes of
2186         indexed or selected components are now marked as referenced on left
2187         hand side. Warnings are now properly emitted when variables or prefixes
2188         are assigned but not read.
2189
2190         * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
2191         left hand side referenced variables. Private access types do not
2192         produce the warning "variable ... is assigned but never read".
2193         Add also additional checks to left hand side referenced variables.
2194         Aliased, renamed objects and access types do not produce the warning
2195         "variable ... is assigned but never read" since other entities may read
2196         the memory location.
2197
2198 2004-06-07  Jerome Guitton  <guitton@act-europe.fr>
2199
2200         * Makefile.in: In the powerpc/vxworks-specific section, restore
2201         EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
2202         by mistake).
2203
2204 2004-06-07  Ed Schonberg  <schonberg@gnat.com>
2205
2206         * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
2207         predefined operators.
2208         Removes spurious type errors from g-trasym-vms.adb.
2209
2210         * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
2211         distinct from the operator appearing in the source, call appropriate
2212         routine to insert conversions when needed, and complete resolution of
2213         node.
2214         (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
2215         interpretations for rewritten right operand.
2216         (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
2217         the other operand is overloaded and the context is a type conversion.
2218
2219 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2220
2221         * ada-tree.def (BLOCK_STMT): Now has two operands.
2222         (BREAK_STMT): New.
2223
2224         * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
2225
2226         * gigi.h: (gnat_poplevel): Now returns a tree.
2227
2228         * trans.c (end_block_stmt): Add arg; all callers changed.
2229         (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
2230         (start_block_stmt): Clear BLOCK_STMT_BLOCK.
2231         (add_stmt): Set TREE_TYPE.
2232         (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
2233         (gnat_expand_stmt, case BREAK_STMT): New case.
2234
2235         * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
2236
2237 2004-06-07  Jose Ruiz  <ruiz@act-europe.fr>
2238
2239         * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
2240         procedure Set_Stack_Size that is not needed.
2241
2242 2004-06-07  Sergey Rybin  <rybin@act-europe.fr>
2243
2244         * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
2245         used for gnatpp input file and for the files upon which it depends
2246
2247 2004-06-07  Ben Brosgol  <brosgol@gnat.com>
2248
2249         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
2250
2251 2004-06-07  Arnaud Charlet  <charlet@act-europe.fr>
2252
2253         * gnatvsn.ads: Bump version numbers appropriately.
2254         Add new build type.
2255
2256 2004-06-07  Pascal Obry  <obry@gnat.com>
2257
2258         * gnat_ugn.texi: Improve comments about imported names and link names
2259         on Windows. Add a note about the requirement to use -k gnatdll's option
2260         when working with a DLL which has stripped stdcall symbols (no @nn
2261         suffix).
2262
2263 2004-05-27  Vincent Celier  <celier@gnat.com>
2264
2265         * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
2266         COMMENTS_LAYOUT=UNTOUCHED
2267
2268         * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to
2269         symbols-vms-alpha.adb
2270
2271 2004-05-27  Thomas Quinot  <quinot@act-europe.fr>
2272
2273         * sem.ads: Clarify documentation on checks suppression.
2274
2275         * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.
2276
2277 2004-05-27  Ed Schonberg  <schonberg@gnat.com>
2278
2279         * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in
2280         the case of multiple derivations.
2281         (Is_Object_Reference): For a selected component, verify that the prefix
2282         is itself an object and not a value.
2283
2284         * sem_ch12.adb (Same_Instantiated_Constant): New name for
2285         Same_Instantiated_Entity.
2286         (Same_Instantiated_Variable): Subsidiary to
2287         Check_Formal_Package_Instance, to recognize actuals for in-out generic
2288         formals that are obtained from a previous formal package.
2289         (Instantiate_Subprogram_Body): Emit proper error when
2290         generating code and the proper body of a stub is missing.
2291
2292         * sem_ch4.adb (Remove_Address_Interpretations): If the operation still
2293         has a universal interpretation, do the disambiguation here.
2294
2295         * exp_ch4.adb (Expand_N_Type_Conversion,
2296         Expand_N_Unchecked_Type_Conversion): Special handling when target type
2297         is Address, to avoid typing anomalies when Address is a visible integer
2298         type.
2299
2300         * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address
2301         to determine whether a subprogram should not be marked Pure, even when
2302         declared in a pure package.
2303
2304 2004-05-27  Jose Ruiz  <ruiz@act-europe.fr>
2305
2306         * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.
2307
2308         * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length
2309         Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.
2310         Update the documentation about the Ravenscar profile, following the
2311         definition found in AI-249.
2312
2313         * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when
2314         setting the Profile (Ravenscar). This must be done in addition to
2315         setting the required restrictions.
2316
2317         * rtsfind.ads: Add the set of operations defined in package
2318         Ada.Interrupts.
2319
2320         * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment
2321         restriction.
2322
2323 2004-05-27  Eric Botcazou  <ebotcazou@act-europe.fr>
2324
2325         lang-specs.h: Always require -c or -S and always redirect to /dev/null
2326         if -gnatc or -gnats is passed.
2327
2328 2004-05-27  Hristian Kirtchev  <kirtchev@gnat.com>
2329
2330         * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as
2331         a significant reference. Warnings are now properly emitted when a
2332         discriminated type is not referenced.
2333
2334         * lib-xref.adb (Generate_Reference): A deferred constant completion,
2335         record representation clause or record type discriminant does not
2336         produce a reference to its corresponding entity. Warnings are now
2337         properly emitted when deferred constants and record types are not
2338         referenced.
2339
2340 2004-05-27  Geert Bosch  <bosch@gnat.com>
2341
2342         * Makefile.in: Use long version of libm routines on ia64 gnu/linux.
2343         Fixes ACATS Annex G tests.
2344
2345 2004-05-27  Robert Dewar  <dewar@gnat.com>
2346
2347         * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not
2348         handling WITH
2349
2350 2004-05-27  Arnaud Charlet  <charlet@act-europe.fr>
2351
2352         * s-interr.adb (Server_Task): Take into account case of early return
2353         from sigwait under e.g. linux.
2354
2355 2004-05-27  Sergey Rybin  <rybin@act-europe.fr>
2356
2357         * gnat_ugn.texi: Add description for the new gnatpp options:
2358          -rnb - replace the original source without creating its backup copy
2359          -c0 - do not format comments
2360
2361 2004-05-24  Geert Bosch  <bosch@gnat.com>
2362
2363         * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi
2364         with 192 bits of precision, sufficient to reduce a double-extended
2365         arguments X with a maximum relative error of T'Machine_Epsilon, for X
2366         in -2.0**32 .. 2.0**32.
2367         (Cos, Sin):  Always reduce arguments of 1/4 Pi or larger, to prevent
2368         reduction by the processor, which only uses a 68-bit approximation of
2369         Pi.
2370         (Tan): Always reduce arguments and compute function either using
2371         the processor's fptan instruction, or by dividing sin and cos as needed.
2372
2373 2004-05-24  Doug Rupp  <rupp@gnat.com>
2374
2375         * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid
2376         gcc error on 32/64 bit VMS.
2377
2378 2004-05-24  Olivier Hainque  <hainque@act-europe.fr>
2379
2380         * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,
2381         since this is what we get for stack overflows although not documented
2382         as such.
2383         Document the issues which may require adjustments to our signal
2384         handlers.
2385
2386 2004-05-24  Ed Schonberg  <schonberg@gnat.com>
2387
2388         * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the
2389         enclosing dynamic scope if the instantiation is within a generic unit.
2390
2391 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
2392
2393         * exp_dbug.ads: Fix typo.
2394
2395         * Makefile.in: s-osinte-linux-ia64.ads was misnamed.
2396         Rename it to its proper name: system-linux-ia64.ads
2397         (stamp-gnatlib1): Remove extra target specific run time files when
2398         setting up the rts directory.
2399
2400 2004-05-24  Javier Miranda  <miranda@gnat.com>
2401
2402         * einfo.ads, einfo.adb (Limited_Views): Removed.
2403         (Limited_View): New attribute that replaces the previous one. It is
2404         now a bona fide package with the limited-view list through the
2405         first_entity and first_private attributes.
2406
2407         * sem_ch10.adb (Install_Private_With_Clauses): Give support to
2408         limited-private-with clause.
2409         (Install_Limited_Withed_Unit): Install the private declarations of a
2410         limited-private-withed package. Update the installation of the shadow
2411         entities according to the new structure (see Build_Limited_Views)
2412         (Build_Limited_Views): Replace the previous implementation of the
2413         limited view by a package entity that references the first shadow
2414         entity plus the first shadow private entity (required for limited-
2415         private-with clause)
2416         (New_Internal_Shadow_Entity): Code cleanup.
2417         (Remove_Limited_With_Clause): Update the implementation to undo the
2418         new work carried out by Build_Limited_Views.
2419         (Build_Chain): Complete documentation.
2420         Replace Ada0Y by Ada 0Y in comments
2421         Minor reformating
2422
2423         * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access
2424         types the level of accessibility depends on the enclosing type
2425         declaration.
2426
2427         * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow
2428         entities. Complete documentation of previous change.
2429
2430 2004-05-24  Robert Dewar  <dewar@gnat.com>
2431
2432         * namet.adb: Minor reformatting
2433         Avoid use of name I (replace by J)
2434         Minor code restructuring
2435
2436         * sem_ch6.adb: Minor reformatting
2437
2438         * lib-writ.adb: Do not set restriction as active if this is a
2439         Restriction_Warning case.
2440
2441         * sem_prag.adb: Reset restriction warning flag if real pragma
2442         restriction encountered.
2443
2444         * s-htable.adb: Minor reformatting
2445         Change rotate count to 3 in Hash (improves hash for small strings)
2446
2447         * 5qsystem.ads: Add comments for type Address (no literals allowed).
2448
2449         * gnat_ugn.texi: Add new section of documentation "Code Generation
2450         Control", which describes the use of -m switches.
2451
2452 2004-05-24  Eric Botcazou  <ebotcazou@act-europe.fr>
2453
2454         trans.c (tree_transform) <N_Identifier>: Do the dereference directly
2455         through the DECL_INITIAL for renamed variables.
2456
2457 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
2458
2459         * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads
2460
2461 2004-05-19  Joel Brobecker  <brobecker@gnat.com>
2462
2463         * exp_dbug.ads: Correct comments concerning handling of overloading,
2464         since we no longer use $ anymore.
2465
2466 2004-05-19  Sergey Rybin  <rybin@act-europe.fr>
2467
2468         * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
2469         ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
2470         with illegal subunits.
2471
2472 2004-05-19  Ed Schonberg  <schonberg@gnat.com>
2473
2474         * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
2475         body with front-end inlining enabled, check whether an inline pragma
2476         appears immediately after the body and applies to it.
2477
2478         * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
2479         enabled and the pragma appears after the body of the subprogram.
2480
2481 2004-05-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2482
2483         Part of function-at-a-time conversion
2484
2485         * misc.c (adjust_decl_rtl): Deleted.
2486         (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
2487         Define.
2488
2489         * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
2490         (add_decl_stmt, add_stmt, block_has_vars): New functions.
2491         (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.
2492
2493         * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
2494         when making a decl.
2495         (gnat_to_gnu_entity): Likewise.
2496         Use add_stmt to update setjmp buffer.
2497         Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
2498         flush_addressof.
2499         No longer call adjust_decl_rtl.
2500         (DECL_INIT_BY_ASSIGN_P): New macro.
2501         (DECL_STMT_VAR): Likewise.
2502
2503         * trans.c (gigi): Call start_block_stmt to make the outermost
2504         BLOCK_STMT.
2505         (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
2506         Call start_block_stmt and end_block_stmt temporarily.
2507         Use gnat_expand_stmt instead of expand_expr_stmt.
2508         (add_decl_stmt): New function.
2509         (tree_transform): Call it.
2510         (add_stmt): Also emit initializing assignment for DECL_STMT if needed.
2511         (end_block_stmt): Set type and NULL_STMT.
2512         (gnat_expand_stmt): Make recursize call instead of calling
2513         expand_expr_stmt.
2514         (gnat_expand_stmt, case DECL_STMT): New case.
2515         (set_lineno_from_sloc): Do nothing if global.
2516         (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
2517         (start_block_stmt, add_stmt, end_block_stmt): New functions.
2518         (build_block_stmt): Call them.
2519         (gnat_to_code): Don't expand NULL_STMT.
2520         (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
2521         args.
2522         (tree_transform): Likewise.
2523         (tree_transform, case N_Null_Statement): Return NULL_STMT.
2524         (gnat_expand_stmt, case NULL_STMT): New case.
2525         (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
2526         IF_STMT_TRUE.
2527
2528         * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
2529         TREE_ADDRESSABLE.
2530
2531         * utils.c (create_var_decl): Do not call expand_decl or
2532         expand_decl_init.
2533         Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
2534         Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
2535         here.
2536         (struct e_stack): Add chain_next to GTY.
2537         (struct binding_level): Deleted.
2538         (struct ada_binding_level): New struct.
2539         (free_block_chain): New.
2540         (global_binding_level, clear_binding_level): Deleted.
2541         (global_bindings_p): Rework to see if no chain.
2542         (kept_level_p, set_block): Deleted.
2543         (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
2544         new data structure and work directly on BLOCK node.
2545         (gnat_poplevel): Similarly.
2546         (get_decls): Look at BLOCK_VARS.
2547         (insert_block): Work directly on BLOCK node.
2548         (block_has_var): New function.
2549         (pushdecl): Rework for new binding structures.
2550         (gnat_init_decl_processing): Rename and rework calls to pushlevel and
2551         poplevel.
2552         (build_subprog_body): Likewise.
2553         (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.
2554
2555         * ada-tree.def (DECL_STMT, NULL_STMT): New codes.
2556
2557         * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
2558         (DECL_STMT_VAR): Likewise.
2559
2560 2004-05-17  Robert Dewar  <dewar@gnat.com>
2561
2562         * restrict.ads, restrict.adb (Process_Restriction_Synonym): New
2563         procedure
2564
2565         * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
2566         of restriction synonyums by using
2567         Restrict.Process_Restriction_Synonyms.
2568
2569         * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym
2570
2571         * s-restri.ads (Tasking_Allowed): Correct missing comment
2572
2573         * s-rident.ads: Add entries for restriction synonyms
2574
2575         * ali.adb: Fix some problems with badly formatted ALI files that can
2576         result in infinite loops.
2577
2578         * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
2579         s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
2580         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
2581         s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
2582         s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
2583         s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
2584         s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
2585         s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
2586         s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
2587         a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
2588         exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
2589         s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
2590         s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
2591         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
2592         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
2593         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
2594         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
2595         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
2596         s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
2597         s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
2598         to Task_Id (minor cleanup).
2599
2600 2004-05-17  Vincent Celier  <celier@gnat.com>
2601
2602         * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
2603         directory separator.
2604
2605         * prj-proc.adb (Recursive_Process): Inherit attribute Languages from
2606         project being extended, if Languages is not declared in extending
2607         project.
2608
2609 2004-05-17  Javier Miranda  <miranda@gnat.com>
2610
2611         * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
2612         limited view of a visible sibling.
2613
2614 2004-05-14  Robert Dewar  <dewar@gnat.com>
2615
2616         * gnat_ugn.texi: Minor change to -gnatS documentation
2617
2618         * sprint.adb: Remove some instances of Assert (False) and for this
2619         purpose replace them by output of a ??? string.
2620
2621         * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
2622         Assert (False).
2623
2624         * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
2625         flag processing. This was suppressing required dependencies in
2626         No_Run_Time mode and is not needed since the binder does not generate
2627         references for things in libgnat anyway.
2628
2629         * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
2630         warning.
2631
2632 2004-05-14  Thomas Quinot  <quinot@act-europe.fr>
2633
2634         * gnat_ugn.texi: Document AIX-specific issue with initialization of
2635         resolver library.
2636
2637         * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
2638         action for the case of an actual parameter in an init proc call.
2639
2640 2004-05-14  Ed Schonberg  <schonberg@gnat.com>
2641
2642         * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
2643         subtype, check visible entities in base type.
2644
2645         * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
2646         actions if the object is a renaming.
2647
2648         * sem_ch12.adb (Same_Instantiated_Entity): Predicate for
2649         Check_Formal_Package_Instance, to determine more precisely when the
2650         formal and the actual denote the same entity.
2651
2652 2004-05-14  Javier Miranda  <miranda@gnat.com>
2653
2654         * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262
2655
2656         * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
2657         corresponding to a private_with must be removed from visibility; it
2658         will be made visible later, just before we analyze the private part of
2659         the package.
2660         (Check_Private_Child_Unit): Allow private_with clauses in public
2661         siblings.
2662         (Install_Siblings): Make visible the private entities of private-withed
2663         siblings.
2664         (Install_Withed_Unit): Do not install the private withed unit if we
2665         are compiling a package declaration and the Private_With_OK flag was
2666         not set by the caller. These declarations will be installed later,
2667         just before we analyze the private part of the package.
2668
2669         * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
2670         during the evaluation of the expression that initializes the object,
2671         decorate it with the expected type to avoid cascade errors.
2672         Code cleanup.
2673
2674         * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
2675         subprogram we have to install the private_with clauses after its
2676         specification has been analyzed (as documented in AI-262.TXT).
2677
2678         * sem_ch8.adb (Has_Private_With): New function. Determines if the
2679         current compilation unit has a private with on a given entity.
2680         (Find_Direct_Name): Detect the Beaujolais problem described in
2681         AI-262.TXT
2682
2683         * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
2684         provides the functionality of the function Is_Ancestor that was
2685         previously available in sem_ch10. It has been renamed to avoid
2686         overloading.
2687
2688         * sprint.adb (Sprint_Node_Actual): Print limited_with clauses
2689
2690 2004-05-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2691
2692         * utils.c (build_vms_descriptor): Use SImode pointers.
2693
2694 2004-05-14  Vasiliy Fofanov  <fofanov@act-europe.fr>
2695
2696         * gnat_ugn.texi: Revised chapter "GNAT and Libraries".
2697
2698 2004-05-14  GNAT Script  <nobody@gnat.com>
2699
2700         * Make-lang.in: Makefile automatically updated
2701
2702 2004-05-14  Arnaud Charlet  <charlet@act-europe.fr>
2703
2704         Renaming of target specific files for clarity
2705
2706         * Makefile.in: Rename GNAT target specific files.
2707
2708         * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
2709         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,
2710         3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,
2711         3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,
2712         3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,
2713         3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,
2714         42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,
2715         4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,
2716         4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,
2717         4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,
2718         4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,
2719         4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,
2720         51osinte.adb, 51osinte.ads, 51system.ads,
2721         52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,
2722         55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,
2723         56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,
2724         56tpopsp.adb, 57system.ads, 58system.ads,
2725         5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,
2726         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
2727         5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,
2728         5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,
2729         5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,
2730         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
2731         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,
2732         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
2733         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
2734         5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,
2735         5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,
2736         5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,
2737         5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,
2738         5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,
2739         5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,
2740         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
2741         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
2742         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
2743         5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,
2744         5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,
2745         5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,
2746         5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,
2747         5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,
2748         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
2749         5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,
2750         5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,
2751         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
2752         5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,
2753         5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
2754         5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,
2755         5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,
2756         5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,
2757         5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,
2758         5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,
2759         5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,
2760         5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,
2761         7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,
2762         7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,
2763         7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,
2764         7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.
2765
2766         * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,
2767         a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,
2768         a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,
2769         a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,
2770         a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,
2771         a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,
2772         a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,
2773         a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,
2774         a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
2775         a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,
2776         g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,
2777         g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,
2778         g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,
2779         g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,
2780         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,
2781         g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
2782         g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,
2783         g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,
2784         interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,
2785         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,
2786         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
2787         mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,
2788         s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,
2789         s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,
2790         s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,
2791         s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,
2792         s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,
2793         s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,
2794         s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,
2795         s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,
2796         s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,
2797         s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,
2798         s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,
2799         s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,
2800         s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,
2801         s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
2802         s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,
2803         s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,
2804         s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,
2805         s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,
2806         s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,
2807         s-osinte-vms.ads, s-osinte-vxworks.adb,
2808         s-osinte-vxworks.ads, s-osprim-mingw.adb,
2809         s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,
2810         s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,
2811         s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,
2812         s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,
2813         s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,
2814         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
2815         s-stchop-vxworks.adb, s-taprop-dummy.adb,
2816         s-taprop-hpux-dce.adb, s-taprop-irix.adb,
2817         s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
2818         s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,
2819         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
2820         s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,
2821         s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,
2822         s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,
2823         s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,
2824         s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,
2825         s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,
2826         s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,
2827         s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,
2828         s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,
2829         s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,
2830         s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,
2831         s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,
2832         s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
2833         s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,
2834         symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,
2835         system-hpux.ads, system-interix.ads, system-irix-n32.ads,
2836         system-irix-o32.ads, system-linux-x86_64.ads,
2837         system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
2838         system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,
2839         system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,
2840         system-unixware.ads, system-vms.ads, system-vms-zcx.ads,
2841         system-vxworks-alpha.ads, system-vxworks-m68k.ads,
2842         system-vxworks-mips.ads, system-vxworks-ppc.ads,
2843         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files
2844         above.
2845
2846 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
2847
2848         * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
2849
2850 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
2851
2852         Merge from tree-ssa-20020619-branch.
2853
2854         * config-lang.in (boot_language, build_by_default): Set
2855         to no.
2856         * utils.c (unchecked_convert): Use OEP_ONLY_CONST.
2857         (max_size): Add static chain op for call_expr.
2858
2859 2004-05-12  Richard Sandiford  <rsandifo@redhat.com>
2860
2861         PR target/15331
2862         * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.
2863
2864 2004-05-11  Roger Sayle  <roger@eyesopen.com>
2865
2866         * utils.c (max_size): Use MIN_EXPR to find the minimum value of a
2867         COND_EXPR.
2868
2869 2004-05-10  Doug Rupp  <rupp@gnat.com>
2870
2871         * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
2872         system.aux_dec.
2873
2874         * s-auxdec.ads: Add Short_Address subtype (moved here from System).
2875
2876         * Makefile.in: [VMS]: Add translation for 5qauxdec.ads.
2877
2878         * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
2879         Fixes undefined symbols in IA64 gnatlib.
2880
2881         * 5vinmaop.adb: Reference s-auxdec for Short_Address.
2882
2883         * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
2884         Short_Address). This will be moved to system.auxdec.
2885
2886 2004-05-10  Thomas Quinot  <quinot@act-europe.fr>
2887
2888         * sem_util.adb: Replace test for presence of a node that is always
2889         present with a call to Discard_Node.
2890
2891         * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
2892         Analyze on the library unit node after generation of distribution stub
2893         constructs.  The call was a no-op because Unit_Node has already been
2894         Analyzed, and the tree fragments for the distribution stubs are
2895         analyzed as they are inserted in Exp_Dist.
2896         Update comment regarding to distribution stubs to reflect that we
2897         do not generate stub in separate files anymore.
2898
2899         * einfo.ads: Clarify the fact that a tagged private type has the
2900         E_Record_Type_With_Private Ekind.
2901
2902         * erroutc.adb: Minor reformatting
2903
2904         * erroutc.ads (Max_Msg_Length): Increase to cover possible larger
2905         values if line length is increased using -gnatyM (noticed during code
2906         reading).
2907
2908         * eval_fat.adb: Minor reformatting
2909         Put spaces around exponentiation operator
2910
2911 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
2912
2913         PR ada/15005
2914         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
2915         has been rewritten as an explicit dereference, retrieve type of
2916         original node to check for possibly unconstrained record type.
2917
2918 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
2919
2920         * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
2921         overriding, use the operation of the parent unconditionally.
2922
2923         * sem_ch4.adb (Remove_Address_Interpretations): Remove address
2924         operation when either operand is a literal, to avoid further
2925         ambiguities.
2926
2927         * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
2928         overridden by a previous explicit declaration, mark the previous entity
2929         as overriding.
2930
2931         * sem_disp.adb (Check_Dispatching_Operation): New predicate
2932         Is_Visibly_Controlled, to determine whether a declaration of a
2933         primitive control operation for a derived type overrides an inherited
2934         one. Add warning if the explicit declaration does not override.
2935
2936 2004-05-10  Vincent Celier  <celier@gnat.com>
2937
2938         * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
2939         some cases when the sources are no longer present.
2940
2941         * make.adb (Collect_Arguments): Fail if an external source, not part
2942         of any project need to be compiled, when switch -x has not been
2943         specified.
2944
2945         * makeusg.adb: Document new switch -x
2946
2947         * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
2948         defaulted to False.
2949
2950         * switch-m.adb (Scan_Make_Switches): New switch -x
2951
2952         * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
2953         gnatmake switch -x.
2954
2955         * gnat_ugn.texi: Document new gnatmake switch -x
2956
2957 2004-05-10  Eric Botcazou  <ebotcazou@act-europe.fr>
2958
2959         * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.
2960
2961         * utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
2962         (process_attributes): Likewise.
2963
2964 2004-05-10  Joel Brobecker  <brobecker@gnat.com>
2965
2966         * s-inmaop.ads: Fix spelling mistake in one of the comments.
2967
2968 2004-05-10  Robert Dewar  <dewar@gnat.com>
2969
2970         * gnat_ugn.texi: Document that for config pragma files, the maximum
2971         line length is always 32767.
2972
2973         * gnat_rm.texi: For pragma Eliminate, note that concatenation of string
2974         literals is now allowed.
2975
2976         * gnat-style.texi: Remove statement about splitting long lines before
2977         an operator rather than after, since we do not follow this rule at all.
2978         Clarify rule (really lack of rule) for spaces around exponentiation
2979
2980         * sem_elim.adb: Allow concatenation of string literals as well as a
2981         single string literal for pragma arguments.
2982
2983         * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function
2984
2985         * a-textio.adb (Terminate_Line): Do not add line feed if nothing
2986         written for append case.
2987
2988         * frontend.adb: Changes to avoid checking max line length in config
2989         pragma files.
2990
2991         * g-os_lib.ads: Minor reformatting
2992
2993         * mlib-utl.adb: Do not define Max_Line_Length locally (definition was
2994         wrong in any case. Instead use standard value. Noticed during code
2995         reading.
2996
2997         * opt.ads (Max_Line_Length): New field, used to implement removal of
2998         limitation on length of lines when scanning config pragma files.
2999
3000         * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
3001         makeutl.ads, makeutl.adb: Minor reformatting
3002
3003         * scn.adb: Do not check line length while scanning config pragma files
3004         Do not check line length while scanning out license information
3005
3006         * scng.adb: Changes to avoid line length checks while parsing config
3007         pragma files.
3008
3009 2004-05-10  GNAT Script  <nobody@gnat.com>
3010
3011         * Make-lang.in: Makefile automatically updated
3012
3013 2004-05-05  Arnaud Charlet  <charlet@act-europe.fr>
3014
3015         * osint.adb (Find_Program_Name): Fix handling of VMS version
3016         number.
3017
3018 2004-05-05  Emmanuel Briot  <briot@act-europe.fr>
3019
3020         * g-os_lib.ads (Invalid_Time): New constant
3021
3022         * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now
3023         return OS_Time instead of time_t to match what is imported by Ada.
3024         Now return -1 if the file doesn't exist, instead of a random value
3025
3026 2004-05-05  Robert Dewar  <dewar@gnat.com>
3027
3028         * usage.adb: Add line for -gnatR?s switch
3029
3030         * sem_ch13.adb, exp_ch2.adb: Minor reformatting
3031
3032         * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size
3033         and for Match (Data_First, Data_last)
3034
3035         * lib-writ.adb (Write_With_Lines): Ensure that correct index number is
3036         written when we are dealing with multi-unit files.
3037
3038 2004-05-05  Jerome Guitton  <guitton@act-europe.fr>
3039
3040         * Makefile.in: Remove unused targets and variables.
3041
3042 2004-05-05  Vincent Celier  <celier@gnat.com>
3043
3044         * switch-m.adb: New gnatmake switch -eI
3045
3046         * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and
3047         of new gnatmake switch -eInnn.
3048
3049         * makegpr.adb: Take into account new parameters Index and Src_Index in
3050         Prj.Util.
3051
3052         * clean.adb: Implement support for multi-unit sources, including new
3053         switch -i.
3054
3055         * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter
3056         Src_Index.
3057
3058         * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0
3059         (Extract_From_Q): New out parameter Index
3060         (Mark, Is_Marked): Subprograms moved to Makeutl
3061         (Switches_Of): New parameter Source_Index
3062         (Add_Switch): New parameter Index
3063         (Check): New parameter Source_Index
3064         (Collect_Arguments): New parameter Source_Index
3065         (Collect_Arguments_And_Compile): New parameter Source_Index
3066         (Compile): New parameter Source_Index
3067         Put subprograms in alphabetical order
3068         Add support for multi-source sources, including in project files.
3069
3070         * makeutl.ads, makeutl.adb (Unit_Index_Of): New function
3071         (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from
3072         Make.
3073
3074         * makeusg.adb: New gnatmake switch -eInnn
3075
3076         * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to
3077         Prj.Util.Value_Of.
3078
3079         * opt.ads (Main_Index): New variable, defaulted to 0.
3080
3081         * osint.ads, osinte.adb (Add_File): New parameter Index
3082         (Current_Source_Index): New function
3083
3084         * prj.adb: Take into account new components Index and Src_Index
3085
3086         * prj.ads (String_Element): New component Index
3087         (Variable_Value): New component Index
3088         (Array_Element): New component Src_Index
3089
3090         * prj-attr.adb: Indicate that optional index may be specified for
3091         attributes Main, Executable, Spec, Body and some of Switches.
3092
3093         * prj-attr.ads (Attribute_Kind): New values for optional indexes
3094         (Attribute_Record): New component Optional_Index
3095
3096         * prj-com.ads (File_Name_Data): New component Index
3097
3098         * prj-dect.adb (Parse_Attribute_Declaration): Process optional index
3099
3100         * prj-env.adb (Put): Output optional index
3101
3102         * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and
3103         attributes Spec and Body.
3104
3105         * prj-nmsc.adb: Process optional indexes
3106
3107         * prj-pp.adb: Ouput "at" for optional indexes
3108
3109         * prj-proc.adb: Take into account optional indexes
3110
3111         * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter
3112         Optional_Index. For string literal,
3113         process optional index when Optional_Index is True.
3114         (Parse_Expresion): New Boolean parameter Optional_Index
3115
3116         * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function
3117         (Set_Source_Index_Of): New procedure
3118
3119         * prj-util.adb (Executable_Of, Value_Of): Take into account optional
3120         index.
3121
3122         * prj-util.ads (Executable_Of): New parameter Index
3123         (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):
3124         New parameter Src_Index, defaulted to 0.
3125
3126 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
3127
3128         PR ada/15257
3129         * sem_ch3.adb (Access_Definition): If this is an access parameter
3130         whose designated type is imported through a limited_with clause, do
3131         not add the enclosing subprogram to the list of private dependents of
3132         the type.
3133
3134 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
3135
3136         PR ada/15258
3137         * sem_ch6.adb (Base_Types_Match): True if one type is imported through
3138         a limited_with clause, and the other is its non-limited view.
3139
3140 2004-05-05  Thomas Quinot  <quinot@act-europe.fr>
3141
3142         * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
3143
3144         * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
3145         exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
3146         Stand.Boolean_Literals to produce references to entities
3147         Standard_False and Standard_True from compile-time computed boolean
3148         values.
3149
3150         * stand.ads (Boolean_Literals): New variable, provides the entity
3151         values for False and True, for use by the expander.
3152
3153 2004-05-05  Doug Rupp  <rupp@gnat.com>
3154
3155         * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype
3156         5vinmaop.adb: Unchecked convert Short_Address vice Address
3157
3158         * adaint.c, raise.c: Caste CRTL function return value
3159         to avoid gcc error on 32/64 bit IVMS.
3160
3161         * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and
3162         target = IA64/VMS.
3163
3164         * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.
3165
3166         * 5qsystem.ads (Address): Declare as Long_Integer
3167         (Short_Address): Declare as 32 bit subtype of Address
3168         Declare  abstract address operations to avoid gratuitous ambiguities.
3169
3170 2004-05-05  Jose Ruiz  <ruiz@act-europe.fr>
3171
3172         * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)
3173         instead of the old Boolean_Entry_Barriers.
3174         Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.
3175
3176 2004-05-05  GNAT Script  <nobody@gnat.com>
3177
3178         * Make-lang.in: Makefile automatically updated
3179
3180 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
3181
3182         * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.
3183
3184 2004-05-03  Olivier Hainque  <hainque@act-europe.fr>
3185
3186         PR ada/15152
3187
3188         * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
3189         alone. Replacing object references by literals is inappropriate in a
3190         so low level context.
3191
3192 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
3193
3194         * a-exexpr.adb: Add comments
3195
3196 2004-05-03  Joel Brobecker  <brobecker@gnat.com>
3197
3198         * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to
3199         declare the Ancestor_Tags array in Type_Specific_Data with a small size
3200         without risking a bounds check error when accessing one of its
3201         components.
3202         (Type_Specific_Data): Define Ancestor_Tags as a small array.
3203         This prevents us from hitting a limitation during the debug info
3204         generation when using stabs.
3205
3206         * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a
3207         small array.
3208         This prevents us from hitting a limitation during the debug info
3209         generation when using stabs.
3210
3211 2004-05-03  Eric Botcazou  <ebotcazou@act-europe.fr>
3212
3213         lang-specs.h: Remove -gnatz* from specs.
3214
3215 2004-05-03  Vincent Celier  <celier@gnat.com>
3216
3217         * gprmake.adb, makegpr.ads, makegpr.adb: New files.
3218
3219         * Make-lang.in, Makefile.in: Add gprmake
3220
3221 2004-05-03  Thomas Quinot  <quinot@act-europe.fr>
3222
3223         * sem_aggr.adb: Fix typo in comment.
3224
3225 2004-05-03  Robert Dewar  <dewar@gnat.com>
3226
3227         * make.adb: Minor reformatting
3228
3229         * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function
3230
3231         * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address
3232         so that it works when address is not a private type.
3233
3234         * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal
3235         properly with rewritten unchecked conversions. This prevents
3236         order-of-elaboration issues that can otherwise arise.
3237         (Minimum_Size): Don't check size of access types under VMS
3238
3239         * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove
3240         interpretations of integer literals as type System.Address.
3241
3242         * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function
3243         (Is_Descendent_Of): New function
3244
3245 2004-05-03  Jose Ruiz  <ruiz@act-europe.fr>
3246
3247         * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
3248         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.
3249         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.
3250
3251         * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead
3252         of the old Max_Entry_Queue_Depth.
3253
3254         * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
3255         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length
3256         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment
3257
3258         * snames.ads: New entry for proper handling of Boolean_Entry_Barriers.
3259         New entry for proper handling of Max_Entry_Queue_Depth.
3260         New entry for proper handling of No_Dynamic_Interrupts.
3261
3262         * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that
3263         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
3264         Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes
3265         the GNAT specific restriction Max_Entry_Queue_Depth.
3266         Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes
3267         the GNAT specific restriction No_Dynamic_Interrupts.
3268
3269         * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers
3270         instead of the old Boolean_Entry_Barriers.
3271         Use the new restriction No_Dynamic_Attachment instead of the old
3272         No_Dynamic_Interrupts.
3273
3274         * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that
3275         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
3276
3277         * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead
3278         of the old Max_Entry_Queue_Depth.
3279
3280 2004-05-03  GNAT Script  <nobody@gnat.com>
3281
3282         * Make-lang.in: Makefile automatically updated
3283
3284 2004-04-29  Ed Schonberg  <schonberg@gnat.com>
3285
3286         * checks.adb (Enable_Range_Check): If the prefix of an index component
3287         is an access to an unconstrained array, perform check unconditionally.
3288
3289 2004-04-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3290
3291         * decl.c (gnat_to_gnu_field): Also call make_packable_type if
3292         Component_Clause.
3293
3294 2004-04-29  Olivier Hainque  <hainque@act-europe.fr>
3295
3296         * init.c (__gnat_install_handler, __gnat_error_handler): Remove
3297         alternate stack setting. There was no support for the tasking cases
3298         and the changes eventually caused a number of side-effect failures in
3299         the non-tasking case too.
3300
3301 2004-04-29  Eric Botcazou  <ebotcazou@act-europe.fr>
3302
3303         lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
3304         -gnats is passed.
3305
3306 2004-04-29  Vincent Celier  <celier@gnat.com>
3307
3308         * make.adb (Gnatmake): Increase max size of argument array for
3309         gnatbind for the potential addition of -F.
3310         If there are Stand-Alone Library projects, invoke gnatbind with -F to
3311         be sure that elaboration flags will be checked.
3312
3313         * switch-c.adb: Correct call to Scan_Pos for -gnateI
3314
3315 2004-04-29  Thomas Quinot  <quinot@act-europe.fr>
3316
3317         * sem_warn.adb (Check_References): Move '<access-variable> may be
3318         null' warning out of under Warn_On_No_Value_Assigned.
3319
3320 2004-04-29  Ed Falis  <falis@gnat.com>
3321
3322         * gnat_ugn.texi: Fixed texi error
3323
3324 2004-04-29  Robert Dewar  <dewar@gnat.com>
3325
3326         * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
3327         abstract operations if they come from predefined files.
3328
3329         * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
3330         Dynamic, not RM).
3331
3332         * s-addope.adb: Correct obvious error in mod function
3333
3334 2004-04-28  Andrew W. Reynolds  <awreynolds@mac.com>
3335
3336         * Makefile.in: Add target pairs for powerpc darwin*
3337         tasking support.
3338
3339         * a-intnam-darwin.ads, s-osinte-darwin.adb,
3340         s-osinte-darwin.ads, system-darwin-ppc.ads: New files.
3341
3342 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>