OSDN Git Service

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