OSDN Git Service

PR 40989
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2010-05-07 Eric Botcazou  <ebotcazou@adacore.com>
2
3         PR 40989
4         * gcc-interface/misc.c (gnat_handle_option): Fix long line.
5
6 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7
8         * gcc-interface/Makefile.in: Removed mips-sgi-irix5* support.
9
10 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11
12         PR 40989
13         * gcc-interface/misc.c (gnat_handle_option): Add argument kind.
14
15 2010-05-02  Giuseppe Scrivano <gscrivano@gnu.org>
16
17         * gnathtml.pl: Use 755 as mask for new directories.
18
19 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
20
21         * gcc-interface/trans.c (gnat_gimplify_expr) <ADDR_EXPR>: Uniquize
22         constant constructors before taking their address.
23
24 2010-04-25  Eric Botcazou  <ebotcazou@adacore.com>
25
26         * exp_dbug.ads: Fix outdated description.  Mention link between XVS
27         and XVZ objects.
28         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Set
29         XVZ variable as unit size of XVS type.
30         (maybe_pad_type): Likewise.
31
32 2010-04-25  Eric Botcazou  <ebotcazou@adacore.com>
33
34         * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Do not
35         use memmove if the array type is bit-packed.
36
37 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
38
39         * gcc-interface/misc.c (gnat_init): Remove second argument in call to
40         build_common_tree_nodes.
41
42 2010-04-18  Ozkan Sezer  <sezeroz@gmail.com>
43
44         * gsocket.h: Make sure that winsock2.h is included before windows.h.
45
46 2010-04-17  Eric Botcazou  <ebotcazou@adacore.com>
47
48         * gcc-interface/utils2.c (build_unary_op) <ATTR_ADDR_EXPR>: Do not
49         issue warning.
50
51 2010-04-17  Eric Botcazou  <ebotcazou@adacore.com>
52
53         * uintp.h (UI_Lt): Declare.
54         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do the size
55         computation in sizetype.
56         <E_Array_Subtype>: Use unified handling for all index types.  Do not
57         generate MAX_EXPR-based expressions, only COND_EXPR-based ones.  Add
58         bypass for PATs.
59         (annotate_value): Change test for negative values.
60         (validate_size): Apply test for negative values on GNAT nodes.
61         (set_rm_size): Likewise.
62         * gcc-interface/misc.c (gnat_init): Set unsigned types for sizetypes.
63         * gcc-interface/utils.c (rest_of_record_type_compilation): Change test
64         for negative values.
65         (max_size) <MINUS_EXPR>: Do not reassociate a COND_EXPR on the LHS.
66         (builtin_type_for_size): Adjust definition of signed_size_type_node.
67         * gcc-interface/utils2.c (compare_arrays): Optimize comparison of
68         lengths against zero.
69
70 2010-04-17  Eric Botcazou  <ebotcazou@adacore.com>
71
72         * back-end.adb (Call_Back_End): Pass Standard_Character to gigi.
73         * gcc-interface/gigi.h (gigi): Add standard_character parameter.
74         (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE, LONG_TYPE_SIZE, 
75         LONG_LONG_TYPE_SIZE, FLOAT_TYPE_SIZE, DOUBLE_TYPE_SIZE,
76         LONG_DOUBLE_TYPE_SIZE, SIZE_TYPE): Delete.
77         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Call
78         rm_size.
79         * gcc-interface/misc.c (gnat_init): Set signedness of char as per
80         flag_signed_char.  Tag sizetype with "size_type" moniker.
81         * gcc-interface/trans.c (gigi): Add standard_character parameter.
82         Remove useless built-in types.  Equate unsigned_char_type_node to
83         Standard.Character.  Use it instead of char_type_node throughout.
84         (Attribute_to_gnu): Likewise.
85         (gnat_to_gnu): Likewise.
86         * gcc-interface/utils2.c (build_call_raise): Likewise.
87
88 2010-04-17  Eric Botcazou  <ebotcazou@adacore.com>
89
90         * gcc-interface/gigi.h (enum standard_datatypes): Add new values
91         ADT_sbitsize_one_node and ADT_sbitsize_unit_node.
92         (sbitsize_one_node): New macro.
93         (sbitsize_unit_node): Likewise.
94         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Fix
95         latent bug in the computation of subrange_p.  Fold wider_p predicate.
96         (cannot_be_superflat_p): Use an explicitly signed 64-bit type to do
97         the final comparison.
98         (make_aligning_type): Build real negation and use sizetype throughout
99         the offset computation.
100         (maybe_pad_type): Do not issue the warning when the new size expression
101         is too complex.
102         (annotate_value) <INTEGER_CST>: Simplify code handling negative values.
103         * gcc-interface/misc.c (gnat_init): Initialize sbitsize_one_node and
104         sbitsize_unit_node.
105         * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Pool_Address>: Fold
106         double negation.
107         (gnat_to_gnu) <N_Free_Statement>: Likewise.
108         * gcc-interface/utils.c (convert): Use sbitsize_unit_node.
109         * gcc-interface/utils2.c (compare_arrays): Compute real lengths and use
110         constants in sizetype.  Remove dead code and tweak comments.  Generate
111         equality instead of inequality comparisons for zero length tests.
112
113 2010-04-16  Eric Botcazou  <ebotcazou@adacore.com>
114
115         * gcc-interface/gigi.h (gnat_init_decl_processing): Delete.
116         * gcc-interface/decl.c (gnat_to_gnu_entity): Constify a few variables.
117         <object>: Do not create the fake PARM_DECL if no debug info is needed.
118         Do not create the corresponding VAR_DECL of a CONST_DECL for debugging
119         purposes if no debug info is needed.
120         Fix formatting.  Reorder and add comments.
121         * gcc-interface/trans.c (gnat_to_gnu) <N_Attribute_Reference>: Constify
122         variable and remove obsolete comment.
123         * gcc-interface/utils.c (convert_vms_descriptor64): Tweak comment.
124         (convert_vms_descriptor32): Likewise.
125         (convert): Remove dead code.
126         <UNCONSTRAINED_ARRAY_REF>: Pass the field instead of its name to build
127         the reference to the P_ARRAY pointer.
128         <POINTER_TYPE>: Likewise.
129         (maybe_unconstrained_array) <UNCONSTRAINED_ARRAY_TYPE>: Likewise.
130         (gnat_init_decl_processing): Delete, move contents to...
131         * gcc-interface/misc.c (gnat_init): ...here.
132
133 2010-04-16  Eric Botcazou  <ebotcazou@adacore.com>
134
135         * gcc-interface/trans.c (unchecked_conversion_nop): Handle function
136         calls.  Return true for conversion from a record subtype to its type.
137
138 2010-04-16  Eric Botcazou  <ebotcazou@adacore.com>
139
140         * gcc-interface/decl.c (gnat_to_gnu_entity): Use boolean_type_node in
141         lieu of integer_type_node for boolean operations.
142         (choices_to_gnu): Likewise.
143         * gcc-interface/trans.c (Attribute_to_gnu): Likewise.
144         (Loop_Statement_to_gnu): Likewise.
145         (establish_gnat_vms_condition_handler): Likewise.
146         (Exception_Handler_to_gnu_sjlj): Likewise.
147         (gnat_to_gnu): Likewise.
148         (build_unary_op_trapv): Likewise.
149         (build_binary_op_trapv): Likewise.
150         (emit_range_check): Likewise.
151         (emit_index_check): Likewise.
152         (convert_with_check): Likewise.
153         * gcc-interface/utils.c (convert_vms_descriptor64): Likewise.
154         (convert_vms_descriptor32): Likewise.
155         (convert_vms_descriptor): Likewise.
156         * gcc-interface/utils2.c (nonbinary_modular_operation): Likewise.
157         (compare_arrays): Use boolean instead of integer constants.
158         (build_binary_op) <TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR,
159         TRUTH_OR_EXPR, TRUTH_XOR_EXPR>: New case.  Check that the result type
160         is a boolean type.
161         <GE_EXPR, LE_EXPR, GT_EXPR, LT_EXPR>: Remove obsolete assertion.
162         <EQ_EXPR, NE_EXPR>: Check that the result type is a boolean type.
163         <PREINC/PREDECREMENT_EXPR, POSTINC/POSTDECREMENT_EXPR>: Delete.
164         <TRUTH_NOT_EXPR>: Check that the result type is a boolean type.
165         (build_unary_op): Use boolean_type_node in lieu of integer_type_node
166         for boolean operations.
167         (fill_vms_descriptor): Likewise.  Fix formatting nits.
168
169 2010-04-16  Eric Botcazou  <ebotcazou@adacore.com>
170
171         * gcc-interface/ada-tree.def (LOOP_STMT): Change to 4-operand nodes.
172         * gcc-interface/ada-tree.h (LOOP_STMT_TOP_COND, LOOP_STMT_BOT_COND):
173         Merge into...
174         (LOOP_STMT_COND): ...this.
175         (LOOP_STMT_BOTTOM_COND_P): New flag.
176         (LOOP_STMT_TOP_UPDATE_P): Likewise.
177         * gcc-interface/trans.c (can_equal_min_or_max_val_p): New function.
178         (can_equal_min_val_p): New static inline function.
179         (can_equal_max_val_p): Likewise.
180         (Loop_Statement_to_gnu): Use build4 in lieu of build5 and adjust to
181         new LOOP_STMT semantics.  Use two different strategies depending on
182         whether optimization is enabled to translate the loop.
183         (gnat_gimplify_stmt) <LOOP_STMT>: Adjust to new LOOP_STMT semantics.
184
185 2010-04-16  Eric Botcazou  <ebotcazou@adacore.com>
186
187         * uintp.adb (UI_From_Dint): Remove useless code.
188         (UI_From_Int): Likewise.
189         * uintp.h: Reorder declarations.
190         (UI_From_gnu): Declare.
191         (UI_Base): Likewise.
192         (Vector_Template): Likewise.
193         (Vector_To_Uint): Likewise.
194         (Uint_0): Remove.
195         (Uint_1): Likewise.
196         * gcc-interface/gigi.h: Tweak comments.
197         * gcc-interface/cuintp.c (UI_From_gnu): New global function.
198         * gcc-interface/decl.c (maybe_pad_type): Do not warn if either size
199         overflows.
200         (annotate_value) <INTEGER_CST>: Call UI_From_gnu.
201         * gcc-interface/trans.c (post_error_ne_num): Call post_error_ne.
202         (post_error_ne_tree): Call UI_From_gnu and post_error_ne.
203         * gcc-interface/utils.c (max_size) <tcc_binary>: Do not special-case
204         TYPE_MAX_VALUE.
205
206 2010-04-16  Eric Botcazou  <ebotcazou@adacore.com>
207
208         * gcc-interface/decl.c (make_type_from_size) <INTEGER_TYPE>: Just copy
209         TYPE_NAME.
210         * gcc-interface/trans.c (smaller_packable_type_p): Rename into...
211         (smaller_form_type_p): ...this.  Change parameter and variable names.
212         (call_to_gnu): Use the nominal type of the parameter to create the
213         temporary if it's a smaller form of the actual type.
214         (addressable_p): Return false if the actual type is integral and its
215         size is greater than that of the expected type.
216
217 2010-04-15  Eric Botcazou  <ebotcazou@adacore.com>
218
219         * gcc-interface/cuintp.c (UI_To_gnu): Fix long line.
220         * gcc-interface/gigi.h (MARK_VISITED): Skip objects of constant class.
221         (process_attributes): Delete.
222         (post_error_ne_num): Change parameter name.
223         * gcc-interface/decl.c (gnat_to_gnu_entity): Do not force debug info
224         with -g3.  Remove a couple of obsolete lines.  Minor tweaks.
225         If type annotating mode, operate on trees to compute the adjustment to
226         the sizes of tagged types.  Fix long line.
227         (cannot_be_superflat_p): Tweak head comment.
228         (annotate_value): Fold local constant.
229         (set_rm_size): Fix long line.
230         * gcc-interface/trans.c (Identifier_to_gnu): Rework comments.
231         (Attribute_to_gnu): Fix long line.
232         <Attr_Size>: Remove useless assertion.
233         Reorder statements.  Use size_binop routine.
234         (Loop_Statement_to_gnu): Use build5 in lieu of build_nt.
235         Create local variables for the label and the test.  Tweak comments.
236         (Subprogram_Body_to_gnu): Reset cfun to NULL.
237         (Compilation_Unit_to_gnu): Use the Sloc of the Unit node.
238         (process_inlined_subprograms): Integrate into...
239         (Compilation_Unit_to_gnu): ...this.
240         (gnat_to_gnu): Fix long line.
241         (post_error_ne_num): Change parameter name.
242         * gcc-interface/utils.c (process_attributes): Static-ify.
243         <ATTR_MACHINE_ATTRIBUTE>: Set input_location before proceeding.
244         (create_type_decl): Add comment.
245         (create_var_decl_1): Process the attributes after adding the VAR_DECL
246         to the current binding level.
247         (create_subprog_decl): Likewise for the FUNCTION_DECL.
248         (end_subprog_body): Do not reset cfun to NULL.
249         (build_vms_descriptor32): Fix long line.
250         (build_vms_descriptor): Likewise.
251         (handle_nonnull_attribute): Likewise.
252         (convert_vms_descriptor64): Likewise.
253         * gcc-interface/utils2.c (fill_vms_descriptor): Fix long line.
254         (gnat_protect_expr): Fix thinko.
255
256 2010-04-15  Eric Botcazou  <ebotcazou@adacore.com>
257
258         * gcc-interface/trans.c (gigi): Set DECL_IGNORED_P on EH functions.
259         (gnat_to_gnu) <N_Op_Eq>: Restore the value of input_location
260         before translating the top-level node.
261         (lvalue_required_p) <N_Function_Call>: Return 1 if !constant.
262         <N_Object_Declaration>: Likewise.
263         <N_Assignment_Statement>: Likewise.
264         <N_Unchecked_Type_Conversion>: Likewise.
265         (call_to_gnu): Remove kludge.
266         (gnat_to_gnu) <N_Return_Statement>: When not optimizing, force labels
267         associated with user returns to be preserved.
268         (gnat_to_gnu): Add special code to deal with boolean rvalues.
269         * gcc-interface/utils2.c (compare_arrays): Set input_location on all
270         comparisons.
271         (build_unary_op) <ADDR_EXPR>: Call build_fold_addr_expr.
272         <INDIRECT_REF>: Call build_fold_indirect_ref.
273
274 2010-04-15  Joel Sherrill  <joel.sherrill@oarcorp.com>
275
276         * g-socket.adb: A target can have multiple missing errno's.  This
277         will result in multiple errno's being defined as -1.  Because of this
278         we can not use a case but must use a series of if's to avoid 
279         a duplicate case error in GNAT.Sockets.Resolve_Error.
280
281 2010-04-15  Eric Botcazou  <ebotcazou@adacore.com>
282
283         * gcc-interface/trans.c (call_to_gnu): Open a nesting level if this is
284         a statement.  Otherwise, if at top-level, push the processing of the
285         elaboration routine.  In the misaligned case, issue the error messages
286         again on entry and create the temporary explicitly.  Do not issue them
287         for CONSTRUCTORs.
288         For a function call, emit the range check if necessary.
289         In the copy-in copy-out case, create the temporary for the return
290         value explicitly.
291         Do not unnecessarily convert by-ref parameters to the formal's type.
292         Remove obsolete guards in conditions.
293         (gnat_to_gnu) <N_Assignment_Statement>: For a function call, pass the
294         target to call_to_gnu in all cases.
295         (gnat_gimplify_expr) <ADDR_EXPR>: Remove handling of SAVE_EXPR.
296         (addressable_p) <CONSTRUCTOR>: Return false if not static.
297         <COMPOUND_EXPR>: New case.
298         * gcc-interface/utils2.c (build_unary_op) <ADDR_EXPR>: Fold a compound
299         expression if it has unconstrained array type.
300         (gnat_mark_addressable) <COMPOUND_EXPR>: New case.
301         (gnat_stabilize_reference) <COMPOUND_EXPR>: Stabilize operands on an
302         individual basis.
303
304 2010-04-15  Eric Botcazou  <ebotcazou@adacore.com>
305
306         * gcc-interface/trans.c (gigi): Do not start statement group.
307         (Compilation_Unit_to_gnu): Set current_function_decl to NULL.
308         Start statement group and push binding level here...
309         (gnat_to_gnu) <N_Compilation_Unit>: ...and not here.
310         Do not push fake contexts at top level.  Remove redundant code.
311         (call_to_gnu): Rename a local variable and constify another.
312         * gcc-interface/utils.c (gnat_pushlevel): Fix formatting nits.
313         (set_current_block_context): Set it as the group's block.
314         (gnat_init_decl_processing): Delete unrelated init code.
315         (end_subprog_body): Use NULL_TREE.
316
317 2010-04-15  Eric Botcazou  <ebotcazou@adacore.com>
318
319         * gcc-interface/trans.c (call_to_gnu): Do not unnecessarily force
320         side-effects of actual parameters before the call.
321
322 2010-04-15  Eric Botcazou  <ebotcazou@adacore.com>
323
324         * gcc-interface/decl.c (validate_size): Reorder, remove obsolete test
325         and warning.
326         (set_rm_size): Reorder and remove obsolete test.
327
328 2010-04-14  Eric Botcazou  <ebotcazou@adacore.com>
329
330         * gcc-interface/gigi.h: Reorder declarations and tweak comments.
331         (gigi): Adjust ATTRIBUTE_UNUSED markers.
332         * gcc-interface/gadaint.h: New file.
333         * gcc-interface/trans.c: Include it in lieu of adaint.h.  Reorder.
334         (__gnat_to_canonical_file_spec): Remove declaration.
335         (number_names): Delete.
336         (number_files): Likewise.
337         (gigi): Adjust.
338         * gcc-interface/Make-lang.in (ada/trans.o): Adjust dependencies to
339         above change.
340
341 2010-04-14  Eric Botcazou  <ebotcazou@adacore.com>
342
343         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Class_Wide_Type>: Fix
344         comment.
345         * gcc-interface/trans.c (process_freeze_entity): Use local copy of
346         Ekind.  Return early for class-wide types.  Do not compute initializer
347         unless necessary.  Reuse the tree for an associated class-wide type
348         only if processing its root type.
349
350 2010-04-13  Joel Sherrill  <joel.sherrill@oarcorp.com>
351
352         * gsocket.h: Run-time can no longer be built without network
353         OS headers available.  Changing RTEMS GNAT build procedure to
354         reflect this and letting run-time build use network .h files.
355
356 2010-04-13  Duncan Sands  <baldrick@free.fr>
357
358         * gcc-interface/misc.c (gnat_eh_type_covers): Remove.
359         * gcc-interface/trans.c (Exception_Handler_to_gnu_zcx): Update comment.
360
361 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
362
363         * gcc-interface/gigi.h (standard_datatypes): Add ADT_parent_name_id.
364         (parent_name_id): New macro.
365         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Use it.
366         * gcc-interface/trans.c (gigi): Initialize it.
367         (lvalue_required_p) <N_Type_Conversion>: New case.
368         <N_Qualified_Expression>: Likewise.
369         <N_Allocator>: Likewise.
370         * gcc-interface/utils.c (convert): Try to properly upcast tagged types.
371
372 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
373
374         * gcc-interface/ada-tree.h (TYPE_BY_REFERENCE_P): Delete.
375         (DECL_CONST_ADDRESS_P): New macro.
376         (SET_DECL_ORIGINAL_FIELD_TO_FIELD): Likewise.
377         (SAME_FIELD_P): Likewise.
378         * gcc-interface/decl.c (constructor_address_p): New static function.
379         (gnat_to_gnu_entity) <object>: Set DECL_CONST_ADDRESS_P according to
380         the return value of above function.
381         (gnat_to_gnu_entity) <E_Record_Type>: Force BLKmode for all types
382         passed by reference.
383         <E_Record_Subtype>: Likewise.
384         Set TREE_ADDRESSABLE on the type if it passed by reference.
385         (make_packable_type): Use SET_DECL_ORIGINAL_FIELD_TO_FIELD.
386         (create_field_decl_from): Likewise.
387         (substitute_in_type): Likewise.
388         (purpose_member_field): Use SAME_FIELD_P.
389         * gcc-interface/misc.c (must_pass_by_ref): Test TREE_ADDRESSABLE.
390         * gcc-interface/trans.c (lvalue_required_p): Add ADDRESS_OF_CONSTANT
391         parameter and adjust recursive calls.
392         <N_Explicit_Dereference>: New case.
393         <N_Object_Declaration>: Return 1 if the object is of a class-wide type.
394         Adjust calls to lvalue_required_p.  Do not return the initializer of a
395         DECL_CONST_ADDRESS_P constant if an lvalue is required for it.
396         (call_to_gnu): Delay issuing error message for a misaligned actual and
397         avoid the associated back-end assertion.  Test TREE_ADDRESSABLE.
398         (gnat_gimplify_expr) <ADDR_EXPR>: Handle non-static constructors.
399         * gcc-interface/utils.c (make_dummy_type): Set TREE_ADDRESSABLE if the
400         type is passed by reference.
401         (convert) <CONSTRUCTOR>: Convert in-place in more cases.
402         * gcc-interface/utils2.c (build_cond_expr): Drop TYPE_BY_REFERENCE_P.
403         (build_simple_component_ref): Use SAME_FIELD_P.
404
405 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
406
407         * gcc-interface/trans.c (Identifier_to_gnu): Use boolean variable.
408         (call_to_gnu): Test gigi's flag TYPE_BY_REFERENCE_P instead of calling
409         front-end's predicate Is_By_Reference_Type.  Use consistent order and
410         remove ??? comment.  Use original conversion in all cases, if any.
411         * gcc-interface/utils.c (make_dummy_type): Minor tweak.
412         (convert): Use local copy in more cases.
413         <INDIRECT_REF>: Remove deactivated code.
414         (unchecked_convert): Use a couple of local copies.
415
416 2010-04-11  Eric Botcazou  <ebotcazou@adacore.com>
417
418         * gcc-interface/trans.c (lvalue_required_for_attribute_p): New static
419         function.
420         (lvalue_required_p) <N_Attribute_Reference>: Call it.
421         (gnat_to_gnu) <N_Selected_Component>: Prevent build_component_ref from
422         folding the result only if lvalue_required_for_attribute_p is true.
423         * gcc-interface/utils.c (maybe_unconstrained_array): Pass correctly
424         typed constant to build_component_ref.
425         (unchecked_convert): Likewise.
426         * gcc-interface/utils2.c (maybe_wrap_malloc): Likewise.
427         (build_allocator): Likewise.
428
429 2010-04-11  Eric Botcazou  <ebotcazou@adacore.com>
430
431         * gcc-interface/utils2.c (build_cond_expr): Take the address and
432         dereference if the result type is passed by reference.
433
434 2010-04-11  Eric Botcazou  <ebotcazou@adacore.com>
435
436         * gcc-interface/trans.c (Case_Statement_to_gnu): Bool-ify variable.
437         (gnat_to_gnu) <N_Null_Statement>: When not optimizing, generate a
438         goto to the next statement.
439
440 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
441
442         * gcc-interface/gigi.h (maybe_variable): Delete.
443         (protect_multiple_eval): Likewise.
444         (maybe_stabilize_reference): Likewise.
445         (gnat_save_expr): Declare.
446         (gnat_protect_expr): Likewise.
447         (gnat_stabilize_reference): Likewise.
448         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Use
449         gnat_stabilize_reference.
450         (maybe_variable): Delete.
451         (elaborate_expression_1): Use gnat_save_expr.
452         * gcc-interface/trans.c (Attribute_to_gnu): Use gnat_protect_expr.
453         (call_to_gnu): Pass NULL to gnat_stabilize_reference.
454         (gnat_to_gnu) <N_Object_Declaration>: Use gnat_save_expr.
455         <N_Slice>: Use gnat_protect_exp.
456         <N_Selected_Component>: Pass NULL to gnat_stabilize_reference.
457         <N_In>: Use gnat_protect_expr.
458         Pass NULL to gnat_stabilize_reference.
459         (build_unary_op_trapv): Use gnat_protect_expr.
460         (build_binary_op_trapv): Likewise.
461         (emit_range_check): Likewise.
462         (emit_index_check): Likewise.
463         (convert_with_check): Likewise.
464         (protect_multiple_eval): Move to utils2.c file.
465         (maybe_stabilize_reference): Merge into...
466         (gnat_stabilize_reference): ...this.  Move to utils2.c file.
467         (gnat_stabilize_reference_1): Likewise.
468         * gcc-interface/utils.c (convert_to_fat_pointer): Use gnat_protect_expr
469         instead of protect_multiple_eval.
470         * gcc-interface/utils2.c (compare_arrays): Likewise.
471         (nonbinary_modular_operation): Likewise.
472         (maybe_wrap_malloc): Likewise.
473         (build_allocator): Likewise.
474         (gnat_save_expr): New function.
475         (gnat_protect_expr): Rename from protect_multiple_eval.  Early return
476         in common cases.  Propagate TREE_READONLY onto dereferences.
477         (gnat_stabilize_reference_1): Move from trans.c file.
478         (gnat_stabilize_reference): Likewise.
479
480 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
481
482         * gcc-interface/gigi.h (gnat_mark_addressable): Rename parameter.
483         * gcc-interface/decl.c (maybe_variable): Do not set TREE_STATIC on _REF
484         node.  Use the type of the operand to set TREE_READONLY.
485         * gcc-interface/trans.c (Identifier_to_gnu): Do not set TREE_STATIC on
486         _REF node.  Do not overwrite TREE_READONLY.
487         (call_to_gnu): Rename local variable and fix various nits.  In the
488         copy-in/copy-out case, build the SAVE_EXPR manually.
489         (convert_with_check): Call protect_multiple_eval in lieu of save_expr
490         and fold the computations.
491         (protect_multiple_eval): Always save entire fat pointers.
492         (maybe_stabilize_reference): Minor tweaks.
493         (gnat_stabilize_reference_1): Likewise.  Do not deal with tcc_constant,
494         tcc_type and tcc_statement.
495         * gcc-interface/utils.c (convert_to_fat_pointer): Call
496         protect_multiple_eval in lieu of save_expr.
497         (convert): Minor tweaks.
498         (maybe_unconstrained_array): Do not set TREE_STATIC on _REF node.
499         (builtin_type_for_size): Call gnat_type_for_size directly.
500         * gcc-interface/utils2.c (contains_save_expr_p): Delete.
501         (contains_null_expr): Likewise
502         (gnat_build_constructor): Do not call it.
503         (compare_arrays): Deal with all side-effects, use protect_multiple_eval
504         instead of gnat_stabilize_reference to protect the operands.
505         (nonbinary_modular_operation): Call protect_multiple_eval in lieu of
506         save_expr.
507         (maybe_wrap_malloc): Likewise.
508         (build_allocator): Likewise.
509         (build_unary_op) <INDIRECT_REF>: Do not set TREE_STATIC on _REF node.
510         (gnat_mark_addressable): Rename parameter.
511
512 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
513
514         * gcc-interface/ada-tree.h (TYPE_RETURNS_UNCONSTRAINED_P): Rename into.
515         (TYPE_RETURN_UNCONSTRAINED_P): ...this.
516         (TYPE_RETURNS_BY_REF_P): Rename into.
517         (TYPE_RETURN_BY_DIRECT_REF_P): ...this.
518         (TYPE_RETURNS_BY_TARGET_PTR_P): Delete.
519         * gcc-interface/gigi.h (create_subprog_type): Adjust parameter names.
520         (build_return_expr): Likewise.
521         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>:
522         Rename local variables.  If the return Mechanism is By_Reference, pass
523         return_by_invisible_ref_p to create_subprog_type instead of toggling
524         TREE_ADDRESSABLE.  Test return_by_invisible_ref_p in order to annotate
525         the mechanism.  Use regular return for contrained types with non-static
526         size and return by invisible reference for unconstrained return types
527         with default discriminants.  Update comment.
528         * gcc-interface/trans.c (Subprogram_Body_to_gnu): If the function
529         returns by invisible reference, turn the RESULT_DECL into a pointer.
530         Do not handle DECL_BY_REF_P in the CICO case here.
531         (call_to_gnu): Remove code handling return by target pointer.  For a
532         function call, if the return type has non-constant size, generate the
533         assignment with an INIT_EXPR.
534         (gnat_to_gnu) <N_Return_Statement>: Remove dead code in the CICO case.
535         If the function returns by invisible reference, build the copy return
536         operation manually.
537         (add_decl_expr): Initialize the variable with an INIT_EXPR.
538         * gcc-interface/utils.c (create_subprog_type): Adjust parameter names.
539         Adjust for renaming of macros.  Copy the node only when necessary.
540         (create_subprog_decl): Do not toggle TREE_ADDRESSABLE on the return
541         type, only change DECL_BY_REFERENCE on the RETURN_DECL.
542         (convert_from_reference): Delete.
543         (is_byref_result): Likewise.
544         (gnat_genericize_r): Likewise.
545         (gnat_genericize): Likewise.
546         (end_subprog_body): Do not call gnat_genericize.
547         * gcc-interface/utils2.c (build_binary_op) <INIT_EXPR>: New case.
548         (build_return_expr): Adjust parameter names, logic and comment.
549
550 2010-04-07  Eric Botcazou  <ebotcazou@adacore.com>
551
552         * exp_pakd.adb (Create_Packed_Array_Type): Always use a modular type
553         if the size is small enough.  Propagate the alignment if there is an
554         alignment clause on the original array type.
555         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>
556         Deal with under-aligned packed array types.  Copy the size onto the
557         justified modular type and don't lay it out again.  Likewise for the
558         padding type built for other under-aligned subtypes.
559         * gcc-interface/utils.c (finish_record_type): Do not set a default mode
560         on the type.
561
562 2010-04-07  Eric Botcazou  <ebotcazou@adacore.com>
563
564         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Procedure>: Set default
565         alignment on the RETURN type built for the Copy-In Copy-Out mechanism.
566
567 2010-04-07  Eric Botcazou  <ebotcazou@adacore.com>
568
569         * gcc-interface/trans.c (call_to_gnu): In the return-by-target-ptr case
570         do not set the result type if there is a specified target and do not
571         convert the result in any cases.
572         (protect_multiple_eval): Make direct SAVE_EXPR for CALL_EXPR.
573         (maybe_stabilize_reference) <COMPOUND_EXPR>: Merge with CALL_EXPR.
574
575 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
576
577         * gcc-interface/Makefile.in (SPARC/Solaris): Use sparcv8plus.
578
579 2010-02-27  Eric Botcazou  <ebotcazou@adacore.com>
580
581         PR ada/42253
582         * gcc-interface/utils2.c (build_binary_op) <EQ_EXPR>: Assert that fat
583         pointer base types are variant of each other.  Apply special treatment
584         for null to fat pointer types in all cases.
585
586 2010-01-28  Pascal Obry  <obry@adacore.com>
587
588         * s-win32.ads: Add some missing constants.
589
590 2010-01-28  Vincent Celier  <celier@adacore.com>
591
592         * prj-attr-pm.adb (Add_Attribute): Do nothing if To_Package is
593         Unknown_Package.
594
595 2010-01-28  Robert Dewar  <dewar@adacore.com>
596
597         * gnat_rm.texi: Minor correction
598
599 2010-01-27  Pascal Obry  <obry@adacore.com>
600
601         * g-awk.adb: ensure that an AWK session is reusable.
602
603 2010-01-27  Vasiliy Fofanov  <fofanov@adacore.com>
604
605         * g-regist.adb (For_Every_Key): Fix previous change.
606         Minor reformatting.
607
608 2010-01-27  Thomas Quinot  <quinot@adacore.com>
609
610         * lib-writ.ads: Current version of spec for new N (note) ALI lines
611
612 2010-01-27  Yannick Moy  <moy@adacore.com>
613
614         * a-cdlili.adb (Insert): Correct exception message when cursor
615         designates wrong list.
616
617 2010-01-27  Vincent Celier  <celier@adacore.com>
618
619         * gnatcmd.adb: When there is only one main specified, the package
620         support Switches (<main>) and attribute Switches is specified for the
621         main, use these switches, instead of Default_Switches ("Ada").
622
623 2010-01-27  Robert Dewar  <dewar@adacore.com>
624
625         * sem_prag.adb, par-prag.adb, snames.ads-tmpl: pragma Dimension initial
626         implementation.
627         * exp_disp.adb: Minor reformatting
628
629 2010-01-27  Tristan Gingold  <gingold@adacore.com>
630
631         * seh_init.c: Use __ImageBase instead of _ImageBase.
632
633 2010-01-27  Javier Miranda  <miranda@adacore.com>
634
635         * exp_disp.ads, exp_disp.adb (Expand_Interface_Thunk): Modify the
636         profile of interface thunks. The type of the controlling formal is now
637         the covered interface type (instead of the target tagged type).
638
639 2010-01-27  Sergey Rybin  <rybin@adacore.com>
640
641         * gnat_rm.texi, gnat_ugn.texi: Update gnatcheck doc.
642
643 2010-01-27  Robert Dewar  <dewar@adacore.com>
644
645         * sinput.ads, sinput.adb (Sloc_Range): Applies to all nodes, formal
646         changed from Expr to N.
647
648 2010-01-26  Thomas Quinot  <quinot@adacore.com>
649
650         * gnat_ugn.texi: Adjust documentation of -gnatz switches.
651         * usage.adb: Replace line for -gnatz with two lines for -gnatzc and
652         -gnatzr.
653
654 2010-01-26  Vincent Celier  <celier@adacore.com>
655
656         * prj-attr.adb: Add new attribute Library_Install_Name_Option
657         Replace attribute Run_Path_Origin_Supported with Run_Path_Origin
658         * prj-nmsc.adb (Process_Project_Level_Simple_Attributes): Process
659         attributes Run_Path_Option and Library_Install_Name_Option.
660         * prj.ads (Project_Configuration): Replace component
661         Run_Path_Origin_Supported with component Run_Path_Origin. Add new
662         component Library_Install_Name_Option.
663         * snames.ads-tmpl: Add new standard name Library_Install_Name_Option
664         Replace Run_Path_Origin_Supported with Run_Path_Origin
665
666 2010-01-26  Ed Schonberg  <schonberg@adacore.com>
667
668         * sem_ch8.adb (Use_One_Package): Within an instance, an actual package
669         is not hidden by a homograph declared in another actual package.
670
671 2010-01-26  Robert Dewar  <dewar@adacore.com>
672
673         * par_sco.adb (Traverse_Declarations_Or_Statements): Only generate
674         decisions for pragmas Assert, Check, Precondition, Postcondition if
675         -gnata set.
676         * scos.ads: Update comments.
677         * get_scos.adb, put_scos.adb: Minor fix to code reading statement SCOs.
678         Also remove obsolete code for CT (exit point) SCOs.
679
680 2010-01-26  Thomas Quinot  <quinot@adacore.com>
681
682         * switch-c.adb: Fix handling of -gnatz*
683
684 2010-01-26  Robert Dewar  <dewar@adacore.com>
685
686         * par_sco.adb (Traverse_Declarations_Or_Statements): Separate F/W
687         qualifiers for FOR/WHILE loops
688         * scos.ads: Use separate type letters F/W for for/while loops
689
690 2010-01-26  Robert Dewar  <dewar@adacore.com>
691
692         * get_scos.adb (Get_SCOs): Implement new form of CS entries (multiple
693         entries per line, one for each statement in the sequence).
694         * par_sco.adb (Traverse_Declarations_Or_Statements): Increase array
695         size from 100 to 10_000 for SC_Array to avoid any real possibility of
696         overflow. Output decisions in for loops.
697         Exclude labels from CS lines.
698         * scos.ads: Clarify that label is not included in the entry point
699
700 2010-01-26  Robert Dewar  <dewar@adacore.com>
701
702         * par_sco.adb (Traverse_Declarations_Or_Statments): Implement new
703         format of statement sequence SCO entries (one location/statement).
704         * put_scos.adb (Put_SCOs): Implement new format of CS lines
705         * scos.ads: Update comments.
706         * sem_eval.adb: Minor reformatting.
707
708 2010-01-26  Robert Dewar  <dewar@adacore.com>
709
710         * par_sco.ads, par_sco.adb (Set_Statement_Entry): New handling of exits
711         (Extend_Statement_Sequence): New procedures
712         (Traverse_Declarations_Or_Statements): New handling for exits.
713
714 2010-01-26  Robert Dewar  <dewar@adacore.com>
715
716         * par_sco.adb (Traverse_Declarations_Or_Statements): Add processing for
717         Case.
718
719 2010-01-26  Robert Dewar  <dewar@adacore.com>
720
721         * par_sco.adb (Is_Logical_Operator): Exclude AND/OR/XOR
722         * scos.ads: Clarify handling of logical operators
723
724 2010-01-26  Arnaud Charlet  <charlet@adacore.com>
725
726         * s-tpoben.adb: Update comments.
727
728 2010-01-26  Robert Dewar  <dewar@adacore.com>
729
730         * freeze.adb (Set_Small_Size): Don't set size if alignment clause
731         present.
732
733 2010-01-26  Robert Dewar  <dewar@adacore.com>
734
735         * scos.ads: Clean up documentation, remove obsolete XOR references
736 2010-01-26  Vincent Celier  <celier@adacore.com>
737
738         * gnat_ugn.texi: Complete documentation on the restrictions for
739         combined options in -gnatxxx switches.
740         Fix typo.
741
742 2010-01-26  Arnaud Charlet  <charlet@adacore.com>
743
744         * s-tpoben.adb (Initialize_Protection_Entries): If a PO is created from
745         a controlled operation, abort is already deferred at this point, so we
746         need to use Defer_Abort_Nestable.
747
748 2010-01-26  Vincent Celier  <celier@adacore.com>
749
750         * prj-conf.adb (Get_Config_Switches): Check for a default language for
751         a project extending a project with no languages.
752
753 2010-01-26  Vincent Celier  <celier@adacore.com>
754
755         * switch-c.adb (Scan_Front_End_Switches): Take into account options
756         that follow -gnatef.
757         Allow -gnateG to be followed by other options.
758
759 2010-01-26  Robert Dewar  <dewar@adacore.com>
760
761         * s-commun.ads, s-osprim-mingw.adb, s-stchop-vxworks.adb, sem_aggr.adb,
762         s-vxwext.adb, sem_ch10.adb, sem_eval.adb, sem_prag.adb: Minor
763         reformatting.
764
765 2010-01-26  Vasiliy Fofanov  <fofanov@adacore.com>
766
767         * g-regist.adb, g-regist.ads (For_Every_Key): New generic procedure
768         that allows to iterate over all subkeys of a key.
769
770 2010-01-26  Ed Falis  <falis@adacore.com>
771
772         * sysdep.c: enable NFS for VxWorks MILS
773         * env.c: enable __gnat_environ for VxWorks MILS
774         * gcc-interface/Makefile.in: Add VxWorks MILS target pairs.
775
776 2010-01-25  Bob Duff  <duff@adacore.com>
777
778         * sem_aggr.adb (Resolve_Array_Aggregate): Check for the case where this
779         is an internally-generated positional aggregate, and the bounds are
780         already correctly set. We don't want to overwrite those bounds with
781         bounds determined by context.
782
783 2010-01-25  Robert Dewar  <dewar@adacore.com>
784
785         * g-sercom.ads, gnatcmd.adb, gnatlink.adb, a-ststio.adb, exp_ch6.adb,
786         exp_ch9.adb, g-sechas.ads: Minor reformatting.
787
788 2010-01-25  Thomas Quinot  <quinot@adacore.com>
789
790         * s-commun.adb (Last_Index): Count must be converted to SEO (a signed
791         integer type) before subtracting 1, otherwise the computation may wrap
792         (because size_t is modular) and cause the conversion to fail.
793
794 2010-01-25  Ed Falis  <falis@adacore.com>
795
796         * sysdep.c, init.c: Adapt to support full run-time on VxWorks MILS.
797
798 2010-01-25  Vincent Celier  <celier@adacore.com>
799
800         * prj-attr.adb: New attribute Run_Path_Origin_Required
801         * prj-nmsc.adb (Process_Project_Level_Simple_Attributes): Process new
802         attribute Run_Path_Origin_Required.
803         * prj.ads (Project_Configuration): New component
804         Run_Path_Origin_Supported.
805         * snames.ads-tmpl: New standard name Run_Path_Origin_Required
806
807 2010-01-25  Ed Schonberg  <schonberg@adacore.com>
808
809         * sem_aggr.adb (Resolve_Array_Aggregate): If the bounds in a choice
810         have errors, do not continue resolution of the aggregate.
811         * sem_eval.adb (Eval_Indexed_Component): Do not attempt to evaluate if
812         the array type indicates an error.
813
814 2010-01-25  Bob Duff  <duff@adacore.com>
815
816         * sinfo.ads: Minor comment fixes.
817
818 2010-01-25  Bob Duff  <duff@adacore.com>
819
820         * exp_ch4.adb, exp_aggr.adb: Minor comment fixes and code clean up.
821
822 2010-01-25  Arnaud Charlet  <charlet@adacore.com>
823
824         * gnatvsn.ads (Current_Year): Update.
825
826 2010-01-25  Florian Villoing  <villoing@adacore.com>
827
828         * gnat_ugn.texi: Fix typo.
829
830 2010-01-25  Thomas Quinot  <quinot@adacore.com>
831
832         * scos.ads: Update specification.
833
834 2010-01-25  Ed Schonberg  <schonberg@adacore.com>
835
836         * sem_ch6.adb (Process_PPCs): If a postcondition is present and the
837         enclosing subprogram has no previous spec, attach postcondition
838         procedure to the defining entity for the body.
839
840 2010-01-25  Ed Schonberg  <schonberg@adacore.com>
841
842         * exp_aggr.adb (Build_Record_Aggr_Code); Do not generate call to
843         initialization procedure of the ancestor part of an extension aggregate
844         if it is an interface type.
845
846 2010-01-25  Vincent Celier  <celier@adacore.com>
847
848         * gnatlink.adb (Process_Binder_File): The directory for the shared
849         version of libgcc in the run path options is found in the subdirectory
850         indicated by __gnat_default_libgcc_subdir.
851         * link.c: Declare new const char * __gnat_default_libgcc_subdir for
852         each platform.
853
854 2010-01-25  Ed Schonberg  <schonberg@adacore.com>
855
856         * sem_prag.adb: More flexible pragma Annotate.
857
858 2010-01-22  Eric Botcazou  <ebotcazou@adacore.com>
859
860         * system-linux-armel.ads (Stack_Check_Probes): Set to True.
861         * system-linux-armeb.ads (Stack_Check_Probes): Likewise.
862
863 2010-01-18  Eric Botcazou  <ebotcazou@adacore.com>
864
865         * gcc-interface/utils.c (create_var_decl_1): Fix formatting nits.
866
867 2010-01-18  Jan Hubicka  <jh@suse.cz>
868
869         PR middle-end/42068
870         * gcc-interface/utils.c (create_var_decl_1): Do not set COMMON flag for
871         unit local variables.
872
873 2010-01-17  Laurent GUERBY  <laurent@guerby.net>
874
875         * gcc-interface/Makefile.in: Fix typo in arm*-*-linux-gnueabi.
876
877 2010-01-11  Mikael Pettersson  <mikpe@it.uu.se>
878
879         * gcc-interface/Makefile.in: Add arm*-*-linux-gnueabi.
880         * system-linux-armeb.ads, system-linux-armel.ads: New files.
881
882 2010-01-09  Simon Wright  <simon@pushface.org>
883
884         PR ada/42626
885         * gcc-interface/Makefile.in (gnatlib-shared-darwin): Add missing
886         end-quote.
887
888
889 \f
890 Copyright (C) 2010 Free Software Foundation, Inc.
891
892 Copying and distribution of this file, with or without modification,
893 are permitted in any medium without royalty provided the copyright
894 notice and this notice are preserved.