gcc/testsuite/ChangeLog:
[official-gcc.git] / gcc / ada / ChangeLog
blob6f096266d009e2af14434b24a16c0ba780ee2578
1 2018-07-20  Martin Sebor  <msebor@redhat.com>
3         PR middle-end/82063
4         * gcc-interface/misc.c (gnat_handle_option): Change function argument
5         to HOST_WIDE_INT.
7 2018-07-17  Eric Botcazou  <ebotcazou@adacore.com>
9         * gcc-interface/decl.c (choices_to_gnu): Rename parameters.  Deal with
10         an operand of Character type.  Factor out range generation to the end.
11         Check that the bounds are literals and convert them to the type of the
12         operand before building the ranges.
13         * gcc-interface/utils.c (make_dummy_type): Minor tweak.
14         (make_packable_type): Propagate TYPE_DEBUG_TYPE.
15         (maybe_pad_type): Likewise.
17 2018-07-17  Ed Schonberg  <schonberg@adacore.com>
19         * sem_ch4.adb (Try_Object_Operation): Handle properly a prefixed call
20         in an instance, when the generic parameters include an interface type
21         and a abstract operation of that type, and the actuals in the instance
22         include an interface type and a corresponding abstract operation of it,
23         with a different name than the corresponding generic subprogram
24         parameter.
26 2018-07-17  Arnaud Charlet  <charlet@adacore.com>
28         * sem_eval.adb (Rewrite_In_Raise_CE): Keep the original reason in more
29         cases.
31 2018-07-17  Arnaud Charlet  <charlet@adacore.com>
33         * checks.adb (Apply_Division_Check): Add provision for floating-point
34         checks.
36 2018-07-17  Ed Schonberg  <schonberg@adacore.com>
38         * exp_aggr.adb (Component_OK_For_Backend): If an array component of the
39         enclosing record has a bound that is out of range (and that has been
40         rewritten as a raise statement) the aggregate is not OK for any back
41         end, and should be expanded into individual assignments.
43 2018-07-17  Piotr Trojanek  <trojanek@adacore.com>
45         * atree.adb (Relocate_Node): Simplify with Is_Rewrite_Substitution.
47 2018-07-17  Piotr Trojanek  <trojanek@adacore.com>
49         * sem_util.ads (Denotes_Same_Object): Likewise.
50         * sem_warn.adb (Warn_On_Overlapping_Actuals): Fix RM rule references.
52 2018-07-17  Eric Botcazou  <ebotcazou@adacore.com>
54         * exp_disp.adb (Make_Tags): When the type has user-defined primitives,
55         build the access type that is later used by Build_Get_Prim_Op_Address
56         as pointing to a subtype of Ada.Tags.Address_Array.
58 2018-07-17  Patrick Bernardi  <bernardi@adacore.com>
60         * libgnat/s-memory__mingw.adb: Remove.
61         * Makefile.rtl: Remove s-memory.adb target pair from the Cygwin/Mingw32
62         section.
64 2018-07-17  Hristian Kirtchev  <kirtchev@adacore.com>
66         * frontend.adb (Frontend): The removal of ignored Ghost code must be
67         the last semantic operation performed on the tree.
69 2018-07-17  Hristian Kirtchev  <kirtchev@adacore.com>
71         * frontend.adb (Frontend): Update the call to Register_Config_Switches.
72         * inline.ads: Add new component Config_Switches to record
73         Pending_Body_Info which captures the configuration state of the pending
74         body.  Remove components Version, Version_Pragma, SPARK_Mode, and
75         SPARK_Mode_Pragma from record Pending_Body_Info because they are
76         already captured in component Config_Switches.
77         * opt.adb (Register_Opt_Config_Switches): Rename to
78         Register_Config_Switches.
79         (Restore_Opt_Config_Switches): Rename to Restore_Config_Switches.
80         (Save_Opt_Config_Switches): Rename to Save_Config_Switches. This
81         routine is now a function, and returns the saved configuration state as
82         an aggregate to avoid missing an attribute.
83         (Set_Opt_Config_Switches): Rename to Set_Config_Switches.
84         * opt.ads (Register_Opt_Config_Switches): Rename to
85         Register_Config_Switches.
86         (Restore_Opt_Config_Switches): Rename to Restore_Config_Switches.
87         (Save_Opt_Config_Switches): Rename to Save_Config_Switches. This
88         routine is now a function.
89         (Set_Opt_Config_Switches): Rename to Set_Config_Switches.
90         * par.adb (Par): Update the calls to configuration switch-related
91         subprograms.
92         * sem.adb (Semantics): Update the calls to configuration switch-related
93         subprograms.
94         * sem_ch10.adb (Analyze_Package_Body_Stub): Update the calls to
95         configuration switch-related subprograms.
96         (Analyze_Protected_Body_Stub): Update the calls to configuration
97         switch-related subprograms.
98         (Analyze_Subprogram_Body_Stub): Update calls to configuration
99         switch-related subprograms.
100         * sem_ch12.adb (Add_Pending_Instantiation): Update the capture of
101         pending instantiation attributes.
102         (Inline_Instance_Body): Update the capture of pending instantiation
103         attributes.  It is no longer needed to explicitly manipulate the SPARK
104         mode.
105         (Instantiate_Package_Body): Update the restoration of the context
106         attributes.
107         (Instantiate_Subprogram_Body): Update the restoration of context
108         attributes.
109         (Load_Parent_Of_Generic): Update the capture of pending instantiation
110         attributes.
111         (Set_Instance_Env): Update the way relevant configuration attributes
112         are saved and restored.
114 2018-07-17  Eric Botcazou  <ebotcazou@adacore.com>
116         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Deal with
117         more rvalues in the expression of a renaming.
119 2018-07-17  Eric Botcazou  <ebotcazou@adacore.com>
121         * gcc-interface/ada-tree.h (TYPE_RETURN_BY_DIRECT_REF_P): Define for
122         METHOD_TYPE too.
123         (TYPE_RETURN_UNCONSTRAINED_P): Likewise.
124         (TYPE_CI_CO_LIST): Likewise.
125         * gcc-interface/gigi.h (is_cplusplus_method): Delete.
126         (fntype_same_flags_p): Adjust comment.
127         * gcc-interface/decl.c (Has_Thiscall_Convention): Delete.
128         (gnat_to_gnu_entity) <E_Subprogram_Type>: Do not set the "thiscall"
129         attribute directly.
130         (is_cplusplus_method): Make static and adjust head comment.
131         (gnat_to_gnu_param): Return a pointer for the "this" parameter of
132         C++ constructors.
133         (gnat_to_gnu_subprog_type): Turn imported C++ constructors into their
134         callable form.  Generate a METHOD_TYPE node for imported C++ methods.
135         Set param_list at the very end of the processing.
136         (substitute_in_type) <METHOD_TYPE>: New case.
137         * gcc-interface/misc.c (gnat_print_type) <METHOD_TYPE>: Likewise.
138         (gnat_type_hash_eq): Accept METHOD_TYPE.
139         * gcc-interface/trans.c (Identifier_to_gnu): Deal with METHOD_TYPE.
140         (Attribute_to_gnu): Likewise.
141         (Call_to_gnu): Likewise.
142         (process_freeze_entity): Likewise.
143         * gcc-interface/utils.c (create_subprog_decl): Adjust head comment.
144         (fntype_same_flags_p): Likewise.
146 2018-07-17  Piotr Trojanek  <trojanek@adacore.com>
148         * inline.adb (Expand_Inlined_Call): Remove extra parentheses.
150 2018-07-17  Eric Botcazou  <ebotcazou@adacore.com>
152         * exp_disp.adb (Gen_Parameters_Profile): Make the _Init parameter an
153         In/Out parameter.
154         (Set_CPP_Constructors): Adjust comment accordingly.
156 2018-07-17  Bob Duff  <duff@adacore.com>
158         * exp_disp.adb (Build_Class_Wide_Check): Return early if the
159         precondition is supposed to be ignored.
161 2018-07-17  Ed Schonberg  <schonberg@adacore.com>
163         * sem_ch6.adb (Check_Untagged_Equality): Extend check to operations
164         declared in the same scope as the operand type, when that scope is a
165         procedure.
167 2018-07-17  Ed Schonberg  <schonberg@adacore.com>
169         * exp_unst.adb (Unnest_Subprograms): Do nothing if the expander is not
170         active.  Don't use Get_Actual_Subtype for record subtypes.  Ignore
171         rewritten identifiers and uplevel references to bounds of types that
172         come from the original type reference.
174 2018-07-17  Hristian Kirtchev  <kirtchev@adacore.com>
176         * exp_ch13.adb, exp_ch7.adb, exp_unst.adb, freeze.adb,
177         libgnat/s-os_lib.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb,
178         sem_eval.adb, sem_res.adb, sem_util.adb: Minor reformatting.
180 2018-07-17  Javier Miranda  <miranda@adacore.com>
182         * exp_ch13.adb (Expand_N_Freeze_Entity): Handle subtype declared for an
183         iterator.
184         * freeze.adb (Freeze_Expression): Handle freeze of an entity defined
185         outside of a subprogram body. This case was previously handled during
186         preanalysis; the frozen entities were remembered and left pending until
187         we continued freezeing entities outside of the subprogram. Now, when
188         climbing the parents chain to locate the correct placement for the
189         freezeing node, we check if the entity can be frozen and only when no
190         enclosing node is marked as Must_Not_Freeze the entity is frozen.
191         * sem_ch3.ads (Preanalyze_Default_Expression): Declaration moved to the
192         package body.
193         * sem_ch3.adb (Preanalyze_Default_Expression): Code adjusted to invoke
194         the new subprogram Preanalyze_With_Freezing_And_Resolve.
195         * sem_ch6.adb (Preanalyze_Formal_Expression): New subprogram.
196         (Analyze_Expression_Function, Process_Formals): Invoke
197         Preanalyze_Formal_Expression instead of Preanalyze_Spec_Expression
198         since the analysis of the formals may freeze entities.
199         (Analyze_Subprogram_Body_Helper): Skip building the body of the
200         class-wide clone for eliminated subprograms.
201         * sem_res.ads, sem_res.adb (Preanalyze_And_Resolve): New subprogram.
202         Its code is basically the previous version of this routine but extended
203         with an additional parameter which is used to specify if during
204         preanalysis we are allowed to freeze entities.  If the new parameter is
205         True then the subtree root node is marked as Must_Not_Freeze and no
206         entities are frozen during preanalysis.
207         (Preanalyze_And_Resolve): Invokes the internal version of
208         Preanalyze_And_Resolve without entity freezing.
209         (Preanalyze_With_Freezing_And_Resolve): Invokes the internal version of
210         Prenalyze_And_Resolve with freezing enabled.
212 2018-07-17  Piotr Trojanek  <trojanek@adacore.com>
214         * einfo.ads, libgnat/g-comlin.ads: Minor change "ie" to "i.e." in docs
215         and comments.
217 2018-07-17  Justin Squirek  <squirek@adacore.com>
219         * libgnat/s-os_lib.adb (Argument_String_To_List): Fix trimming of
220         whitespace.
222 2018-07-17  Hristian Kirtchev  <kirtchev@adacore.com>
224         * sem_prag.adb (Has_Visible_State): Do not consider constants as
225         visible state because it is not possible to determine whether a
226         constant depends on variable input.
227         (Propagate_Part_Of): Add comment clarifying the behavior with respect
228         to constant.
230 2018-07-17  Yannick Moy  <moy@adacore.com>
232         * gnat1drv.adb (Gnat1drv): Do not issue warning about exception not
233         being propagated in GNATprove mode.
235 2018-07-17  Dmitriy Anisimkov  <anisimko@adacore.com>
237         * libgnat/g-socket.adb, libgnat/g-socket.ads: Reorganize and make
238         public components of Inet_Addr_Type. Introduce public binary
239         operations.
241 2018-07-17  Javier Miranda  <miranda@adacore.com>
243         * exp_ch7.adb (Make_Transient_Block): When determining whether an
244         enclosing scope already handles the secondary stack, take into account
245         transient blocks nested in a block that do not manage the secondary
246         stack and are located within a loop.
248 2018-07-17  Ed Schonberg  <schonberg@adacore.com>
250         * sem_util.adb (Enclosing_Subprogram): Protected entries and task
251         entries must be treated separately: task entries are within the
252         enclosing subprogram of the task type, while protected entries are
253         transformed into the corresponding Protected_Body_Subprogram, which is
254         the enclosing_subprogram of any subprogram declared within the entry
255         body.
257 2018-07-17  Hristian Kirtchev  <kirtchev@adacore.com>
259         * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Add missing
260         sections on -gnatH and -gnatJ compiler switches.
261         * gnat_ugn.texi: Regenerate.
263 2018-07-17  Hristian Kirtchev  <kirtchev@adacore.com>
265         * alloc.ads: Update the allocation metrics of the ignored Ghost nodes
266         table.
267         * atree.adb: Add a soft link for a procedure which is invoked whenever
268         an ignored Ghost node or entity is created.
269         (Change_Node): Preserve relevant attributes which come from the Flags
270         table.
271         (Mark_New_Ghost_Node): Record a newly created ignored Ghost node or
272         entity.
273         (Rewrite): Preserve relevant attributes which come from the Flags
274         table.
275         (Set_Ignored_Ghost_Recording_Proc): New routine.
276         * atree.ads: Define an access-to-suprogram type for a soft link which
277         records a newly created ignored Ghost node or entity.
278         (Set_Ignored_Ghost_Recording_Proc): New routine.
279         * ghost.adb: Remove with and use clause for Lib.  Remove table
280         Ignored_Ghost_Units.  Add new table Ignored_Ghost_Nodes.
281         (Add_Ignored_Ghost_Unit): Removed.
282         (Initialize): Initialize the table which stores ignored Ghost nodes.
283         Set the soft link which allows Atree.Mark_New_Ghost_Node to record an
284         ignored Ghost node.
285         (Is_Ignored_Ghost_Unit): Use the ultimate original node when checking
286         an eliminated ignored Ghost unit.
287         (Lock): Release and lock the table which stores ignored Ghost nodes.
288         (Mark_And_Set_Ghost_Assignment): Record rather than propagate ignored
289         Ghost nodes.
290         (Mark_And_Set_Ghost_Procedure_Call): Record rather than propagate
291         ignored Ghost nodes.
292         (Mark_Ghost_Clause): Record rather than propagate ignored Ghost nodes.
293         (Mark_Ghost_Declaration_Or_Body): Record rather than propagate ignored
294         Ghost nodes.
295         (Mark_Ghost_Pragma): Record rather than propagate ignored Ghost nodes.
296         (Propagate_Ignored_Ghost_Code): Removed.
297         (Record_Ignored_Ghost_Node): New routine.
298         (Remove_Ignored_Ghost_Code): Reimplemented.
299         (Remove_Ignored_Ghost_Node): New routine.
300         (Ultimate_Original_Node): New routine.
301         * ghost.ads (Check_Ghost_Completion): Removed.
302         * sem_ch8.adb (Analyze_Use_Package): Remove obsolete code. Mark a use
303         package clause as ignored Ghost if applicable.
304         * sem_util.adb (Is_Body_Or_Package_Declaration): Reimplemented.
306 2018-07-17  Javier Miranda  <miranda@adacore.com>
308         * sem_ch5.adb (Has_Call_Using_Secondary_Stack): Moved to library level
309         to reuse it.
310         (Analyze_Loop_Statement): Wrap the loop in a block when the evaluation
311         of the loop iterator relies on the secondary stack.
313 2018-07-17  Piotr Trojanek  <trojanek@adacore.com>
315         * sem_util.adb (Next_Actual): If the parent is a N_Null_Statement,
316         which happens for inlined calls, then fetch the next actual from the
317         original AST.
319 2018-07-17  Ed Schonberg  <schonberg@adacore.com>
321         * einfo.ads: Update documentation for Scalar_Range.
323 2018-07-17  Piotr Trojanek  <trojanek@adacore.com>
325         * lib-xref-spark_specific.adb (Create_Heap): Attach the HEAP entity to
326         the Standard package.
328 2018-07-17  Piotr Trojanek  <trojanek@adacore.com>
330         * einfo.adb (Is_Wrapper_Package): Remove extra parentheses.
332 2018-07-17  Ed Schonberg  <schonberg@adacore.com>
334         * sem_util.adb (Enclosing_Subprogram): Handle properly entries, and
335         synchronized types that are completions of limited types or private
336         extensions.
337         (Scope_Within): Handle properly accept statements in task bodies.
339 2018-07-17  Hristian Kirtchev  <kirtchev@adacore.com>
341         * sem_prag.adb (Has_Visible_State): Do not consider generic formals
342         because they are not part of the visible state space. Add constants to
343         the list of acceptable visible states.
344         (Propagate_Part_Of): Do not consider generic formals when propagating
345         the Part_Of indicator.
346         * sem_util.adb (Entity_Of): Do not follow renaming chains which go
347         through a generic formal because they are not visible for SPARK
348         purposes.
349         * sem_util.ads (Entity_Of): Update the comment on usage.
351 2018-07-17  Ed Schonberg  <schonberg@adacore.com>
353         * sem_util.adb (Gather_Components): A discriminant of an ancestor may
354         have been constrained by a later ancestor, so when looking for the
355         value of that hidden discriminant we must examine the stored constraint
356         of other ancestors than the immediate parent type.
358 2018-07-17  Hristian Kirtchev  <kirtchev@adacore.com>
360         * exp_ch6.adb (Build_Heap_Or_Pool_Allocator): Ensure that scoping
361         constructs and entities within receive new entities when replicating a
362         tree.
363         (Expand_N_Extended_Return_Statement): Ensure that scoping constructs
364         and entities within receive new entities when replicating a tree.
365         * sem_util.adb (New_Copy_Tree): Add new formal Scopes_In_EWA_OK.
366         (Visit_Entity): Visit entities within scoping constructs inside
367         expression with actions nodes when requested by the caller. Add blocks,
368         labels, and procedures to the list of entities which need replication.
369         * sem_util.ads (New_Copy_Tree): Add new formal Scopes_In_EWA_OK. Update
370         the comment on usage.
372 2018-07-17  Arnaud Charlet  <charlet@adacore.com>
374         * doc/gnat_ugn/about_this_guide.rst,
375         doc/gnat_ugn/gnat_and_program_execution.rst: Remove references to gcov.
376         * gnat_ugn.texi: Regenerate.
378 2018-07-16  Hristian Kirtchev  <kirtchev@adacore.com>
380         * contracts.adb (Analyze_Contracts): Add specialized processing for
381         package instantiation contracts.
382         (Analyze_Package_Contract): Remove the verification of a missing
383         Part_Of indicator.
384         (Analyze_Package_Instantiation_Contract): New routine.
385         * contracts.ads (Analyze_Package_Contract): Update the comment on
386         usage.
387         * sem_prag.adb (Check_Missing_Part_Of): Ensure that the entity of the
388         instance is being examined when trying to determine whether a package
389         instantiation needs a Part_Of indicator.
391 2018-07-16  Hristian Kirtchev  <kirtchev@adacore.com>
393         * einfo.adb, exp_ch7.adb, exp_ch9.adb, exp_unst.adb, inline.adb,
394         sem.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb, sem_eval.adb,
395         sem_util.adb: Minor reformatting.
397 2018-07-16  Arnaud Charlet  <charlet@adacore.com>
399         * frontend.adb: Only unnest subprograms if no previous errors were
400          detected.
402 2018-07-16  Ed Schonberg  <schonberg@adacore.com>
404         * exp_ch7.adb (Check_Unnesting_Elaboration_Code): Handle loops that
405         contain blocks in the elaboration code for a package body. Create the
406         elaboration subprogram wrapper only if there is a subprogram
407         declaration in a block or loop.
409 2018-07-16  Ed Schonberg  <schonberg@adacore.com>
411         * exp_ch4.adb (Expand_Set_Membership): Use New_Copy_Tree to perform a
412         deep copy of the left operand when building each conjuct of the
413         expanded membership operation, to avoid sharing nodes between them.
414         This sharing interferes with the unnesting machinery and is generally
415         undesirable.
417 2018-07-16  Ed Schonberg  <schonberg@adacore.com>
419         * exp_unst.adb (Visit_Node): Handle 'Address references that are
420         calls.
422 2018-07-16  Ed Schonberg  <schonberg@adacore.com>
424         * exp_unst.adb (Visit_Node): Handle the semantic of Storage_Pool field
425         in relevant nodes: Allocate, Free, and return statements.
427 2018-07-16  Ed Schonberg  <schonberg@adacore.com>
429         * sem_ch12.adb (Analyze_Package_Instantiation): Handle properly an
430         instance that carries an aspect Default_Storage_Pool that overrides a
431         default storage pool that applies to the generic unit. The aspect in
432         the generic unit was removed before copying it in the instance, rather
433         than removing it from the copy of the aspects that are appended to the
434         aspects in the instance.
436 2018-07-16  Ed Schonberg  <schonberg@adacore.com>
438         * einfo.adb (Set_Is_Uplevel_Referenced_Entity): Flag can appear on
439         loop parameters.
440         * exp_ch7.adb (Check_Unnesting_Elaboration_Code): Handle subprogram
441         bodies.
442         * exp_ch9.adb (Reset_Scopes_To): Set the scopes of entities local to an
443         entry body to be the corresponding generated subprogram, for correct
444         analysis of uplevel references.
445         * exp_unst.adb (Visit_Node): Handle properly binary and unary operators
446         Ignore pragmas, fix component associations.
447         (Register_Subprograms): Subprograms in synchronized types must be
448         treated as reachable.
450 2018-07-16  Hristian Kirtchev  <kirtchev@adacore.com>
452         * sem_util.adb (Check_No_Hidden_State): Ignore internally-generated
453         states and variables.
455 2018-07-16  Piotr Trojanek  <trojanek@adacore.com>
457         * sinfo.ads, sinfo.adb (Withed_Body): Remove.
458         (Set_Withed_Body): Remove.
460 2018-07-16  Piotr Trojanek  <trojanek@adacore.com>
462         * sem.adb (Walk_Library_Items): Skip units with configuration pragmas
463         when printing debug info.
465 2018-07-16  Piotr Trojanek  <trojanek@adacore.com>
467         * sem.adb (Walk_Library_Items): Reuse local constant.
468         (Is_Subunit_Of_Main): Turn condition to positive and flip the
469         IF-THEN-ELSE branches; avoid potentially ineffective assignment to the
470         Lib variable.
472 2018-07-16  Piotr Trojanek  <trojanek@adacore.com>
474         * sem.adb (Walk_Library_Items): Deconstruct dead code.
476 2018-07-16  Ed Schonberg  <schonberg@adacore.com>
478         * exp_ch4.adb (Expand_N_Op_Xor): Use common routine
479         Expand_Nonbinary_Modular_Op.  Needed for unnesting.
481 2018-07-16  Ed Schonberg  <schonberg@adacore.com>
483         * sem_ch3.adb (Inherit_Predicate_Flags): A non-discrete type may have a
484         static predicate (for example True) but has no
485         static_discrete_predicate.
487 2018-07-16  Hristian Kirtchev  <kirtchev@adacore.com>
489         * exp_attr.adb (Build_Record_VS_Func): Handle corner cases dealing with
490         class-wide types and record extensions.
492 2018-07-16  Justin Squirek  <squirek@adacore.com>
494         * sem_eval.adb (Eval_Integer_Literal): Add exception for avoiding
495         checks on expanded literals within if and case expressions.
497 2018-07-16  Hristian Kirtchev  <kirtchev@adacore.com>
499         * libgnat/s-wchwts.adb (Wide_String_To_String): Use the appropriate
500         longest sequence factor. Code clean up.
501         (Wide_Wide_String_To_String): Use the appropriate longest sequence
502         factor.  Code clean up.
504 2018-07-16  Javier Miranda  <miranda@adacore.com>
506         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Report an error
507         on Bit_Order when defined for a record extension.
509 2018-07-16  Arnaud Charlet  <charlet@adacore.com>
511         * libgnat/s-objrea.ads: Minor code clean up.
513 2018-07-16  Piotr Trojanek  <trojanek@adacore.com>
515         * sem_ch3.adb (Process_Discriminants): Adjust reference to the SPARM RM
516         rule.
518 2018-07-16  Arnaud Charlet  <charlet@adacore.com>
520         * adaint.c (__gnat_set_file_time_name): Code clean up.
522 2018-07-16  Javier Miranda  <miranda@adacore.com>
524         * inline.adb (Build_Body_To_Inline): Minor code reorganization that
525         ensures that calls to function Has_Single_Return() pass a decorated
526         tree.
527         (Has_Single_Return.Check_Return): Peform checks on entities (instead on
528         relying on their characters).
530 2018-07-16  Javier Miranda  <miranda@adacore.com>
532         * exp_ch5.adb (Expand_Iterator_Loop_Over_Array): Code cleanup. Required
533         to avoid generating an ill-formed tree that confuses gnatprove causing
534         it to blowup.
536 2018-07-16  Yannick Moy  <moy@adacore.com>
538         * inline.adb (Has_Single_Return): Rewrap comment.
540 2018-07-16  Eric Botcazou  <ebotcazou@adacore.com>
542         * einfo.ads: Minor tweak in comment.
544 2018-07-16  Javier Miranda  <miranda@adacore.com>
546         * sem_ch4.adb (Analyze_Membership_Op): Code cleanup.
548 2018-07-16  Javier Miranda  <miranda@adacore.com>
550         * exp_attr.adb (Expand_N_Attribute_Reference ['Count]): Do not
551         transform 'Count into a function call if the current scope has been
552         eliminated.
554 2018-07-16  Javier Miranda  <miranda@adacore.com>
556         * sem_util.ads, sem_util.adb (Has_Prefix): Move this function to the
557         public part of this package.
559 2018-07-16  Yannick Moy  <moy@adacore.com>
561         * sem_res.adb (Resolve_Call): Do not inline calls inside
562         compiler-generated functions translated as predicates in GNATprove.
564 2018-07-16  Gary Dismukes  <dismukes@adacore.com>
566         * exp_ch4.adb (Expand_N_Allocator): Test for Storage_Pool being RTE in
567         addition to the existing test for no Storage_Pool as a condition
568         enabling generation of the call to Check_Standard_Allocator when the
569         restriction No_Standard_Allocators_After_Elaboration is active.
570         * libgnat/s-elaall.ads (Check_Standard_Allocator): Correct comment to
571         say that Storage_Error will be raised (rather than Program_Error).
572         * libgnat/s-elaall.adb (Check_Standard_Allocator): Raise Storage_Error
573         rather than Program_Error when Elaboration_In_Progress is False.
575 2018-07-16  Gary Dismukes  <dismukes@adacore.com>
577         * sem_eval.adb: Fix spelling for compile-time-known.
579 2018-07-16  Hristian Kirtchev  <kirtchev@adacore.com>
581         * sem_eval.adb (Compile_Time_Known_Value): Add a guard which prevents
582         the compiler from entering infinite recursion when trying to determine
583         whether a deferred constant has a compile time known value, and the
584         initialization expression of the constant is a reference to the
585         constant itself.
587 2018-07-16  Nicolas Roche  <roche@adacore.com>
589         * libgnat/a-strunb.adb, libgnat/a-strunb__shared.adb: Adjust growth
590         factor from 1/32 to 1/2 for Unbounded_String.
592 2018-07-13  Eric Botcazou  <ebotcazou@adacore.com>
594         * gcc-interface/lang.opt (funsigned-char): New option.
595         * gcc-interface/misc.c (gnat_handle_option): Accept it.
596         * gcc-interface/utils.c (finish_character_type): Tweak comment.
598 2018-07-07  Eric Botcazou  <ebotcazou@adacore.com>
600         * gcc-interface/decl.c (gnat_to_gnu_entity): Add GNAT_DECL local
601         variable and use it throughout.
602         <E_Variable>: If the nominal subtype of the object is unconstrained,
603         compute the Ada size separately and put in on the padding type if the
604         size is not fixed.
605         <E_Record_Type>: Minor tweak.
606         * gcc-interface/misc.c (gnat_type_max_size): Rename max_size_unit
607         into max_size_unit throughout.
609 2018-07-07  Eric Botcazou  <ebotcazou@adacore.com>
611         * gcc-interface/gigi.h (add_decl_expr): Adjust prototype.
612         * gcc-interface/decl.c (gnat_to_gnu_entity): Remove useless test.
613         * gcc-interface/trans.c (add_stmt_with_node): Remove exceptions.
614         (add_decl_expr): Change type of second parameter and rename it.
615         (renaming_from_instantiation_p): New function moved from...
616         (set_expr_location_from_node): Test for exceptions here and add one
617         for actual subtypes built for unconstrained composite actuals.
618         * gcc-interface/utils.c (renaming_from_instantiation_p): ...here.
620 2018-07-07  Eric Botcazou  <ebotcazou@adacore.com>
622         * gcc-interface/trans.c (lvalue_required_p): Remove ALIASED parameter
623         and adjust recursive calls.
624         (Identifier_to_gnu): Adjust calls to lvalue_required_p.
625         (gnat_to_gnu): Likewise.
627 2018-07-07  Eric Botcazou  <ebotcazou@adacore.com>
629         * gcc-interface/decl.c (gnat_to_gnu_param): Minor tweak.
630         (gnat_to_gnu_subprog_type): New pure_flag local variable.  Set it for
631         a pure Ada function with a by-ref In parameter.  Propagate it onto the
632         function type by means of the TYPE_QUAL_RESTRICT flag.
633         * gcc-interface/utils.c (finish_subprog_decl): Set DECL_PURE_P if the
634         function type has the TYPE_QUAL_RESTRICT flag set.
636 2018-07-06  Jim Wilson  <jimw@sifive.com>
638         * Makefile.rtl: Add riscv*-linux* support.
639         * libgnarl/s-linux__riscv.ads: New.
640         * libgnat/system-linux-riscv.ads: New.
642         * Make-generated.in (treeprs.ads): Use $(GNATMAKE) instead of gnatmake.
643         (einfo.h, sinfo.h, stamp-snames, stamp-nmake): Likewise.
644         * gcc-interface/Makefile.in (xoscons): Likewise.
646 2018-07-06  Sebastian Huber  <sebastian.huber@embedded-brains.de>
648         * libgnat/system-rtems.ads (Frontend_Exceptions): Set to False.
649         (ZCX_By_Default): Set to True.
651 2018-07-02  Martin Liska  <mliska@suse.cz>
653         * gnatvsn.ads: Bump Library_Version to 9.
655 2018-06-12  Eric Botcazou  <ebotcazou@adacore.com>
657         * gcc-interface/ada-tree.h (TYPE_RETURN_BY_DIRECT_REF_P): Change from
658         using TYPE_LANG_FLAG_4 to using TYPE_LANG_FLAG_0.
659         (TYPE_ALIGN_OK): Move around.
660         (TYPE_PADDING_FOR_COMPONENT): Remove superfluous parentheses.
661         * gcc-interface/decl.c (change_qualified_type): Move to...
662         (gnat_to_gnu_entity): Adjust comment.
663         * gcc-interface/gigi.h (change_qualified_type): ...here; make inline.
664         (ceil_pow2): Use ceil_log2.
665         * gcc-interface/utils.c (finish_subprog_decl): Add couple of comments
666         and do not set TREE_SIDE_EFFECTS.
667         (handle_noreturn_attribute): Use change_qualified_type.
669 2018-06-12  Eric Botcazou  <ebotcazou@adacore.com>
671         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Do not get
672         the expression of a dispatch table that is not being defined.
673         <E_Record_Subtype>: Remove obsolete kludge.
675 2018-06-12  Eric Botcazou  <ebotcazou@adacore.com>
677         * gcc-interface/decl.c (warn_on_field_placement): Use specific wording
678         for discriminants.
679         (warn_on_list_placement): New static function.
680         (components_to_record): Use it to warn on multiple fields in list.
682 2018-06-12  Eric Botcazou  <ebotcazou@adacore.com>
684         * gcc-interface/decl.c (variant_desc): Add AUX field.
685         (gnat_to_gnu_entity) <discrete_type>: Do not call compute_record_mode
686         directly.
687         (reverse_sort_field_list): New static function.
688         (components_to_record): Place the variant part at the beginning of the
689         field list when there is an obvious order of increasing position.
690         (build_variant_list): Initialize it.
691         (create_variant_part_from): Do not call compute_record_mode directly.
692         (copy_and_substitute_in_layout): Likewise.  Always sort the fields with
693         fixed position in order of increasing position, in the record and all
694         the variants, in any.  Call reverse_sort_field_list.
695         * gcc-interface/utils.c (make_packable_type): Compute the sizes before
696         calling finish_record_type.  Do not call compute_record_mode directly.
697         (finish_record_type): Overhaul final processing depending on REP_LEVEL
698         and call finish_bitfield_layout if it is equal to one or two.
700 2018-06-11  Eric Botcazou  <ebotcazou@adacore.com>
702         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Reuse the
703         existing fields of a dummy fat pointer type, if any.  Clear the
704         TYPE_DECL_SUPPRESS_DEBUG on the fat pointer type after completing it.
706 2018-06-11  Hristian Kirtchev  <kirtchev@adacore.com>
708         * contracts.adb (Process_Body_Postconditions): Expand only checked
709         postconditions.
710         (Process_Contract_Cases_For): Expand only checked contract cases.
711         (Process_Inherited_Preconditions): Ignored class-wide preconditions are
712         partially expanded because some of their semantic checks are tied to
713         the expansion.
714         (Process_Preconditions_For): Expand only checked preconditions.
715         (Process_Spec_Postconditions): Expand only checked preconditions.
716         Ignored class-wide preconditions are partially expanded because some of
717         their semantic checks are tied to the expansion.
718         * exp_prag.adb (Expand_N_Pragma): Suppress the expansion of ignored
719         assertion pragmas.
720         * exp_util.adb (Add_Inherited_Invariants): Code clean up.
721         * sem_util.adb (Propagate_Invariant_Attributes): Code clean up.
723 2018-06-11  Hristian Kirtchev  <kirtchev@adacore.com>
725         * exp_ch9.adb, exp_unst.adb, inline.adb, libgnat/a-ciorma.adb,
726         libgnat/a-ciormu.adb, libgnat/a-ciorse.adb, libgnat/a-coorma.adb,
727         libgnat/a-coormu.adb, libgnat/a-coorse.adb, sem_prag.adb: Minor
728         reformatting.
730 2018-06-11  Gary Dismukes  <dismukes@adacore.com>
732         * exp_unst.ads, exp_unst.adb: Typo fixes and minor reformatting.
734 2018-06-11  Hristian Kirtchev  <kirtchev@adacore.com>
736         * exp_ch6.adb (Add_Unconstrained_Actuals_To_Build_In_Place_Call): Do
737         not add any actuals when the size of the object is known, and the
738         caller will allocate it.
739         (Build_Heap_Allocator): Rename to Build_Heap_Or_Pool_Allocator to
740         better illustrate its functionality. Update the comment on the
741         generated code.  Generate a branch for the heap and pool cases where
742         the object is not necessarity controlled.
743         (Expand_N_Extended_Return_Statement): Expand the extended return
744         statement into four branches depending the requested mode if the caller
745         will not allocate the object on its side.
746         (Make_Build_In_Place_Call_In_Allocator): Do not allocate a controlled
747         object on the caller side because this will violate the semantics of
748         finalizable types. Instead notify the function to allocate the object
749         on the heap or a user-defined storage pool.
750         (Needs_BIP_Alloc_Form): A build-in-place function needs to be notified
751         which of the four modes to employ when returning a limited controlled
752         result.
753         * exp_util.adb (Build_Allocate_Deallocate_Proc): Remove a redundant
754         guard which is already covered in Needs_Finalization.
756 2018-06-11  Olivier Hainque  <hainque@adacore.com>
758         * libgnat/s-excmac*.ads: Factorize Unwind_Action definitions ...
759         * libgnat/a-exexpr.adb: ... Here, then add comments describing the
760         major datastructures associated with the current exception raised.
761         (Setup_Current_Excep): Accept a "Phase" argument conveying the
762         unwinding phase during which this subprogram is called.  For an Ada
763         exception, don't update the current exception buffer from the raised
764         exception object during SEARCH_PHASE, as this is redundant with the
765         call now issued just before propagation starts.
766         (Propagate_GCC_Exception): Move call to Setup_Current_Excep ahead of
767         the unwinding start, conveying Phase 0.
768         (Unhandled_Except_Handler): Pass UA_CLEANUP_PHASE as the Phase value on
769         the call to Setup_Current_Excep.
770         * raise-gcc.c (personality_body): Pass uw_phases as the Phase argument
771         on calls to Setup_Current_Excep.
773 2018-06-11  Ed Schonberg  <schonberg@adacore.com>
775         * exp_unst.ads, exp_unst.adb (Needs_Fat_Pointer,
776         Build_Access_Type_Decl): New subprograms to handle uplevel references
777         to formals of an unconstrained array type. The activation record
778         component for these is an access type, and the reference is rewritten
779         as an explicit derefenrence of that component.
781 2018-06-11  Bob Duff  <duff@adacore.com>
783         * libgnat/a-ciorma.adb, libgnat/a-ciormu.adb, libgnat/a-ciorse.adb,
784         libgnat/a-coorma.adb, libgnat/a-coormu.adb, libgnat/a-coorse.adb:
785         (Element): Add code to detect dangling cursors in some cases.
787 2018-06-11  Yannick Moy  <moy@adacore.com>
789         * sem_ch6.adb (Build_Subprogram_Declaration): Mark parameters as coming
790         from source.
792 2018-06-11  Ed Schonberg  <schonberg@adacore.com>
794         * sem_ch13.adb (Build_Predicate_Functions): For a derived type, ensure
795         that its parent is already frozen so that its predicate function, if
796         any, has already been constructed.
798 2018-06-11  Yannick Moy  <moy@adacore.com>
800         * sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context): Adapt for
801         possible task unit as the enclosing context.
803 2018-06-11  Eric Botcazou  <ebotcazou@adacore.com>
805         * gnat1drv.adb: Remove use clause for Repinfo.
806         (Gnat1drv): Beef up comment about the interplay between -gnatc and
807         back-end annotations.  Use full qualified name for List_Rep_Info.
809 2018-06-11  Hristian Kirtchev  <kirtchev@adacore.com>
811         * libgnat/g-arrspl.ads: Add pragma Preelaborate.
813 2018-06-11  Arnaud Charlet  <charlet@adacore.com>
815         * exp_ch4.adb (Expand_Record_Equality): Remove extraneous "True and
816         then" and general logical "ada" in codepeer mode.
818 2018-06-11  Javier Miranda  <miranda@adacore.com>
820         * exp_ch9.adb (Expand_N_Protected_Body): Add missing handling of
821         N_Call_Marker nodes.
823 2018-06-11  Arnaud Charlet  <charlet@adacore.com>
825         * exp_ch3.adb, exp_unst.adb, inline.adb, sem_prag.adb: Minor
826         reformatting.
828 2018-06-11  Yannick Moy  <moy@adacore.com>
830         * doc/gnat_rm/implementation_defined_pragmas.rst: Add Suppressible
831         argument to Assertion_Policy
832         * gnat_rm.texi: Regenerate.
834 2018-06-11  Yannick Moy  <moy@adacore.com>
836         * gnat1drv.adb: Do not check representation information in CodePeer and
837         GNATprove modes, as these modes call a special backend instead of gigi,
838         so do not have the information.
840 2018-06-11  Yannick Moy  <moy@adacore.com>
842         * inline.adb (Build_Body_To_Inline): Consider case of extended return
843         of unconstrained type as one case where inlining is not supported.
844         (Expand_Inlined_Call): Remove special case for body as extended return
845         of unconstrained type.
847 2018-06-11  Yannick Moy  <moy@adacore.com>
849         * sem_prag.adb (Analyze_Part_Of): Only allow Part_Of on non-generic
850         unit.
851         (Check_Missing_Part_Of): Do not force Part_Of on generic unit.
853 2018-06-11  Piotr Trojanek  <trojanek@adacore.com>
855         * sem_ch13.adb (Analyze_Aspect_Specifications): Don't split AND THEN
856         expressions in Pre/Post contracts while in GNATprove_Mode.
858 2018-06-11  Piotr Trojanek  <trojanek@adacore.com>
860         * sem_util.adb (Is_Potentially_Unevaluated): Fix detection of contracts
861         with AND THEN expressions broken down into individual conjuncts.
863 2018-06-11  Ed Schonberg  <schonberg@adacore.com>
865         * exp_ch7.adb (Check_Unnesting_Elaboration_Code): Add guard.
867 2018-06-11  Ed Schonberg  <schonberg@adacore.com>
869         * exp_unst.adb (Visit_Node): Skip generic associations.
871 2018-06-11  Arnaud Charlet  <charlet@adacore.com>
873         * libgnat/memtrack.adb (fwrite): Remove second definition.
875 2018-06-11  Javier Miranda  <miranda@adacore.com>
877         * sinfo.ads (Is_Dynamic_Coextension): Adding documentation.
878         (Is_Static_Coextension): Adding documentation.
879         * sinfo.adb (Is_Dynamic_Coextension): Extending the assertion.
880         (Is_Static_Coextension): Extending the assertion.
881         * sem_util.adb (Mark_Allocator): Clear Is_Static_Coextension when
882         setting flag Is_Dynamic_Coextension (and vice versa).
884 2018-06-11  Ed Schonberg  <schonberg@adacore.com>
886         * exp_unst.adb (Search_Subprograms): Handle explicitly stubs at the top
887         level of a compilation unit, becuase they may contain nested
888         subprograms that need an activation record.
890 2018-06-11  Arnaud Charlet  <charlet@adacore.com>
892         * Makefile.rtl: Compile Ada files with $(ADAC) instead of $(CC).
894 2018-06-11  Hristian Kirtchev  <kirtchev@adacore.com>
896         * exp_ch11.adb, exp_unst.adb, inline.adb, sem_ch12.adb, sem_util.adb:
897         Minor reformatting.
898         * sinfo.ads: Fix a typo.
900 2018-06-11  Ed Schonberg  <schonberg@adacore.com>
902         * inline.adb (Expand_Inlined_Call): If no optimization level is
903         specified, the expansion of a call to an Inline_Always function is
904         fully performed in the front-end even on a target that support back-end
905         inlining.
907 2018-06-11  Arnaud Charlet  <charlet@adacore.com>
909         * bindgen.adb (Gen_Adainit): Protect reference to System.Parameters
910         with Sec_Stack_Used.
912 2018-06-11  Hristian Kirtchev  <kirtchev@adacore.com>
914         * sem_ch8.adb (Find_Direct_Name): Mode the declaration of
915         Is_Assignment_LHS further in. Use predicate
916         Needs_Variable_Reference_Marker to determine whether to create a
917         variable marker.
918         (Find_Expanded_Name): Mode the declaration of Is_Assignment_LHS further
919         in.  Use predicate Needs_Variable_Reference_Marker to determine whether
920         to create a variable marker.
921         * sem_elab.adb (Build_Variable_Reference_Marker): Remove the various
922         checks that determine whether the identifier or expanded name is a
923         suitable variable reference.  The checks are now performed by
924         Needs_Variable_Reference_Marker.
925         * sem_res.adb (Resolve_Actuals): Use predicate
926         Needs_Variable_Reference_Marker to determine whether to create a
927         variable marker.
928         * sem_util.adb (Needs_Variable_Reference_Marker): New routine.
929         * sem_util.ads (Needs_Variable_Reference_Marker): New routine.
931 2018-06-11  Valentine Reboul  <reboul@adacore.com>
933         * doc/gnat_rm.rst, doc/gnat_ugn.rst: Rename "GPL Edition" into
934         "Community Edition".
936 2018-06-11  Ed Schonberg  <schonberg@adacore.com>
938         * sem_ch12.adb (Install_Body): In order to determine the placement of
939         the freeze node for an instance of a generic nested within another
940         instance, take into account that the outer instance may be declared in
941         the visible part of a package and the inner intance may be in the
942         private part of the same package.
944 2018-06-11  Eric Botcazou  <ebotcazou@adacore.com>
946         * errout.adb (Special_Msg_Delete): Remove handling of Atomic and VFA.
948 2018-06-11  Nicolas Roche  <roche@adacore.com>
950         * libgnat/s-valuti.adb (Bad_Value): Ensure that we do not generate a
951         stack overflow while raising a constraint error.
953 2018-06-11  Eric Botcazou  <ebotcazou@adacore.com>
955         * repinfo.ads (Rep_Value): Use a single line.
956         * repinfo.adb (Rep_Value): Likewise.
957         (List_Attr): Do not use string concatenation.
959 2018-06-11  Ed Schonberg  <schonberg@adacore.com>
961         * exp_unst.adb (Visit_Node): Check reference to formal parameter of
962         current procedure, because the bounds of its type may be uplevel
963         references.
965 2018-06-02  Eric Botcazou  <ebotcazou@adacore.com>
967         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: If this is
968         not a definition, retrieve the expression only if it's a compile-time
969         known value if we are just annotating types.
971         * gcc-interface/utils.c (convert): Do not try to upcast properly for a
972         conversion between tagged types in type_annotate_only mode.
974 2018-06-02  Eric Botcazou  <ebotcazou@adacore.com>
976         * gcc-interface/ada-tree.h (TYPE_PADDING_FOR_COMPONENT): New macro.
977         * gcc-interface/decl.c (gnat_to_gnu_component_type): Cache the padding
978         type built for an aliased component with variable size.
980 2018-05-31  Pierre-Marie de Rodat  <derodat@adacore.com>
982         * doc/gnat_ugn/project-manager-figure.png: Delete.
984 2018-05-31  Pierre-Marie de Rodat  <derodat@adacore.com>
986         * vxworks-arm-link.spec, vxworks-e500-link.spec,
987         vxworks-gnat-crtbe-link.spec, vxworks-smp-arm-link.spec,
988         vxworks-smp-e500-link.spec, vxworks-smp-ppc-link.spec,
989         vxworks-smp-x86-link.spec: New files.
991 2018-05-31  Pierre-Marie de Rodat  <derodat@adacore.com>
993         * gnatvsn.adb: Re-center the copyright header.
994         * indepsw-darwin.adb: Adjust the starting copyright year to 2011.
996 2018-05-31  Fedor Rybin  <frybin@adacore.com>
998         * doc/gnat_ugn/gnat_utility_programs.rst: Document Stubs_Subdir in
999         gnattest section on user guide.
1001 2018-05-31  Ed Schonberg  <schonberg@adacore.com>
1003         * sem_res.adb (Resolve_String_Literal): If the type is a string type
1004         whose component subtype has a static predicate, ensure that the
1005         predicate is applied to each character by expanding the string into the
1006         equivalent aggregate. This is also done if the component subtype is
1007         constrained.
1009 2018-05-31  Eric Botcazou  <ebotcazou@adacore.com>
1011         * gcc-interface/trans.c (Call_to_gnu): Remove obsolete code.
1013 2018-05-31  Piotr Trojanek  <trojanek@adacore.com>
1015         * sem_ch6.adb (Check_Missing_Return): Handle procedures with no
1016         explicit spec.
1018 2018-05-31  Eric Botcazou  <ebotcazou@adacore.com>
1020         * gcc-interface/trans.c (Call_to_gnu): In the by-reference case, if
1021         the type of the parameter is an unconstrained array type, convert
1022         to the type of the actual before the type of the formal only if the
1023         conversion was suppressed earlier.  Use in_param and gnu_actual_type
1024         local variables throughout, and uniform spelling for In Out or Out.
1025         Also remove dead code in the component-by-reference case.
1027 2018-05-31  Frederic Konrad  <konrad@adacore.com>
1029         * tracebak.c (STOP_FRAME): Harden condition.
1030         (is_return_from, EXTRA_STOP_CONDITION): New helpers for VxWorks in RTP
1031         mode.
1033 2018-05-31  Ed Schonberg  <schonberg@adacore.com>
1035         * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
1036         check to a call to a build-in-place function, given that the return
1037         object is limited and cannot be copied.
1039 2018-05-31  Olivier Hainque  <hainque@adacore.com>
1041         * libgnat/s-atopri.ads: Update comment on __atomic_compare_exchange
1042         builtins.
1044 2018-05-31  Eric Botcazou  <ebotcazou@adacore.com>
1046         * gcc-interface/trans.c (Call_to_gnu): If this is a function call and
1047         there is no target, also create a temporary for the return value for
1048         an allocator if the type is an unconstrained record type with default
1049         discriminant.
1051 2018-05-31  Hristian Kirtchev  <kirtchev@adacore.com>
1053         * exp_ch7.adb (Find_Transient_Context): An iteration scheme is a valid
1054         boudary for a transient scope.
1056 2018-05-31  Valentine Reboul  <reboul@adacore.com>
1058         * gnatvsn.ads: Rename "GPL" version to "Community".
1060 2018-05-31  Ed Schonberg  <schonberg@adacore.com>
1062         * einfo.ads: Improve documentation for the Is_Unsigned_Type entity
1063         flag.
1065 2018-05-31  Piotr Trojanek  <trojanek@adacore.com>
1067         * sem_prag.adb (Analyze_Pragma): Replace call to Unique_Defining_Entity
1068         with a semantically equivalent call to Defining_Entity.
1070 2018-05-31  Piotr Trojanek  <trojanek@adacore.com>
1072         * sem_prag.adb (Analyze_Pragma): Set Etype on the rewritten
1073         Max_Queue_Length expression.
1075 2018-05-31  Sergey Rybin  <rybin@adacore.com>
1077         * doc/gnat_ugn/gnat_and_program_execution.rst: gnatelim does not need
1078         that the main unit to be built before the call, now it computes the
1079         closure of the main unit itself.
1080         * gnat_ugn.texi: Regenerate.
1082 2018-05-31  Eric Botcazou  <ebotcazou@adacore.com>
1084         * repinfo.adb (List_Structural_Record_Layout): Set First to false
1085         after having listed the fields of the parent type, if any.
1087 2018-05-31  Eric Botcazou  <ebotcazou@adacore.com>
1089         * gcc-interface/decl.c (gnat_to_gnu_entity) <discrete_type>: Do not
1090         deal with the ___XP suffix for packed array types here...
1091         <E_Array_Subtype>: ...or here when processing the implementation type
1092         but when processing the original type instead.  Do not reuse the DECL
1093         of the implementation type for the original type.  Tidy up.
1095 2018-05-31  Eric Botcazou  <ebotcazou@adacore.com>
1097         * einfo.ads (Object_Size_Clause): Declare.
1098         * einfo.adb (Object_Size_Clause): New function.
1099         * gcc-interface/utils.c (maybe_pad_type): Test Has_Size_Clause before
1100         retrieving Size_Clause and post the warning on the object size clause
1101         if Has_Object_Size_Clause is true.
1103 2018-05-31  Javier Miranda  <miranda@adacore.com>
1105         * sem_util.ads, sem_util.adb (Find_Primitive_Eq): New subprogram.
1106         * exp_ch4.adb (Expand_Composite_Equality): Use the new subprogram
1107         Find_Primitive_Eq to search for the primitive of types whose underlying
1108         type is a tagged type.
1110 2018-05-31  Yannick Moy  <moy@adacore.com>
1112         * sem_prag.adb (Analyze_Pragma.Check_Loop_Pragma_Placement): Inverse
1113         order of treatment between nodes recognized as loop pragmas (or
1114         generated from one) and block statements.
1116 2018-05-31  Doug Rupp  <rupp@adacore.com>
1118         * libgnat/s-osprim__posix2008.adb (Clock): Implement using
1119         clock_gettime.
1121 2018-05-31  Ed Schonberg  <schonberg@adacore.com>
1123         * exp_unst.ads, exp_unst.adb (In_Synchronized_Unit): New predicate to
1124         mark subprograms that cannot be eliminated because they must be treated
1125         as reachable from outside the current unit. This includes entry bodies
1126         and protected operations.
1128 2018-05-31  Ed Schonberg  <schonberg@adacore.com>
1130         * exp_ch4.adb (Expand_Modular_Addition, Expand_Modular_Subtraction):
1131         Convert all operands of the generated code to Standard.Unsigned, to
1132         prevent spurious visibility errors. This is needed when the generated
1133         expansion involves a modular index type of an array type, and the index
1134         type is not immediately visible.
1136 2018-05-30  Piotr Trojanek  <trojanek@adacore.com>
1138         * einfo.ads (Package_Instantiation): Update comment after a routine
1139         that uses this field has been renamed.
1141 2018-05-30  Ed Schonberg  <schonberg@adacore.com>
1143         * exp_ch11.adb (Replace_Raise_By_Goto): The transfomation is legal even
1144         if the local raise statement includes a string expression. This
1145         expression might be picked up by an outer handler or discarded, but
1146         plays no role in this transformation.
1148 2018-05-30  Hristian Kirtchev  <kirtchev@adacore.com>
1150         * exp_aggr.adb, exp_unst.adb, freeze.adb, libgnat/a-direct.adb: Minor
1151         reformatting.
1153 2018-05-30  Ed Schonberg  <schonberg@adacore.com>
1155         * exp_unst.adb (Visit_Node): Handle the semantic Procedure_To_Call
1156         field in relevant nodes: Allocate, Free, and return statements.
1158 2018-05-30  Ed Schonberg  <schonberg@adacore.com>
1160         * exp_unst.adb (Visit_Node): Do not traverse a Component_Association
1161         that has not been analyzed, as will be the case for a nested aggregate
1162         that is expanded into individual assignments.
1164 2018-05-30  Justin Squirek  <squirek@adacore.com>
1166         * aspects.adb, aspects.ads: Register new aspect.
1167         * par-prag.adb (Prag): Register new pragma.
1168         * sem_ch13.adb (Analyze_Aspect_Specifications): Add processing for new
1169         aspect similar to Aspect_Max_Queue_Length.
1170         * sem_prag.adb, sem_prag.ads (Analyze_Pragma): Register new pragma and
1171         set it to use the same processing as Pragma_Max_Queue_Length.
1172         * snames.ads-tmpl: Move definition of Name_Max_Entry_Queue_Depth so
1173         that it can be processed as a pragma in addition to a restriction and
1174         add an entry for the pragma itself.
1176 2018-05-30  Ed Schonberg  <schonberg@adacore.com>
1178         * freeze.adb (Freeze_Object_Declaration): A pragma Thread_Local_Storage
1179         is now legal on a variable of composite type initialized with an
1180         aggregate that is fully static and requires no elaboration code.
1181         * exp_aggr.adb (Convert_To_Positional): Recognize additional cases of
1182         nested aggregates that are compile-time static, so they can be used to
1183         initialize variables declared with Threqd_Local_Storage.
1184         * doc/gnat_rm/implementation_defined_pragmas.rst: Add documentation on
1185         Thread_Local_Storage.
1186         * gnat_rm.texi: Regenerate.
1188 2018-05-30  Yannick Moy  <moy@adacore.com>
1190         * sem_util.adb (Policy_In_Effect): Take into account CodePeer and
1191         GNATprove modes.
1193 2018-05-30  Justin Squirek  <squirek@adacore.com>
1195         * libgnat/a-direct.adb, libgnat/a-direct.ads (Name_Case_Equivalence):
1196         Add implementation.
1197         (Start_Search): Modify to use Start_Search_Internal
1198         (Start_Search_Internal): Add to break out an extra flag for searching
1199         case insensative due to the potential for directories within the same
1200         OS to allow different casing schemes.
1201         * sysdep.c (__gnat_name_case_equivalence): Add as a default fallback
1202         for when the more precise solution fails.
1204 2018-05-30  Hristian Kirtchev  <kirtchev@adacore.com>
1206         * checks.adb, exp_ch5.adb, exp_ch7.adb, exp_unst.adb, sem_eval.adb:
1207         Minor reformatting.
1209 2018-05-30  Pascal Obry  <obry@adacore.com>
1211         * libgnat/g-comlin.ads (Value_Callback, Define_Switch): New.
1212         * libgnat/g-comlin.adb: Add corresponding implementation.
1214 2018-05-30  Gary Dismukes  <dismukes@adacore.com>
1216         * sem_res.adb, sem_util.adb: Fix several typos.
1218 2018-05-30  Olivier Hainque  <hainque@adacore.com>
1220         * vx_crtbegin_attr.c (CTOR_ATTRIBUTE, DTOR_ATTRIBUTE): Empty.
1221         (eh_registration_ctors, eh_registration_tors): New static variables,
1222         forced in a .ctors/.dtors section, respectively, with priority.
1224 2018-05-30  Bob Duff  <duff@adacore.com>
1226         * aspects.ads, contracts.adb, exp_util.adb, expander.adb, expander.ads,
1227         freeze.adb, inline.adb, lib-xref.adb, sem.ads, sem_aggr.adb,
1228         sem_attr.adb, sem_ch13.adb, sem_ch3.adb, sem_ch5.adb, sem_ch6.adb,
1229         sem_ch8.adb, sem_dim.adb, sem_elab.adb, sem_res.adb, sem_res.ads,
1230         sinfo.ads: Spell preanalysis, preanalyze correctly.
1232 2018-05-30  Bob Duff  <duff@adacore.com>
1234         * libgnat/g-sestin.ads: Rework documentation comments.
1236 2018-05-30  Piotr Trojanek  <trojanek@adacore.com>
1238         * errout.adb, exp_aggr.adb, exp_ch7.adb, exp_util.adb, lib.adb,
1239         sem_ch13.adb, sem_ch4.adb, sem_res.adb, sem_util.adb
1240         (Has_Original_Node): Refactor to use Is_Rewrite_Substitution.
1242 2018-05-30  Piotr Trojanek  <trojanek@adacore.com>
1244         * sem_prag.adb (Analyze_Pragma): Remove conjuncts that are always true.
1246 2018-05-30  Hristian Kirtchev  <kirtchev@adacore.com>
1248         * sem_util.adb (Is_Atomic_Object): Cleaned up. Split the entity logic
1249         in a separate routine.
1250         (Is_Atomic_Object_Entity): New routine.
1251         (Is_Atomic_Prefix): Cleaned up.
1252         (Is_Synchronized_Object): Check that the object is atomic, or its type
1253         is atomic.
1254         (Object_Has_Atomic_Components): Removed.
1255         * sem_util.ads (Is_Atomic_Object): Reword the comment on usage.
1256         (Is_Atomic_Object_Entity): New routine.
1258 2018-05-30  Ed Schonberg  <schonberg@adacore.com>
1260         * sem_ch3.adb (Access_Subprogram_Declaration): The flag
1261         Needs_Activation_Record is only needed on a subprogram type, not on a
1262         pointer to such.
1263         * sem_res.adb (Resolve_Selected_Component): If the context type and the
1264         component type are anonymous access to subprograms, use the component
1265         type to obtain the proper value of Needs_Activation_Record flag for the
1266         expression.
1268 2018-05-30  Eric Botcazou  <ebotcazou@adacore.com>
1270         * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Add
1271         comment about the memset case.
1273 2018-05-30  Bob Duff  <duff@adacore.com>
1275         * exp_ch5.adb (Expand_Formal_Container_Element_Loop): Remove the code
1276         to analyze the Elmt_Decl, because it gets analyzed in the wrong scope.
1277         We need to analyze it as part of analyzing the block, so that if the
1278         call to Element that initializes Elmt_Decl returns on the secondary
1279         stack, the block will ss_mark/ss_release. This block is inside the
1280         loop; we don't want to leak memory until the loop exits.  The purpose
1281         of analyzing Elmt_Decl first was to catch the error of modifying it,
1282         which is illegal because it's a loop parameter. The above causes us to
1283         miss that error.  Therefore, we add a flag Is_Loop_Parameter, and set
1284         it on the Element entity, so we end up with an E_Variable node with the
1285         flag set.
1286         * einfo.ads, einfo.adb (Is_Loop_Parameter): New flag.
1287         * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Give the "assignment to loop
1288         parameter not allowed" error if Is_Loop_Parameter.
1289         * sem_util.adb (Is_Variable): Return False if Is_Loop_Parameter, to
1290         trigger the call to Diagnose_Non_Variable_Lhs.
1292 2018-05-30  Arnaud Charlet  <charlet@adacore.com>
1294         * checks.adb (Apply_Scalar_Range_Check):
1295         * sem_eval.adb (Check_Non_Static_Context, Out_Of_Range): Ignore out of
1296         range values for System.Priority in CodePeer mode since the actual
1297         target compiler may provide a wider range.
1299 2018-05-30  Ed Schonberg  <schonberg@adacore.com>
1301         * exp_unst.adb: Search specification of main unit as well, for
1302         unnesting.
1304 2018-05-30  Ed Schonberg  <schonberg@adacore.com>
1306         * exp_ch7.adb (Check_Unnesting_Elaboration_Code): The statement part of
1307         a package body that is a compilation unit may contain blocks that
1308         declare local subprograms.  In Subprogram_Unnesting Mode such
1309         subprograms must be handled as nested inside the (implicit) elaboration
1310         procedure that executes that statement part. To handle properly uplevel
1311         references we construct that subprogram explicitly, to contain blocks
1312         and inner subprograms, The statement part of the compilation unit
1313         becomes a call to this subprogram. This is only done if blocks are
1314         present in the statement list of the body.
1316 2018-05-30  Bob Duff  <duff@adacore.com>
1318         * exp_ch7.adb: Minor comment fix.
1320 2018-05-30  Ed Schonberg  <schonberg@adacore.com>
1322         * exp_unst.adb (Visit_Node): Handle properly subprogram instantiations
1323         that have no corresponding body and appear as attributes of the
1324         corresponding wrapper package declaration.
1325         (Register_Subprogram): New subprogram, used for subprogram bodies and
1326         for subprogram instantiations to enter callable entity into Subp table.
1328 2018-05-30  Hristian Kirtchev  <kirtchev@adacore.com>
1330         * libgnat/s-secsta.adb: Reimplement the secondary stack support.
1331         * libgnat/s-secsta.ads: Update the documentation of all routines in the
1332         public part of the package.  Reimplement the private part of the
1333         package to account for the new secondary stack structure.  Add types
1334         and subprograms for testing purposes.  Add several documentation
1335         sections.
1337 2018-05-30  Hristian Kirtchev  <kirtchev@adacore.com>
1339         * exp_aggr.adb, exp_ch3.adb, exp_ch4.adb, exp_ch7.adb, exp_unst.adb,
1340         exp_util.adb, exp_util.ads, libgnat/a-calcon.adb, libgnat/a-calcon.ads,
1341         libgnat/s-os_lib.adb, repinfo.adb, sem_ch3.adb, sem_disp.adb,
1342         sem_disp.ads, sem_util.adb: Minor reformatting.
1344 2018-05-30  Arnaud Charlet  <charlet@adacore.com>
1346         * gcc-interface/Makefile.in: Move special flags for Ada runtime files
1347         from here...
1348         * Makefile.rtl: ... to here.  Update comments.  Protect call to
1349         "GCC_FOR_TARGET" in case target_os isn't defined.
1351 2018-05-30  Arnaud Charlet  <charlet@adacore.com>
1353         * gcc-interface/Makefile.in: Move target pair settings from here...
1354         * Makefile.rtl: ... to here.
1355         (setup-rts): New target.
1357 2018-05-29  Eric Botcazou  <ebotcazou@adacore.com>
1359         * doc/gnat_ugn/building_executable_programs_with_gnat.rst (Alphabetical
1360         List of All Switches): Replace "modules" with "units".
1361         (Subprogram Inlining Control): Likewise.
1362         * gnat_ugn.texi: Regenerate.
1363         * usage.adb (Usage): Fix description of -gnatn switch.
1365 2018-05-29  Arnaud Charlet  <charlet@adacore.com>
1367         * gcc-interface/Makefile.in: Fix typos.
1369 2018-05-29  Ed Schonberg  <schonberg@adacore.com>
1371         * exp_ch7.adb (Build_Finalizer_Call): Attach to tree the reference to
1372         the finalizer procedure in the At_End handler, for use in LLVM
1373         generation.
1375 2018-05-29  Javier Miranda  <miranda@adacore.com>
1377         * exp_ch4.adb (Expand_N_Op_Eq, Expand_Composite_Equality): Use the new
1378         subprogram Inherits_From_Tagged_Full_View to identify more reliably
1379         untagged private types completed with a derivation of an untagged
1380         private whose full view is a tagged type.
1381         * sem_util.ads, sem_util.adb (Inherits_From_Tagged_Full_View): New
1382         subprogram.
1383         (Collect_Primitive_Operations): Handle untagged private types completed
1384         with a derivation of an untagged private type whose full view is a
1385         tagged type. In such case, collecting the list of primitives we may
1386         find two equality primitives: one associated with the untagged private
1387         and another associated with the ultimate tagged type (and we must
1388         remove from the returned list this latter one).
1390 2018-05-29  Ed Schonberg  <schonberg@adacore.com>
1392         * exp_unst.adb (Visit_Node): Handle statement sequences that include an
1393         At_End handler.
1395 2018-05-29  Eric Botcazou  <ebotcazou@adacore.com>
1397         * repinfo.adb (List_Entities): Also recurse into blocks without label.
1399 2018-05-29  Ed Schonberg  <schonberg@adacore.com>
1401         * exp_ch6.adb (Expand_N_Subprogram_Body): Do not generate push/pop for
1402         exceptions if subprogram unnesting is in effect, because these branch
1403         nodes are relevant only in the presence of nested subprograms.
1405 2018-05-29  Ed Schonberg  <schonberg@adacore.com>
1407         * libgnat/s-fatgen.adb (Succ, Pred):  Raise Constraint_Error
1408         unconditionally when applied to the largest positive (resp. largest
1409         negative) value of a floating-point type.
1411 2018-05-29  Ed Schonberg  <schonberg@adacore.com>
1413         * einfo.ads, einfo.adb: Clarify use of Activation_Record_Component:
1414         discriminants and exceptions are never components of such.  The flag
1415         Needs_Activation_Record is set on subprogram types, not on access to
1416         them.
1418 2018-05-29  Ed Schonberg  <schonberg@adacore.com>
1420         * sem_ch3.adb: Set scope of component of subtype.
1422 2018-05-29  Ed Schonberg  <schonberg@adacore.com>
1424         * exp_unst.adb (Visit_Node): Exclude selected components whose prefix
1425         carry no type. Such selected components appear in unit names that are
1426         child units, both in the specification and possibly in an end label for
1427         the unit, and they do not contain any relevant uplevel references.
1429 2018-05-29  Arnaud Charlet  <charlet@adacore.com>
1431         * libgnat/a-calend.ads, libgnat/a-calend.adb (Epoch_Offset): Make it a
1432         function.
1434 2018-05-29  Olivier Hainque  <hainque@adacore.com>
1436         * libgnat/system-vxworks7-ppc-rtp.ads: New file.
1437         * libgnat/system-vxworks7-ppc-kernel.ads: New file.
1438         * libgnat/system-vxworks7-e500-rtp.ads: New file.
1439         * libgnat/system-vxworks7-e500-kernel.ads: New file.
1440         * libgnat/system-vxworks7-x86-rtp.ads: New file.
1441         * libgnat/system-vxworks-ppc64-kernel.ads: Rename as ...
1442         * libgnat/system-vxworks7-ppc64-kernel.ads: and adjust name of
1443         gnat-crtbe link spec to use the vx7 variant.
1445 2018-05-29  Olivier Hainque  <hainque@adacore.com>
1447         * vx_crtbegin.inc: Use a consistent naming convention for the
1448         registration/deregistration functions across RTP or kernel.  Remove the
1449         ctor/dtor attribute setting based on RTP/kernel, expect the optional
1450         attribute extension to be provided by includers instead.
1451         * vx_crtbegin.c: Mere inclusion of vx_crtbegin.inc with empty attribute
1452         extension for the registration/deregistration functions.
1453         * vx_crtbegin_attr.c: New file. Include vx_crtbegin.inc with explicit
1454         constructor/destructor attribute extensions.
1455         * vx_crtbegin_array.c: New file. Include vx_crtbegin.inc with empty
1456         attribute extensions and declare _ctors/_dtors arrays.
1457         * vx_crtbegin_auto.c: Remove.
1458         * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Use
1459         vxworks7-gnat-crtbe-link.spec.
1460         * libgnat/system-vxworks7-aarch64.ads: Likewise.
1461         * libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise.
1462         * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
1463         * libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise.
1464         * libgnat/system-vxworks7-x86-kernel.ads: Likewise.
1465         * libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise.
1466         * libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.
1467         * libgnat/system-vxworks7-x86_64-rtp-smp.ads: Likewise.
1469 2018-05-29  Piotr Trojanek  <trojanek@adacore.com>
1471         * ali.adb: Minor reformatting.
1473 2018-05-29  Joel Brobecker  <brobecker@adacore.com>
1475         * doc/gnat_ugn/platform_specific_information.rst: Update package
1476         requirements for 32bit GNAT on x86_64-linux.
1477         * gnat_ugn.texi: Regenerate.
1479 2018-05-29  Eric Botcazou  <ebotcazou@adacore.com>
1481         * doc/gnat_ugn/building_executable_programs_with_gnat.rst (Debugging
1482         Control): Adjust description of -gnatRj.
1483         * gnat_ugn.texi: Regenerate.
1484         * opt.ads (List_Representation_Info_To_JSON): Likewise.
1485         * repinfo.adb (List_Rep_Info): Do not automatically create a file
1486         if List_Representation_Info_To_JSON is true.
1487         * switch-c.adb (Scan_Front_End_Switches) <R>: Remove incompatibility
1488         check between -gnatRj and -gnatRs.
1489         * usage.adb (Usage): Adjust description of -gnatRj.
1491 2018-05-29  Pascal Obry  <obry@adacore.com>
1493         * libgnat/s-os_lib.adb (Normalize_Pathname): Fix handling of ".." in
1494         the root directory.
1496 2018-05-29  Pascal Obry  <obry@adacore.com>
1498         * libgnat/s-os_lib.adb: Minor reformatting.
1500 2018-05-29  Doug Rupp  <rupp@adacore.com>
1502         * libgnat/a-calend.adb (Epoch_Offset): Move from body to ...
1503         * libgnat/a-calend.ads (Epoch_Offset): to private part of spec
1504         * libgnat/a-calcon.ads (To_Unix_Nano_Time): New function spec.
1505         * libgnat/a-calcon.adb (To_Unix_Nano_Time): New function body.
1507 2018-05-29  Eric Botcazou  <ebotcazou@adacore.com>
1509         * repinfo.ads (JSON format): Document new pair for components.
1510         * repinfo.adb (Derived_Discriminant): New function.
1511         (List_Structural_Record_Layout): Add Outer_Ent parameter and pass it
1512         in recursive calls. If the record type is the parent of an extension,
1513         find and list the derived discriminant from the extension, if any.
1514         (List_Component_Layout): List the Discriminant_Number in JSON mode.
1515         (List_Record_Info): Adjust call to List_Structural_Record_Layout.
1517 2018-05-29  Eric Botcazou  <ebotcazou@adacore.com>
1519         * doc/gnat_ugn/building_executable_programs_with_gnat.rst (Alphabetical
1520         List of All Switches): Document -gnatRj.
1521         (Debugging Control): Likewise.
1522         * gnat_ugn.texi: Regenerate.
1523         * opt.ads (List_Representation_Info_To_JSON): New boolean variable.
1524         * osint-c.adb (Create_Repinfo_File): Use the .json instead of .rep
1525         extension if List_Representation_Info_To_JSON is true.
1526         * repinfo.ads: Document the JSON output format.
1527         * repinfo.adb (List_Location): New procedure.
1528         (List_Array_Info): Add support for JSON output.
1529         (List_Entities): Likewise.
1530         (Unop): Likewise.
1531         (Binop): Likewise.
1532         (Print_Expr): Likewise.
1533         (List_Linker_Section): Likewise.
1534         (List_Mechanisms): Likewise.
1535         (List_Name): Likewise.
1536         (List_Object_Info): Likewise.
1537         (List_Record_Info): Likewise.
1538         (List_Component_Layout): Likewise.  Add Indent parameter.
1539         (List_Structural_Record_Layout): New procedure.
1540         (List_Attr): Add support for JSON output.
1541         (List_Type_Info): Likewise.
1542         (Write_Unknown_Val): Likewise.
1543         * switch-c.adb (Scan_Front_End_Switches) <R>: Deal with 'j'.
1544         * usage.adb (Usage): List -gnatRj.
1546 2018-05-29  Eric Botcazou  <ebotcazou@adacore.com>
1548         * repinfo.adb (List_Component_Layout): New procedure extracted from...
1549         (List_Record_Layout): ...here.  Invoke it.
1551 2018-05-29  Eric Botcazou  <ebotcazou@adacore.com>
1553         * repinfo.adb (Write_Unknown_Val): New procedure.
1554         (List_GCC_Expression): Call it.
1555         (List_Record_Layout): Likewise.
1556         (Write_Val): Likewise.
1558 2018-05-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1560         * exp_ch4.adb (Expand_N_Op_Abs): Clear Do_Overflow_Check when inserting
1561         code to do check.
1563 2018-05-29  Arnaud Charlet  <charlet@adacore.com>
1565         * lib-writ.adb (Write_ALI): Do not use new function from s-casuti yet.
1566         This breaks build of cross compilers with older versions of GNAT, so
1567         better avoid it.
1569 2018-05-29  Doug Rupp  <rupp@adacore.com>
1571         * libgnarl/s-taprop.ads (Monotonic_Clock): Refine documentation to
1572         reflect reality.
1574 2018-05-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1576         * exp_ch4.adb (Expand_N_Op_Abs): Always do range check against 'First.
1578 2018-05-29  Eric Botcazou  <ebotcazou@adacore.com>
1580         * repinfo.adb (List_Entities): Do not list the Linker_Section for
1581         subprograms here...
1582         (List_Mechanisms): ...but here instead.  Use consistent name output
1583         and formatting conventions.
1585 2018-05-29  Bob Duff  <duff@adacore.com>
1587         * lib-writ.adb (Write_ALI): Cleanup: avoid use of global var; call new
1588         To_Lower function.
1589         * libgnat/s-casuti.ads, libgnat/s-casuti.adb (To_Upper, To_Lower,
1590         To_Mixed): New functions.
1591         * osint.adb: Cleanup: use Is_Directory_Separator, which correctly
1592         allows both '\' and '/' on Windows.
1594 2018-05-28  Eric Botcazou  <ebotcazou@adacore.com>
1596         * repinfo.ads: Minor fixes and tweaks in comments.
1598 2018-05-28  Eric Botcazou  <ebotcazou@adacore.com>
1600         * repinfo.adb (List_GCC_Expression): Remove Valop and replace calls to
1601         it with calls to Unop.
1603 2018-05-28  Eric Botcazou  <ebotcazou@adacore.com>
1605         * repinfo.ads (TCode): Adjust range.
1606         (Truth_Andif_Expr): Remove.
1607         (Truth_Orif_Expr): Likewise.
1608         (Truth_And_Expr .. Dynamic_Val): Adjust value.
1609         * repinfo.adb (Print_Expr): Remove handling of Truth_{And,Or}if_Expr.
1610         (Rep_Value): Likewise.
1611         * repinfo.h (Truth_Andif_Expr): Remove.
1612         (Truth_Orif_Expr): Likewise.
1613         (Truth_And_Expr .. Dynamic_Val): Adjust value.
1614         * gcc-interface/decl.c (annotate_value) <TRUTH_ANDIF_EXPR>: Fall
1615         through to TRUTH_AND_EXPR case.
1616         <TRUTH_ORIF_EXPR>: Fall through to TRUTH_OR_EXPR case.
1618 2018-05-28  Ed Schonberg  <schonberg@adacore.com>
1620         * exp_unst.adb (Visit_Node): For indexed components and attribute
1621         references, examine index expressions or associated expressions as well
1622         to record uplevel references.
1623         (Vist_Node): For function and procedure calls, if a formal is an
1624         unconstrained array and the actual is constrained, check whether bounds
1625         of actual have uplevel references.
1627 2018-05-28  Ed Schonberg  <schonberg@adacore.com>
1629         * einfo.ads, einfo.adb: Exceptions can be uplevel references, and thus
1630         they can appear as components of activation records.
1631         * exp_unst.adb (Visit_Node): A reference to an exception may be an
1632         uplevel reference.
1634 2018-05-28  Eric Botcazou  <ebotcazou@adacore.com>
1636         * exp_ch4.adb (Expand_Composite_Equality): Compute whether the size
1637         depends on a discriminant manually instead of using the predicate
1638         Size_Depends_On_Discriminant in the array type case.
1640 2018-05-28  Ed Schonberg  <schonberg@adacore.com>
1642         * exp_unst.adb (Check_Static_Type): For a record subtype, check
1643         discriminant constraints as well.
1644         (Visit_Node): For a selected component, check type of prefix, as is
1645         done for indexed components and slices.
1647 2018-05-28  Javier Miranda  <miranda@adacore.com>
1649         * exp_ch4.adb (Real_Range_Check): Add a temporary to store the integer
1650         value when converting a float value to a fixed-point value. This is
1651         required for CCG because it handles fixed-point types by means of
1652         unsigned integer type variables. The range check is now performed using
1653         the integer value stored in this temporary.
1655 2018-05-28  Yannick Moy  <moy@adacore.com>
1657         * sem_util.adb (Is_OK_Volatile_Context): Add attributes First, Last and
1658         Length as valid non-interfering contexts for SPARK.
1660 2018-05-28  Claire Dross  <dross@adacore.com>
1662         * sem_disp.ads, sem_disp.adb (Inheritance_Utilities): Package for
1663         generic inheritance utilities.
1664         (Generic_Inherited_Subprograms): Generic version of
1665         Inherited_Subprograms, generic in Find_Dispatching_Type function.
1666         (Generic_Is_Overriding_Subprogram): Generic version of
1667         Is_Overriding_Subprogram, generic in Find_Dispatching_Type function.
1668         (Inherited_Subprograms): Instance of Generic_Inherited_Subprograms with
1669         Sem_Disp.Find_Dispatching_Type.
1670         (Is_Overriding_Subprogram): Instance of
1671         Generic_Is_Overriding_Subprogram with Sem_Disp.Find_Dispatching_Type.
1672         (Inheritance_Utilities_Inst): Instance of Inheritance_Utilities
1673         with Sem_Disp.Find_Dispatching_Type.
1675 2018-05-28  Eric Botcazou  <ebotcazou@adacore.com>
1677         * exp_ch4.adb (Expand_Composite_Equality): For a composite (or FP)
1678         component type, do not expand array equality using the unconstrained
1679         base type, except for the case where the bounds of the type depend on a
1680         discriminant.
1682 2018-05-28  Ed Schonberg  <schonberg@adacore.com>
1684         * einfo.ads, einfo.adb (Needs_Activation_Record): New flag on
1685         access-to-subprogram types, to indicate that an indirect call through
1686         such a type requires an activation record when compiling for LLVM.
1687         * sem_ch3.adb (Access_Subprogram_Declaration): Set new flag as needed.
1689 2018-05-28  Ed Schonberg  <schonberg@adacore.com>
1691         * exp_ch4.adb (Real_Range_Check): Specialize float-to-fixed conversions
1692         when bounds of fixed type are static, to remove some spuerfluous
1693         implicit conversions and provide an accurate result when converting
1694         back and forth between the fixed point type and a floating point type.
1696 2018-05-28  Ed Schonberg  <schonberg@adacore.com>
1698         * exp_unst.adb (Unnest_Subprogram): Prevent creation of empty
1699         activation records.
1701 2018-05-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1703         * exp_unst.adb (Check_Static_Type): Add argument to indicate node to be
1704         replaced, if any; all callers changed.
1705         (Note_Uplevel_Ref): Likewise.  Also replace reference to deferred
1706         constant with private view so we take the address of that entity.
1707         (Note_Uplevel_Bound): Add argument to indicate node to be replaced, if
1708         any; all callers changed.  Handle N_Indexed_Component like
1709         N_Attribute_Reference.  Add N_Type_Conversion case.
1710         (Visit_Node): Indexed references can be uplevel if the type isn't
1711         static.
1712         (Unnest_Subprograms): Don't rewrite if no reference given.  If call has
1713         been relocated, set first_named pointer in original node as well.
1715 2018-05-28  Ed Schonberg  <schonberg@adacore.com>
1717         * exp_aggr.adb (Flatten): Copy tree of expression in a component
1718         association with a range or a set of discrete choices, rather than
1719         relocating the node. This avoids inconsistencies in the tree when
1720         handling nested subprograms with uplevel references for LLVM.
1722 2018-05-28  Arnaud Charlet  <charlet@adacore.com>
1724         * exp_util.adb (Possible_Bit_Aligned_Component): Always return False in
1725         codepeer mode.
1727 2018-05-28  Arnaud Charlet  <charlet@adacore.com>
1729         * exp_unst.adb: Fix typo.
1731 2018-05-28  Bob Duff  <duff@adacore.com>
1733         * libgnat/a-convec.adb (Query_Element): Minor cleanup: remove an
1734         unnecessary use of 'Unrestricted_Access.
1736 2018-05-28  Hristian Kirtchev  <kirtchev@adacore.com>
1738         * repinfo.adb (Expr_Value_S): New routine.
1739         (List_Linker_Section): Properly extract the value of the section
1740         argument.
1742 2018-05-28  Patrick Bernardi  <bernardi@adacore.com>
1744         * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Update the
1745         description of the -D binder switch to reflect current usage.
1746         * gnat_ugn.texi: Regenerate.
1748 2018-05-28  Gary Dismukes  <dismukes@adacore.com>
1750         * exp_ch3.adb: Minor reformatting
1752 2018-05-28  Justin Squirek  <squirek@adacore.com>
1754         * exp_ch3.adb
1755         (Build_Initialization_Call): Add logic to pass the appropriate actual to match
1756          new formal.
1757         (Init_Formals): Add new formal *_skip_null_excluding_check
1758         * exp_util.adb, exp_util.ads
1759         (Enclosing_Init_Proc): Added to fetch the enclosing Init_Proc from the current
1760          scope.
1761         (Inside_Init_Proc): Refactored to use Enclosing_Init_Proc
1762         (Needs_Conditional_Null_Excluding_Check): Added to factorize the predicate
1763          used to determine how to generate an Init_Proc for a given type.
1764         (Needs_Constant_Address): Minor reformatting
1765         * sem_res.adb
1766         (Resolve_Null): Add logic to generate a conditional check in certain cases
1768 2018-05-28  Hristian Kirtchev  <kirtchev@adacore.com>
1770         * exp_aggr.adb, gnatlink.adb, sem_ch6.adb, sem_res.adb, sem_util.adb:
1771         Minor reformatting.
1773 2018-05-28  Hristian Kirtchev  <kirtchev@adacore.com>
1775         * sem_prag.adb (Process_Atomic_Independent_Shared_Volatile): Include
1776         the declarations of single concurrent types because they fall in the
1777         category of full type and object declarations.
1779 2018-05-28  Eric Botcazou  <ebotcazou@adacore.com>
1781         * repinfo.adb (Compute_Max_Length): Skip _Parent component.
1782         (List_Record_Layout): Likewise.
1784 2018-05-28  Ed Schonberg  <schonberg@adacore.com>
1786         * sem_util.adb (Is_Function_Result): Add a warning if a postcondition
1787         includes a call to function to which it applies. This may mean an
1788         omission of an attribute reference 'Result, in particular if the
1789         function is pqrameterless.
1791 2018-05-28  Justin Squirek  <squirek@adacore.com>
1793         * sem_ch8.adb (Find_Expanded_Name): Add extra guard to make sure the
1794         misresolved package name is not a case of mistaken identity.
1796 2018-05-28  Yannick Moy  <moy@adacore.com>
1798         * sem_res.adb (Resolve_Range): Re-resolve the low bound of a range in
1799         GNATprove mode, as the order of resolution (low then high) means that
1800         all the information is not available when resolving the low bound the
1801         first time.
1803 2018-05-28  Eric Botcazou  <ebotcazou@adacore.com>
1805         * repinfo.adb (List_Array_Info): Start with an explicit blank line and
1806         end with the linker section, if any.
1807         (List_Entities): Do not output the linker section for record types,
1808         array types and variables.
1809         (Print_Expr): Factor out common processing for unary operators and
1810         special values.  Adjust and reorder the various cases.
1811         (List_Object_Info): End with the linker section, if any.
1812         (List_Record_Info): Likewise.
1813         (List_Type_Info): Do not start with a blank line.
1815 2018-05-25  Nicolas Roche  <roche@adacore.com>
1817         * libgnat/s-valrea.adb (Scan_Real): Abort computation once it is sure
1818         that the result will be either -infinite or +infinite.
1820 2018-05-25  Patrick Bernardi  <bernardi@adacore.com>
1822         * libgnat/s-parame.ads, libgnat/s-parame__vxworks.ads,
1823         libgnat/s-parame__ae653.ads, libgnat/s-parame__hpux.ads (Size_Type):
1824         Expand range of type to match the address space of the target.
1825         (Task_Storage_Size): Remove unused type.
1827 2018-05-25  Ed Schonberg  <schonberg@adacore.com>
1829         * sem_res.adb (Set_Mixed_Mode_Operand): If the operand is an expression
1830         of a fixed point type and the parent is a multiplying operation,
1831         resolve the operand with its own type because the context will impose a
1832         resulting type on the result of the multiplication by means of
1833         approriate conversion.
1835 2018-05-25  Hristian Kirtchev  <kirtchev@adacore.com>
1837         * exp_ch3.adb (Default_Initialize_Object): Ensure that the analysis of
1838         the in-place initialization aggregate created for pragmas
1839         Initialize_Scalars or Normalize_Scalars is performed with checks
1840         suppressed.
1842 2018-05-25  Arnaud Charlet  <charlet@adacore.com>
1844         * exp_aggr.adb (Convert_To_Positional): Bump default for
1845         Max_Others_Replicate to 32. Update comments.
1846         * osint.ads (Unknown_Attributes): No longer pretend this is a constant.
1847         (No_File_Info_Cache): Initialize separately.
1848         * osint.adb (No_File_Info_Cache): Update initializer.
1850 2018-05-25  Javier Miranda  <miranda@adacore.com>
1852         * sem_res.adb (Resolve_Membership_Op): Allow the use of the membership
1853         test when the left operand is a class-wide interface and the right
1854         operand is not a class-wide type.
1855         * exp_ch4.adb (Tagged_Membership): Adding support for interface as the
1856         left operand.
1858 2018-05-25  Ed Schonberg  <schonberg@adacore.com>
1860         * exp_aggr.adb (Flatten): A quantified expression cannot be duplicated
1861         in an others clause to prevent visibility issues with the generated
1862         loop variable.
1863         (Component_OK_For_Backend): Return false for a quantified expression.
1864         (Check_Static_Component): Ditto.
1866 2018-05-25  Hristian Kirtchev  <kirtchev@adacore.com>
1868         * libgnat/s-secsta.adb (SS_Allocate): Reimplemented.
1869         (SS_Allocate_Dynamic): New routine. The allocation logic is now split
1870         into three distring cases rather than in one loop which attempts to
1871         handle all three cases. This rewrite eliminates an issue where the last
1872         frame of the stack cannot be freed, thus causing the memory range of a
1873         new frame to approach the overflow point of the memory index type.
1874         Since the overflow is logically treated as a
1875         too-much-memory-on-the-stack scenario, it causes a bogus Storage_Error.
1876         (SS_Allocate_Static): New routine. The routine factorizes the static
1877         secondary stack-related code from the former SS_Allocate.
1879 2018-05-25  Sergey Rybin  <rybin@adacore.com>
1881         * doc/gnat_ugn/gnat_and_program_execution.rst: Add description of '-U'
1882         option for gnatelim.
1884 2018-05-25  Ed Schonberg  <schonberg@adacore.com>
1886         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not create
1887         Class_Wide_Clone_Body when analyzing a subprogram_body_stub: the clone
1888         is created when the proper body of the stub is analyzed.
1889         * sem_util.adb (ZBuild_Class_Wide_Clone_Body): If the subprogram body
1890         is the proper body of a subunit, the cloned body must be inserted in
1891         the declarative list that contains the stub.
1893 2018-05-25  Justin Squirek  <squirek@adacore.com>
1895         * exp_ch6.adb (Expand_Simple_Function_Return): Add guard in check to
1896         generate code for 6.5(8-10) so that we don't get an assertion error
1897         when dealing with an incomplete return type.
1899 2018-05-25  Arnaud Charlet  <charlet@adacore.com>
1901         * pprint.adb (Expression_Name): Strip too long expressions to avoid
1902         carrying very large strings.
1904 2018-05-25  Patrick Bernardi  <bernardi@adacore.com>
1906         * switch-b.adb (Scan_Binder_Switches): binder switch -Q accepts Natural
1907         numbers.
1909 2018-05-25  Doug Rupp  <rupp@adacore.com>
1911         * tracebak.c (aarch64-linux): Implement.
1913 2018-05-25  Justin Squirek  <squirek@adacore.com>
1915         * sem_ch8.adb: Minor reformatting.
1917 2018-05-25  Piotr Trojanek  <trojanek@adacore.com>
1919         * sem_util.adb (Iterate_Call_Parameters): Fix code convention and
1920         assertions.
1922 2018-05-25  Hristian Kirtchev  <kirtchev@adacore.com>
1924         * einfo.adb, einfo.ads, exp_ch3.adb, exp_ch8.adb, exp_unst.adb,
1925         pprint.adb, sem_ch12.adb, sem_ch3.adb, sem_prag.adb, sem_util.adb:
1926         Minor reformatting.
1928 2018-05-25  Ed Schonberg  <schonberg@adacore.com>
1930         * sem_ch12.adb (Instance_Exists): New function, subsidiary of
1931         Validate_Derived_Type_Instance, to verify that all interfaces
1932         implemented by the formal type are also implemented by the actual. The
1933         verification is complicated when an interface of the formal is declared
1934         in a generic unit and the actual is declared in an instance of it.
1935         There is currently no mechanism to relate an interface declared within
1936         a generic to the corresponding interface in an instance, so we must
1937         traverse the list of interfaces of the actual, looking for a name
1938         match, and verifying that that interface is declared in an instance.
1940 2018-05-25  Piotr Trojanek  <trojanek@adacore.com>
1942         * sem_util.adb (Iterate_Call_Parameters): Rewrite with extra
1943         assertions; replace function versions of Next_Formal/Next_Actual with
1944         their procedural versions (which are more concise).
1946 2018-05-25  Doug Rupp  <rupp@adacore.com>
1948         * libgnarl/s-osinte__aix.ads, libgnarl/s-osinte__android.ads,
1949         libgnarl/s-osinte__darwin.ads, libgnarl/s-osinte__freebsd.ads,
1950         libgnarl/s-osinte__hpux.ads, libgnarl/s-osinte__kfreebsd-gnu.ads,
1951         libgnarl/s-osinte__linux.ads, libgnarl/s-osinte__lynxos178e.ads,
1952         libgnarl/s-osinte__qnx.ads, libgnarl/s-osinte__rtems.ads
1953         (Relative_Timed_Wait): Remove.
1954         * libgnarl/s-tpopmo.adb (Timed_Sleep, Timed_Delay): Rewrite to allow
1955         for incremental looping. Remove references to Rel_Time and
1956         Relative_Timed_Wait.
1957         * libgnat/s-osprim__posix.adb, libgnat/s-osprim__posix2008.adb
1958         (Timed_Delay): Make separate.
1959         * libgnat/s-optide.adb: New separate procedure.
1960         * libgnat/s-osprim.ads (Max_System_Delay): New constant.
1961         * libgnat/s-osprim__lynxos.ads (Max_Sensible_Delay): Set to 6 months.
1962         (Max_System_Delay): New constant.
1964 2018-05-25  Ed Schonberg  <schonberg@adacore.com>
1966         * sem_ch12.adb (Validate_Derived_Type_Instance): Verify that the actual
1967         for a formal derived type implements all the interfaces declared for
1968         the formal.
1970 2018-05-25  Yannick Moy  <moy@adacore.com>
1972         * sem_prag.adb (Check_Applicable_Policy): Deal specially with CodePeer
1973         and GNATprove modes when applicable policy is Ignore.
1975 2018-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1977         * freeze.adb (Freeze_Enumeration_Type): Do not give integer size to a
1978         boolean type with convention C.
1979         * libgnat/i-cexten.ads (bool): Change to boolean with convention C.
1980         * gcc-interface/decl.c (gnat_to_gnu_entity): Add new local variable
1981         FOREIGN and use it throughout the function.
1982         <E_Enumeration_Type>: Set precision 1 on boolean types with foreign
1983         convention.
1984         <E_Enumeration_Subtype>: Likewise for subtypes.
1985         <E_Record_Type>: Force the size of a storage unit on empty classes.
1986         * gcc-interface/utils.c (make_type_from_size) <BOOLEAN_TYPE>: Skip
1987         boolean types with precision 1 if the size is the expected one.
1989 2018-05-25  Arnaud Charlet  <charlet@adacore.com>
1991         * pprint.adb (Expression_Name): Do not print non ASCII characters.
1993 2018-05-25  Bob Duff  <duff@adacore.com>
1995         * libgnat/a-strunb__shared.ads, libgnat/a-stwiun__shared.ads,
1996         libgnat/a-stzunb__shared.ads: (Initialize, Adjust): Add pragma Inline.
1998 2018-05-25  Bob Duff  <duff@adacore.com>
2000         * sem_util.ads: Minor comment fix.
2002 2018-05-25  Ed Schonberg  <schonberg@adacore.com>
2004         * exp_unst.adb (Visit_Node): Restrict check for uplevel references in
2005         prefixes of array attributes, to prefixes that are entity names whose
2006         type is constrained.
2007         (Note_Uplevel_Bound): Verify that the bound is declared in an enclosing
2008         subprogram, as itype created for loops in pre/postcondition may appear
2009         in loops at the library level.
2011 2018-05-25  Ed Schonberg  <schonberg@adacore.com>
2013         * sem_ch13.adb (Build_Predicate_Functions): The predicate function
2014         declaration is inserted into the tree and analyzed at that point, so
2015         should not be reinserted when the body is constructed. Inside a
2016         generic, ensure that the body is not inserted twice in the tree.
2018 2018-05-25  Yannick Moy  <moy@adacore.com>
2020         * sem_prag.adb (Check_Grouping): Modify test to ignore statements and
2021         declarations not coming from source.
2023 2018-05-25  Fedor Rybin  <frybin@adacore.com>
2025         * doc/gnat_ugn/gnat_utility_programs.rst: Document new switch
2026         --copy-environment for gnattest.
2028 2018-05-24  Piotr Trojanek  <trojanek@adacore.com>
2030         * sem_elab.adb (Non_Private_View): Simplify by removing a local Result
2031         variable.
2032         * sem_prag.adb (Get_Base_Subprogram): Same as above.
2034 2018-05-24  Eric Botcazou  <ebotcazou@adacore.com>
2036         * fe.h (Set_Normalized_First_Bit): Declare.
2037         (Set_Normalized_Position): Likewise.
2038         * repinfo.adb (List_Record_Layout): Do not use irregular output for a
2039         variable position.  Fix minor spacing issue.
2040         * gcc-interface/decl.c (annotate_rep): If a field has a variable
2041         offset, compute the normalized position and annotate it in addition to
2042         the bit offset.
2044 2018-05-24  Eric Botcazou  <ebotcazou@adacore.com>
2046         * gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu):
2047         Constify and rename variables.  Fix formatting.
2048         (gnat_to_gnu) <N_Exception_Handler>: Minor tweak.
2049         <N_Raise_Statement>: Likewise.
2051 2018-05-24  Javier Miranda  <miranda@adacore.com>
2053         * exp_ch8.adb (Build_Body_For_Renaming): Adding support to build the
2054         body of a variant record equality renaming.
2055         (Expand_N_Subprogram_Renaming_Declaration): Adapt the code to the new
2056         implementation of Build_Body_For_Renaming.
2057         * exp_ch3.ads (Build_Variant_Record_Equality): New library level
2058         function that factorizes the functionality needed by
2059         Build_Body_For_Renaming and Expand_Freeze_Record_Type to build the body
2060         of a variant record equality subprogram.
2061         * exp_ch3.adb (Build_Variant_Record_Equality): New subprogram.
2062         (Build_Variant_Record_Equality): New local procedure of
2063         Expand_Freeze_Record_Type containing all the code specific for freezing
2064         the record type that cannot be place in the new library level function.
2066 2018-05-24  Ed Schonberg  <schonberg@adacore.com>
2068         * einfo.ads, einfo.adb (Is_Activation_Record): New flag on
2069         in_parameters, used when unesting subprograms for LLVM, to indicate
2070         that a generated parameter carries the activation record from the
2071         enclosing subprogram.
2072         * exp_unst.adb (Check_Static_Type): Handle array attributes of types
2073         whose bounds may contain up-level references that need to be added to
2074         an activation recoord.
2075         (Add_Extra_Formal): Set Is_Activation_Record on new formal.
2077 2018-05-24  Yannick Moy  <moy@adacore.com>
2079         * pprint.adb (Expression_Image): Improve the printing of expressions,
2080         by taking more cases into account, in particular qualified expressions
2081         and aggregates.  Also count more the number of parentheses to close
2082         after the expression.
2084 2018-05-24  Javier Miranda  <miranda@adacore.com>
2086         * sem_ch3.adb (Is_Visible_Component): For untagged types add missing
2087         check for renamed discriminants.
2088         * sem_ch4.adb (Analyze_Overloaded_Selected_Component,
2089         Analyze_Selected_Component, Check_Misspelled_Selector): For calls to
2090         Is_Visible_Component pass the associated selector node to allow
2091         checking renamed discriminants on untagged types.
2093 2018-05-24  Ed Schonberg  <schonberg@adacore.com>
2095         * sem_ch8.adb (Analyze_Use_Type): Do not assign the Prev_Use_Clause
2096         link to a use_type clause if this would cause an infinite loop in the
2097         machinery that detects redundant use clauses. This may happen when the
2098         redundant clauses appear in the context of a child unit and the context
2099         of its parent.
2101 2018-05-24  Piotr Trojanek  <trojanek@adacore.com>
2103         * sinfo.ads: Fix grammar in comment.
2105 2018-05-24  Justin Squirek  <squirek@adacore.com>
2107         * einfo.ads, einfo.adb (Append_Entity): Modified to use Link_Entities
2108         and manage doubly-linked entity chain.
2109         (Nested_Scenarios): Removed entity field used for optimization during
2110          elaboration to make room for the new field Prev_Entity.
2111         (Link_Entities): Added to replace redundant calls to Set_Next_Entity
2112         and Set_Prev_Entity as well as centralize changes to the entity chain.
2113         (Predicated_Parent): Modified to use Node38.
2114         (Prev_Entity): Added to fetch new node field Prev_Entity in all entity
2115         types.
2116         (Remove_Entity): Moved from sem_util.
2117         (Set_Nested_Scenarios): Deleted.
2118         (Set_Predicated_Parent): Modified to use Node38.
2119         (Set_Prev_Entity): Added to set Prev_Entity field.
2120         (Set_Validated_Object): Modified to use Node38.
2121         (Unlink_Next_Entity): Added to process Prev_Entity when an unlinking
2122         action is required.
2123         (Validated_Object): Modified to use Node38.
2124         (Write_Field36_Name): Remove Nested_Scenarios, Validated_Object, and
2125         predicated parent cases.
2126         (Write_Field38_Name): Add predicated parent and Validated_Object cases.
2127         * sem_ch3.adb (Process_Subtype): Add guard to protect against
2128         inappropriate marking of Predicated_Parent to non-itype subtypes.
2129         (Make_Class_Wide_Type): Preserve Prev_Entity field and set in new type.
2130         (Copy_And_Swap): Add setting of Prev_Entity.
2131         (Build_derived_Record_Type): Replace Set_Next_Entity w/ Link_Entities.
2132         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Replace Set_Next_Entity
2133         w/ Link_Entities.
2134         (New_Overloaded_Entity): Remove block created to search for previous
2135         entities in the entity chain with relevant calls to Prev_Entity as well
2136         as replace duplicated code from Remove_Entity_And_Homonym with a call
2137         to that subprogram.
2138         * sem_ch7.adb (Exchange_Declarations): Replace Set_Next_Entity w/
2139         Link_Entities.
2140         * sem_elab.adb (Find_And_Process_Nested_Scenarios): Remove global and
2141         initial subprogram declarations related to Nested_Scenarios.
2142         (Process_Nested_Scenarios): Deleted.
2143         (Save_Scenario): Deleted.
2144         (Traverse_Body): Remove optimization for Nested_Scenarios so as to free
2145         node space in the entity tree.
2146         * sem_util.adb, sem_util.ads (Remove_Entity): Moved to einfo.
2147         (Remove_Entity_And_Homonym): Added to separate functionality of
2148         Remove_Entity from the homonym chain directly.
2149         * exp_attr.adb (Expand_N_Attribute_Reference): Replace Set_Next_Entity
2150         w/ Link_Entities and Unlink_Next_Entity.
2151         * exp_ch3.adb (Expand_N_Object_Declaration): Replace Set_Next_Entity w/
2152         Link_Entities.
2153         * exp_ch6.adb (Replace_Renaming_Declaration_Id): Replace
2154         Set_Next_Entity w/ Link_Entities.
2155         * exp_disp.adb (Expand_Dispatching_Call): Replace Set_Next_Entity w/
2156         Link_Entities and Unlink_Next_Entity.
2157         * exp_spark.adb (Expand_SPARK_N_Object_Renaming_Declaration): Replace
2158         call to Remove_Entity with its new incarnation.
2159         * exp_util.adb (New_Class_Wide_Subtype): Add setting of Prev_Entity.
2160         * freeze.adb (Freeze_Record_Type): Replace Set_Next_Entity w/
2161         Link_Entities.
2163 2018-05-24  Hristian Kirtchev  <kirtchev@adacore.com>
2165         * sem_ch10.adb (Expand_Limited_With_Clause): Update the call to
2166         Install_Limited_Withed_Unit.
2167         (Expand_With_Clause): Update the call to Install_Withed_Unit.
2168         (Implicit_With_On_Parent): Update the call to Install_Withed_Unit.
2169         (Install_Context_Clauses): Update the call to Install_Withed_Unit.
2170         (Install_Limited_Context_Clauses): Update the calls to
2171          Install_Limited_Withed_Unit.
2172         (Install_Limited_Withed_Unit): Renamed to better illustrate its
2173         purpose.
2174         (Install_Private_With_Clauses): Update the calls to Install_Withed_Unit
2175         and Install_Limited_Withed_Unit.
2176         (Install_With_Clause): Uninstall a limited with clause if a [private]
2177         with clause is given for the same package.
2178         (Install_Withed_Unit): Renamed to better illustrate its purpose.
2179         (Remove_Limited_With_Unit): New routine.
2181 2018-05-24  Eric Botcazou  <ebotcazou@adacore.com>
2183         * raise-gcc.c (__gnat_SEH_error_handler): Remove prototype.
2184         (__gnat_personality_seh0): Adjust and beef up comments, and
2185         fix formatting throughout.
2186         (__gnat_adjust_context): Deal minimally with version 2.
2187         * seh_init.c (__gnat_map_SEH): Fix formatting.
2188         (_gnat_SEH_error_handler): Adjust comments.
2189         (__gnat_install_SEH_handler): Fix formatting.
2191 2018-05-24  Hristian Kirtchev  <kirtchev@adacore.com>
2193         * exp_ch7.adb, sem_ch3.adb, sem_res.adb: Minor reformatting.
2195 2018-05-24  Ed Schonberg  <schonberg@adacore.com>
2197         * exp_aggr.adb (Flatten): Add a warning on an others clause in an array
2198         aggregate with static bounds when named associations cover all index
2199         positions and the others clause is redundant.
2201 2018-05-24  Raphael Amiard  <amiard@adacore.com>
2203         * libgnat/a-cohama.ads: Add documentation.
2205 2018-05-24  Raphael Amiard  <amiard@adacore.com>
2207         * libgnat/a-convec.ads: Add documentation.
2209 2018-05-24  Justin Squirek  <squirek@adacore.com>
2211         * exp_ch3.adb (Expand_N_Object_Declaration): Ignore raising an error in
2212         expansion for limited tagged types when the node to be expanded is a
2213         raise expression due to it not representing a valid object.
2214         * exp_ch5.adb (Expand_N_Assignment_Statement): Add exception to error
2215         message regarding assignments to limited types to ignore genereated
2216         code.
2218 2018-05-24  Hristian Kirtchev  <kirtchev@adacore.com>
2220         * exp_util.adb (New_Class_Wide_Subtype): Capture and restore relevant
2221         Ghost-related attributes of the class-wide subtype because the copy
2222         clobbers them.
2224 2018-05-24  Justin Squirek  <squirek@adacore.com>
2226         * sem_res.adb (Resolve_Entity_Name): Add guard to protect against
2227         marking use clauses as effective when the reference appears within
2228         generated code.
2230 2018-05-24  Cyrille Comar  <comar@adacore.com>
2232         * doc/gnat_rm/the_gnat_library.rst: Fix typos.
2233         * gnat_rm.texi: Regenerate.
2235 2018-05-24  Bob Duff  <duff@adacore.com>
2237         * exp_ch7.adb (Expand_Cleanup_Actions): Create a mark unconditionally
2238         for build-in-place functions with a caller-unknown-size result.
2239         (Create_Finalizer): For build-in-place functions with a
2240         caller-unknown-size result, check at run time whether we need to
2241         release the secondary stack.
2243 2018-05-24  Hristian Kirtchev  <kirtchev@adacore.com>
2245         * sem_prag.adb (Analyze_Pragma): Use the full view of an internally
2246         generated incomplete type.
2248 2018-05-24  Hristian Kirtchev  <kirtchev@adacore.com>
2250         * expander.adb (Expand): Update the save and restore of the Ghost
2251         region.
2252         * exp_ch3.adb (Freeze_Type): Likewise.
2253         * exp_disp.adb (Make_DT): Likewise.
2254         * exp_util.adb (Build_DIC_Procedure_Body): Likewise.
2255         (Build_DIC_Procedure_Declaration): Likewise.
2256         (Build_Invariant_Procedure_Body): Likewise.
2257         (Build_Invariant_Procedure_Declaration): Likewise.
2258         (Make_Predicate_Call): Likewise.
2259         * freeze.adb (Add_To_Result): Insert the freeze action of a living
2260         entity prior to the start of the enclosing ignored Ghost region.
2261         (Freeze_Entity): Update the save and restore of the Ghost region.
2262         * ghost.adb (Install_Ghost_Mode): Reimplemented.
2263         (Install_Ghost_Region): New routine.
2264         (Mark_And_Set_Ghost_Assignment): Install a region rather than a mode.
2265         (Mark_And_Set_Ghost_Body): Likewise.
2266         (Mark_And_Set_Ghost_Completion): Likewise.
2267         (Mark_And_Set_Ghost_Declaration): Likewise.
2268         (Mark_And_Set_Ghost_Instantiation): Likewise.
2269         (Mark_And_Set_Ghost_Procedure_Call): Likewise.
2270         (Name_To_Ghost_Mode): New routine.
2271         (Restore_Ghost_Region): New routine.
2272         * ghost.ads (Install_Ghost_Region): New routine.
2273         (Restore_Ghost_Region): New routine.
2274         * opt.ads: Add new global variable Ignored_Ghost_Region.
2275         * rtsfind.adb (Load_RTU): Update the save and restore of the Ghost
2276         region. Install a clean region.
2277         * sem.adb (Analyze): Likewise.
2278         (Do_Analyze): Likewise.
2279         * sem_ch3.adb (Analyze_Object_Declaration): Likewise
2280         (Derive_Progenitor_Subprograms): Use local variable Iface_Alias to
2281         capture the ultimate alias of the current primitive.
2282         (Process_Full_View): Update the save and restore of the Ghost region.
2283         Do not inherit DIC and invariant procedures.
2284         * sem_ch5.adb (Analyze_Assignment): Update the save and restore of the
2285         Ghost region.
2286         * sem_ch6.adb (Analyze_Procedure_Call): Likewise.
2287         (Analyze_Subprogram_Body_Helper): Likewise.
2288         * sem_ch7.adb (Analyze_Package_Body_Helper): Likewise.
2289         * sem_ch12.adb (Analyze_Package_Instantiation): Likewise.
2290         (Analyze_Subprogram_Instantiation): Likewise.
2291         (Instantiate_Package_Body): Likewise.
2292         (Instantiate_Subprogram_Body): Likewise.
2293         * sem_ch13.adb (Build_Predicate_Functions): Likewise.
2294         (Build_Predicate_Function_Declaration): Likewise.
2295         * sem_disp.adb
2296         (Add_Dispatching_Operation): Do not consider DIC and invariant
2297         procedures.
2298         (Check_Dispatching_Operation): Use Add_Dispatching_Operation to collect
2299         a dispatching subprogram.
2300         (Check_Operation_From_Private_View): Likewise.
2301         (Override_Dispatching_Operation): Likewise.
2302         * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): Update the save
2303         and restore of the Ghost region.
2304         (Analyze_Initial_Condition_In_Decl_Part): Likewise.
2305         (Analyze_Pragma): Update the save and restore of the Ghost region.
2306         (Analyze_Pre_Post_Condition_In_Decl_Part): Likewise.
2307         * sem_util.adb (Is_Suitable_Primitive): New routine.
2308         * sem_util.ads (Is_Suitable_Primitive): New routine.
2309         * sinfo.ads: Update the section of Ghost regions.
2311 2018-05-24  Piotr Trojanek  <trojanek@adacore.com>
2313         * doc/gnat_rm/implementation_defined_pragmas.rst (Contract_Cases):
2314         Change "condition" to "case guard" after renaming in the contract
2315         grammar.
2316         * gnat_rm.texi: Regenerate.
2318 2018-05-24  Hristian Kirtchev  <kirtchev@adacore.com>
2320         * exp_util.adb (Expand_Static_Predicates_In_Choices): Indicate that the
2321         construct with discrete choices no longer contains a subtype with
2322         predicates since the expansion already handled this case.
2324 2018-05-24  Hristian Kirtchev  <kirtchev@adacore.com>
2326         * freeze.adb (Wrap_Imported_Subprogram): Generate an unchecked
2327         conversion to the return type to avoid a side effect where an imported
2328         relocated function generates a new anonymous access type, whose
2329         accessibility level does not agree with with that of the wrapper.
2331 2018-05-24  Javier Miranda  <miranda@adacore.com>
2333         * sem_util.adb (Abstract_Interface_List): Add missing support for
2334         private types whose full view is a synchronized type.
2335         * sem_ch3.adb (Build_Derived_Private_Type): Skip building the full
2336         derivation of a private type parent type is a task type with
2337         discriminants as gigi does not use such type directly.
2339 2018-05-24  Hristian Kirtchev  <kirtchev@adacore.com>
2341         * sem_elab.adb (Build_Variable_Reference_Marker): Do not create a
2342         variable marker when the reference appears in the formal part of a
2343         compilation unit instance because there is no place to insert it.
2344         (In_Compilation_Instance_Formal_Part): New routine.
2346 2018-05-24  Piotr Trojanek  <trojanek@adacore.com>
2348         * layout.ads, repinfo.ads: Fix references to renamed Backend_Layout
2349         configuration parameter.
2351 2018-05-24  Doug Rupp  <rupp@adacore.com>
2353         * argv-lynxos178-raven-cert.c: New file.
2354         * libgnat/system-lynxos178-x86.ads: New file.
2356 2018-05-23  Hristian Kirtchev  <kirtchev@adacore.com>
2358         * exp_disp.adb, freeze.adb, gnat1drv.adb, sem_ch5.adb, sem_spark.adb:
2359         Minor reformattings.
2361 2018-05-23  Pascal Obry  <obry@adacore.com>
2363         * adaint.c (win32_wait): Properly free the handle/pid lists when
2364         WaitForMultipleObjects fails (return WAIT_FAILED).
2366 2018-05-23  Pascal Obry  <obry@adacore.com>
2368         * adaint.c (win32_wait): Add missing parentheses.
2370 2018-05-23  Hristian Kirtchev  <kirtchev@adacore.com>
2372         * exp_ch3.adb (Check_Large_Modular_Array): Moved to Freeze.
2373         (Expand_N_Object_Declaration): Do not check for a large modular array
2374         here.
2375         * freeze.adb (Check_Large_Modular_Array): Moved from Exp_Ch3.
2376         (Freeze_Object_Declaration): Code cleanup. Check for a large modular
2377         array.
2378         * sem_ch3.adb: Minor reformatting.
2380 2018-05-23  Ed Schonberg  <schonberg@adacore.com>
2382         * einfo.ads: New attribute on types: Predicated_Parent, to simplify the
2383         retrieval of the applicable predicate function to an itype created for
2384         a constrained array component.
2385         * einfo.adb: Subprograms for Predicated_Parent.
2386         (Predicate_Function): Use new attribute.
2387         * exp_util.adb (Make_Predicate_Call): If the predicate function is not
2388         available for a subtype, retrieve it from the base type, which may have
2389         been frozen after the subtype declaration and not captured by the
2390         subtype declaration.
2391         * sem_aggr.adb (Resolve_Array_Aggregate): An Others association is
2392         legal within a generated initiqlization procedure, as may happen with a
2393         predicate check on a component, when the predicate function applies to
2394         the base type of the component.
2395         * sem_ch3.adb (Analyze_Subtype_Declaration): Clean up inheritance of
2396         predicates for subtype declarations and for subtype indications in
2397         other contexts.
2398         (Process_Subtype): Likewise. Handle properly the case of a private type
2399         with unknown discriminants whose full view is an unconstrained array.
2400         Use Predicated_Parent to indicate source of predicate function on an
2401         itype whose parent is itself an itype.
2402         (Complete_Private_Subtype): If the private view has unknown
2403         discriminants and the full view is an unconstrained array, set base
2404         type of completion to the full view of parent.
2405         (Inherit_Predicate_Flags): Prevent double assignment of predicate
2406         function and flags.
2407         (Build_Subtype): For a constrained array component, propagate predicate
2408         information from original component type declaration.
2410 2018-05-23  Boris Yakobowski  <yakobowski@adacore.com>
2412         * libgnat/a-ngelfu.ads (Arctanh, Arccoth): Fix faulty preconditions.
2414 2018-05-23  Arnaud Charlet  <charlet@adacore.com>
2416         * checks.adb (Minimize_Eliminate_Overflows): Default initialize Lo and
2417         Hi.
2418         * sem_elab.adb: Make "out" parameters instead of "in out" when
2419         relevant.
2421 2018-05-23  Bob Duff  <duff@adacore.com>
2423         * gnatbind.adb (List_Applicable_Restrictions): Add
2424         No_Implementation_Restrictions to the list of restrictions not to list.
2425         Remove double negative "not No_Restriction_List".  Comment the
2426         commentary that is output, so it won't cause errors if used directly in
2427         a gnat.adc.
2429 2018-05-23  Ed Schonberg  <schonberg@adacore.com>
2431         * sem_prag.adb (Inherit_Class_Wide_Pre): Refine legality check on
2432         class-wide precondition on a type extension when ancestor does not have
2433         a class-wide precondition.  Previously the compiler accepted such a
2434         precondition when the ancestor had a class-wide postcondition.
2436 2018-05-23  Javier Miranda  <miranda@adacore.com>
2438         * sem_attr.adb (Valid_Scalars): Do not invoke Error_Attr_P to report
2439         the warning on occurrences of this attribute whose evaluation is always
2440         true (since that subprogram aborts processing the attribute). In
2441         addition, replace the node by its boolean result 'True' (required
2442         because the backend has no knowledge of this attribute).
2444 2018-05-23  Bob Duff  <duff@adacore.com>
2446         * libgnat/a-convec.adb: (Insert, Insert_Space): Suppress warnings. The
2447         code in question is not reachable in the case where Count_Type'Last is
2448         out of range.
2450 2018-05-23  Yannick Moy  <moy@adacore.com>
2452         * doc/gnat_rm/implementation_defined_pragmas.rst: Clarify meaning of
2453         local pragma Warnings Off without On.
2454         * gnat_rm.texi: Regenerate.
2456 2018-05-23  Olivier Hainque  <hainque@adacore.com>
2458         * libgnat/g-excact.ads (Is_Foreign_Exception): New predicate.
2459         * libgnat/g-excact.adb: Implement.
2461 2018-05-23  Ed Schonberg  <schonberg@adacore.com>
2463         * sem_ch5.adb (Analyze_Iterator_Specification): If a subtype indication
2464         is present, verify its legality when the domain of iteration is a
2465         GNAT-specific formal container, as is already done for arrays and
2466         predefined containers.
2468 2018-05-23  Yannick Moy  <moy@adacore.com>
2470         * sem_util.adb (Enclosing_Declaration): Fix the case of a named number
2471         declaration, which was not taken into account.
2473 2018-05-23  Hristian Kirtchev  <kirtchev@adacore.com>
2475         * debug.adb: Switch -gnatd_s is now used to stop elaboration checks on
2476         synchronized suspension.
2477         * rtsfind.ads: Add entries for units Ada.Synchronous_Barriers and
2478         Ada.Synchronous_Task_Control and routines Suspend_Until_True and
2479         Wait_For_Release.
2480         * sem_elab.adb: Document switch -gnatd_s.
2481         (In_Task_Body): New routine.
2482         (Is_Potential_Scenario): Code cleanup. Stop the traversal of a task
2483         body when the current construct denotes a synchronous suspension call,
2484         and restriction No_Entry_Calls_In_Elaboration_Code or switch -gnatd_s
2485         is in effect.
2486         (Is_Synchronous_Suspension_Call): New routine.
2487         * switch-c.adb (Scan_Front_End_Switches): Switch -gnatJ now sets switch
2488         -gnatd_s.
2490 2018-05-23  Javier Miranda  <miranda@adacore.com>
2492         * exp_disp.adb (Make_DT): Restrict the initialization of
2493         External_Tag and Expanded_Name to an empty string to the case where
2494         both pragmas apply (i.e. No_Tagged_Streams and Discard_Names), since
2495         restricted runtimes are compiled with pragma Discard_Names.
2496         * doc/gnat_rm/implementation_defined_pragmas.rst,
2497         doc/gnat_rm/implementation_defined_characteristics.rst: Add
2498         documentation.
2499         * gnat_rm.texi: Regenerate.
2501 2018-05-23  Maroua Maalej  <maalej@adacore.com>
2503         * sem_spark.adb: Fix of some permission rules of pointers in SPARK.
2505 2018-05-23  Ed Schonberg  <schonberg@adacore.com>
2507         * sem_ch5.adb (Preanalyze_Range): The pre-analysis of the domain of
2508         iteration of an Ada2012 loop is performed to determine the type of the
2509         domain, but full analysis is performed once the loop is rewritten as a
2510         while-loop during expansion. The pre-analysis suppresses expansion; it
2511         must also suppress the generation of freeze nodes, which may otherwise
2512         appear in the wrong scope before rewritting.
2514 2018-05-23  Hristian Kirtchev  <kirtchev@adacore.com>
2516         * sem_elab.adb: Update the section on suppressing elaboration warnings.
2518 2018-05-23  Hristian Kirtchev  <kirtchev@adacore.com>
2520         * einfo.adb (Is_Elaboration_Checks_OK_Id): Use predicate
2521         Is_Elaboration_Target.
2522         (Is_Elaboration_Target): New routine.
2523         (Is_Elaboration_Warnings_OK_Id): Use predicate Is_Elaboration_Target.
2524         (Set_Is_Elaboration_Checks_OK_Id): Use predicate Is_Elaboration_Target.
2525         (Set_Is_Elaboration_Warnings_OK_Id): Use predicate
2526         Is_Elaboration_Target.
2527         * einfo.ads: Add new synthesized attribute Is_Elaboration_Target along
2528         with occurrences in nodes.
2529         (Is_Elaboration_Target): New routine.
2530         * sem_prag.adb (Analyze_Pragma): Suppress elaboration warnings when an
2531         elaboration target is subject to pragma Warnings (Off, ...).
2533 2018-05-23  Eric Botcazou  <ebotcazou@adacore.com>
2535         * repinfo.adb (List_Type_Info): Remove obsolete stuff.
2537 2018-05-23  Hristian Kirtchev  <kirtchev@adacore.com>
2539         * einfo.adb: Flag304 is now Is_Elaboration_Warnings_OK_Id.
2540         (Is_Elaboration_Warnings_OK_Id): New routine.
2541         (Set_Is_Elaboration_Warnings_OK_Id): New routine.
2542         (Write_Entity_Flags): Output Flag304.
2543         * einfo.ads: Add new attribute Is_Elaboration_Warnings_OK_Id along with
2544         occurrences in entities.
2545         (Is_Elaboration_Warnings_OK_Id): New routine along with pragma Inline.
2546         (Set_Is_Elaboration_Warnings_OK_Id): New routine along with pragma
2547         Inline.
2548         * sem_attr.adb (Analyze_Access_Attribute): Capture the state of
2549         elaboration warnings.
2550         * sem_ch3.adb (Analyze_Object_Declaration): Capture the state of
2551         elaboration warnings.
2552         * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Capture the
2553         state of elaboration warnings.
2554         (Analyze_Subprogram_Body_Helper): Capture the state of elaboration
2555         warnings.
2556         (Analyze_Subprogram_Declaration): Capture the state of elaboration
2557         warnings.
2558         * sem_ch9.adb (Analyze_Entry_Declaration): Capture the state of
2559         elaboration warnings.
2560         (Analyze_Single_Task_Declaration): Capture the state of elaboration
2561         warnings.
2562         (Analyze_Task_Type_Declaration): Capture the state of elaboration
2563         warnings.
2564         * sem_ch12.adb (Analyze_Generic_Package_Declaration): Capture the state
2565         of elaboration warnings.
2566         (Analyze_Generic_Subprogram_Declaration): Capture the state of
2567         elaboration warnings.
2568         * sem_elab.adb: Add a section on suppressing elaboration warnings.
2569         Type Processing_Attributes includes component Suppress_Warnings
2570         intended to suppress any elaboration warnings along a path in the
2571         graph.  Update Initial_State to include a value for this component.
2572         Types Target_Attributes and Task_Attriutes include component
2573         Elab_Warnings_OK to indicate whether the target or task has elaboration
2574         warnings enabled.  component Elab_Warnings_OK.
2575         (Build_Access_Marker): Propagate attribute
2576         Is_Elaboration_Warnings_OK_Node from the attribute to the generated
2577         call marker.
2578         (Extract_Instantiation_Attributes): Set the value for Elab_Warnings_OK.
2579         (Extract_Target_Attributes): Set the value for Elab_Warnings_OK.
2580         (Extract_Task_Attributes): Set the value for Elab_Warnings_OK.
2581         (Process_Conditional_ABE_Access): Suppress futher elaboration warnings
2582         when already in this mode or when the attribute or target have warnings
2583         suppressed.
2584         (Process_Conditional_ABE_Activation_Impl): Do not emit any diagnostics
2585         if warnings are suppressed.
2586         (Process_Conditional_ABE_Call): Suppress further elaboration warnings
2587         when already in this mode, or the target or call have warnings
2588         suppressed.
2589         (Process_Conditional_ABE_Call_Ada): Do not emit any diagnostics if
2590         warnings are suppressed.
2591         (Process_Conditional_ABE_Call_SPARK): Do not emit any diagnostics if
2592         warnings are suppressed.
2593         (Process_Conditional_ABE_Instantiation): Suppress further elaboration
2594         warnings when already in this mode or when the instantiation has
2595         warnings suppressed.
2596         (Process_Conditional_ABE_Instantiation_Ada): Do not emit any
2597         diagnostics if warnings are suppressed.
2598         (Process_Conditional_ABE_Variable_Assignment_Ada): Use the more
2599         specific Is_Elaboration_Warnings_OK_Id rather than Warnings_Off.
2600         (Process_Conditional_ABE_Variable_Assignment_SPARK): Use the more
2601         specific Is_Elaboration_Warnings_OK_Id rather than Warnings_Off.
2602         (Process_Task_Object): Suppress further elaboration warnings when
2603         already in this mode, or when the object, activation call, or task type
2604         have warnings suppressed. Update the processing state to indicate that
2605         the path goes through a task body.
2606         * sinfo.adb (Is_Elaboration_Warnings_OK_Node): Accept attribute
2607         references.
2608         (Set_Is_Elaboration_Warnings_OK_Node): Accept attribute references.
2609         * sinfo.ads: Attribute Is_Elaboration_Warnings_OK_Node now applies to
2610         attribute references.
2612 2018-05-23  Piotr Trojanek  <trojanek@adacore.com>
2614         * einfo.ads: Minor reformatting.
2616 2018-05-23  Ed Schonberg  <schonberg@adacore.com>
2618         * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
2619         anonymous_access_to_ subprogram formal, apply a conversion to force an
2620         accsssibility check that will fail statically, enforcing 3.10.2 (13).
2622 2018-05-23  Daniel Mercier  <mercier@adacore.com>
2624         * gnat1drv.adb: Turn off length expansion in CodePeer mode.
2626 2018-05-23  Bob Duff  <duff@adacore.com>
2628         * freeze.adb: (Check_Address_Clause): Deal with build-in-place
2629         aggregates in addition to build-in-place calls.
2631 2018-05-23  Bob Duff  <duff@adacore.com>
2633         * einfo.ads: Minor reformatting.
2634         * sem_ch3.adb: Likewise.
2635         * sinfo.ads: Likewise.
2637 2018-05-23  Hristian Kirtchev  <kirtchev@adacore.com>
2639         * exp_ch3.adb (Default_Initialize_Object): Do not optimize scalar array
2640         initialization when the component type has predicates.
2641         * exp_ch4.adb (Expand_N_Allocator): Do not optimize scalar array
2642         allocation when the component type has predicates.
2644 2018-05-23  Hristian Kirtchev  <kirtchev@adacore.com>
2646         * einfo.adb, exp_disp.adb, sem_ch3.adb, sem_ch6.adb, sem_prag.adb:
2647         Minor reformatting.
2649 2018-05-22  Justin Squirek  <squirek@adacore.com>
2651         * sem_ch6.adb (Analyze_Expression_Function): Propagate flags from the
2652         original function spec into the generated function spec due to
2653         expansion of expression functions during analysis.
2654         (Analyze_Subprogram_Body_Helper): Modify check on formal parameter
2655         references from the body to the subprogram spec in the case of
2656         expression functions because of inconsistances related to having a
2657         generated body.
2658         * libgnarl/s-osinte__android.ads: Flag parameters as unused.
2659         * libgnarl/s-osinte__lynxos178e.ads: Likewise.
2660         * libgnarl/s-osinte__qnx.adb: Likewise.
2661         * libgnarl/s-osinte__qnx.ads: Likewise.
2663 2018-05-22  Doug Rupp  <rupp@adacore.com>
2665         * init.c (HAVE_ADJUST_CONTEXT_FOR_RAISE): Don't define on VxWorks7 for
2666         AArch64.
2668 2018-05-22  Olivier Hainque  <hainque@adacore.com>
2670         * libgnat/a-except.adb (Exception_Propagation.Propagate_Exception):
2671         Expect an Exception_Occurence object, not an Access.
2672         (Complete_And_Propagate_Occurrence): Adjust accordingly.
2673         (Raise_From_Signal_Handler): Likewise.
2674         (Reraise_Occurrence_No_Defer): If we have a Machine_Occurrence
2675         available in the provided occurrence object, just re-propagate the
2676         latter as a bare "raise;" would do.
2677         * libgnat/a-exexpr.adb (Propagate_Exception): Adjust to spec change.
2678         * libgnat/a-exstat.adb (String_To_EO): Initialize X.Machine_Occurrence
2679         to null, to mark that the occurrence we're crafting from the stream
2680         contents is not being propagated (yet).
2682 2018-05-22  Hristian Kirtchev  <kirtchev@adacore.com>
2684         * exp_aggr.adb (Initialize_Ctrl_Record_Component): Insert the generated
2685         code for a transient component in line with the rest of the
2686         initialization code, rather than before the aggregate. This ensures
2687         that the component has proper visibility of the discriminants.
2689 2018-05-22  Jerome Lambourg  <lambourg@adacore.com>
2691         * adaint.c: Reorganize QNX-specific macros, use syspage to retreive the
2692         number of CPUs.
2694 2018-05-22  Jerome Lambourg  <lambourg@adacore.com>
2696         * sigtramp-qnx.c: Properly restore link register in signal trampoline.
2698 2018-05-22  Hristian Kirtchev  <kirtchev@adacore.com>
2700         * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Strip away any
2701         conversions before extracting the value of the expression.
2702         * exp_ch3.adb (Default_Initialize_Object): Optimize the default
2703         initialization of an array of scalars.
2704         (Get_Simple_Init_Val): Add processing for array types. Remove the
2705         processing of strings because this case is already handled by the array
2706         case.
2707         (Needs_Simple_Initialization): Moved to Sem_Util.
2708         (Simple_Init_Array_Type): New routine.
2709         (Simple_Init_Initialize_Scalars_Type): Reimplemented to use the new
2710         facilities from Sem_Util.
2711         (Simple_Initialization_OK): New routine.
2712         * exp_ch3.ads (Needs_Simple_Initialization): Moved to Sem_Util.
2713         * exp_ch4.adb (Expand_N_Allocator): Optimize the default allocation of
2714         an array of scalars.
2715         * sem_prag.adb (Analyze_Float_Value): New routine.
2716         (Analyze_Integer_Value): New routine.
2717         (Analyze_Pragma): Reimplement the analysis of pragma Initialize_Scalars
2718         to handled the extended form of the pragma.
2719         (Analyze_Type_Value_Pair): New routine.
2720         * sem_util.adb: Add invalid value-related data structures.
2721         (Examine_Array_Bounds): New routine.
2722         (Has_Static_Array_Bounds): Reimplemented.
2723         (Has_Static_Non_Empty_Array_Bounds): New routine.
2724         (Invalid_Scalar_Value): New routine.
2725         (Needs_Simple_Initialization): Moved from Exp_Ch3.
2726         (Set_Invalid_Scalar_Value): New routines.
2727         * sem_util.ads (Has_Static_Non_Empty_Array_Bounds): New routine.
2728         (Invalid_Scalar_Value): New routine.
2729         (Needs_Simple_Initialization): Moved from Exp_Ch3.
2730         (Set_Invalid_Scalar_Value): New routines.
2731         * snames.ads-tmpl: Add names for the salar type families used by pragma
2732         Initialize_Scalars.
2734 2018-05-22  Javier Miranda  <miranda@adacore.com>
2736         * exp_disp.adb (Make_DT): Initialize the External_Tag with an empty
2737         string when pragma No_Tagged_Streams is applicable to the tagged type,
2738         and initialize the Expanded_Name with an empty string when pragma
2739         Discard_Names is applicable to the tagged type.
2741 2018-05-22  Ed Schonberg  <schonberg@adacore.com>
2743         * sem_ch6.adb (Check_Conformance): Add RM reference for rule that a
2744         formal subprogram is never subtype conformqnt, and thus cannot be the
2745         prefix of 'Access.  Reject as well the attribute when applied to a
2746         renaming of a formal subprogram.
2748 2018-05-22  Hristian Kirtchev  <kirtchev@adacore.com>
2750         * exp_ch3.adb (Build_Array_Init_Proc): Update the call to
2751         Needs_Simple_Initialization.
2752         (Build_Init_Statements): Update the call to Get_Simple_Init_Val.
2753         (Check_Subtype_Bounds): Renamed to Extract_Subtype_Bounds. Update the
2754         profile and comment on usage.
2755         (Default_Initialize_Object): Do not use New_Copy_Tree to set the proper
2756         Sloc of a value obtained from aspect Default_Value because this could
2757         potentially replicate large trees. The proper Sloc is now set in
2758         Get_Simple_Init_Val.
2759         (Get_Simple_Init_Val): Reorganized by breaking the various cases into
2760         separate routines. Eliminate the use of global variables.
2761         (Init_Component): Update the call to Get_Simple_Init_Val.
2762         (Needs_Simple_Initialization): Update the parameter profile and all
2763         uses of T.
2764         (Simple_Init_Defaulted_Type): Copy the value of aspect Default_Value
2765         and set the proper Sloc.
2766         * exp_ch3.ads (Get_Simple_Init_Val): Update the parameter profile and
2767         comment on usage.
2768         (Needs_Simple_Initialization): Update the parameter profile.
2770 2018-05-22  Patrick Bernardi  <bernardi@adacore.com>
2772         * sem_ch3.adb (Build_Discriminant_Constraints): Raise an error if the
2773         user tries to use a subtype indication as a discriminant constraint.
2775 2018-05-22  Ed Schonberg  <schonberg@adacore.com>
2777         * exp_ch4.ads, exp_ch4.adb, exp_util.adb, expander.adb: Remove mention
2778         of N_Reduction_Expression and N_Reduction_Expression_Parameter.
2779         * par-ch4.adb: Remove parsing routines for reduction expressions.
2780         * sem.adb, sinfo.ads, sinfo.adb, sem_ch4.ads, sem_ch4.adb, sem_res.adb,
2781         sem_spark.adb, sprint.adb: Remove analysis routines for reduction
2782         expressions.
2784 2018-05-22  Arnaud Charlet  <charlet@adacore.com>
2786         * sem_ch8.adb (Check_Frozen_Renaming): Do not emit error in
2787         Relaxed_RM_Semantics mode.
2789 2018-05-22  Arnaud Charlet  <charlet@adacore.com>
2791         * comperr.adb (Delete_SCIL_Files): Take into account
2792         N_Generic_Package_Renaming_Declaration.
2794 2018-05-22  Ed Schonberg  <schonberg@adacore.com>
2796         * sem_ch3.adb (Search_Derivation_Levels): Whenever a parent type is
2797         private, use the full view if available, because it may include renamed
2798         discriminants whose values are stored in the corresponding
2799         Stored_Constraint.
2801 2018-05-22  Ed Schonberg  <schonberg@adacore.com>
2803         * einfo.ads, einfo.adb: New attribute Hidden_In_Formal_Instance,
2804         defined on packages that are actuals for formal packages, in order to
2805         set/reset the visibility of the formals of a formal package with given
2806         actuals, when there are subsequent uses of those formals in the
2807         enclosing generic, as required by RN 12.7 (10).
2808         * atree.ads, atree.adb: Add operations for Elist30.
2809         * atree.h: Add Elist30.
2810         * sem_ch12.adb (Analyze_Formal_Package_Instantiation): Collect formals
2811         that are not defaulted and are thus not visible within the current
2812         instance.
2813         (Check_Formal_Packages): Reset visibility of formals of a formal
2814         package that are not defaulted, on exit from current instance.
2816 2018-05-22  Hristian Kirtchev  <kirtchev@adacore.com>
2818         * sem_prag.adb (Analyze_Input_Output): Emit an error when a non-null,
2819         non-'Result output appears in the output list of a function.
2821 2018-05-22  Hristian Kirtchev  <kirtchev@adacore.com>
2823         * exp_attr.adb (Build_Array_VS_Func): Reimplemented.
2824         (Build_Record_VS_Func): Reimplemented.
2825         (Expand_N_Attribute): Reimplement the handling of attribute
2826         'Valid_Scalars.
2827         * sem_attr.adb (Analyze_Attribute): Reimplement the handling of
2828         attribute 'Valid_Scalars.
2829         * sem_util.adb (Scalar_Part_Present): Reimplemented.
2830         (Validated_View): New routine.
2831         * sem_util.ads (Scalar_Part_Present): Update the parameter profile and
2832         comment on usage.
2833         (Validated_View): New routine.
2834         * doc/gnat_rm/implementation_defined_attributes.rst: Update the
2835         documentation of attribute 'Valid_Scalars.
2836         * gnat_rm.texi: Regenerate.
2838 2018-05-22  Bob Duff  <duff@adacore.com>
2840         * binde.adb: (Choose): Ignore a pragma Elaborate_Body that appears in
2841         the spec of a SAL_Interface package.
2843 2018-05-22  Ed Schonberg  <schonberg@adacore.com>
2845         * freeze.adb (Freeze_Entity): When analyzing delayed aspects of an
2846         entity E within a generic unit, indicate that there are no remaining
2847         delayed aspects after invoking Analyze_Aspects_At_Freeze_Point. The
2848         entity E is not frozen yet but the aspects should not be reanalyzed at
2849         the freeze point, which may be outside of the generic and may not have
2850         the proper visibility.
2852 2018-05-22  Bob Duff  <duff@adacore.com>
2854         * doc/gnat_ugn/gnat_utility_programs.rst: Add documentation for
2855         the new --split-line-before-record, --indent-named-statements and
2856         --no-align-modes gnatpp switches.
2858 2018-05-22  Ed Schonberg  <schonberg@adacore.com>
2860         * sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Handle properly
2861         a second argument that is a constant of a given string value.
2863 2018-05-22  Doug Rupp  <rupp@adacore.com>
2865         * sigtramp-vxworks-target.inc: Align stack to 128bits on AArch64.
2867 2018-05-22  Jerome Lambourg  <lambourg@adacore.com>
2869         * sigtramp-qnx.c: Fix stack alignment issue in the signal trampoline.
2871 2018-05-22  Ed Schonberg  <schonberg@adacore.com>
2873         * freeze.adb (Freeze_Fixed_Point_Type): If the first subtype has
2874         delayed aspects, analyze them now, os that the representation of the
2875         type (size, bounds) can be computed and validated.
2877 2018-05-22  Olivier Hainque  <hainque@adacore.com>
2879         * libgnat/s-dwalin.adb (Enable_Cache): Skip symbols outside of the
2880         executable code section boundaries.
2882 2018-05-22  Javier Miranda  <miranda@adacore.com>
2884         * locales.c: New implementation for the Ada.Locales package.
2885         * libgnat/a-locale.ads: Remove comment indicating that this is not
2886         implemented.
2887         * doc/gnat_rm/standard_library_routines.rst: Remove comment indicating
2888         that this is not implemented.
2889         * gnat_rm.texi: Regenerate.
2891 2018-05-22  Hristian Kirtchev  <kirtchev@adacore.com>
2893         * exp_ch5.adb, freeze.adb, pprint.adb, sem_ch4.adb, sem_res.adb: Minor
2894         reformattings.
2896 2018-05-22  Justin Squirek  <squirek@adacore.com>
2898         * sem_ch12.adb (In_Same_Declarative_Part): Moved to sem_util.
2899         (Freeze_Subprogram_Body, Install_Body): Modify calls to
2900         In_Same_Declarative_Part.
2901         * sem_prag.adb (Analyze_Pragma-Pragma_Pure_Function): Add check to
2902         verify pragma declaration is within the same declarative list with
2903         corresponding error message.
2904         * sem_util.adb, sem_util.ads (In_Same_Declarative_Part): Moved from
2905         sem_ch12.adb and generalized to be useful outside the scope of
2906         freezing.
2908 2018-05-22  Hristian Kirtchev  <kirtchev@adacore.com>
2910         * sem_ch6.adb (Analyze_Subprogram_Declaration): Set the proper
2911         categorization of the unit after processing the aspects in case one of
2912         its aspects is converted into a categorization pragma.
2914 2018-05-21  Ed Schonberg  <schonberg@adacore.com>
2916         * freeze.adb (Warn_Overlay): Do not emit a wawrning on an object
2917         declaration with an explicit address clause and a type with default
2918         initialization, if the declaration carries an aspect
2919         Suppress_Initialization.
2921 2018-05-21  Daniel Mercier  <mercier@adacore.com>
2923         * pprint.adb: Use mixed case for attribute names.
2925 2018-05-21  Hristian Kirtchev  <kirtchev@adacore.com>
2927         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Rename the call to
2928         Analyze_Aspect_Specifications_On_Body_Or_Stub.
2929         (Analyze_Subprogram_Body_Helper): Rename the calls to
2930         Analyze_Aspect_Specifications_On_Body_Or_Stub.
2931         * sem_ch9.adb (Analyze_Entry_Body): Rename the call to
2932         Analyze_Aspect_Specifications_On_Body_Or_Stub.
2933         * sem_ch10.adb: Add with and use clause for Sem_Ch13.
2934         (Analyze_Package_Body_Stub): Add constant Id. Decorate the package stub
2935         prior to analyzing its aspects.
2936         (Analyze_Protected_Body_Stub): Add constant Id. Decorate the package
2937         stub prior to analyzing its aspects. Save and restore the configuration
2938         switches.
2939         (Analyze_Task_Body_Stub): Add constant Id. Decorate the package stub
2940         prior to analyzing its aspects.
2941         * sem_ch13.adb (Analyze_Aspect_Specifications_On_Body_Or_Stub): Renamed
2942         to Analyze_Aspects_On_Subprogram_Body_Or_Stub.
2943         * sem_ch13.ads (Analyze_Aspect_Specifications_On_Body_Or_Stub): Renamed
2944         to Analyze_Aspects_On_Subprogram_Body_Or_Stub.
2945         * sem_prag.adb: Code reformatting.
2946         (Analyze_Refined_Depends_Global_Post): Consider task body stubs.
2948 2018-05-21  Jerome Lambourg  <lambourg@adacore.com>
2950         * gcc-interface/Makefile.in: Add g-soliop__qnx.ads to the runtime build
2951         for QNX.
2953 2018-05-21  Hristian Kirtchev  <kirtchev@adacore.com>
2955         * exp_cg.adb: Remove with and use clause for Exp_Disp.
2956         * exp_ch9.adb: Remove with and use clause for Exp_Disp.
2957         * exp_disp.adb (Is_Predefined_Dispatching_Operation): Moved to Sem_Util.
2958         (Is_Predefined_Interface_Primitive): Moved to Sem_Util.
2959         (Is_Predefined_Internal_Operation): Moved to Sem_Util.
2960         * exp_disp.ads (Is_Predefined_Dispatching_Operation): Moved to Sem_Util.
2961         (Is_Predefined_Interface_Primitive): Moved to Sem_Util.
2962         (Is_Predefined_Internal_Operation): Moved to Sem_Util.
2963         * exp_dist.adb: Remove with and use clause for Exp_Disp.
2964         * freeze.adb: Remove with and use clause for Exp_Disp.
2965         * sem_cat.adb: Remove with and use clause for Exp_Disp.
2966         * sem_ch6.adb: Remove with and use clause for Exp_Disp.
2967         * sem_ch12.adb: Remove with and use clause for Exp_Disp.
2968         * sem_elab.adb (Check_Overriding_Primitive): Do not process predefined
2969         primitives.
2970         * sem_util.adb: Remove with and use clause for Exp_Disp.
2971         (Is_Predefined_Dispatching_Operation): Moved from Exp_Disp.
2972         (Is_Predefined_Interface_Primitive): Moved from Exp_Disp.
2973         (Is_Predefined_Internal_Operation): Moved from Exp_Disp.
2974         * sem_util.ads (Is_Predefined_Dispatching_Operation): Moved from
2975         Exp_Disp.
2976         (Is_Predefined_Interface_Primitive): Moved from Exp_Disp.
2977         (Is_Predefined_Internal_Operation): Moved from Exp_Disp.
2979 2018-05-21  Ed Schonberg  <schonberg@adacore.com>
2981         * sem_res.adb (Valid_Conversion): Improve error message on an illegal
2982         type conversion whose expression has a limited view of a type.
2984 2018-05-21  Ed Schonberg  <schonberg@adacore.com>
2986         * exp_ch5.adb (Build_Formal_Container_Iteration): If source has
2987         explicit name for iterator loop, preserve that name in expanded
2988         construct, for possible use in exit statements.
2990 2018-05-21  Javier Miranda  <miranda@adacore.com>
2992         * sem_ch4.adb (Analyze_Membership_Op): Avoid compiler crash when the
2993         spec of a unit has Ada 2012 membership tests with multiple choices and
2994         the unit body is not compiled under Ada 2012 mode.
2996 2018-05-21  Doug Rupp  <rupp@adacore.com>
2998         * sigtramp-vxworks-target.inc: Set cfa_reg properly from sigcontext
2999         pregs.
3000         (CFI_COMMON_REGS): Restore LR jic probed from prologue.
3001         (REGNO_PC_OFFSET): Change to correct value for Aarch64.
3003 2018-05-21  Jose Ruiz  <ruiz@adacore.com>
3005         * doc/gnat_ugn/gnat_utility_programs.rst, exp_attr.adb,
3006         libgnarl/s-tassta.adb: Minor typo fixes
3008 2018-05-21  Ed Schonberg  <schonberg@adacore.com>
3010         * sem_ch4.adb (Analyze_One_Call): Recognize complex cases where an
3011         indexed call originally in prefix forn is itself the prefix of a
3012         further call.
3014 2018-05-21  Piotr Trojanek  <trojanek@adacore.com>
3016         * sem_eval.adb (Is_Null_Range): Clarify access to the full view of a
3017         type.
3018         (Not_Null_Range): Same as above.
3020 2018-05-21  Hristian Kirtchev  <kirtchev@adacore.com>
3022         * exp_ch3.adb: Minor reformatting.
3023         * exp_ch6.adb: Likewise.
3024         * freeze.adb: Likewise.
3025         * inline.adb: Likewise.
3026         * sem_util.adb: Likewise.
3028 2018-05-21  Yannick Moy  <moy@adacore.com>
3030         * inline.adb (Expand_Inlined_Call.Process_Formals): Use a type
3031         conversion instead of an unchecked type conversion when inlining a
3032         return statement, unless type qualification is required (for character
3033         and string literal) or no check can result from the conversion (for
3034         access types).
3035         * opt.ads: Update comment.
3037 2018-05-21  Hristian Kirtchev  <kirtchev@adacore.com>
3039         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Install the elaboration
3040         model of the compilation unit spec, if any.
3041         * sem_ch7.adb (Analyze_Package_Body_Helper): Install the elaboration
3042         model of the compilation unit spec, if any.
3043         * sem_ch10.adb (Analyze_Subunit): Install the elaboration model of the
3044         parent compilation unit spec, if any.
3045         * sem_elab.adb (Check_Elaboration_Scenarios): Restore the elaboration
3046         model of the main unit.
3047         (Is_Same_Unit): The routine now uses Unit_Entity.
3048         (Is_Subunit): Removed.
3049         (Normalize_Unit): Removed.
3050         (Unit_Entity): New routine.
3051         * sem_prag.adb (Analyze_Pragma): Reimplement the handling of pragma
3052         Elaboration_Checks. The analysis now ensures that the pragma appears at
3053         the configuration level, and on the initial declaration of a unit.
3054         Other placements are either flagged as illegal, or ignored.
3055         (Check_Duplicate_Elaboration_Checks_Pragma): New routine.
3056         (Ignore_Elaboration_Checks_Pragma): New routine.
3057         * sem_util.adb (Install_Elaboration_Model): New routine.
3058         * sem_util.ads (Install_Elaboration_Model): New routine.
3059         * doc/gnat_rm/implementation_defined_pragmas.rst: Update the
3060         documentation of pragma Elaboration_Checks.
3061         * gnat_rm.texi: Regenerate.
3063 2018-05-21  Olivier Hainque  <hainque@adacore.com>
3065         * libgnat/s-trasym__dwarf.adb (Executable_Name): Return argv[0] instead
3066         of empty string when argv[0] couldn't be found on PATH.
3067         (Enable_Cache): Raise Program_Error instead of attempting a null
3068         pointer dereference when the Exec_Module initialization failed.
3070 2018-05-21  Piotr Trojanek  <trojanek@adacore.com>
3072         * libgnarl/a-reatim.ads (Clock_Time): Remove External aspect.
3073         * libgnarl/a-taside.ads (Tasking_State): Likewise.
3074         * libgnat/a-calend.ads (Clock_Time): Likewise.
3076 2018-05-21  Yannick Moy  <moy@adacore.com>
3078         * sem_ch6.adb (Analyze_Procedure_Call): Refine test to recognize prefix
3079         call notation in inlined call in GNATprove mode.
3081 2018-05-21  Hristian Kirtchev  <kirtchev@adacore.com>
3083         * einfo.adb (Is_External_State): An abstract state is also external
3084         when it is declared with option "synchronous".
3085         * einfo.ads: Update the documentation of synthesized attribute
3086         Is_External_State.
3087         * sem_util.adb (Find_Simple_Properties): New routine.
3088         (Is_Enabled_External_Property): New routine.
3089         (State_Has_Enabled_Property): Reimplemented. The two flavors of option
3090         External have precedence over option Synchronous when determining
3091         whether a property is in effect.
3093 2018-05-21  Yannick Moy  <moy@adacore.com>
3095         * sem_eval.adb (Static_Length): Take into account case of variable of
3096         subtype string literal.
3098 2018-05-21  Olivier Hainque  <hainque@adacore.com>
3100         * libgnat/s-objrea.ads (Get_Memory_Bounds): Rename as Get_Xcode_Bounds.
3101         (Object_Section): Rename Flag_Alloc component as Flag_Xcode.
3102         * libgnat/s-objrea.adb (Get_Xcode_Bounds): Adjust to new subprogram and
3103         component name.
3104         (Get_Section, ELF case): Set Flag_Xcode from SHF_EXECINSTR.
3105         * libgnat/s-dwalin.adb (Open): Adjust to the Get_Memory_Bounds name
3106         change.
3108 2018-05-21  Olivier Hainque  <hainque@adacore.com>
3110         * libgnat/s-dwalin.ads (Dwarf_Context): Change type of Load_Address to
3111         Address, and type of Low, High to Storage_Offset.
3112         (Low): Rename as Low_Address and convey that the return value is a
3113         runtime reference accounting for a load address.
3114         * libgnat/s-dwalin.adb (Read_Aranges_Entry): Adjust to the
3115         address/offset type changes.
3116         (Aranges_Lookup): Likewise.
3117         (Symbolic_Address): Likewise.
3118         (Symbolic_Traceback): Likewise.
3119         (Dump_Cache): Likewise.
3120         (Is_Inside): Likewise.
3121         (Open): Likewise.
3122         (Set_Load_Address): Likewise.
3123         (Low_Address): Likewise, and account for C.Load_Address.
3124         * libgnat/s-trasym__dwarf.adb (Lt): Use Low_Address instead of Low.
3125         (Multi_Module_Symbolic_Traceback): Compare address in traceback
3126         with module Low_Address instead of Low.
3128 2018-05-21  Olivier Hainque  <hainque@adacore.com>
3130         * libgnat/s-dwalin.ads (Dwarf_Context): Rename Load_Slide as
3131         Load_Address.
3132         * libgnat/s-dwalin.adb (Is_Inside): Adjust accordingly.
3133         (Set_Load_Address): Likewise.
3134         (Symbolic_Traceback): Likewise.
3136 2018-05-21  Olivier Hainque  <hainque@adacore.com>
3138         * libgnat/s-trasym__dwarf.adb (Add_Module_To_Cache): Expect a
3139         Load_Address argument and pass it down to Init_Module.
3140         * libgnat/s-tsmona__linux.adb (Build_Cache_For_All_Modules): Pass
3141         lm.l_addr as the Load_Address to Add_Module_To_Cache.
3143 2018-05-21  Piotr Trojanek  <trojanek@adacore.com>
3145         * einfo.adb (Has_Discriminants): Stronger assertion.
3146         (Set_Has_Discriminants): Stronger assertion.
3147         * sem_ch13.adb (Push_Scope_And_Install_Discriminants): Adapt to respect
3148         the stronger assertion on Has_Discriminant.
3149         (Uninstall_Discriminants_And_Pop_Scope): Same as above.
3150         * sem_util.adb (New_Copy_Tree): Same as above.
3151         * sem_ch7.adb (Generate_Parent_References): Prevent calls to
3152         Has_Discriminant on non-type entities that might happen when the
3153         compiled code has errors.
3154         * sem_ch3.adb (Derived_Type_Declaration): Only call
3155         Set_Has_Discriminant on type entities.
3157 2018-05-21  Arnaud Charlet  <charlet@adacore.com>
3159         * exp_unst.adb (Unnest_Subprogram): Unnest all subprograms relevant for
3160         code generation.
3162 2018-05-21  Piotr Trojanek  <trojanek@adacore.com>
3164         * lib.ads: Fix typo in enumeration in comment.
3166 2018-05-21  Ed Schonberg  <schonberg@adacore.com>
3168         * sem_attr.adb (Analyze_Attribute, case Scalar_Storage_Order): The
3169         attribute reference is legal within a generic unit when the prefix is a
3170         formal private type.
3172 2018-05-21  Hristian Kirtchev  <kirtchev@adacore.com>
3174         * exp_ch7.adb (Establish_Transient_Scope): Code cleanup. Do not
3175         delegate the secondary stack management when there is no suitable
3176         transient context, and the transient scope was intended to manage the
3177         secondary stack because this causes premature reclamation. Change the
3178         transient scope creation logic by special casing assignment statements
3179         of controlled components for type initialization procedures.
3180         (Find_Node_To_Be_Wrapped): Renamed to Find_Transient_Context. Update
3181         the comment on usage.
3182         (Find_Transient_Context): Change the initinte loop into a while loop.
3183         Iterations schemes and iterator specifications are not valid transient
3184         contexts because they rely on special processing. Assignment statements
3185         are now treated as a normal transient context, special cases are
3186         handled by the caller. Add special processing for pragma Check.
3187         (Is_OK_Construct): Removed. Its functionality has been merged in
3188         routine Find_Transient_Context.
3189         * sem_ch5.adb (Check_Call): Reimplemented. Add code to properly
3190         retrieve the subprogram being invoked. Use a more accurate predicate
3191         (Requires_Transient_Scope) to determine that the function will emply
3192         the secondary stack.
3194 2018-05-21  Piotr Trojanek  <trojanek@adacore.com>
3196         * ada_get_targ.adb: Fix subprogram body headers.
3197         * adabkend.adb: Likewise.
3198         * checks.adb: Likewise.
3199         * exp_ch3.adb: Likewise.
3200         * exp_ch5.adb: Likewise.
3201         * exp_ch9.adb: Likewise.
3202         * exp_dist.adb: Likewise.
3203         * exp_tss.adb: Likewise.
3204         * inline.adb: Likewise.
3205         * lib-writ.adb: Likewise.
3206         * lib-xref-spark_specific.adb: Likewise.
3207         * libgnarl/s-osinte__darwin.adb: Likewise.
3208         * libgnarl/s-stusta.adb: Likewise.
3209         * libgnarl/s-taprop__solaris.adb: Likewise.
3210         * libgnarl/s-tposen.adb: Likewise.
3211         * libgnarl/s-vxwext__kernel-smp.adb: Likewise.
3212         * libgnarl/s-vxwext__kernel.adb: Likewise.
3213         * libgnat/a-btgbso.adb: Likewise.
3214         * libgnat/a-cfdlli.adb: Likewise.
3215         * libgnat/a-cfhama.adb: Likewise.
3216         * libgnat/a-cfinve.adb: Likewise.
3217         * libgnat/a-cimutr.adb: Likewise.
3218         * libgnat/a-coboho.adb: Likewise.
3219         * libgnat/a-cofove.adb: Likewise.
3220         * libgnat/a-cofuve.adb: Likewise.
3221         * libgnat/a-comutr.adb: Likewise.
3222         * libgnat/a-exexda.adb: Likewise.
3223         * libgnat/a-tags.adb: Likewise.
3224         * libgnat/a-tideau.adb: Likewise.
3225         * libgnat/a-wtdeau.adb: Likewise.
3226         * libgnat/a-ztdeau.adb: Likewise.
3227         * libgnat/g-alleve.adb: Likewise.
3228         * libgnat/s-excdeb.adb: Likewise.
3229         * libgnat/s-parint.adb: Likewise.
3230         * libgnat/s-shasto.adb: Likewise.
3231         * libgnat/s-traceb__hpux.adb: Likewise.
3232         * prepcomp.adb: Likewise.
3233         * sem_ch4.adb: Likewise.
3234         * sem_ch6.adb: Likewise.
3235         * sem_dist.adb: Likewise.
3236         * sem_prag.adb: Likewise.
3237         * sem_util.adb: Likewise.
3238         * sinfo.adb: Likewise.
3239         * switch.adb: Likewise.
3241 2018-05-04  John Marino  <gnugcc@marino.st>
3243         PR ada/85635
3244         * link.c (BSD platforms): Add missing backslash.
3246 2018-04-27  Eric Botcazou  <ebotcazou@adacore.com>
3248         PR ada/85540
3249         * init.c (__gnat_handle_vms_condition): Add missing parentheses.
3251 2018-04-25  Eric Botcazou  <ebotcazou@adacore.com>
3253         PR ada/85007
3254         * gnat_ugn.texi: Regenerate.
3256 2018-03-23  Eric Botcazou  <ebotcazou@adacore.com>
3258         PR ada/85007
3259         * gnatlink.adb (Gnatlink): Remove handling of -b switch.
3260         * doc/gnat_ugn/building_executable_programs_with_gnat.rst (gnatlink):
3261         Remove documentation of -b switch.
3263 2018-03-23  Eric Botcazou  <ebotcazou@adacore.com>
3265         PR ada/85036
3266         * gnatlink.adb (Process_Args): Drop existing link switches if multiple
3267         switches are passed for --LINK.
3269 2018-03-12  Eric Botcazou  <ebotcazou@adacore.com>
3271         PR ada/82813
3272         * gcc-interface/misc.c (gnat_post_options): Disable string overflow
3273         warnings.
3275 2018-03-10  Eric Botcazou  <ebotcazou@adacore.com>
3277         * gcc-interface/trans.c (node_has_volatile_full_access) <N_Identifier>:
3278         Consider only entities for objects.
3280 2018-03-07  Sebastian Huber  <sebastian.huber@embedded-brains.de>
3282         * gcc-interface/Makefile.in (OSCONS_CPP): Remove redundant
3283         $(GNATLIBCFLAGS).
3284         (OSCONS_EXTRACT): Add $(GNATLIBCFLAGS_FOR_C).
3286 2018-03-06  Eric Botcazou  <ebotcazou@adacore.com>
3288         * gcc-interface/trans.c (convert_with_check): Fix typo in the condition
3289         guarding the overflow check emitted for the upper bound of a floating-
3290         point conversion.
3292 2018-03-06  Eric Botcazou  <ebotcazou@adacore.com>
3294         * gcc-interface/utils.c (def_builtin_1): Bail out on error_mark_node.
3296 2018-02-28  Eric Botcazou  <ebotcazou@adacore.com>
3298         * libgnat/i-cexten.ads (Float_128): New type.
3300 2018-02-02  Eric Botcazou  <ebotcazou@adacore.com>
3302         * gcc-interface/decl.c (array_type_has_nonaliased_component): Return
3303         false if the component type is a pointer.
3305 2018-01-11  Gary Dismukes  <dismukes@adacore.com>
3307         * exp_ch3.adb (Default_Initialize_Object): Call New_Copy_Tree on the
3308         result of Get_Simple_Init_Value and pass the source location of the
3309         object declaration's object_definition.
3311 2018-01-11  Ed Schonberg  <schonberg@adacore.com>
3313         * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Handle
3314         properly object declarations with initializations that are
3315         build-in-place function calls, when there is an address specification,
3316         either as an aspect specification or an explicit attribute
3317         specification clause, for the initialized object.
3318         * freeze.adb (Check_Address_Clause): Do not remove side-effects from
3319         initial expressions in the case of a build-in-place call.
3321 2018-01-11  Piotr Trojanek  <trojanek@adacore.com>
3323         * sem_eval.adb (Is_Null_Range): Retrieve the full view when called on a
3324         private (sub)type; refactor to avoid early return statement.
3325         (Not_Null_Range): Same as above.
3327 2018-01-11  Hristian Kirtchev  <kirtchev@adacore.com>
3329         * freeze.adb (Freeze_Entity): Ensure that a Ghost type is not
3330         concurrent, nor effectively volatile.
3331         * ghost.adb (Check_Ghost_Type): New routine.
3332         * ghost.ads (Check_Ghost_Type): New routine.
3333         * sem_util.adb (Is_Declaration): Reimplemented. The routine can now
3334         consider specific subsets of declarations.
3335         (Is_Declaration_Other_Than_Renaming): Removed. Its functionality is
3336         replicated by Is_Declaration.
3337         * sem_util.ads (Is_Declaration): New parameter profile. Update the
3338         comment on usage.
3339         (Is_Declaration_Other_Than_Renaming): Removed.
3341 2018-01-11  Hristian Kirtchev  <kirtchev@adacore.com>
3343         * sem_ch5.adb (Analyze_Assignment): Assignments to variables that act
3344         as Part_Of consituents of single protected types are illegal when they
3345         take place inside a protected function.
3346         (Diagnose_Non_Variable_Lhs): Use Within_Function to check for an
3347         enclosing function.
3348         (Is_Protected_Part_Of_Constituent): New routine.
3349         (Within_Function): New routine.
3351 2018-01-11  Arnaud Charlet  <charlet@adacore.com>
3353         Bump copyright notices to 2018.
3355 2018-01-11  Hristian Kirtchev  <kirtchev@adacore.com>
3357         * binde.adb, par-ch6.adb, par-ch9.adb, sem_ch12.adb, sem_ch13.adb:
3358         Minor reformatting.
3360 2018-01-11  Justin Squirek  <squirek@adacore.com>
3362         * par-ch6.adb (Scan_Body_Or_Expression_Function): Add additional check
3363         to make sure a given expression function is properly parenthesized.
3365 2018-01-11  Hristian Kirtchev  <kirtchev@adacore.com>
3367         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Check the
3368         categorization of a subprogram body which does not complete a previous
3369         declaration.
3371 2018-01-11  Hristian Kirtchev  <kirtchev@adacore.com>
3373         * sem_ch10.adb (Check_Private_Child_Unit): Ensure that the enclosing
3374         scope of package Ada is Standard.
3376 2018-01-11  Ed Schonberg  <schonberg@adacore.com>
3378         * sem_ch13.adb (Replace_Type_Ref): Handle properly reference to a
3379         subcomponent of the current entity when building the body for a dynamic
3380         predicate function for a record with composite subcomponents.
3382 2018-01-11  Hristian Kirtchev  <kirtchev@adacore.com>
3384         * exp_aggr.adb (Convert_Aggr_In_Object_Decl): Update the call to
3385         Establish_Transient_Scope.
3386         (Convert_To_Assignments): Update the call to Establish_Transient_Scope.
3387         (Expand_Array_Aggregate): Update the call to Establish_Transient_Scope.
3388         * exp_ch6.adb (Expand_Call_Helper): Update the call to
3389         Establish_Transient_Scope.
3390         (Make_Build_In_Place_Call_In_Object_Declaration): Update the call to
3391         Establish_Transient_Scope.
3392         * exp_ch7.adb (Establish_Transient_Scope): Restructured. Delegate the
3393         management of the secondary stack to an enclosing scope if there is no
3394         suitable construct to wrap, and the transient scope was intended to
3395         manage the secondary stack.
3396         (Find_Node_To_Be_Wrapped): Restructured. A case_statement_alternative
3397         is a valid boundary for a transient expression which comes from the
3398         statements of the alternative, otherwise alternatives cannot be
3399         wrapped. Assignments of controlled objects which have controlled
3400         actions suppressed now stop the traversal as there is no point in
3401         looking for an enclosing construct. Add several N_xxx_Body choices to
3402         the termination conditions for completeness.
3403         * exp_ch7.ads (Establish_Transient_Scope): Update the parameter profile
3404         and the associated comment on usage.
3405         * exp_smem.adb (Add_Shared_Var_Lock_Procs): Update the call to
3406         Establish_Transient_Scope.
3407         (Add_Write_After): Update the call to Establish_Transient_Scope.
3408         * sem_res.adb (Check_Initialization_Call): Removed.
3409         (Resolve_Actuals): Account for additional cases where finalization
3410         actions are required by utilizing predicate Needs_Finalization rather
3411         than Is_Controlled.
3412         (Resolve_Call): Type initialization procedures can now utilize
3413         transient scopes to manage the secondary stack, thus preventing leaks
3414         during initialization.  Remove the previous kludgy algorithm which
3415         attempts to manage the secondary stack at the object creation site.
3417 2018-01-11  Jerome Lambourg  <lambourg@adacore.com>
3419         * libgnat/g-soliop__qnx.ads: New.
3420         * adaint.c, adaint.h, cstreams.c, s-oscons-tmplt.c, sysdep.c: Update
3421         for QNX.
3423 2018-01-11  Bob Duff  <duff@adacore.com>
3425         * par-ch9.adb (P_Protected_Operation_Declaration_Opt): Give an error if
3426         a null procedure occurs in a protected definition.
3428 2018-01-11  Bob Duff  <duff@adacore.com>
3430         * binderr.ads, namet.ads: Minor reformatting.
3432 2018-01-11  Bob Duff  <duff@adacore.com>
3434         * doc/gnat_ugn/gnat_utility_programs.rst: Improve documentation of
3435         xml2gnat.
3437 2018-01-11  Bob Duff  <duff@adacore.com>
3439         * binde.adb (Force_Elab_Order): Give an error if there are duplicate
3440         unit names.
3442 2018-01-11  Ed Schonberg  <schonberg@adacore.com>
3444         * sem_ch6.adb (Freeze_Expr_Types): If an access value is the
3445         controlling argument of a dispatching call. freeze the corresponding
3446         designated type.
3448 2018-01-11  Ben Brosgol  <brosgol@adacore.com>
3450         * doc/Makefile: Add Sphinx option -W to treat warnings as errors.
3452 2018-01-11  Ben Brosgol  <brosgol@adacore.com>
3454         * doc/gnat_rm/implementation_defined_aspects.rst: Minor type/wording
3455         corrections.
3456         * gnat_rm.texi: Regenerate.
3458 2018-01-11  Ed Schonberg  <schonberg@adacore.com>
3460         * sem_ch12.adb (Check_Fixed_Point_Type): Do not apply check if the
3461         formsl type corresponding to the actual fixed point type is private,
3462         because in this case there can be no suspicious arithmetic operations
3463         in the generic unless they reference a formal subprogram.  Clarify
3464         warning.
3466 2018-01-11  Javier Miranda  <miranda@adacore.com>
3468         * exp_util.adb (Remove_Side_Effects): No action done for functions
3469         returning class-wide types since it requires generating code using
3470         'reference and the CCG target has no secondary stack.
3471         * gnat1drv.adb: Disable building static dispatch tables when generating
3472         C code.
3474 2018-01-11  Piotr Trojanek  <trojanek@adacore.com>
3476         * libgnat/a-direio.ads, libgnat/a-sequio.ads, libgnat/a-ststio.ads,
3477         libgnat/a-textio.ads, libgnat/a-witeio.ads, libgnat/a-ztexio.ads
3478         (File_Type): Add Default_Initial_Condition aspect.
3480 2018-01-11  Pascal Obry  <obry@adacore.com>
3482         * libgnat/s-os_lib.adb (Normalize_Pathname): New implementation.
3484 2018-01-11  Bob Duff  <duff@adacore.com>
3486         * doc/gnat_ugn/gnat_utility_programs.rst: Rewrite gnatpp documentation
3487         to match what the Libadalang-based version does.
3488         * doc/gnat_ugn/about_this_guide.rst: Update reference.
3490 2018-01-11  Hristian Kirtchev  <kirtchev@adacore.com>
3492         * sem_res.adb (Uses_SS): A controlled type requires the secondary stack
3493         if it contains at least one component declaration employing a function
3494         call returning on the secondary stack.
3496 2018-01-11  Yannick Moy  <moy@adacore.com>
3498         * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
3499         Update description of restriction SPARK_05 with SPARK 2014.
3500         * gnat_rm.texi: Regenerate.
3502 2018-01-11  Vasiliy Fofanov  <fofanov@adacore.com>
3504         * doc/gnat_ugn/gnat_utility_programs.rst: Fix layout.
3506 2018-01-11  Hristian Kirtchev  <kirtchev@adacore.com>
3508         * exp_aggr.adb, exp_ch9.adb, exp_util.adb, sem_aggr.adb, sem_ch3.adb,
3509         sem_res.adb, sem_util.adb: Minor reformatting.
3511 2018-01-11  Ed Schonberg  <schonberg@adacore.com>
3513         * sem_prag.adb (Analyze_Pragma, case Predicate): Indicate that the type
3514         has a delayed aspect which must be processed at the point the type is
3515         frozen. This mimics what is done when the predicate is provided by a
3516         source aspect.
3518 2018-01-11  Doug Rupp  <rupp@adacore.com>
3520         * init.c (vxworks): Add macro checks for __aarch64__.
3522 2018-01-11  Hristian Kirtchev  <kirtchev@adacore.com>
3524         * exp_util.adb (Add_Failure_Expression): New routine.
3525         (Make_Predicate_Check): Reimplement the handling of Predicate_Failure.
3526         * sem_util.adb (Is_Current_Instance): Code cleanup.
3528 2018-01-11  Patrick Bernardi  <bernardi@adacore.com>
3530         * libgnat/s-parame*.adb, libgnat/s-parame*.ads: Remove unneeded
3531         Default_Sec_Stack_Size.
3532         * libgnat/s-secsta.adb (SS_Allocate): Handle the fixed secondary stack
3533         limit check so that the integer index does not overflow. Check the
3534         dynamic stack allocation does not cause the secondary stack pointer to
3535         overflow.
3536         (SS_Info): Align colons.
3537         (SS_Init): Cover the case when bootstraping with an old compiler that
3538         does not set Default_SS_Size.
3540 2018-01-11  Ed Schonberg  <schonberg@adacore.com>
3542         * sem_ch3.adb (Add_Internal_Interface_Entities): When checking the
3543         legality of an inherited operation that may require overriding, ignore
3544         primitive_wrappers that correspond to explicit operations that override
3545         an interface primitive.
3546         * exp_util.adb (Build_Class_Wide_Expression, Replace_Entity): If the
3547         operation to which the class-wide expression applies is a protected op.
3548         with a primitive_wrapper, verify that the updated inherited expression
3549         does not contain an internal call to a protected function.  This
3550         completes the implementation of AI12-0166.
3552 2018-01-11  Hristian Kirtchev  <kirtchev@adacore.com>
3554         * ali.adb: Document the remaining letters available for ALI lines.
3555         (Scan_ALI): A with clause is internal when it is encoded on a 'Z' line.
3556         * ali.ads: Update type With_Record. Field
3557         Implicit_With_From_Instantiation is no longer in use. Add field
3558         Implicit_With.
3559         * csinfo.adb (CSinfo): Remove the setup for attribute
3560         Implicit_With_From_Instantiation.
3561         * lib-writ.adb (Collect_Withs): Correct the logic which marks a unit as
3562         either implicitly or explicitly withed.
3563         (Is_Implicit_With_Clause): New routine.
3564         (Write_ALI): Rename array Implicit_With to Has_Implicit_With to avoid
3565         confusion with the with clause attribute by the same name.
3566         (Write_With_Lines): Update the emission of 'W', 'Y', and 'Z' headers.
3567         * rtsfind.adb (Maybe_Add_With): Code cleanup.
3568         * sem_ch8.adb (Present_System_Aux): Code cleanup.
3569         * sem_ch10.adb (Expand_With_Clause): Mark the with clause as generated
3570         for a parent unit.
3571         (Implicit_With_On_Parent): Mark the with clause as generated for a
3572         parent unit.
3573         * sem_ch12.adb (Inherit_Context): With clauses inherited by an
3574         instantiation are no longer marked as Implicit_With_From_Instantiation
3575         because they are already marked as implicit.
3576         * sem_elab.adb (Ensure_Prior_Elaboration_Static): Remove the kludge
3577         which marks implicit with clauses as related to an instantiation.
3578         * sinfo.adb (Implicit_With_From_Instantiation): Removed.
3579         (Parent_With): New routine.
3580         (Set_Implicit_With_From_Instantiation): Removed.
3581         (Set_Parent_With): New routine.
3582         * sinfo.ads: Update the documentation of attribute Implicit_With.
3583         Remove attribute Implicit_With_From_Instantiation along with
3584         occurrences in nodes.  Add attribute Parent_With along with occurrences
3585         in nodes.
3586         (Implicit_With_From_Instantiation): Removed along with pragma Inline.
3587         (Parent_With): New routine along with pragma Inline.
3588         (Set_Implicit_With_From_Instantiation): Removed along with pragma Inline.
3589         (Set_Parent_With): New routine along with pragma Inline.
3591 2018-01-11  Hristian Kirtchev  <kirtchev@adacore.com>
3593         * sem_util.adb (Find_Enclosing_Scope): Return the unique defining
3594         entity when the enclosing construct is a body.
3596 2018-01-11  Patrick Bernardi  <bernardi@adacore.com>
3598         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Simplified
3599         Secondary_Stack_Size handling as a pragma is now generated for the
3600         corresponding aspect instead of an attribute.  Pragma expression is
3601         relocated instead of evaluated. Discriminant of the corresponding
3602         record type is referenced rather than the type discriminant.
3603         (Create_Secondary_Stack_For_Task, Make_Task_Create_Call): Update
3604         Secondary_Stack_Size rep item checks to only look for the pragma rep.
3605         * sem_ch13.adb (Analyze_One_Aspect): Transform
3606         Aspect_Secondary_Stack_Size into a pragma instead of an attribute
3607         because the attribute does not have visibility on a task type's
3608         discriminants when the type's definition is expanded.
3609         (Analyze_Attribute_Definition_Clause): Remove handling of
3610         Attribute_Secondary_Stack_Size.
3611         * snames.adb-tmpl, snames.ads-tmpl: Remove
3612         Attribute_Secondary_Stack_Size, no longer used.
3614 2018-01-11  Justin Squirek  <squirek@adacore.com>
3616         * sem_ch8.adb: Minor comment fix.
3618 2018-01-11  Hristian Kirtchev  <kirtchev@adacore.com>
3620         * exp_ch4.adb (Process_Action): Do not abandon the inspection of an
3621         individual action because the action may denote a complex expression,
3622         such as a case statement, which in turn may contain additional
3623         transient objects.
3625 2018-01-11  Ed Schonberg  <schonberg@adacore.com>
3627         * sem_aggr.adb (Resolve_Iterated_Component_Association): Perform
3628         analysis on a copy of the expression with a copy of the index variable,
3629         because full expansion will rewrite construct into a loop with the
3630         original loop variable.
3631         * exp_aggr.adb (Gen_Assign): Defer analysis and resolution if the
3632         expression is an iterated component association. Full analysis takes
3633         place when construct is rewritten as a loop.
3634         (In_Place_Assign_OK, Safe_Component): An iterated_component_association
3635         is not safe for in-place assignment.
3636         * sem_util.adb (Remove_Entity): Handle properly the case of an isolated
3637         entity with no homonym and no other entity in the scope.
3639 2018-01-11  Justin Squirek  <squirek@adacore.com>
3641         * sem_prag.adb (Analyze_Pragma:Pragma_Loop_Variant): Modify error
3642         message to be printed on the pragma argument identifier.
3644 2018-01-11  Hristian Kirtchev  <kirtchev@adacore.com>
3646         * exp_util.adb (Build_Invariant_Procedure_Declaration): Set the last
3647         entity of the generated invariant procedure in order to construct a
3648         proper entity chain.
3650 2018-01-11  Piotr Trojanek  <trojanek@adacore.com>
3652         * sem_ch13.adb (Build_Predicate_Functions): Fix minor issues in
3653         comment.
3655 2018-01-11  Arnaud Charlet  <charlet@adacore.com>
3657         * einfo.ads, einfo.adb (Activation_Record_Component,
3658         Set_Activation_Record_Component, Set_Is_Uplevel_Referenced_Entity):
3659         Allow E_Discriminant.
3661 2018-01-10  Eric Botcazou  <ebotcazou@adacore.com>
3663         * gcc-interface/decl.c (gnat_to_gnu_component_type): Apply the check
3664         for atomic access once the component size is taken into account and
3665         also do it if the component type is Atomic or Volatile_Full_Access.
3667 2018-01-04  Eric Botcazou  <ebotcazou@adacore.com>
3669         * gnatvsn.ads: Bump copyright year.
3671 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
3672             Alan Hayward  <alan.hayward@arm.com>
3673             David Sherwood  <david.sherwood@arm.com>
3675         * gcc-interface/misc.c (enumerate_modes): Treat GET_MODE_BITSIZE
3676         as polynomial.
3678 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
3679             Alan Hayward  <alan.hayward@arm.com>
3680             David Sherwood  <david.sherwood@arm.com>
3682         * gcc-interface/misc.c (enumerate_modes): Treat GET_MODE_PRECISION
3683         as polynomial.
3685 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
3686             Alan Hayward  <alan.hayward@arm.com>
3687             David Sherwood  <david.sherwood@arm.com>
3689         * gcc-interface/utils.c (gnat_types_compatible_p): Handle
3690         polynomial TYPE_VECTOR_SUBPARTS.
3692 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
3693             Alan Hayward  <alan.hayward@arm.com>
3694             David Sherwood  <david.sherwood@arm.com>
3696         * gcc-interface/misc.c (enumerate_modes): Handle polynomial
3697         GET_MODE_NUNITS.
3699 2018-01-03  Jakub Jelinek  <jakub@redhat.com>
3701         Update copyright years.
3703         * gnat_ugn.texi: Bump @copying's copyright year.
3704         * gnat_rm.texi: Likewise.
3706 Copyright (C) 2018 Free Software Foundation, Inc.
3708 Copying and distribution of this file, with or without modification,
3709 are permitted in any medium without royalty provided the copyright
3710 notice and this notice are preserved.