1 2019-07-01 Pierre-Marie de Rodat <derodat@adacore.com>
3 * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix
4 formatting issues in the -gnatR section.
5 * gnat_ugn.texi: Regenerate.
7 2019-06-30 Iain Sandoe <iain@sandoe.co.uk>
9 * gnatlink.adb (Link_Step): Remove duplicate -static-libgcc switches.
10 Push -shared-libgcc explicitly, when it is the target default (unless
11 overidden by the static flag).
12 When the user has put an instance of shared/static-libgcc do not push
15 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
17 * gcc-interface/decl.c (gnat_to_gnu_entity): Beep up comment on SAVED,
18 and tweak comment on the assertion about the scopes of Itypes. Do not
19 skip the regular processing for Itypes that are E_Record_Subtype with
20 a Cloned_Subtype. Get the Cloned_Subtype for every E_Record_Subtype
21 if the type is dummy and hasn't got its own freeze node.
22 <E_Record_Subtype>: Save again the DECL of the Cloned_Subtype, if any.
23 <E_Access_Subtype>: Save again the DECL of the equivalent type.
24 (Gigi_Equivalent_Type) <E_Access_Subtype>: New case.
26 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
28 * gcc-interface/utils.c (unchecked_convert): Tweak comment. Only skip
29 dereferences when padding to have the same size on both sides. Do it
30 for destination types with self-referential size too.
32 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
34 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the
35 type requires strict alignment, then set the RM size to the type size.
36 Rework handling of alignment and sizes of tagged types in ASIS mode.
37 (validate_size): Rename local variable and remove special handling for
38 strict-alignment types.
39 * gcc-interface/utils.c (finish_record_type): Constify local variables
40 and use properly typed constants.
42 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
44 * gcc-interface/decl.c (gnat_to_gnu_field): Rework error messages for
45 fields requiring strict alignment, add explicit test on Storage_Unit
46 for position and size, and mention type alignment for position.
48 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
50 * gcc-interface/trans.c (mark_visited_r): Set TYPE_SIZES_GIMPLIFIED on
51 the main variant of a type, if any.
53 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
55 * gcc-interface/decl.c (set_nonaliased_component_on_array_type): Add
56 missing guard for the presence of TYPE_CANONICAL.
57 (set_reverse_storage_order_on_array_type): Likewise.
59 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
61 * gcc-interface/gigi.h (make_packable_type): Remove default value.
62 (value_factor_p): Tweak prototype.
63 * gcc-interface/decl.c (gnat_to_gnu_entity): Add comment.
64 (gnat_to_gnu_component_type): Likewise.
65 (gnat_to_gnu_field): Likewise. Fetch the position of the field earlier
66 and simplify the condition under which the type is packed. Declare
67 local variable is_bitfield. Pass 1 as max_align to make_packable_type
69 (copy_and_substitute_in_layout): Pass 0 to make_packable_type.
70 * gcc-interface/utils.c (make_packable_array_type): New function.
71 (make_packable_type): Use it to rewrite the type of array field.
72 (maybe_pad_type): Pass align parameter to make_packable_type.
73 (create_field_decl): Minor tweaks.
74 (value_factor_p): Assert that FACTOR is a power of 2 and replace the
75 modulo computation by a masking operation.
77 2019-06-25 Eric Botcazou <ebotcazou@adacore.com>
79 * gcc-interface/decl.c (gnat_to_gnu_entity): Remove superfluous test
81 * gcc-interface/gigi.h (maybe_character_type): Fix formatting.
82 (maybe_character_value): Likewise.
84 2019-06-24 Jan Hubicka <jh@suse.cz>
86 * gcc-interface/decl.c (gnat_to_gnu_entity): Check that
87 type is array or integer prior checking string flag.
88 * gcc-interface/gigi.h (maybe_character_type): Likewise.
89 (maybe_character_value): Likewise.
91 2019-06-24 Martin Sebor <msebor@redhat.com>
93 * gcc-interface/utils.c (handle_nonnull_attribute): Quote attribute
96 2019-06-18 Arnaud Charlet <charlet@adacore.com>
99 * sem_ch5.adb (Analyze_Loop_Statement): Avoid exception propagation
100 during normal processing.
102 2019-06-17 Arnaud Charlet <charlet@adacore.com>
105 * exp_ch9.adb (Expand_N_Delay_Relative_Statement): Swap the two
106 conditions to avoid a unnecessary exception propagation in the default
109 2019-05-28 Eric Botcazou <ebotcazou@adacore.com>
111 * gcc-interface/utils.c (handle_stack_protect_attribute): Move around.
113 2019-05-28 Eric Botcazou <ebotcazou@adacore.com>
115 * doc/gnat_rm/implementation_defined_pragmas.rst (Machine_Attribute):
116 Document additional optional parameters.
117 * sem_prag.adb (Analyze_Pragma) <Pragma_Machine_Attribute>: Accept
118 more than one optional parameter.
119 * gcc-interface/decl.c (prepend_one_attribute_pragma): Alphabetize
120 the list of supported pragmas. Simplify the handling of parameters
121 and add support for more than one optional parameter.
122 * gcc-interface/utils.c (attr_cold_hot_exclusions): New constant.
123 (gnat_internal_attribute_table): Add entry for no_icf, noipa, flatten,
124 used, cold, hot, target and target_clones.
125 (begin_subprog_body): Do not create the RTL for the subprogram here.
126 (handle_noicf_attribute): New static function.
127 (handle_noipa_attribute): Likewise.
128 (handle_flatten_attribute): Likewise.
129 (handle_used_attribute): Likewise.
130 (handle_cold_attribute): Likewise.
131 (handle_hot_attribute): Likewise.
132 (handle_target_attribute): Likewise.
133 (handle_target_clones_attribute): Likewise.
135 2019-05-28 Eric Botcazou <ebotcazou@adacore.com>
137 * gcc-interface/trans.c (lvalue_required_for_attribute_p): Return 0
139 (Identifier_to_gnu): Use the actual subtype for a reference to a
140 packed array in a return statement.
141 (Attribute_to_gnu) <Attr_Size>: Do not strip VIEW_CONVERT_EXPRs from
142 the prefix in every case.
144 2019-05-28 Eric Botcazou <ebotcazou@adacore.com>
146 * gcc-interface/trans.c (gnat_to_gnu): Remove superfluous tests on
147 Backend_Overflow_Checks_On_Target and rework comments.
149 2019-05-28 Eric Botcazou <ebotcazou@adacore.com>
151 * gcc-interface/trans.c (walk_nesting_tree): New static function.
152 (finalize_nrv): Use it to walk the entire nesting tree.
154 2019-05-28 Eric Botcazou <ebotcazou@adacore.com>
156 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Remove
157 obsolete test on Is_For_Access_Subtype.
159 2019-05-28 Eric Botcazou <ebotcazou@adacore.com>
161 * gcc-interface/decl.c (components_to_record): Set a name on the type
162 created for the REP part, if any.
163 * gcc-interface/utils.c (finish_record_type): Only take the maximum
164 when merging sizes for a variant part at offset 0.
165 (merge_sizes): Rename has_rep parameter into max.
167 2019-05-28 Eric Botcazou <ebotcazou@adacore.com>
169 * gcc-interface/utils.c (gnat_internal_attribute_table): Add support
170 for stack_protect attribute.
171 (handle_stack_protect_attribute): New static function.
173 2019-05-28 Eric Botcazou <ebotcazou@adacore.com>
175 * gcc-interface/decl.c (intrin_arglists_compatible_p): Do not return
176 false if the internal builtin uses a variable list.
178 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
180 * gcc-interface/trans.c (Call_to_gnu): Do not initialize the temporary
181 created out of addressability concerns if it's for the _Init parameter
182 of an initialization procedure.
184 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
186 * gcc-interface/ada-builtin-types.def: New file.
187 * gcc-interface/ada-builtins.def: Likewise.
188 * gcc-interface/ada-tree.h (BUILT_IN_LIKELY): New macro.
189 (BUILT_IN_UNLIKELY): Likewise.
190 * gcc-interface/trans.c (independent_iterations_p): Initialize the
191 auto-vector to 16 elements.
192 (Call_to_gnu): Remove local variable and change the vector of actual
193 parameters to an auto-vector. Do not convert actual parameters to
194 the argument type for front-end built-in functions. Add support for
195 front-end built-in functions.
196 (build_noreturn_cond): Use internal instead of built-in function.
197 * gcc-interface/utils.c (c_builtin_type): Include ada-builtin-types.def
198 (install_builtin_function_types): Likewise.
199 (install_builtin_functions): Include ada-builtins.def first.
201 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
203 * gcc-interface/utils.c (maybe_pad_type): Issue the warning for the
204 specific case of component types preferably.
206 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
208 * gcc-interface/trans.c (Identifier_to_gnu): Minor tweaks.
209 (gnat_to_gnu): Do not convert the result if it is a reference to an
210 unconstrained array used as the prefix of an attribute reference that
213 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
215 * gcc-interface/trans.c (Gigi_Types_Compatible): New predicate.
216 (Identifier_to_gnu): Use it to assert that the type of the identifier
217 and that of its entity are compatible for gigi. Rename a couple of
218 local variables and separate the processing of the result type.
220 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
222 * gcc-interface/trans.c (Call_to_gnu): Use the unpadded type when
223 putting back an intermediate conversion the type of the actuals.
225 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
227 * gcc-interface/trans.c (gnat_to_gnu) <Shift operations>: Convert the
228 count to the unsigned version of its base type before proceeding.
230 2019-05-16 Martin Sebor <msebor@redhat.com>
232 * gcc-interface/trans.c (check_inlining_for_nested_subprog): Quote
235 2019-05-08 Arnaud Charlet <charlet@adacore.com>
237 * standard.ads.h: New file.
239 2019-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
241 * gcc-interface/Makefile.in (install-gcc-specs): Use foreach.
244 2019-04-29 Michael K. Darling <darlingm@gmail.com>
246 * gnatvsn.ads: Bump Library_Version to 10.
248 2019-04-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
249 Bernd Edlinger <bernd.edlinger@hotmail.de>
250 Jakub Jelinek <jakub@redhat.com>
253 * raise-gcc.c (TARGET_ATTRIBUTE): Define.
254 (continue_unwind, personality_body, PERSONALITY_FUNCTION): Add
257 2019-04-07 Eric Botcazou <ebotcazou@adacore.com>
259 * libgnat/i-cexten.ads (CFloat_128): New type.
261 2019-03-22 Dmitriy Anisimkov <anisimko@adacore.com>
264 * libgnat/g-socket.adb (Bind_Socket, Connect_Socket,
265 Send_Socket): Fix the computation of structure lengths passed to
267 (Is_IPv6_Address): Fix the number of expected colons.
269 2019-03-11 Martin Liska <mliska@suse.cz>
271 * gcc-interface/misc.c (gnat_post_options): Wrap option name in string
272 format message and fix GNU coding style.
274 2019-02-08 Eric Botcazou <ebotcazou@adacore.com>
276 * gcc-interface/trans.c (gnat_to_gnu) <N_Aggregate>: Minor tweak.
277 * gcc-interface/utils.c (convert): Do not pad when doing an unchecked
278 conversion here. Use TREE_CONSTANT throughout the function.
279 (unchecked_convert): Also pad if the source is a CONSTRUCTOR and the
280 destination is a more aligned array type or a larger aggregate type,
281 but not between original and packable versions of a type.
283 2019-02-08 Eric Botcazou <ebotcazou@adacore.com>
285 * gcc-interface/utils.c (max_size) <tcc_unary>: Be prepared for an
286 operand with VOID_TYPE.
288 2019-02-08 Eric Botcazou <ebotcazou@adacore.com>
290 * gcc-interface/trans.c (elaborate_all_entities): Do not elaborate the
291 entities of a package renaming another one.
293 2019-02-08 Eric Botcazou <ebotcazou@adacore.com>
295 * gcc-interface/trans.c (Regular_Loop_to_gnu): Replace tests on
296 individual flag_unswitch_loops and flag_tree_loop_vectorize switches
297 with test on global optimize switch.
298 (Raise_Error_to_gnu): Likewise.
300 2019-02-07 Eric Botcazou <ebotcazou@adacore.com>
302 * libgnarl/s-linux__sparc.ads (ETIMEDOUT): Set to correct value.
304 2019-02-06 Arnaud Charlet <charlet@adacore.com>
306 * libgnarl/s-linux__x32.ads: Resync list of signals with s-linux.ads
308 2019-01-27 Eric Botcazou <ebotcazou@adacore.com>
310 * repinfo.adb (List_Component_Layout): Remove superfluous space for
312 * gcc-interface/ada-tree.h (TYPE_IS_EXTRA_SUBTYPE_P): New macro.
313 * gcc-interface/gigi.h (create_extra_subtype): Declare.
314 * gcc-interface/decl.c (TYPE_ARRAY_SIZE_LIMIT): Likewise.
315 (update_n_elem): New function.
316 (gnat_to_gnu_entity): Use create_extra_subtype to create extra subtypes
317 instead of doing it manually.
318 <E_Array_Type>: Use update_n_elem to compute the maximum size. Use the
319 index type instead of base type for the bounds. Set TYPE_ARRAY_MAX_SIZE
320 of the array to the maximum size.
321 <E_Array_Subtype>: Create an extra subtype using the index type of the
322 base array type for self-referential bounds. Use update_n_elem to
323 compute the maximum size. Set TYPE_ARRAY_MAX_SIZE of the array to the
325 (gnat_to_gnu_field): Clear DECL_NONADDRESSABLE_P on discriminants.
326 * gcc-interface/misc.c (gnat_get_alias_set): Return the alias set of
327 the base type for an extra subtype.
328 (gnat_type_max_size): Remove obsolete code.
329 * gcc-interface/trans.c (Attribute_to_gnu): Minor tweak.
330 (can_be_lower_p): Deal with pathological types.
331 * gcc-interface/utils.c (create_extra_subtype): New function.
332 (create_field_decl): Minor tweak.
333 (max_size) <tcc_reference>: Compute a better value by using the extra
334 subtypes on the self-referential bounds.
335 <tcc_binary>: Rewrite. Deal with "negative value" in unsigned types.
336 <tcc_expression>: Likewise.
337 * gcc-interface/utils2.c (compare_arrays): Retrieve the original bounds
338 of the arrays upfront. Swap only if the second length is not constant.
339 Use comparisons on the original bounds consistently for the null tests.
340 (build_binary_op): Use TYPE_IS_EXTRA_SUBTYPE_P macro.
341 (build_allocator): Minor tweak.
343 2019-01-27 Eric Botcazou <ebotcazou@adacore.com>
345 * gcc-interface/decl.c (array_type_has_nonaliased_component): Return
346 the same value for every dimension of a multidimensional array type.
348 2019-01-26 Eric Botcazou <ebotcazou@adacore.com>
350 * gcc-interface/trans.c (Regular_Loop_to_gnu): Use the SLOC of the
351 iteration scheme, if present, throughout the translation.
353 2019-01-26 Eric Botcazou <ebotcazou@adacore.com>
355 * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Use
356 DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT for the size to be assigned
357 by a call to memset if the LHS is a DECL.
359 2019-01-26 Eric Botcazou <ebotcazou@adacore.com>
361 * gcc-interface/trans.c (struct loop_info_d): Remove artificial field.
362 (Loop_Statement_to_gnu): Do not set it.
364 2019-01-26 Eric Botcazou <ebotcazou@adacore.com>
366 * gcc-interface/trans.c (Iterate_Acc_Clause_Arg): Fix formatting.
367 (Acc_gnat_to_gnu): Likewise.
368 (Acc_Data_to_gnu): Likewise.
369 (Acc_Var_to_gnu): Likewise.
370 (Acc_Reduc_to_gnu): Likewise.
371 (Acc_Size_List_to_gnu): Likewise.
372 (Pragma_to_gnu) <Pragma_Acc_Loop>: Likewise.
373 <Pragma_Acc_Data>): Likewise.
374 (find_loop_for): Remove default value for parameters.
375 * gcc-interface/trans.c (gnat_to_gnu) <N_Op_And>: Merge into...
378 2019-01-26 Eric Botcazou <ebotcazou@adacore.com>
380 * gcc-interface/decl.c (annotate_value) <INTEGER_CST>: Use test on
381 the sign bit instead of on the sign of the value.
382 <PLUS_EXPR>: Turn addition of negative constant into subtraction.
383 <MULT_EXPR>: Add test for degenerate case.
384 <BIT_AND_EXPR>: Simplify.
386 2019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
388 * s-oscons-tmplt.c (AF_INET6): Do not undefine for RTEMS.
390 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
393 * exp_ch11.adb: Change "can not" to "cannot".
394 * sem_ch4.adb: Likewise.
396 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
399 * exp_ch9.adb: Mechanically replace "can not" with "cannot".
400 * libgnat/s-regpat.ads: Likewise.
401 * par-ch4.adb: Likewise.
402 * set_targ.adb: Likewise.
403 * types.ads: Likewise.
405 2019-01-08 Justin Squirek <squirek@adacore.com>
408 2018-07-31 Justin Squirek <squirek@adacore.com>
410 * lib-writ.adb (Write_With_Lines): Modfiy the generation
411 of dependencies within ali files so that source unit
412 bodies are properly listed even if said bodies are
413 missing. Perform legacy behavior in GNATprove mode.
414 * lib-writ.ads: Modify documentation to reflect current
418 2018-09-26 Justin Squirek <squirek@adacore.com>
420 * lib-writ.adb, lib-writ.ads (Write_With_Lines): Add
421 documentation and an extra conditional check for RCI
422 units so that generated ali files will list the spec
423 only instead of a body when a body is not found.
425 2019-01-04 Eric Botcazou <ebotcazou@adacore.com>
427 * gnatvsn.ads: Bump copyright year.
429 2019-01-01 Jakub Jelinek <jakub@redhat.com>
431 Update copyright years.
433 * gnat_ugn.texi: Bump @copying's copyright year.
434 * gnat_rm.texi: Likewise.
436 Copyright (C) 2019 Free Software Foundation, Inc.
438 Copying and distribution of this file, with or without modification,
439 are permitted in any medium without royalty provided the copyright
440 notice and this notice are preserved.