GCC v8.2
[gcc.git] / gcc / ada / ChangeLog-2017
1 2017-12-21  Eric Botcazou  <ebotcazou@adacore.com>
2
3         PR ada/83535
4         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Always take
5         into account the Esize if it is known.
6
7 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
8             Alan Hayward  <alan.hayward@arm.com>
9             David Sherwood  <david.sherwood@arm.com>
10
11         * gcc-interface/trans.c (Attribute_to_gnu): Track polynomial
12         offsets and sizes.
13         * gcc-interface/utils2.c (build_unary_op): Likewise.
14
15 2017-12-20  Eric Botcazou  <ebotcazou@adacore.com>
16
17         * gcc-interface/trans.c (Loop_Statement_to_gnu): Use IN_RANGE macro.
18         * gcc-interface/misc.c (gnat_get_array_descr_info): Likewise.
19         (default_pass_by_ref): Likewise.
20         * gcc-interface/decl.c (gnat_to_gnu_entity): Likewise.
21
22 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
23
24         * gcc-interface/trans.c (Loop_Statement_to_gnu): Replace Yoda
25         conditions with typical order conditions.
26         * gcc-interface/misc.c (gnat_get_array_descr_info): Likewise.
27         (default_pass_by_ref): Likewise.
28         * gcc-interface/decl.c (gnat_to_gnu_entity): Likewise.
29         * adaint.c (__gnat_tmp_name): Likewise.
30
31 2017-12-19  Arnaud Charlet  <charlet@adacore.com>
32
33         PR ada/66205
34         * bindgen.adb (Gen_AdaFinal): Revert previous change.
35
36 2017-12-15  Jakub Jelinek  <jakub@redhat.com>
37
38         * gcc-interface/utils.c (gnat_internal_attribute_table): Swap
39         affects_type_identity and handler fields, adjust comments.
40
41 2017-12-15  Eric Botcazou  <ebotcazou@adacore.com>
42
43         * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Use Component_Size of
44         the innermost array instead of Esize of its component type to exclude
45         inappropriate array types, including packed array types.
46
47 2017-12-15  Hristian Kirtchev  <kirtchev@adacore.com>
48
49         * sem_prag.adb (Analyze_Input_Item): Allow concurrent types to appear
50         within the input list of Initializes. Remove the uses of Input_OK.
51
52 2017-12-15  Ed Schonberg  <schonberg@adacore.com>
53
54         * exp_ch4.adb (Expand_N_In): Do not replace a membership test on a
55         scalar type with a validity test when the membership appears in a
56         predicate expression, to prevent a spurious error when predicate is
57         specified static.
58         * sem_ch13.adb (Build_Predicate_Functions): Add warning if a static
59         predicate, after constant-folding, reduces to True and is this
60         redundant.
61         * par-ch4.adb: Typo fixes and minor reformattings.
62
63 2017-12-15  Hristian Kirtchev  <kirtchev@adacore.com>
64
65         * sem_elab.adb (Ensure_Prior_Elaboration_Static): Mark the generated
66         with clause as being implicit for an instantiation in order to
67         circumvent an issue with 'W' and 'Z' line encodings in ALI files.
68
69 2017-12-15  Ed Schonberg  <schonberg@adacore.com>
70
71         * sem_util.adb (Is_Potentially_Unevaluated): Detect further cases of
72         misuse of 'Old that appear within an expression that is potentially
73         unevaluated, when the prefix of the attribute does not statically
74         designate an object (e.g. a function call).
75
76 2017-12-15  Ed Schonberg  <schonberg@adacore.com>
77
78         * sem_ch6.adb (Conformking_Types): Two incomplete types are conforming
79         when one of them is used as a generic actual, but only within an
80         instantiation.
81         * einfo.ads: Clarify use of flag Used_As_Generic_Actual.
82
83 2017-12-15  Justin Squirek  <squirek@adacore.com>
84
85         * sem_attr.adb (Resolve_Attribute): Modify check for aliased view on
86         prefix to use the prefix's original node to avoid looking at expanded
87         conversions for certain array types.
88
89 2017-12-15  Ed Schonberg  <schonberg@adacore.com>
90
91         * sem_res.adb (Resolve_Membership_Op): Add warning on a membership
92         operation on a scalar type for which there is a user-defined equality
93         operator.
94
95 2017-12-15  Yannick Moy  <moy@adacore.com>
96
97         * doc/gnat_rm/implementation_defined_pragmas.rst: Add Ghost assertion
98         policy.
99
100 2017-12-15  Hristian Kirtchev  <kirtchev@adacore.com>
101
102         * sem_prag.adb (Analyze_Initialization_Item): Remove the specialized
103         processing for a null initialization item. Such an item is always
104         illegal.
105
106 2017-12-15  Bob Duff  <duff@adacore.com>
107
108         * types.ads, types.h, libgnat/a-except.adb, exp_ch11.adb
109         (PE_Build_In_Place_Mismatch): New reason code for raising when the
110         BIPalloc formal parameter is incorrect. This can happen if a compiler
111         bug causes a mismatch of build-in-place between caller and callee.
112         * exp_ch6.adb (Expand_N_Extended_Return_Statement): Use
113         PE_Build_In_Place_Mismatch.
114
115 2017-12-15  Ed Schonberg  <schonberg@adacore.com>
116
117         * exp_ch4.ads, exp_ch4.adb (Expand_N_Reduction_Expression): New
118         procedure.
119         * exp_util.adb (Insert_Actions): Handle N_Reduction_Expression.
120         * expander.adb (Expand): Call Expand_N_Reduction_Expression
121         * par-ch4.adb (P_Reduction_Expression): New procedure.
122         (P_Iterated_Component_Assoc_Or_Reduction): New precedure, extension of
123         P_Iterated_Component_Association.
124         (OK_Reduction_Expression_Parameter): New procedure.
125         (P_Aggregate_Or_Paren_Expr): Improve error message for malformed delta
126         aggregate.
127         * sem.adb (Analyze): Call Analyze_Reduction_Expression and
128         Analyze_Reduction_Expression_Parameter
129         * sinfo.ads, sinfo.adb: New node kinds N_Reduction_Expression and
130         N_Reduction_Expression_Parameter.
131         * sem_ch4.ads, sem_ch4.adb (Analyze_Reduction_Expression,
132         Analyze_Reduction_Expression_Parameter): New procedures.
133         * sem_res.adb (Resolve): Handle Reduction_Expression and
134         Reduction_Expression_Parameter
135         * sem_spark.adb: Dummy entries for Reduction_Expression and
136         Reduction_Expression_Parameter
137         * sprint.adb (Sprint_Node_Actual): Print Reduction_Expression,
138         Reduction_Expression_Parameter
139
140 2017-12-15  Bob Duff  <duff@adacore.com>
141
142         * einfo.ads: Comment fix.
143
144 2017-12-15  Piotr Trojanek  <trojanek@adacore.com>
145
146         * s-vercon.adb: Minor style fixes.
147
148 2017-12-15  Ed Schonberg  <schonberg@adacore.com>
149
150         * sem_ch6.adb (Freeze_Expr_Types): Do not emit a freeze node for an
151         itype that is the type of a discriminant-dependent component.
152
153 2017-12-15  Hristian Kirtchev  <kirtchev@adacore.com>
154
155         * sem_prag.adb (Analyze_Part_Of): The context-specific portion of the
156         analysis is now directed to several specialized routines.
157         (Check_Part_Of_Abstract_State): New routine.
158         (Check_Part_Of_Concurrent_Type): New routine. Reimplement the checks
159         involving the item, the single concurrent type, and their respective
160         contexts.
161         * sem_res.adb (Resolve_Entity_Name): Potential constituents of a single
162         concurrent type are now recorded regardless of the SPARK mode.
163         * sem_util.adb (Check_Part_Of_Reference): Split some of the tests in
164         individual predicates.  A Part_Of reference is legal when it appears
165         within the statement list of the object's immediately enclosing
166         package.
167         (Is_Enclosing_Package_Body): New routine.
168         (Is_Internal_Declaration_Or_Body): New routine.
169         (Is_Single_Declaration_Or_Body): New routine.
170         (Is_Single_Task_Pragma): New routine.
171
172 2017-12-15  Patrick Bernardi  <bernardi@adacore.com>
173
174         * gnat_ugn.texi: Regenerate.
175
176 2017-12-15  Bob Duff  <duff@adacore.com>
177
178         * gnatvsn.ads: Minor comment fixes.
179
180 2017-12-15  Patrick Bernardi  <bernardi@adacore.com>
181
182         * doc/gnat_ugn/gnat_and_program_execution.rst: Update section "Dynamic
183         Stack Usage Analysis" to include more details about GNAT_STACK_LIMIT.
184
185 2017-12-15  Hristian Kirtchev  <kirtchev@adacore.com>
186
187         * exp_util.adb (Add_Own_DIC): Ensure that the expression of the pragma
188         is available (Is_Verifiable_DIC_Pragma): Moved from Sem_Util.
189         * sem_util.adb (Has_Full_Default_Initialization):
190         Has_Fully_Default_Initializing_DIC_Pragma is now used to determine
191         whether a type has full default initialization due to pragma
192         Default_Initial_Condition.
193         (Has_Fully_Default_Initializing_DIC_Pragma): New routine.
194         (Is_Verifiable_DIC_Pragma): Moved to Exp_Util.
195         * sem_util.ads (Has_Fully_Default_Initializing_DIC_Pragma): New
196         routine.
197         (Is_Verifiable_DIC_Pragma): Moved to Exp_Util.
198         * sem_warn.adb (Is_OK_Fully_Initialized):
199         Has_Fully_Default_Initializing_DIC_Pragma is now used to determine
200         whether a type has full default initialization due to pragma
201         Default_Initial_Condition.
202
203 2017-12-15  Hristian Kirtchev  <kirtchev@adacore.com>
204
205         * sem_prag.adb (Match_Constituent): Do not quietly accept constants as
206         suitable constituents.
207         * exp_util.adb: Minor reformatting.
208
209 2017-12-15  Ed Schonberg  <schonberg@adacore.com>
210
211         * exp_aggr.adb (In_Place_Assign_OK): Extend the predicate to recognize
212         an array aggregate in an allocator, when the designated type is
213         unconstrained and the upper bound of the aggregate belongs to the base
214         type of the index.
215
216 2017-12-15  Bob Duff  <duff@adacore.com>
217
218         * exp_ch6.adb (Expand_N_Extended_Return_Statement,
219         Expand_Simple_Function_Return): Assert that the b-i-p-ness of the
220         caller and callee match.  Otherwise, we would need some substantial
221         changes to allow b-i-p calls non-b-i-p, and vice versa.
222
223 2017-12-15  Ed Schonberg  <schonberg@adacore.com>
224
225         * exp_unst.adb (Unnest_Subprograms): Nothing to do if the main unit is
226         a generic package body. Unnesting is only an issue when generating
227         code, and if the main unit is generic then nested instance bodies have
228         not been created and analyzed, and unnesting will crash in the absence
229         of those bodies,
230
231 2017-12-15  Hristian Kirtchev  <kirtchev@adacore.com>
232
233         * inline.adb (Add_Inlined_Body): Do not add a function which is
234         completed by an expression function defined in the same context as the
235         initial declaration because the completing body is not in a package
236         body.
237         (Is_Non_Loading_Expression_Function): New routine.
238
239 2017-12-15  Hristian Kirtchev  <kirtchev@adacore.com>
240
241         * debug.adb: Move the functionality of -gnatdL to -gnatd_i. Restore
242         the behavior of -gnatdL from before revision 255412.
243         * sem_elab.adb: Update the section of compiler switches.
244         (Build_Call_Marker): Do not create a marker for a call which originates
245         from an expanded spec or body of an instantiated gener, does not invoke
246         a generic formal subprogram, the target is external to the instance,
247         and -gnatdL is in effect.
248         (In_External_Context): New routine.
249         (Process_Conditional_ABE_Activation_Impl): Update the uses of -gnatdL
250         and associated flag.
251         (Process_Conditional_ABE_Call): Update the uses of -gnatdL and
252         associated flag.
253         * switch-c.adb (Scan_Front_End_Switches): Switch -gnatJ now sets switch
254         -gnatd_i.
255         * exp_unst.adb: Minor typo fixes and edits.
256
257 2017-12-15  Ed Schonberg  <schonberg@adacore.com>
258
259         * sem_ch6.adb (Possible_Freeze): Do not set Delayed_Freeze on an
260         subprogram instantiation, now that the enclosing wrapper package
261         carries an explicit freeze node. THis prevents freeze nodes for the
262         subprogram for appearing in the wrong scope. This is relevant when the
263         generic subprogram has a private or incomplete formal type and the
264         instance appears within a package that declares the actual type for the
265         instantiation, and that type has itself a delayed freeze.
266
267 2017-12-15  Patrick Bernardi  <bernardi@adacore.com>
268
269         * doc/gnat_ugn/gnat_and_program_execution.rst: Removed references to
270         the environment variable GNAT_STACK_LIMIT from the Stack Overflow
271         Checking section as it is no longer used by any of our supported
272         targets.
273
274 2017-12-15  Bob Duff  <duff@adacore.com>
275
276         * exp_ch6.adb (Expand_N_Extended_Return_Statement): If the
277         Init_Assignment is rewritten, we need to set Assignment_OK on the new
278         node.  Otherwise, we will get spurious errors when initializing via
279         assignment statement.
280
281 2017-12-15  Arnaud Charlet  <charlet@adacore.com>
282
283         * exp_unst.adb (Visit_Node): Refine handling of 'Access to ignore non
284         relevant nodes.
285         (Has_Non_Null_Statements): Moved to sem_util for later reuse.
286
287 2017-12-15  Eric Botcazou  <ebotcazou@adacore.com>
288
289         * exp_attr.adb (Is_Inline_Floating_Point_Attribute): Fix comment.
290         * libgnat/s-fatgen.adb (Model): Use Machine attribute.
291         (Truncation): Likewise.
292
293 2017-12-15  Bob Duff  <duff@adacore.com>
294
295         * exp_ch7.adb (Expand_Cleanup_Actions): Make sure the block and handled
296         statement sequence generated for certain extended return statements
297         have a Sloc that is not No_Location. Otherwise, the back end doesn't
298         set any location and ends up reading uninitialized variables.
299
300 2017-12-15  Bob Duff  <duff@adacore.com>
301
302         * types.ads, exp_ch6.adb, libgnat/s-regexp.ads, opt.ads: Partly revert
303         r255414, committed by mistake.
304
305 2017-12-14  Eric Botcazou  <ebotcazou@adacore.com>
306
307         * gcc-interface/Makefile.in: Generalize support for symbolic traces.
308
309 2017-12-14  Eric Botcazou  <ebotcazou@adacore.com>
310
311         * gcc-interface/misc.c (default_pass_by_ref): Minor tweak.
312
313 2017-12-14  Eric Botcazou  <ebotcazou@adacore.com>
314
315         * gcc-interface/trans.c (Call_to_gnu): Set DECL_DISREGARD_INLINE_LIMITS
316         to 0 on the callee if the call is recursive.
317
318 2017-12-14  Eric Botcazou  <ebotcazou@adacore.com>
319
320         * gcc-interface/decl.c (gnat_to_gnu_field): Do not set the alignment
321         of the enclosing record type if it is not already set.
322
323 2017-12-14  Eric Botcazou  <ebotcazou@adacore.com>
324
325         * gcc-interface/gigi.h (pad_type_has_rm_size): Declare.
326         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Do not build
327         a padding type for the alignment before validating the size.
328         Flip conditional construct and add a comment.
329         * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Size>: Make sure to
330         apply the exception for padded objects to the type of the object.
331         * gcc-interface/utils.c (hash_pad_type): New static function.
332         (lookup_and_insert_pad_type): Rename into...
333         (canonicalize_pad_type): ...this.  Call hash_pad_type, do only one
334         lookup with insertion and always return the canonical type.
335         (maybe_pad_type): Adjust to above changes.  Set debug type later.
336         (pad_type_has_rm_size): New predicate.
337         (set_reverse_storage_order_on_pad_type): Adjust to above changes.
338
339 2017-12-13  Eric Botcazou  <ebotcazou@adacore.com>
340
341         * gcc-interface/trans.c (Subprogram_Body_to_gnu): Initialize locus.
342
343 2017-12-13  Eric Botcazou  <ebotcazou@adacore.com>
344
345         * gcc-interface/trans.c (process_freeze_entity): Be prepared for a
346         package without body.
347
348 2017-12-13  Eric Botcazou  <ebotcazou@adacore.com>
349
350         * gcc-interface/decl.c (gnat_to_gnu_entity): Robustify test for types
351         descendant of System.Address.
352         (gnat_to_gnu_subprog_type): Likewise.
353
354 2017-12-08  Jakub Jelinek  <jakub@redhat.com>
355
356         * gcc-interface/utils.c (gnat_internal_attribute_table): Add
357         exclusions to the comment.
358
359 2017-12-07  Martin Sebor  <msebor@redhat.com>
360
361         PR c/81544
362         * gcc-interface/utils.c (gnat_internal_attribute_table): Initialize
363         new member of struct attribute_spec.
364
365 2017-12-06  Simon Wright  <simon@pushface.org>
366
367         PR ada/66205
368         * bindgen.adb (Gen_AdaFinal): If the restriction No_Task_Termination is
369         set, generate a null body.
370
371 2017-12-05  Piotr Trojanek  <trojanek@adacore.com>
372
373         * sem_util.adb (Contains_Refined_State): Remove.
374
375 2017-12-05  Ed Schonberg  <schonberg@adacore.com>
376
377         * sem_ch13.adb (Analyze_Aspect_Specifications, case Predicate): A
378         predicate cannot apply to a formal type.
379
380 2017-12-05  Arnaud Charlet  <charlet@adacore.com>
381
382         * exp_unst.ads: Fix typos.
383
384 2017-12-05  Jerome Lambourg  <lambourg@adacore.com>
385
386         * libgnarl/s-taprop__qnx.adb: Better detect priority ceiling bug in
387         QNX.  At startup, the first mutex created has a non-zero ceiling
388         priority whatever its actual policy. This makes some tests fail
389         (c940013 for example).
390
391 2017-12-05  Bob Duff  <duff@adacore.com>
392
393         * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Call
394         Expand_Cleanup_Actions for N_Extended_Return_Statement.
395         * exp_ch7.adb (Expand_Cleanup_Actions): Handle
396         N_Extended_Return_Statement by transforming the statements into a
397         block, and (indirectly) calling Expand_Cleanup_Actions on the block.
398         It's too hard for Expand_Cleanup_Actions to operate directly on the
399         N_Extended_Return_Statement, because it has a different structure than
400         the other node kinds that Expand_Cleanup_Actions.
401         * exp_util.adb (Requires_Cleanup_Actions): Add support for
402         N_Extended_Return_Statement.  Change "when others => return False;" to
403         "when others => raise ...;" so it's clear what nodes this function
404         handles.  Use named notation where appropriate.
405         * exp_util.ads: Mark incorrect comment with ???.
406
407 2017-12-05  Javier Miranda  <miranda@adacore.com>
408
409         * exp_ch9.adb (Install_Private_Data_Declarations): Add missing
410         Debug_Info_Needed decoration of internally generated discriminal
411         renaming declaration.
412
413 2017-12-05  Arnaud Charlet  <charlet@adacore.com>
414
415         * exp_unst.adb (Unnest_Subprogram): Add handling of 'Access on
416         nested subprograms.
417
418 2017-12-05  Sergey Rybin  <rybin@adacore.com>
419
420         * doc/gnat_ugn/gnat_utility_programs.rst: Add description of '--ignore'
421         option for gnatmetric, gnatpp, gnat2xml, and gnattest.
422
423 2017-12-05  Piotr Trojanek  <trojanek@adacore.com>
424
425         * sem_util.adb (Contains_Refined_State): Remove.
426
427 2017-12-05  Piotr Trojanek  <trojanek@adacore.com>
428
429         * rtsfind.ads: Add new enumeration literals: RE_Clock_Time (for
430         Ada.Real_Time.Clock_Time) and RO_CA_Clock_Time (for
431         Ada.Calendar.Clock_Time).
432
433 2017-12-05  Ed Schonberg  <schonberg@adacore.com>
434
435         * sem_ch4.adb (Is_Private_Overriding): If the candidate private
436         subprogram is overloaded, scan the list of homonyms in the same
437         scope, to find the inherited operation that may be overridden
438         by the candidate.
439         * exp_ch11.adb, exp_ch7.adb: Minor reformatting.
440
441 2017-12-05  Bob Duff  <duff@adacore.com>
442
443         * exp_ch6.adb (Expand_N_Extended_Return_Statement): If the
444         Init_Assignment is rewritten, we need to set Assignment_OK on the new
445         node.  Otherwise, we will get spurious errors when initializing via
446         assignment statement.
447
448 2017-12-05  Hristian Kirtchev  <kirtchev@adacore.com>
449
450         * sem_elab.adb: Update the terminology and switch sections.
451         (Check_SPARK_Model_In_Effect): New routine.
452         (Check_SPARK_Scenario): Verify the model in effect for SPARK.
453         (Process_Conditional_ABE_Call_SPARK): Verify the model in effect for
454         SPARK.
455         (Process_Conditional_ABE_Instantiation_SPARK): Verify the model in
456         effect for SPARK.
457         (Process_Conditional_ABE_Variable_Assignment_SPARK): Verify the model
458         in effect for SPARK.
459
460 2017-12-05  Nicolas Setton  <setton@adacore.com>
461
462         * terminals.c (__gnat_setup_child_communication): As documented,
463         __gnat_setup_child_communication should not terminate - it is intended
464         to be used as the child process of a call to fork().  However, execvp
465         might actually return in some cases, for instance when attempting to
466         run a 32-bit binary on a 64-bit Linux distribution when the
467         compatibility packages are not installed. In these cases, exit the
468         program to conform to the documentation.
469
470 2017-12-05  Olivier Hainque  <hainque@adacore.com>
471
472         * libgnat/s-tsmona.adb: Fix for oversight in the tsmona interface
473         update.
474
475 2017-12-05  Gary Dismukes  <dismukes@adacore.com>
476
477         * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Minor typo fix
478         and reformatting.
479         * gnat_ugn.texi: Regenerate.
480
481 2017-12-05  Olivier Hainque  <hainque@adacore.com>
482
483         * sem_util.adb (Set_Convention): Always clear Can_Use_Internal_Rep
484         on access to subprogram types with foreign convention.
485
486 2017-12-05  Yannick Moy  <moy@adacore.com>
487
488         * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix User's
489         Guide description of default settings of warnings.
490
491 2017-12-05  Olivier Hainque  <hainque@adacore.com>
492
493         * s-dwalin.adb (Read_And_Execute_Isn): Adjust test checking for the end
494         of section. Add comments explaining the rationale of the computation.
495
496 2017-12-05  Bob Duff  <duff@adacore.com>
497
498         * exp_ch11.adb: Minor refactoring.
499
500 2017-12-05  Hristian Kirtchev  <kirtchev@adacore.com>
501
502         * debug.adb: Add debug switches d_a, d_e, and d_p, along with
503         documentation.
504         (Set_Underscored_Debug_Flag): New routine.
505         * debug.ads: Add the flags for all underscore switches.
506         (Set_Underscored_Debug_Flag): New routine.
507         * einfo.adb: Flag303 is now Suppress_Elaboration_Warnings.
508         (Suppress_Elaboration_Warnings): New routine.
509         (Set_Suppress_Elaboration_Warnings): New routine.
510         (Write_Entity_Flags): Add output for Suppress_Elaboration_Warnings.
511         * einfo.ads: Add new flag Suppress_Elaboration_Warnings.
512         (Suppress_Elaboration_Warnings): New routine along with pragma Inline.
513         (Set_Suppress_Elaboration_Warnings): New routine along with pragma
514         Inline.
515         * exp_ch3.adb (Build_Init_Procedure): Restore the behavior of the
516         legacy elaboration model.
517         (Default_Initialize_Object): Restore the behavior of the legacy
518         elaboration model.
519         * exp_ch9.adb: Add with and use clause for Sem_Elab.
520         (Build_Task_Activation_Call): Restore the behavior of the legacy
521         elaboration model.
522         * frontend.adb (Frontend): Restore the behavior of the legacy
523         elaboration model.
524         * opt.ads: Add new flags Legacy_Elaboration_Checks and
525         Relaxed_Elaboration_Checks, along with documentation.
526         * sem_attr.adb (Analyze_Access_Attribute): Restore the behavior of the
527         legacy elaboration model.
528         * sem_ch5.adb (Analyze_Assignment): Restore the behavior of the legacy
529         elaboration model.
530         * sem_ch7.adb (Analyze_Package_Declaration): Restore the behavior of
531         the legacy elaboration model.
532         * sem_ch8.adb (Attribute_Renaming): Restore the behavior of the legacy
533         elaboration model.
534         * sem_ch12.adb (Analyze_Instance_And_Renamings): Restore the behavior
535         of the legacy elaboration model.
536         (Analyze_Package_Instantiation): Restore the behavior of the legacy
537         elaboration model.
538         (Analyze_Subprogram_Instantiation): Restore the behavior of the legacy
539         elaboration model.
540         * sem_elab.adb: Update the documentation of the Processing phase.
541         Update the documentation on elaboration-related compilation
542         switches.  Update the documentation on adding a new target.  Add
543         Processing_Attributes which represent the state of the Processing
544         phase.  Resurrect the previous elaboration model as "legacy elaboration
545         model".
546         (Build_Call_Marker): This routine does not function when the legacy
547         elaboration model is in effect. Do not consider entry calls and requeue
548         statements when debug flag d_e is in effect. Do not consider calls to
549         subprograms which verify the runtime semantics of certain assertion
550         pragmas when debug flag d_p is in effect.
551         (Build_Variable_Reference_Marker): This routine does not function when
552         the legacy elaboration model is in effect.
553         (Check_Elaboration_Scenarios): This routine does not function when the
554         legacy elaboration model is in effect.
555         (Ensure_Prior_Elaboration): The various flags have now been replaced
556         with a state. Do not generate implicit Elaborate[_All] pragmas when
557         their creation has been suppressed.
558         (Ensure_Prior_Elaboration_Static): The with clause is marked based on
559         the requested pragma, not on the nature of the scenario.
560         (In_External_Context): Removed.
561         (Is_Assertion_Pragma_Target): New routine.
562         (Is_Potential_Scenario): Stop the traversal of a task body when
563         reaching an accept or select statement, and debug switch d_a is in
564         effect.
565         (Kill_Elaboration_Scenario): This routine does not function when the
566         legacy elaboration model is in effect.
567         (Process_Activation_Generic): The various flags have now been replaced
568         with a state.
569         (Process_Conditional_ABE): The various flags have now been replaced
570         with a state.
571         (Process_Conditional_ABE_Access): The various flags have now been
572         replaced with a state.
573         (Process_Conditional_ABE_Activation_Impl): The various flags have now
574         been replaced with a state. Do not process an activation call which
575         activates a task whose type is defined in an external instance, and
576         debug switch dL is in effect. Suppress the generation of implicit
577         Elaborate[_All] pragmas once a conditional ABE check has been
578         installed.
579         (Process_Conditional_ABE_Call): The various flags have now been
580         replaced with a state. Do not process a call which invokes a subprogram
581         defined in an external instance, and debug switch dL is in effect.
582         (Process_Conditional_ABE_Call_Ada): The various flags have now been
583         replaced with a state. Suppress the generation of implicit
584         Elaborate[_All] pragmas once a conditional ABE check has been
585         installed.
586         (Process_Conditional_ABE_Call_SPARK): The various flags have now been
587         replaced with a state.
588         (Process_Conditional_ABE_Instantiation): The various flags have now
589         been replaced with a state.
590         (Process_Conditional_ABE_Instantiation_Ada): The various flags have now
591         been replaced with a state. Suppress the generation of implicit
592         Elaborate[_All] pragmas once a conditional ABE check has been
593         installed.
594         (Process_Conditional_ABE_Instantiation_SPARK): The various flags have
595         now been replaced with a state.
596         (Process_Guaranteed_ABE_Activation_Impl): The various flags have now
597         been replaced with a state.
598         (Process_Single_Activation): The various flags have now been replaced
599         with a state.
600         (Record_Elaboration_Scenario): This routine does not function when the
601         legacy elaboration model is in effect.
602         (Traverse_Body): The various flags have now been replaced with a state.
603         * sem_elab.ads: Resurrect the pre-18.x elaboration model as "legacy
604         elaboration model".
605         * sem_prag.adb (Analyze_Pragma): Restore the behavior of the legacy
606         elaboration model.
607         * sem_res.adb (Resolve_Call): Restore the behavior of the legacy
608         elaboration model.
609         (Resolve_Entity_Name): Restore the behavior of the legacy elaboration
610         model.
611         * sem_util.adb (Mark_Elaboration_Attributes): This routine does not
612         function when the legacy elaboration model is in effect.
613         * sinfo.adb (Is_Known_Guaranteed_ABE): Update the assertion check.
614         (No_Elaboration_Check): New routine.
615         (Set_Is_Known_Guaranteed_ABE): Update the assertion check.
616         (Set_No_Elaboration_Check): New routine.
617         * sinfo.ads: Update the documentation of flag Is_Known_Guaranteed_ABE
618         along with occurrences in nodes.  Add new flag No_Elaboration_Check
619         along with occurrences in nodes.
620         * switch-c.adb (Scan_Front_End_Switches): Add processing for debug
621         switches with underscores.  Add processing for switches -gnatH and
622         -gnatJ.
623         * usage.adb (Usage): Add output for switches -gnatH and -gnatJ.
624         * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Update the
625         documentation to include the legacy and relaxed elaboration models.
626         * gnat_ugn.texi: Regenerate.
627
628 2017-12-05  Arnaud Charlet  <charlet@adacore.com>
629
630         * doc/gnat_ugn/platform_specific_information.rst: Minor edit.
631         Improve doc on required packages for linux 32bits.
632
633 2017-12-05  Doug Rupp  <rupp@adacore.com>
634
635         * tracebak.c (ppc64-vx7): USE_GCC_UNWINDER for 64bit.
636
637 2017-12-05  Javier Miranda  <miranda@adacore.com>
638
639         * checks.adb (Generate_Range_Check): Force evaluation of the node in
640         more cases.  This patch was written to improve the code generated by
641         the CCG compiler but it is enabled for all targets since double
642         evaluation is always a potential source of inefficiency.
643
644 2017-12-05  Gary Dismukes  <dismukes@adacore.com>
645
646         * doc/gnat_ugn/gnat_utility_programs.rst: Remove reference to obsolete
647         -fdump-xref switch.
648
649 2017-12-05  Eric Botcazou  <ebotcazou@adacore.com>
650
651         * exp_ch5.adb (Expand_Iterator_Loop_Over_Array): Use the SLOC of the
652         iteration scheme throughout, except for the new loop statement(s).
653
654 2017-12-05  Ed Schonberg  <schonberg@adacore.com>
655
656         * exp_aggr.adb (Gen_Assign): Do not analyze the expressionn of the
657         assignment if it is part of an Iterated_Component_Association: the
658         analysis needs to take place once the loop structure is analyzed and
659         the loop parameter made visible, because references to it typically
660         appear in the corresponding expression.  This is necessary if the
661         expression is an aggregate, because previous pre-analysis of the
662         expression does not handle nested aggregates properly.
663
664 2017-12-05  Bob Duff  <duff@adacore.com>
665
666         * sem_res.adb (Resolve_Allocator): Avoid coextension processing for an
667         allocator that is the expansion of a build-in-place function call.
668
669 2017-12-05  Olivier Hainque  <hainque@adacore.com>
670
671 libgnat/
672         * s-trasym__dwarf.adb (spec of Module_Name.Get): Instead of
673         possibly adjusting the lookup address by a load address, expect
674         a extra argument through which the load address can be conveyed
675         separately.
676         (Multi_Module_Symbolic_Traceback): Adjust accordingly. Pass the
677         retrieved load address to Init_Module.
678         * s-tsmona__linux.adb (Get): Honor the new interface.
679         * s-tsmona__mingw.adb (Get): Likewise.
680         * s-dwalin.ads: Adjust comments to be explicit about which
681         addresses are from module info and which are run-time addresses,
682         offsetted by the module load address.
683         * s-dwalin.adb (Set_Load_Address): Simply set C.Load_Slide.
684         Do not alter the module Low and High (relative) addresses.
685         (Is_Inside): Improve documentation regarding the kinds of addresses
686         at hand and correct the test.
687         (Symbolic_Traceback): Use separate variables with explicit names
688         for the address in traceback (run-time value) and the address to
689         lookup within the shared object (module-relative). Adjust the
690         computation of address passed to Symbolic_Address for symbolization.
691
692 2017-12-05  Arnaud Charlet  <charlet@adacore.com>
693
694         * opt.ads (Expand_Nonbinary_Modular_Ops): New flag.
695         * exp_ch4.adb (Expand_Nonbinary_Modular_Op): Use
696         Expand_Nonbinary_Modular_Ops instead of Modify_Tree_For_C, so that
697         other back-ends can also benefit from the front-end expansion. Remove
698         test for Modify_Tree_For_C in all callers to better share code.
699         * gnat1drv.adb (Adjust_Global_Switches): Set
700         Expand_Nonbinary_Modular_Ops when generating C code.
701
702 2017-12-05  Ed Schonberg  <schonberg@adacore.com>
703
704         * exp_ch5.adb (Expand_Formal_Container_Loop): Ensure that the loop
705         parameter becomes invisible after analyzing the loop, which has been
706         rewritten as a while-loop.
707
708 2017-12-05  Doug Rupp  <rupp@adacore.com>
709
710         * vxaddr2line.adb: Revise and enhance for new ports, remove dead ports,
711         and update for 64bit ports.
712
713 2017-12-05  Bob Duff  <duff@adacore.com>
714
715         * exp_ch6.adb (Build_In_Place_Formal): Search for the formal by suffix
716         instead of the full name.
717         * sem_ch6.adb (Create_Extra_Formals): Make sure there are extra formals
718         in the case of an instance of a generic.
719
720 2017-12-05  Arnaud Charlet  <charlet@adacore.com>
721
722         (Adjust_Global_Switches): Create an alias GNAT_Annotate to map to
723         pragma Annotate.
724
725 2017-12-05  Sebastian Huber  <sebastian.huber@embedded-brains.de>
726
727         * gcc-interface/Makefile.in (RTEMS): Define EH_MECHANISM.
728
729 2017-12-04  Sebastian Huber  <sebastian.huber@embedded-brains.de>
730
731         * gcc-interface/Makefile.in (RTEMS): Use s-osprim__rtems.adb.
732         * libgnat/s-osprim__rtems.adb: New file.
733         * libgnarl/s-osinte__rtems.adb (pthread_cond_t): Fix alignment.
734         (pthread_mutexattr_t): Likewise.
735         (pthread_rwlockattr_t): Likewise.
736         (pthread_rwlock_t): Likewise.
737         (time_t): Use 64-bit integer.
738
739 2017-12-01  Sebastian Huber  <sebastian.huber@embedded-brains.de>
740
741         * libgnarl/s-osinte__rtems.ads (pthread_cond_t): Use correct size and
742         alignment.
743         (pthread_mutex_t): Likewise.
744         (pthread_rwlock_t): Likewise.
745
746 2017-11-28  Jakub Jelinek  <jakub@redhat.com>
747
748         * gcc-interface/trans.c (Case_Statement_to_gnu): Build SWITCH_EXPR
749         using build2 instead of build3.
750
751 2017-11-23  Eric Botcazou  <ebotcazou@adacore.com>
752
753         PR ada/83091
754         * gcc-interface/decl.c (gnat_to_gnu_entity): Do not build a variant
755         type for the implementation type of a packed array.
756
757 2017-11-23  Mike Stump  <mikestump@comcast.net>
758             Eric Botcazou  <ebotcazou@adacore.com>
759
760         * gcc-interface/trans.c (gnat_gimplify_stmt) <LOOP_STMT>: Pass 3rd
761         operand to ANNOTATE_EXPR and also pass unrolling hints.
762
763 2017-11-20  Eric Botcazou  <ebotcazou@adacore.com>
764
765         PR ada/83016
766         * gnatlink.adb (Process_Args): Accept multiple switches for --LINK.
767         (Usage): Adjust.
768         * gcc-interface/Makefile.in (GCC_LINK): Remove $(ADA_INCLUDES).
769         (common-tools): Pass $(CC) as --GCC= and $(GCC_LINK) as --LINK= in
770         the invocations of $(GNATLINK).
771         (../../gnatdll$(exeext)): Likewise.
772         (../../vxaddr2line$(exeext)): Likewise.
773         (gnatmake-re): Likewise.
774         (gnatlink-re): Likewise.
775
776 2017-11-16  Doug Rupp  <rupp@adacore.com>
777
778         * gcc-interface/Makefile.in: Merge Aarch64 and ARM "ifeq" blocks.
779
780 2017-11-16  Steve Baird  <baird@adacore.com>
781
782         * debug.adb: Update another comment to indicate gnat2scil's use of the
783         -gnatd.7 switch.
784
785 2017-11-16  Bob Duff  <duff@adacore.com>
786
787         * exp_ch6.adb (Expand_Call_Helper): Avoid creating a transient scope in
788         the case of nested build-in-place calls.
789
790 2017-11-16  Joel Brobecker  <brobecker@adacore.com>
791
792         * doc/gnat_ugn/gnat_utility_programs.rst: Document the switches
793         available in gnatsymbolize.
794
795 2017-11-16  Steve Baird  <baird@adacore.com>
796
797         * debug.adb: Update comment to indicate gnat2scil's use of the -gnatd.7
798         switch.
799
800 2017-11-16  Gary Dismukes  <dismukes@adacore.com>
801
802         * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst, sem_ch6.adb,
803         sem_elab.adb: Minor editorial corrections.
804         * gnat_ugn.texi: Regenerate.
805
806 2017-11-16  Joel Brobecker  <brobecker@adacore.com>
807
808         * doc/gnat_ugn/gnat_utility_programs.rst (GNAT UGN): Add
809         gnatsymbolize documentation.
810         * gnat_ugn.texi: Regenerate.
811
812 2017-11-16  Steve Baird  <baird@adacore.com>
813
814         * sem_ch3.adb (Build_Derived_Record_Type): Replace all uses of
815         "Scope (Parent_Type)" with "Scope (Parent_Base)".
816
817 2017-11-16  Hristian Kirtchev  <kirtchev@adacore.com>
818
819         * opt.ads: Elaboration warnings are now on by default. Add a comment
820         explaining why this is needed.
821         * sem_ch9.adb (Analyze_Requeue): Preserve the status of elaboration
822         warnings.
823         * sem_ch12.adb (Analyze_Package_Instantiation): Preserve the status of
824         elaboration warnings.
825         (Analyze_Subprogram_Instantiation): Preserve the status of elaboration
826         warnings.
827         * sem_elab.adb: Update the structure of Call_Attributes and
828         Instantiation_Attributes.
829         (Build_Call_Marker): Propagate the status of elaboration warnings from
830         the call to the marker.
831         (Extract_Call_Attributes): Extract the status of elaboration warnings.
832         (Extract_Instantiation_Attributes): Extract the status of elaboration
833         warnings.
834         (Process_Conditional_ABE_Activation_Impl): Elaboration diagnostics are
835         now dependent on the status of elaboration warnings.
836         (Process_Conditional_ABE_Call_Ada): Elaboration diagnostics are now
837         dependent on the status of elaboration warnings.
838         (Process_Conditional_ABE_Instantiation_Ada): Elaboration diagnostics
839         are now dependent on the status of elaboration warnings.
840         (Process_Guaranteed_ABE_Activation_Impl): Remove pragma Unreferenced
841         for formal Call_Attrs. Elaboration diagnostics are now dependent on the
842         status of elaboration warnings.
843         (Process_Guaranteed_ABE_Call): Elaboration diagnostics are now
844         dependent on the status of elaboration warnings.
845         (Process_Guaranteed_ABE_Instantiation): Elaboration diagnostics are now
846         dependent on the status of elaboration warnings.
847         * sem_prag.adb (Analyze_Pragma): Remove the unjustified warning
848         concerning pragma Elaborate.
849         * sem_res.adb (Resolve_Call): Preserve the status of elaboration
850         warnings.
851         (Resolve_Entry_Call): Propagate flag Is_Elaboration_Warnings_OK_Node
852         from the procedure call to the entry call.
853         * sem_util.adb (Mark_Elaboration_Attributes): Add formal parameter
854         Warnings.
855         (Mark_Elaboration_Attributes_Node): Preserve the status of elaboration
856         warnings
857         * sem_util.ads (Mark_Elaboration_Attributes): Add formal parameter
858         Warnings. Update the comment on usage.
859         * sinfo.adb (Is_Dispatching_Call): Update to use Flag6.
860         (Is_Elaboration_Warnings_OK_Node): New routine.
861         (Set_Is_Dispatching_Call): Update to use Flag6.
862         (Set_Is_Elaboration_Warnings_OK_Node): New routine.
863         * sinfo.ads: Attribute Is_Dispatching_Call now uses Flag6. Add new
864         attribute Is_Elaboration_Warnings_OK_Node along with occurrences
865         in nodes.
866         (Is_Elaboration_Warnings_OK_Node): New routine along with pragma
867         Inline.
868         (Set_Is_Elaboration_Warnings_OK_Node): New routine along with pragma
869         Inline.
870         * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Update various
871         sections to indicate how to suppress elaboration warnings.  Document
872         switches -gnatwl and -gnatwL.
873         * gnat_ugn.texi: Regenerate.
874
875 2017-11-16  Sylvain Dailler  <dailler@adacore.com>
876
877         * sem_util.adb (Get_Enum_Lit_From_Pos): Add a condition for Pos
878         lower than 0.
879
880 2017-11-16  Bob Duff  <duff@adacore.com>
881
882         * sem_ch13.adb (Check_Expr_Constants): Avoid error message in case of
883         System'To_Address.
884
885 2017-11-16  Yannick Moy  <moy@adacore.com>
886
887         * sem_elab.adb (Include): Fix mode of parameter Curr to out.
888
889 2017-11-16  Piotr Trojanek  <trojanek@adacore.com>
890
891         * sem_util.ads, sem_util.adb (Is_CCT_Instance): Allow calls where
892         Context_Id denotes a record type.
893
894 2017-11-16  Hristian Kirtchev  <kirtchev@adacore.com>
895
896         * sem_ch8.adb (Check_SPARK_Primitive_Operation): Enable the check in
897         instantiations.
898
899 2017-11-16  Doug Rupp  <rupp@adacore.com>
900
901         Initial gnat port to aarch64-wrs-vxworks7
902         * libgnarl/s-vxwork__aarch64.ads,
903         libgnat/system-vxworks7-aarch64-rtp-smp.ads,
904         libgnat/system-vxworks7-aarch64.ads: New files
905         * sigtramp-vxworks-target.inc (aarch64): New section.
906         * tracebak.c (USE_ARM_UNWINDING): Disable for ARMARCH8A.
907
908 2017-11-16  Hristian Kirtchev  <kirtchev@adacore.com>
909
910         * sem_elab.adb (Include): Including a node which is also a compilation
911         unit terminates the search because there are no more lists to examine.
912
913 2017-11-16  Hristian Kirtchev  <kirtchev@adacore.com>
914
915         * sem_ch8.adb (Analyze_Subprogram_Renaming): Ensure that a renaming
916         declaration does not define a primitive operation of a tagged type for
917         SPARK.
918         (Check_SPARK_Primitive_Operation): New routine.
919
920 2017-11-16  Arnaud Charlet  <charlet@adacore.com>
921
922         * libgnat/a-elchha.adb (Last_Chance_Handler): Display Argv (0) in
923         message when using -E binder switch.
924
925 2017-11-16  Piotr Trojanek  <trojanek@adacore.com>
926
927         * errout.ads: Fix minor typo in comment.
928
929 2017-11-16  Ed Schonberg  <schonberg@adacore.com>
930
931         * sem_ch3.adb (Process_Subtype): If the subtype indication does not
932         syntactically denote a type, return Any_Type to prevent subsequent
933         compiler crashes or infinite loops.
934
935 2017-11-16  Steve Baird  <baird@adacore.com>
936
937         * lib-writ.adb: Fix bug which causes Program_Error to be raised in some
938         cases when writing out a .ali file when a Rename_Pragma pragma is in
939         effect.
940         * lib-writ.adb (Write_Unit_Information): Replace call to
941         Pragma_Name_Unmapped with call to Pragma_Name.
942
943 2017-11-16  Gary Dismukes  <dismukes@adacore.com>
944
945         * sem_elab.adb: Minor typo fixes.
946
947 2017-11-16  Justin Squirek  <squirek@adacore.com>
948
949         * sem_res.adb (Resolve_Allocator): Correct warning messages and make
950         them more explicit.
951
952 2017-11-16  Hristian Kirtchev  <kirtchev@adacore.com>
953
954         * atree.ads (Nkind_In): Add 10 and 11 parameter versions.
955         * checks.adb (Install_Primitive_Elaboration_Check): Mark the setting of
956         the elaboration flag as elaboration code.
957         * einfo.adb (Contract): Update the comments.
958         (Ignore_SPARK_Mode_Pragmas): Update the comments.
959         (SPARK_Aux_Pragma): Update the comments.
960         (SPARK_Aux_Pragma_Inherited): Update the comments.
961         (SPARK_Pragma): Update the comments. The attribute now applies
962         to all types and abstract states.
963         (SPARK_Pragma_Inherited): Update the comments. The attribute now
964         applies to all types and abstract states.
965         (Set_Contract): Update the comments.
966         (Set_Ignore_SPARK_Mode_Pragmas): Update the comments.
967         (Set_SPARK_Aux_Pragma): Update the comments.
968         (Set_SPARK_Aux_Pragma_Inherited): Update the comments.
969         (Set_SPARK_Pragma): Update the comments. The attribute now applies to
970         all types and abstract states.
971         (Set_SPARK_Pragma_Inherited): Update the comments. The attribute now
972         applies to all types and abstract states.
973         (Write_Field40_Name): Add output for SPARK_Pragma when it appears on a
974         type and abstract states.
975         * einfo.ads: Update the documentation of attributes SPARK_Pragma and
976         SPARK_Pragma_Inherited.  Both of them now apply to all types and
977         abstract states.
978         * exp_util.adb (Set_Elaboration_Flag): Mark the setting of the
979         elaboration flag as elaboration code.
980         * sem_ch3.adb: Add with and use clauses for Sem_Elab.
981         (Analyze_Full_Type_Declaration): Set the SPARK_Mode of the type. Record
982         a derived type for later processing by the ABE mechanism.
983         (Analyze_Incomplete_Type_Decl): Set the SPARK_Mode of the type.
984         (Analyze_Private_Extension_Declaration): Set the SPARK_Mode of the
985         type.
986         * sem_ch7.adb (Analyze_Private_Type_Declaration): Set the SPARK_Mode of
987         the type.
988         * sem_elab.adb: Define the term "early call region".  Update the
989         terminology for "scenario" and "target".  Update the architecture of
990         the ABE mechanism.  Update the steps which must be taken when adding a
991         new scenario.  Update the section on debugging ABE issues.  Add new
992         hash tables Early_Call_Regions and Recorded_SPARK_Scenarios.  Add new
993         table SPARK_Scenarios.  Hash table Elaboration_Context is now
994         Elaboration_Statuses.  The majority of Process_xxx routines have been
995         updated to better reflect their role.
996         (Add_Unit): Reimplemented.
997         (Check_Elaboration_Constituent): New routine.
998         (Check_Elaboration_Scenarios): Verify previously recorded scenarios for
999         conditional ABE issues. Verify previously recorded SPARK scenarios.
1000         (Check_SPARK_Derived_Type): New routine.
1001         (Check_SPARK_Instantiation): New routine.
1002         (Check_SPARK_Scenario): New routine.
1003         (Check_SPARK_Refined_State_Pragma): New routine.
1004         (Early_Call_Region): New routine.
1005         (Elaboration_Status): New routine.
1006         (Ensure_Prior_Elaboration): Add new formal parameter Prag_Nam. The
1007         implicit Elabotate[_All] pragma is now specified via Prag_Nam.
1008         (Find_Early_Call_Region): New routine.
1009         (Info_Scenario): Add output for refinement constituents.
1010         (Is_Recorded_SPARK_Scenario): New routine.
1011         (Is_Suitable_SPARK_Derived_Type): New routine.
1012         (Is_Suitable_SPARK_Instantiation): New routine.
1013         (Is_Suitable_SPARK_Refined_State_Pragma): New routine.
1014         (Is_Visited_Body): New routine.
1015         (Kill_Elaboration_Scenario): Reimplemented.
1016         (Output_Active_Scenarios): Add output for pragma Refined_State.
1017         (Output_SPARK_Refined_State_Pragma): New routine.
1018         (Process_Conditional_ABE_Call): Remove the use of -gnatd.v. The effect
1019         is now achieved by different means.
1020         (Process_Conditional_ABE_Call_SPARK): Verify that a call which precedes
1021         the subprogram body appears within the early call region of the body.
1022         Either ensure the prior elaboration of external subprograms or verify
1023         that the context meets the suitable elaboration requirement.
1024         (Process_Conditional_ABE_Instantiation_SPARK): New routine.
1025         (Record_Elaboration_Scenario): Reimplement the portion which enforces
1026         the level restrictions of the static model. Add support for SPARK
1027         scenarios.
1028         (Record_SPARK_Elaboration_Scenario): New routine.
1029         (Reset_Visited_Bodies): New routine.
1030         (Set_Early_Call_Region): New routine.
1031         (Set_Elaboration_Status): New routine.
1032         (Set_Is_Recorded_SPARK_Scenario): New routine.
1033         (Update_Elaboration_Scenario): Reimplemented.
1034         * sem_elab.ads: Add new subtype Library_Or_Instantiation_Level.
1035         * sem_prag.adb (Analyze_Refined_State_In_Decl_Part): Save the pragma
1036         for examination by the ABE Processing phase.
1037         (Create_Abstract_State): Save the SPARK_Mode from the context.
1038         * sem_util.adb (Is_Non_Preelaborable_Construct): New routine.
1039         * sem_util.ads (Is_Non_Preelaborable_Construct): New routine.
1040         * sinfo.adb (Is_Elaboration_Code): New routine.
1041         (Set_Is_Elaboration_Code): New routine.
1042         (Nkind_In): Add 10 and 11 parameter versions.
1043         * sinfo.ads: Add new attribute Is_Elaboration_Code along with
1044         occurrences in nodes.
1045         (Is_Elaboration_Code): New routine along with pragma Inline.
1046         (Set_Is_Elaboration_Code): New routine along with pragma Inline.
1047         (Nkind_In): Add 10 and 11 parameter versions.
1048
1049 2017-11-16  Justin Squirek  <squirek@adacore.com>
1050
1051         * sem.adb (Analyze): Remove requirement that the original node of N be
1052         an operator in the case that analysis on the node yields the relevant
1053         operator - so prefer it instead.
1054
1055 2017-11-16  Bob Duff  <duff@adacore.com>
1056
1057         * sem_ch6.adb (Create_Extra_Formals): The type of the BIP_Object_Access
1058         formal must not have a designated type that is the full view coming
1059         from a limited-with'ed package.
1060         * sem_util.adb,sem_util.ads (Incomplete_View_From_Limited_With): New
1061         function called from sem_ch6.
1062         * sem_ch5.adb (Analyze_Assignment): Treat user-defined concatenation
1063         specially for b-i-p cases.
1064
1065 2017-11-10  Martin Sebor  <msebor@redhat.com>
1066
1067         PR c/81117
1068         * adadecode.c (__gnat_decode): Use memcpy instead of strncpy.
1069         * argv.c (__gnat_fill_arg, __gnat_fill_env): Likewise.
1070
1071 2017-11-10  Eric Botcazou  <ebotcazou@adacore.com>
1072
1073         * gcc-interface/utils.c (convert) <RECORD_TYPE>: Add comment and do
1074         not fall through to the next case.
1075         <ARRAY_TYPE>: Deal specially with a dereference from another array
1076         type with the same element type.
1077
1078 2017-11-09  Gary Dismukes  <dismukes@adacore.com>
1079
1080         * exp_util.adb, freeze.adb: Minor reformatting.
1081
1082 2017-11-09  Jerome Lambourg  <lambourg@adacore.com>
1083
1084         * gcc-interface/Makefile.in: Add rules to build aarch64-qnx runtimes.
1085
1086 2017-11-09  Hristian Kirtchev  <kirtchev@adacore.com>
1087
1088         * gcc-interface/trans.c (gnat_to_gnu): Add processing for
1089         N_Variable_Reference_Marker nodes.
1090
1091 2017-11-09  Ed Schonberg  <schonberg@adacore.com>
1092
1093         * sem_ch12.adb (Analyze_Generic_Package_Declaration): Handle properly
1094         the pragma Compile_Time_Error when it appears in a generic package
1095         declaration and uses an expanded name to denote the current unit.
1096
1097 2017-11-09  Jerome Lambourg  <lambourg@adacore.com>
1098
1099         * libgnarl/s-taprop__qnx.adb: Fix incorrect casing for pthread_self.
1100         * tracebak.c: Add support for tracebacks in QNX.
1101
1102 2017-11-09  Eric Botcazou  <ebotcazou@adacore.com>
1103
1104         * exp_aggr.adb (Aggr_Size_OK): Bump base limit from 50000 to 500000.
1105
1106 2017-11-09  Yannick Moy  <moy@adacore.com>
1107
1108         * erroutc.adb, set_targ.adb: Remove pragma Annotate for CodePeer
1109         justification.
1110
1111 2017-11-09  Joel Brobecker  <brobecker@adacore.com>
1112
1113         * doc/gnat_ugn/platform_specific_information.rst: Document packages
1114         needed on GNU/Linux by GNAT.
1115         * gnat_ugn.texi: Regenerate.
1116
1117 2017-11-09  Hristian Kirtchev  <kirtchev@adacore.com>
1118
1119         * contracts.adb (Analyze_Contracts): Remove the three parameter
1120         version. This routine now only analyzes contracts and does not perform
1121         any freezing actions.
1122         (Analyze_Previous_Contracts): Removed.
1123         (Freeze_Previous_Contracts): New routine.
1124         * contracts.ads (Analyze_Previous_Contracts): Removed.
1125         (Freeze_Previous_Contracts): New routine.
1126         * sem_ch3.adb (Analyze_Declarations): Analyze the contract of an
1127         enclosing package spec regardless of whether the list denotes the
1128         visible or private declarations.  Fix the removal of partial state
1129         refinements when the context is a package spec.
1130         * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Freeze previous
1131         contracts.
1132         * sem_ch7.adb (Analyze_Package_Body_Helper): Freeze previous contracts.
1133         * sem_ch9.adb (Analyze_Entry_Body): Freeze previous contracts.
1134         (Analyze_Protected_Body): Freeze previous contracts.
1135         (Analyze_Task_Body): Freeze previous contracts.
1136         * sem_prag.adb: Comment reformatting.
1137
1138 2017-11-09  Bob Duff  <duff@adacore.com>
1139
1140         * libgnarl/g-thread.ads, libgnarl/g-thread.adb: (Make_Independent):
1141         Export this so users can use it without importing
1142         System.Tasking.Utilities.
1143         * libgnarl/s-tassta.adb (Vulnerable_Complete_Task): Relax assertion
1144         that fails when Make_Independent is called on a user task.
1145         * libgnarl/s-taskin.ads (Master_Of_Task): Avoid unusual
1146         capitalization style ((style) bad casing of "Master_of_Task").
1147
1148 2017-11-09  Ed Schonberg  <schonberg@adacore.com>
1149
1150         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Correct use of
1151         uninitialized variable uncovered by Codepeer.
1152
1153 2017-11-09  Arnaud Charlet  <charlet@adacore.com>
1154
1155         * namet.adb: Replace pragma Assume by pragma Assert to fix bootstrap.
1156
1157 2017-11-09  Javier Miranda  <miranda@adacore.com>
1158
1159         * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
1160         (Static_Dispatch_Tables): Minor rewording.
1161         * gnat_rm.texi: Regenerate.
1162
1163 2017-11-09  Justin Squirek  <squirek@adacore.com>
1164
1165         * sem_ch8.adb (Analyze_Use_Package): Remove forced installation of
1166         use_clauses within instances.
1167         (Use_One_Package): Add condition to check for "hidden" open scopes to
1168         avoid skipping over packages that have not been properly installed even
1169         though they are visible.
1170
1171 2017-11-09  Ed Schonberg  <schonberg@adacore.com>
1172
1173         * sem_ch4.adb (Analyze_Selected_Component): Reject properly a call to a
1174         private operation of a protected type, when the type has no visible
1175         operations.
1176
1177 2017-11-09  Javier Miranda  <miranda@adacore.com>
1178
1179         * rtsfind.ads (RE_Id, RE_Unit_Table): Add RE_HT_Link.
1180         * exp_disp.adb (Make_DT): Initialize the HT_Link field of the TSD only
1181         if available.
1182
1183 2017-11-09  Bob Duff  <duff@adacore.com>
1184
1185         * exp_ch4.adb, exp_ch9.adb, exp_prag.adb, par-ch3.adb, sem_aggr.adb,
1186         sem_ch12.adb, sem_ch13.adb, sem_ch4.adb, sem_disp.adb, sem_prag.adb,
1187         sem_res.adb, sem_util.adb: Get rid of warnings about uninitialized
1188         variables.
1189
1190 2017-11-09  Yannick Moy  <moy@adacore.com>
1191
1192         * exp_disp.adb (Make_DT): Default initialize Ifaces_List and
1193         Ifaces_Comp_List.
1194
1195 2017-11-09  Pascal Obry  <obry@adacore.com>
1196
1197         * libgnarl/s-taprop__mingw.adb: On Windows, initialize the thead handle
1198         only for foreign threads.  We initialize the thread handle only if not
1199         yet initialized. This happens in Enter_Task for foreign threads only.
1200         But for native threads (Ada tasking) we do want to keep the real
1201         handle (from Create_Task) to be able to free the corresponding
1202         resources in Finalize_TCB (CloseHandle).
1203
1204 2017-11-09  Yannick Moy  <moy@adacore.com>
1205
1206         * sem_attr.adb (Analyze_Attribute): Default initialize P_Type,
1207         P_Base_Type.
1208         (Error_Attr_P): Fix name in pragma No_Return.
1209         (Unexpected_Argument): Add pragma No_Return.
1210         (Placement_Error): Add pragma No_Return.
1211
1212 2017-11-09  Javier Miranda  <miranda@adacore.com>
1213
1214         * exp_disp.adb (Elab_Flag_Needed): Elaboration flag not needed when the
1215         dispatch table is statically built.
1216         (Make_DT): Declare constant the Interface_Table object associated with
1217         an statically built dispatch table. For this purpose the Offset_To_Top
1218         value of each interface is computed using the dummy object.
1219         * exp_ch3.adb (Build_Init_Procedure): Do not generate code initializing
1220         the Offset_To_Top field of secondary dispatch tables when the dispatch
1221         table is statically built.
1222         (Initialize_Tag): Do not generate calls to Register_Interface_Offset
1223         when the dispatch table is statically built.
1224         * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
1225         Document the new GNAT restriction Static_Dispatch_Tables.
1226         * gnat_rm.texi: Regenerate.
1227
1228 2017-11-09  Hristian Kirtchev  <kirtchev@adacore.com>
1229
1230         * sem_aggr.adb (Resolve_Delta_Record_Aggregate): Reorder declarations
1231         to avoid a dormant bug.
1232
1233 2017-11-09  Jerome Lambourg  <lambourg@adacore.com>
1234
1235         * init.c: Define missing __gnat_alternate_stack for QNX. Set it to 0,
1236         as such capability is not available on the OS.
1237         * link.c: Make sure linker options for QNX are correct.
1238         * libgnarl/s-osinte__qnx.ads: Add some missing bindings to pthread.
1239         * libgnarl/s-taprop__qnx.adb: New, derived from s-taprop__posix.adb. This brings
1240         in particular a workaround with locks priority ceiling where a higher
1241         priority task is allowed to lock a lower ceiling priority lock. This
1242         also fixes the scheduling of FIFO tasks when the priority of a task is
1243         lowered.
1244         * libgnat/system-qnx-aarch64.ads: Fix priority ranges.
1245
1246 2017-11-09  Yannick Moy  <moy@adacore.com>
1247
1248         * erroutc.adb (Output_Error_Msgs): Justify CodePeer false positive
1249         message.
1250         * gnatbind.adb (Scan_Bind_Arg): Simplify test to remove always true
1251         condition.
1252         * namet.adb (Copy_One_Character): Add assumption for static analysis,
1253         as knowledge that Hex(2) is in the range 0..255 is too complex for
1254         CodePeer.
1255         (Finalize): Add assumption for static analysis, as the fact that there
1256         are symbols in the table depends on a global invariant at this point in
1257         the program.
1258         * set_targ.adb (Check_Spaces): Justify CodePeer false positive message.
1259         * stylesw.adb (Save_Style_Check_Options): Rewrite to avoid test always
1260         true.
1261
1262 2017-11-09  Javier Miranda  <miranda@adacore.com>
1263
1264         * libgnat/s-rident.ads (Static_Dispatch_Tables): New restriction name.
1265         * exp_disp.adb (Building_Static_DT): Check restriction.
1266         (Building_Static_Secondary_DT): Check restriction.
1267         (Make_DT): Initialize the HT_Link to No_Tag.
1268         * opt.ads (Static_Dispatch_Tables): Rename flag...
1269         (Building_Static_Dispatch_Tables): ... into this.  This will avoid
1270         conflict with the restriction name.
1271         * gnat1drv.adb: Update.
1272         * exp_aggr.adb (Is_Static_Dispatch_Table_Aggregate): Update.
1273         * exp_ch3.adb (Expand_N_Object_Declaration): Update.
1274
1275 2017-11-09  Pascal Obry  <obry@adacore.com>
1276
1277         * libgnarl/s-taprop__mingw.adb: Minor code clean-up.  Better using a
1278         named number.
1279
1280 2017-11-09  Yannick Moy  <moy@adacore.com>
1281
1282         * binde.adb (Diagnose_Elaboration_Problem): Mark procedure No_Return.
1283         * checks.adb (Apply_Scalar_Range_Check): Rescope variable OK closer to
1284         use.  Default initialize Hi, Lo.
1285         (Selected_Range_Checks): Retype Num_Checks more precisely.
1286         (Determine_Range, Determine_Range_R): Default initialize Hi_Right,
1287         Lo_Right.
1288         * contracts.adb (Process_Contract_Cases): Mark parameter Stmts as
1289         Unmodified.
1290         (Process_Postconditions): Mark parameter Stmts as Unmodified.
1291         * exp_attr.adb (Expand_Loop_Entry_Attribute): Default initialize Blk.
1292         * exp_ch4.adb (Expand_N_Allocator): Default initialize Typ.
1293         (Expand_Concatenate): Default initialize High_Bound.
1294         (Optimize_Length_Comparison): Default initialize Ent, Index.
1295         * exp_ch5.adb (Expand_Predicated_Loop): Default initialize L_Hi and
1296         L_Lo.
1297         * exp_ch6.adb (Expand_N_Extended_Return_Statement): Default initialize
1298         Return_Stmt.
1299         * exp_ch9.adb (Expand_Entry_Barrier): Default initialize Func_Body and
1300         remove pragma Warnings(Off).
1301         * exp_imgv.adb (Expand_Image_Attribute): Default initialize Tent.
1302         * exp_util.adb (Find_Interface_Tag): Default initialize AI_Tag.
1303         * freeze.adb (Check_Component_Storage_Order): Default initialize
1304         Comp_Byte_Aligned rather than silencing messages with pragma
1305         Warnings(Off), which does not work for CodePeer initialization
1306         messages, and given that here the possible read of an unitialized value
1307         depends on a proper use of parameters by the caller.
1308         * inline.adb (Expand_Inlined_Call): Default initialize Lab_Decl, Targ.
1309         * sem_ch12.adb (Build_Operator_Wrapper): Default initialize Expr.
1310         * sem_ch3.adb (Build_Derived_Array_Type): Default initialize
1311         Implicit_Base.
1312         * sem_ch4.adb (List_Operand_Interps): Default initialize Nam and remove
1313         pragma Warnings(Off).
1314         (Analyze_Case_Expression): Rescope checking block within branch where
1315         Others_Present is set by the call to Check_Choices.
1316         * sem_ch5.adb (Analyze_Assignment): Default initialize
1317         Save_Full_Analysis.
1318         * sem_ch6.adb (Analyze_Function_Return): Default initialize Obj_Decl,
1319         and restructure code to defend against previous errors, so that, in
1320         that case, control does not flow to the elsif condition which read an
1321         uninitialized Obj_Decl.
1322         * sem_ch9.adb (Analyze_Requeue): Default initialize Synch_Type.
1323         (Check_Interfaces): Default initialize Full_T_Ifaces and Priv_T_Ifaces,
1324         which seem to be left uninitialized and possibly read in some cases.
1325         * sem_dim.adb (Analyze_Aspect_Dimension_System): Retype Position more
1326         precisely.  This requires to exchange the test for exiting in case of
1327         too many positions and the increment to Position, inside the loop.
1328         * sem_eval.adb (Eval_Concatenation): Default initialize Folded_Val,
1329         which cannot be read uninitialized, but the reasons for that are quite
1330         subtle.
1331         * sem_intr.adb (Check_Intrinsic_Call): Default initialize Rtyp.
1332         * sem_prag.adb (Collect_Subprogram_Inputs_Outputs): Default initialize
1333         Spec_Id.
1334         * sem_res.adb (Make_Call_Into_Operator): Default initialize Opnd_Type,
1335         and test for presence of non-null Opnd_Type before testing its scope,
1336         in a test which would read its value uninitialized, and is very rarely
1337         exercized (it depends on the presence of an extension of System).
1338         * sem_spark.ads: Update comment to fix name of main analysis procedure.
1339         * sem_warn.adb (Warn_On_Known_Condition): Default initialize
1340         Test_Result.
1341         * set_targ.adb (FailN): Mark procedure with No_Return.
1342         * stylesw.adb (Save_Style_Check_Options): Delete useless code to
1343         initialize all array Options to white space, as there is already code
1344         doing the same for the remaining positions in Options at the end of the
1345         procedure.
1346
1347 2017-11-09  Eric Botcazou  <ebotcazou@adacore.com>
1348
1349         * exp_ch11.adb (Possible_Local_Raise): Do not issue the warning for
1350         generic instantiations either.
1351
1352 2017-11-09  Piotr Trojanek  <trojanek@adacore.com>
1353
1354         * sem_prag.adb (Analyze_Part_Of): Reword error message.
1355         (Get_SPARK_Mode_Type): Do not raise Program_Error in case pragma
1356         SPARK_Mode appears with an illegal mode, treat this as a non-existent
1357         mode.
1358
1359 2017-11-09  Ed Schonberg  <schonberg@adacore.com>
1360
1361         * sem_ch4.adb (Analyze_Call): Reject a call to a function that returns
1362         a limited view of a type T declared in unit U1, when the function is
1363         declared in another unit U2 and the call appears in a procedure within
1364         another unit.
1365
1366 2017-11-09  Justin Squirek  <squirek@adacore.com>
1367
1368         * sem_ch8.adb (Analyze_Use_Package): Force installation of use_clauses
1369         when processing generic instances.
1370
1371 2017-11-09  Bob Duff  <duff@adacore.com>
1372
1373         * namet.ads, namet.adb (Valid_Name_Id): New subtype that excludes
1374         Error_Name and No_Name.  Use this (versus Name_Id) to indicate which
1375         objects can have those special values. Valid_Name_Id could usefully be
1376         used all over the compiler front end, but that's too much trouble for
1377         now. If we did that, we might want to rename:
1378         Name_Id --> Optional_Name_Id, Valid_Name_Id --> Name_Id.
1379         For parameters of type Valid_Name_Id, remove some redundant tests,
1380         including the ones found by CodePeer.  Use Is_Valid_Name instead of
1381         membership test when appropriate.
1382         (Error_Name_Or_No_Name): Delete this; it's no longer needed.
1383         * sem_ch2.adb (Analyze_Identifier): Use "not Is_Valid_Name" instead of
1384         "in Error_Name_Or_No_Name".
1385         (Check_Parameterless_Call): Use "not Is_Valid_Name" instead of "in
1386         Error_Name_Or_No_Name".
1387
1388 2017-11-09  Arnaud Charlet  <charlet@adacore.com>
1389
1390         * gnat1drv.adb (Adjust_Global_Switches): Suppress warnings in codepeer
1391         mode here unless -gnateC is specified.
1392         * switch-c.adb (Scan_Front_End_Switches): Do not suppress warnings with
1393         -gnatC here.
1394
1395 2017-11-09  Piotr Trojanek  <trojanek@adacore.com>
1396
1397         * lib-writ.adb (Write_ALI): Remove processing of the frontend xrefs as
1398         part of the ALI writing; they are now processed directly from memory
1399         when requested by the backend.
1400         * lib-xref.ads (Collect_SPARK_Xrefs): Remove.
1401         (Iterate_SPARK_Xrefs): New routine for iterating over frontend xrefs.
1402         * lib-xref-spark_specific.adb (Traverse_Compilation_Unit): Remove.
1403         (Add_SPARK_File): Remove.
1404         (Add_SPARK_Xref): Refactored from removed code; filters xref entries
1405         that are trivially uninteresting to the SPARK backend.
1406         * spark_xrefs.ads: Remove code that is no longer needed.
1407         * spark_xrefs.adb (dspark): Adapt to use Iterate_SPARK_Xrefs.
1408
1409 2017-11-09  Hristian Kirtchev  <kirtchev@adacore.com>
1410
1411         * sem_elab.adb: Update the documentation on adding a new elaboration
1412         schenario. Add new hash table Recorded_Top_Level_Scenarios.
1413         (Is_Check_Emitting_Scenario): Removed.
1414         (Is_Recorded_Top_Level_Scenario): New routine.
1415         (Kill_Elaboration_Scenario): Reimplemented.
1416         (Record_Elaboration_Scenario): Mark the scenario as recorded.
1417         (Set_Is_Recorded_Top_Level_Scenario): New routine.
1418         (Update_Elaboration_Scenario): Reimplemented.
1419         * sinfo.adb (Is_Recorded_Scenario): Removed.
1420         (Set_Is_Recorded_Scenario): Removed.
1421         * sinfo.ads: Remove attribute Is_Recorded_Scenario along with
1422         occurrences in nodes.
1423         (Is_Recorded_Scenario): Removed along with pragma Inline.
1424         (Set_Is_Recorded_Scenario): Removed along with pragma Inline.
1425
1426 2017-11-09  Piotr Trojanek  <trojanek@adacore.com>
1427
1428         * sem_prag.adb (Analyze_Part_Of): Change "designate" to "denote" in
1429         error message.
1430
1431 2017-11-09  Justin Squirek  <squirek@adacore.com>
1432
1433         * sem_res.adb (Resolve_Allocator): Add warning messages corresponding
1434         to the allocation of an anonymous access-to-controlled object.
1435
1436 2017-11-09  Jerome Lambourg  <lambourg@adacore.com>
1437
1438         * sigtramp-qnx.c: Fix obvious typo.
1439
1440 2017-11-09  Doug Rupp  <rupp@adacore.com>
1441
1442         * libgnarl/s-taprop__linux.adb (Monotonic_Clock): Minor reformatting.
1443
1444 2017-11-09  Ed Schonberg  <schonberg@adacore.com>
1445
1446         * sem_res.adb (Resolve): If expression is an entity whose type has
1447         implicit dereference, generate reference to it, because no reference is
1448         generated for an overloaded entity during analysis, given that its
1449         identity may not be known.
1450
1451 2017-11-09  Javier Miranda  <miranda@adacore.com>
1452
1453         * exp_disp.adb (Expand_Interface_Thunk): Replace substraction of
1454         offset-to-top field by addition.
1455         (Make_Secondary_DT): Initialize the offset-to-top field with a negative
1456         offset.
1457         * exp_ch3.adb (Build_Offset_To_Top_Function): Build functions that
1458         return a negative offset-to-top value.
1459         (Initialize_Tag): Invoke runtime services Set_Dynamic_Offset_To_Top and
1460         Set_Static_Offset_To_Top passing a negative offet-to-top value;
1461         initialize also the offset-to-top field with a negative offset.
1462         * libgnat/a-tags.adb (Base_Address): Displace the pointer by means of
1463         an addition since the offset-to-top field is now a negative value.
1464         (Displace): Displace the pointer to the object means of a substraction
1465         since it is now a negative value.
1466         (Set_Dynamic_Offset_to_top): Displace the pointer to the object by
1467         means of a substraction since it is now a negative value.
1468
1469 2017-11-09  Eric Botcazou  <ebotcazou@adacore.com>
1470
1471         * gnat1drv.adb (Gnat1drv): Call Errout.Finalize (Last_Call => True)
1472         before Errout.Output_Messages also in the case of compilation errors.
1473
1474 2017-11-09  Javier Miranda  <miranda@adacore.com>
1475
1476         * doc/gnat_ugn/the_gnat_compilation_model.rst (Interfacing with C++ at
1477         the Class Level): Fix error interfacing with C strings.
1478         * gnat_ugn.texi: Regenerate.
1479
1480 2017-11-09  Jerome Lambourg  <lambourg@adacore.com>
1481
1482         * system-qnx-aarch64.ads: Fix the priority constants.
1483         * s-osinte__qnx.ads: Fix constants for handling the locking protocols
1484         and scheduling.
1485         * s-osinte__qnx.adb: New file , prevents the use of priority 0 that
1486         corresponds to an idle priority on QNX.
1487
1488 2017-11-09  Piotr Trojanek  <trojanek@adacore.com>
1489
1490         * sem_prag.adb, sem_util.adb, sem_elab.adb: Fix minor typos in
1491         comments.
1492
1493 2017-11-09  Piotr Trojanek  <trojanek@adacore.com>
1494
1495         * lib-xref-spark_specific.adb (Add_SPARK_Xrefs): Ignore loop parameters
1496         in expression funtions that are expanded into variables.
1497
1498 2017-11-09  Piotr Trojanek  <trojanek@adacore.com>
1499
1500         * sem_util.adb: Minor whitespace cleanup.
1501
1502 2017-11-09  Jerome Lambourg  <lambourg@adacore.com>
1503
1504         * libgnarl/s-taprop__qnx.adb: Refine aarch64-qnx. Use the POSIX
1505         s-taprop version rather than a custom one.
1506         * sigtramp-qnx.c (aarch64-qnx): Implement the signal trampoline.
1507
1508 2017-11-08  Piotr Trojanek  <trojanek@adacore.com>
1509
1510         * lib-xref.ads, lib-xref-spark_specific.adb
1511         (Traverse_Compilation_Unit): Move declaration to package body.
1512
1513 2017-11-08  Hristian Kirtchev  <kirtchev@adacore.com>
1514
1515         * exp_spark.adb (Expand_SPARK_N_Object_Renaming_Declaration): Obtain
1516         the type of the renaming from its defining entity, rather then the
1517         subtype mark as there may not be a subtype mark.
1518
1519 2017-11-08  Jerome Lambourg  <lambourg@adacore.com>
1520
1521         * adaint.c, s-oscons-tmplt.c, init.c, libgnat/system-qnx-aarch64.ads,
1522         libgnarl/a-intnam__qnx.ads, libgnarl/s-intman__qnx.adb,
1523         libgnarl/s-osinte__qnx.ads, libgnarl/s-qnx.ads,
1524         libgnarl/s-taprop__qnx.adb, s-oscons-tmplt.c, sigtramp-qnx.c,
1525         terminals.c: Initial port of GNAT for aarch64-qnx
1526
1527 2017-11-08  Elisa Barboni  <barboni@adacore.com>
1528
1529         * exp_util.adb (Find_DIC_Type): Move...
1530         * sem_util.ads, sem_util.adb (Find_DIC_Type): ... here.
1531
1532 2017-11-08  Justin Squirek  <squirek@adacore.com>
1533
1534         * sem_res.adb (Resolve_Allocator): Add info messages corresponding to
1535         the owner and corresponding coextension.
1536
1537 2017-11-08  Ed Schonberg  <schonberg@adacore.com>
1538
1539         * sem_aggr.adb (Resolve_Delta_Aggregate): Divide into the
1540         following separate procedures.
1541         (Resolve_Delta_Array_Aggregate): Previous code form
1542         Resolve_Delta_Aggregate.
1543         (Resolve_Delta_Record_Aggregate): Extend previous code to cover latest
1544         ARG decisions on the legality rules for delta aggregates for records:
1545         in the case of a variant record, components from different variants
1546         cannot be specified in the delta aggregate, and this must be checked
1547         statically.
1548
1549 2017-11-08  Piotr Trojanek  <trojanek@adacore.com>
1550
1551         * spark_xrefs.ads (SPARK_Scope_Record): Remove File_Num component.
1552         * lib-xref-spark_specific.adb (Add_SPARK_Scope): Skip initialization of
1553         removed component.
1554
1555 2017-11-08  Gary Dismukes  <dismukes@adacore.com>
1556
1557         * sem_ch4.adb: Minor typo fix.
1558
1559 2017-11-08  Piotr Trojanek  <trojanek@adacore.com>
1560
1561         * spark_xrefs.ads (SPARK_Scope_Record): Remove Spec_File_Num and
1562         Spec_Scope_Num components.
1563         * spark_xrefs.adb (dspark): Skip pretty-printing to removed components.
1564         * lib-xref-spark_specific.adb (Add_SPARK_Scope): Skip initialization of
1565         removed components.
1566         (Collect_SPARK_Xrefs): Skip setting proper values of removed
1567         components.
1568
1569 2017-11-08  Gary Dismukes  <dismukes@adacore.com>
1570
1571         * exp_ch4.adb (Expand_N_Type_Conversion): Add test that the selector
1572         name is a discriminant in check for unconditional accessibility
1573         violation within instances.
1574
1575 2017-11-08  Piotr Trojanek  <trojanek@adacore.com>
1576
1577         * lib-xref-spark_specific.adb (Add_SPARK_Xrefs): Remove special-case
1578         for constants (with variable input).
1579         (Is_Constant_Object_Without_Variable_Input): Remove.
1580
1581 2017-11-08  Hristian Kirtchev  <kirtchev@adacore.com>
1582
1583         * exp_ch9.adb, sem_disp.adb, sem_util.adb: Minor reformatting.
1584
1585 2017-11-08  Piotr Trojanek  <trojanek@adacore.com>
1586
1587         * spark_xrefs.ads (Rtype): Remove special-casing of constants for SPARK
1588         cross-references.
1589         (dspark): Remove hardcoded table bound.
1590
1591 2017-11-08  Ed Schonberg  <schonberg@adacore.com>
1592
1593         * sem_ch4.adb (Analyze_Aggregate): For Ada2020 delta aggregates, use
1594         the type of the base of the construct to determine the type (or
1595         candidate interpretations) of the delta aggregate. This allows the
1596         construct to appear in a context that expects a private extension.
1597         * sem_res.adb (Resolve): Handle properly a delta aggregate with an
1598         overloaded base.
1599
1600 2017-11-08  Piotr Trojanek  <trojanek@adacore.com>
1601
1602         * spark_xrefs.ads (SPARK_Xref_Record): Replace file and scope indices
1603         with Entity_Id of the reference.
1604         * spark_xrefs.adb (dspark): Adapt pretty-printing routine.
1605         * lib-xref-spark_specific.adb (Add_SPARK_Xrefs): Store Entity_Id of the
1606         reference, not the file and scope indices.
1607
1608 2017-11-08  Arnaud Charlet  <charlet@adacore.com>
1609
1610         * errout.ads (Current_Node): New.
1611         * errout.adb (Error_Msg): Use Current_Node.
1612         * par-ch6.adb, par-ch7.adb, par-ch9.adb, par-util.adb: Set Current_Node
1613         when relevant.
1614         * style.adb: Call Error_Msg_N when possible.
1615
1616 2017-11-08  Piotr Trojanek  <trojanek@adacore.com>
1617
1618         * spark_xrefs.ads (SPARK_Scope_Record): Rename Scope_Id component to
1619         Entity.
1620         * lib-xref-spark_specific.adb, spark_xrefs.adb: Propagate renaming of
1621         the Scope_Id record component.
1622
1623 2017-11-08  Piotr Trojanek  <trojanek@adacore.com>
1624
1625         * spark_xrefs.ads (SPARK_File_Record): Remove string components.
1626         * spark_xrefs.adb (dspark): Remove pretty-printing of removed
1627         SPARK_File_Record components.
1628         * lib-xref-spark_specific.adb (Add_SPARK_File): Do not store string
1629         representation of files/units.
1630
1631 2017-11-08  Piotr Trojanek  <trojanek@adacore.com>
1632
1633         * lib-xref.ads, lib-xref-spark_specific.adb (Traverse_Declarations):
1634         Remove Inside_Stubs parameter.
1635
1636 2017-11-08  Piotr Trojanek  <trojanek@adacore.com>
1637
1638         * spark_xrefs.ads (SPARK_Xref_Record): Referenced object is now
1639         represented by Entity_Id.
1640         (SPARK_Scope_Record): Referenced scope (e.g. subprogram) is now
1641         represented by Entity_Id; this information is not repeated as
1642         Scope_Entity.
1643         (Heap): Moved from lib-xref-spark_specific.adb, to reside next to
1644         Name_Of_Heap_Variable.
1645         * spark_xrefs.adb (dspark): Adapt debug routine to above changes in
1646         data types.
1647         * lib-xref-spark_specific.adb: Adapt routines for populating SPARK
1648         scope and xrefs tables to above changes in data types.
1649
1650 2017-11-08  Justin Squirek  <squirek@adacore.com>
1651
1652         * sem_ch8.adb (Mark_Use_Clauses): Add condition to always mark the
1653         primitives of generic actuals.
1654         (Mark_Use_Type): Add recursive call to properly mark class-wide type's
1655         base type clauses as per ARM 8.4 (8.2/3).
1656
1657 2017-11-08  Ed Schonberg  <schonberg@adacore.com>
1658
1659         * sem_ch6.adb (Analyze_Generic_Subprobram_Body): Validate
1660         categorization dependency of the body, as is done for non-generic
1661         units.
1662         (New_Overloaded_Entity, Visible_Part_Type): Remove linear search
1663         through declarations (Simple optimization, no behavior change).
1664
1665 2017-11-08  Piotr Trojanek  <trojanek@adacore.com>
1666
1667         * spark_xrefs.ads (SPARK_Xref_Record): Remove inessential components.
1668         (SPARK_Scope_Record): Remove inessential components.
1669         * spark_xrefs.adb (dspark): Remove pretty-printing of removed record
1670         components.
1671         * lib-xref-spark_specific.adb (Add_SPARK_Scope): Remove setting of
1672         removed record components.
1673         (Add_SPARK_Xrefs): Remove setting of removed record components.
1674
1675 2017-11-08  Piotr Trojanek  <trojanek@adacore.com>
1676
1677         * lib-xref-spark_specific.adb (Add_SPARK_Xrefs): Remove dead check for
1678         empty entities.
1679
1680 2017-11-08  Javier Miranda  <miranda@adacore.com>
1681
1682         * sem_disp.adb (Is_Inherited_Public_Operation): Extend the
1683         functionality of this routine to handle multiple levels of derivations.
1684
1685 2017-11-08  Hristian Kirtchev  <kirtchev@adacore.com>
1686
1687         * einfo.adb: Elist36 is now used as Nested_Scenarios.
1688         (Nested_Scenarios): New routine.
1689         (Set_Nested_Scenarios): New routine.
1690         (Write_Field36_Name): New routine.
1691         * einfo.ads: Add new attribute Nested_Scenarios along with occurrences
1692         in entities.
1693         (Nested_Scenarios): New routine along with pragma Inline.
1694         (Set_Nested_Scenarios): New routine along with pragma Inline.
1695         * sem_elab.adb (Find_And_Process_Nested_Scenarios): New routine.
1696         (Process_Nested_Scenarios): New routine.
1697         (Traverse_Body): When a subprogram body is traversed for the first
1698         time, find, save, and process all suitable scenarios found within.
1699         Subsequent traversals of the same subprogram body utilize the saved
1700         scenarios.
1701
1702 2017-11-08  Piotr Trojanek  <trojanek@adacore.com>
1703
1704         * lib-xref-spark_specific.adb (Add_SPARK_Scope): Remove detection of
1705         protected operations.
1706         (Add_SPARK_Xrefs): Simplify detection of empty entities.
1707         * get_spark_xrefs.ads, get_spark_xrefs.adb, put_spark_xrefs.ads,
1708         put_spark_xrefs.adb, spark_xrefs_test.adb: Remove code for writing,
1709         reading and testing SPARK cross-references stored in the ALI files.
1710         * lib-xref.ads (Output_SPARK_Xrefs): Remove.
1711         * lib-writ.adb (Write_ALI): Do not write SPARK cross-references to the
1712         ALI file.
1713         * spark_xrefs.ads, spark_xrefs.adb (pspark): Remove, together
1714         with description of the SPARK xrefs ALI format.
1715         * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Remove get_spark_refs.o
1716         and put_spark_refs.o.
1717
1718 2017-11-08  Hristian Kirtchev  <kirtchev@adacore.com>
1719
1720         * exp_ch4.adb (Apply_Accessibility_Check): Do not finalize the object
1721         when the associated access type is subject to pragma
1722         No_Heap_Finalization.
1723         * exp_intr.adb (Expand_Unc_Deallocation): Use the available view of the
1724         designated type in case it comes from a limited withed unit.
1725
1726 2017-11-08  Hristian Kirtchev  <kirtchev@adacore.com>
1727
1728         * exp_ch3.adb (Expand_N_Object_Declaration): Save and restore relevant
1729         SPARK-related flags.  Add ??? comment.
1730         * exp_util.adb (Insert_Actions): Add an entry for node
1731         N_Variable_Reference_Marker.
1732         * sem.adb (Analyze): Add an entry for node N_Variable_Reference_Marker.
1733         * sem_ch8.adb (Find_Direct_Name): Add constant Is_Assignment_LHS. Build
1734         and record a variable reference marker for the current name.
1735         (Find_Expanded_Name): Add constant Is_Assignment_LHS. Build and record
1736         a variable reference marker for the current name.
1737         * sem_elab.adb (Build_Variable_Reference_Marker): New routine.
1738         (Extract_Variable_Reference_Attributes): Reimplemented.
1739         (Info_Scenario): Add output for variable references and remove output
1740         for variable reads.
1741         (Info_Variable_Read): Removed.
1742         (Info_Variable_Reference): New routine.
1743         (Is_Suitable_Scenario): Variable references are now suitable scenarios
1744         while variable reads are not.
1745         (Output_Active_Scenarios): Add output for variable references and
1746         remove output for variable reads.
1747         (Output_Variable_Read): Removed.
1748         (Output_Variable_Reference): New routine.
1749         (Process_Variable_Read): Removed.
1750         (Process_Variable_Reference): New routine.
1751         (Process_Variable_Reference_Read): New routine.
1752         * sem_elab.ads (Build_Variable_Reference_Marker): New routine.
1753         * sem_res.adb (Resolve_Actuals): Build and record a variable reference
1754         marker for the current actual.
1755         * sem_spark.adb (Check_Node): Add an entry for node
1756         N_Variable_Reference_Marker.
1757         * sem_util.adb (Within_Subprogram_Call): Moved to the library level.
1758         * sem_util.ads (Within_Subprogram_Call): Moved to the library level.
1759         * sinfo.adb (Is_Read): New routine.
1760         (Is_Write): New routine.
1761         (Target): Updated to handle variable reference markers.
1762         (Set_Is_Read): New routine.
1763         (Set_Is_Write): New routine.
1764         (Set_Target): Updated to handle variable reference markers.
1765         * sinfo.ads: Add new attributes Is_Read and Is_Write along with
1766         occurrences in nodes. Update attribute Target. Add new node
1767         kind N_Variable_Reference_Marker.
1768         (Is_Read): New routine along with pragma Inline.
1769         (Is_Write): New routine along with pragma Inline.
1770         (Set_Is_Read): New routine along with pragma Inline.
1771         (Set_Is_Write): New routine along with pragma Inline.
1772         * sprint.adb (Sprint_Node_Actual): Add an entry for node
1773         N_Variable_Reference_Marker.
1774
1775 2017-11-08  Arnaud Charlet  <charlet@adacore.com>
1776
1777         * sem_util.adb (Subprogram_Name): Append suffix for overloaded
1778         subprograms.
1779
1780 2017-11-08  Yannick Moy  <moy@adacore.com>
1781
1782         * sem_ch8.adb (Use_One_Type, Update_Use_Clause_Chain): Do not report
1783         about unused use-type or use-package clauses inside inlined bodies.
1784
1785 2017-11-08  Hristian Kirtchev  <kirtchev@adacore.com>
1786
1787         * sem_elab.adb (Ensure_Prior_Elaboration): Add new parameter
1788         In_Partial_Fin along with a comment on its usage. Do not guarantee the
1789         prior elaboration of a unit when the need came from a partial
1790         finalization context.
1791         (In_Initialization_Context): Relocated to Process_Call.
1792         (Is_Partial_Finalization_Proc): New routine.
1793         (Process_Access): Add new parameter In_Partial_Fin along with a comment
1794         on its usage.
1795         (Process_Activation_Call): Add new parameter In_Partial_Fin along with
1796         a comment on its usage.
1797         (Process_Activation_Conditional_ABE_Impl): Add new parameter
1798         In_Partial_Fin along with a comment on its usage. Do not emit any ABE
1799         diagnostics when the activation occurs in a partial finalization
1800         context.
1801         (Process_Activation_Guaranteed_ABE_Impl): Add new parameter
1802         In_Partial_Fin along with a comment on its usage.
1803         (Process_Call): Add new parameter In_Partial_Fin along with a comment
1804         on its usage. A call is within a partial finalization context when it
1805         targets a finalizer or primitive [Deep_]Finalize, and the call appears
1806         in initialization actions. Pass this information down to the recursive
1807         steps of the Processing phase.
1808         (Process_Call_Ada): Add new parameter In_Partial_Fin along with a
1809         comment on its usage. Remove the guard which suppresses the generation
1810         of implicit Elaborate[_All] pragmas. This is now done in
1811         Ensure_Prior_Elaboration.
1812         (Process_Call_Conditional_ABE): Add new parameter In_Partial_Fin along
1813         with a comment on its usage. Do not emit any ABE diagnostics when the
1814         call occurs in a partial finalization context.
1815         (Process_Call_SPARK): Add new parameter In_Partial_Fin along with a
1816         comment on its usage.
1817         (Process_Instantiation): Add new parameter In_Partial_Fin along with a
1818         comment on its usage.
1819         (Process_Instantiation_Ada): Add new parameter In_Partial_Fin along
1820         with a comment on its usage.
1821         (Process_Instantiation_Conditional_ABE): Add new parameter
1822         In_Partial_Fin along with a comment on its usage. Do not emit any ABE
1823         diagnostics when the instantiation occurs in a partial finalization
1824         context.
1825         (Process_Instantiation_SPARK): Add new parameter In_Partial_Fin along
1826         with a comment on its usage.
1827         (Process_Scenario): Add new parameter In_Partial_Fin along  with a
1828         comment on its usage.
1829         (Process_Single_Activation): Add new parameter In_Partial_Fin along
1830         with a comment on its usage.
1831         (Traverse_Body): Add new parameter In_Partial_Fin along with a comment
1832         on its usage.
1833
1834 2017-11-08  Arnaud Charlet  <charlet@adacore.com>
1835
1836         * sem_ch13.adb: Add optional parameter to Error_Msg.
1837
1838 2017-11-08  Jerome Lambourg  <lambourg@adacore.com>
1839
1840         * fname.adb (Is_Internal_File_Name): Do not check the 8+3 naming schema
1841         for the Interfaces.* hierarchy as longer unit names are now allowed.
1842
1843 2017-11-08  Arnaud Charlet  <charlet@adacore.com>
1844
1845         * sem_util.adb (Subprogram_Name): Emit sloc for the enclosing
1846         subprogram as well.  Support more cases of entities.
1847         (Append_Entity_Name): Add some defensive code.
1848
1849 2017-11-06  Eric Botcazou  <ebotcazou@adacore.com>
1850
1851         * gcc-interface/misc.c (gnat_post_options): Clear warn_return_type.
1852
1853 2017-10-31  Eric Botcazou  <ebotcazou@adacore.com>
1854
1855         PR ada/82785
1856         * gcc-interface/Makefile.in (m68k/Linux): Fix typo.
1857
1858 2017-10-21  Eric Botcazou  <ebotcazou@adacore.com>
1859
1860         * gcc-interface/Makefile.in: Remove bogus settings for VxWorks.
1861
1862 2017-10-21  Eric Botcazou  <ebotcazou@adacore.com>
1863
1864         * gcc-interface/utils.c (pad_type_hash): Use hashval_t for hash value.
1865         (convert): Do not use an unchecked conversion for converting from a
1866         type to another type padding it.
1867
1868 2017-10-20  Doug Rupp  <rupp@adacore.com>
1869
1870         * libgnarl/s-osinte__linux.ads (Relative_Timed_Wait): Add variable
1871         needed for using monotonic clock.
1872         * libgnarl/s-taprop__linux.adb: Revert previous monotonic clock
1873         changes.
1874         * libgnarl/s-taprop__linux.adb, s-taprop__posix.adb: Unify and factor
1875         out monotonic clock related functions body.
1876         (Timed_Sleep, Timed_Delay, Montonic_Clock, RT_Resolution,
1877         Compute_Deadline): Move to...
1878         * libgnarl/s-tpopmo.adb: ... here. New separate package body.
1879
1880 2017-10-20  Ed Schonberg  <schonberg@adacore.com>
1881
1882         * sem_util.adb (Is_Controlling_Limited_Procedure): Handle properly the
1883         case where the controlling formal is an anonymous access to interface
1884         type.
1885         * exp_ch9.adb (Extract_Dispatching_Call): If controlling actual is an
1886         access type, handle properly the the constructed dereference that
1887         designates the object used in the rewritten synchronized call.
1888         (Parameter_Block_Pack): If the type of the actual is by-copy, its
1889         generated declaration in the parameter block does not need an
1890         initialization even if the type is a null-excluding access type,
1891         because it will be initialized with the value of the actual later on.
1892         (Parameter_Block_Pack): Do not add controlling actual to parameter
1893         block when its type is by-copy.
1894
1895 2017-10-20  Justin Squirek  <squirek@adacore.com>
1896
1897         * sem_ch8.adb (Update_Use_Clause_Chain): Add sanity check to verify
1898         scope stack traversal into the context clause.
1899
1900 2017-10-20  Bob Duff  <duff@adacore.com>
1901
1902         * sinfo.ads: Fix a comment typo.
1903
1904 2017-10-20  Eric Botcazou  <ebotcazou@adacore.com>
1905
1906         * doc/gnat_ugn/building_executable_programs_with_gnat.rst (-flto): Add
1907         warning against usage in conjunction with -gnatn.
1908         (-fdump-xref): Delete entry.
1909         * doc/gnat_ugn/gnat_utility_programs.rst (--ext): Remove mention of
1910         -fdump-xref switch.
1911         * gnat_ugn.texi: Regenerate.
1912
1913 2017-10-20  Hristian Kirtchev  <kirtchev@adacore.com>
1914
1915         * sem_type.adb, exp_util.adb, sem_util.adb, sem_dim.adb, sem_elab.adb:
1916         Minor reformatting.
1917
1918 2017-10-20  Yannick Moy  <moy@adacore.com>
1919
1920         * sem_dim.adb (Analyze_Dimension_Binary_Op): Accept with a warning to
1921         compare a dimensioned expression with a literal.
1922         (Dim_Warning_For_Numeric_Literal): Do not issue a warning for the
1923         special value zero.
1924         * doc/gnat_ugn/gnat_and_program_execution.rst: Update description of
1925         dimensionality system in GNAT.
1926         * gnat_ugn.texi: Regenerate.
1927
1928 2017-10-20  Yannick Moy  <moy@adacore.com>
1929
1930         * sem_ch6.adb (Analyze_Expression_Function.Freeze_Expr_Types): Remove
1931         inadequate silencing of errors.
1932         * sem_util.adb (Check_Part_Of_Reference): Do not issue an error when
1933         checking the subprogram body generated from an expression function,
1934         when this is done as part of the preanalysis done on expression
1935         functions, as the subprogram body may not yet be attached in the AST.
1936         The error if any will be issued later during the analysis of the body.
1937         (Is_Aliased_View): Trivial rewrite with Is_Formal_Object.
1938
1939 2017-10-20  Arnaud Charlet  <charlet@adacore.com>
1940
1941         * sem_ch8.adb (Update_Chain_In_Scope): Add missing [-gnatwu] marker for
1942         warning on ineffective use clause.
1943
1944 2017-10-20  Eric Botcazou  <ebotcazou@adacore.com>
1945
1946         * exp_ch11.ads (Warn_If_No_Local_Raise): Declare.
1947         * exp_ch11.adb (Expand_Exception_Handlers): Use Warn_If_No_Local_Raise
1948         to issue the warning on the absence of local raise.
1949         (Possible_Local_Raise): Do not issue the warning for Call_Markers.
1950         (Warn_If_No_Local_Raise): New procedure to issue the warning on the
1951         absence of local raise.
1952         * sem_elab.adb: Add with and use clauses for Exp_Ch11.
1953         (Record_Elaboration_Scenario): Call Possible_Local_Raise in the cases
1954         where a scenario could give rise to raising Program_Error.
1955         * sem_elab.adb: Typo fixes.
1956         * fe.h (Warn_If_No_Local_Raise): Declare.
1957         * gcc-interface/gigi.h (get_exception_label): Change return type.
1958         * gcc-interface/trans.c (gnu_constraint_error_label_stack): Change to
1959         simple vector of Entity_Id.
1960         (gnu_storage_error_label_stack): Likewise.
1961         (gnu_program_error_label_stack): Likewise.
1962         (gigi): Adjust to above changes.
1963         (Raise_Error_to_gnu): Likewise.
1964         (gnat_to_gnu) <N_Goto_Statement>: Set TREE_USED on the label.
1965         (N_Push_Constraint_Error_Label): Push the label onto the stack.
1966         (N_Push_Storage_Error_Label): Likewise.
1967         (N_Push_Program_Error_Label): Likewise.
1968         (N_Pop_Constraint_Error_Label): Pop the label from the stack and issue
1969         a warning on the absence of local raise.
1970         (N_Pop_Storage_Error_Label): Likewise.
1971         (N_Pop_Program_Error_Label): Likewise.
1972         (push_exception_label_stack): Delete.
1973         (get_exception_label): Change return type to Entity_Id and adjust.
1974         * gcc-interface/utils2.c (build_goto_raise): Change type of first
1975         parameter to Entity_Id and adjust.  Set TREE_USED on the label.
1976         (build_call_raise): Adjust calls to get_exception_label and also
1977         build_goto_raise.
1978         (build_call_raise_column): Likewise.
1979         (build_call_raise_range): Likewise.
1980         * doc/gnat_ugn/building_executable_programs_with_gnat.rst (-gnatw.x):
1981         Document actual default behavior.
1982
1983 2017-10-20  Piotr Trojanek  <trojanek@adacore.com>
1984
1985         * einfo.ads: Minor consistent punctuation in comment.  All numbered
1986         items in the comment of Is_Internal are now terminated with a period.
1987
1988 2017-10-20  Piotr Trojanek  <trojanek@adacore.com>
1989
1990         * exp_util.adb (Build_Temporary): Mark created temporary entity as
1991         internal.
1992
1993 2017-10-20  Piotr Trojanek  <trojanek@adacore.com>
1994
1995         * sem_type.adb (In_Generic_Actual): Simplified.
1996
1997 2017-10-20  Justin Squirek  <squirek@adacore.com>
1998
1999         * sem_ch12.adb (Check_Formal_Package_Instance): Add sanity check to
2000         verify a renaming exists for a generic formal before comparing it to
2001         the actual as defaulted formals will not have a renamed_object.
2002
2003 2017-10-20  Javier Miranda  <miranda@adacore.com>
2004
2005         * exp_ch6.adb (Replace_Returns): Fix wrong management of
2006         N_Block_Statement nodes.
2007
2008 2017-10-20  Bob Duff  <duff@adacore.com>
2009
2010         * exp_aggr.adb (Initialize_Array_Component): Avoid adjusting a
2011         component of an array aggregate if it is initialized by a
2012         build-in-place function call.
2013         * exp_ch6.adb (Is_Build_In_Place_Result_Type): Use -gnatd.9 to disable
2014         bip for nonlimited types.
2015         * debug.adb: Document -gnatd.9.
2016
2017 2017-10-20  Bob Duff  <duff@adacore.com>
2018
2019         * sem_ch12.adb: Remove redundant setting of Parent.
2020
2021 2017-10-20  Eric Botcazou  <ebotcazou@adacore.com>
2022
2023         * sem_ch4.adb (Find_Concatenation_Types): Filter out operators if one
2024         of the operands is a string literal.
2025
2026 2017-10-20  Bob Duff  <duff@adacore.com>
2027
2028         * einfo.ads: Comment fix.
2029
2030 2017-10-20  Clement Fumex  <fumex@adacore.com>
2031
2032         * switch-c.adb: Remove -gnatwm from the switches triggered by -gnateC.
2033
2034 2017-10-20  Ed Schonberg  <schonberg@adacore.com>
2035
2036         * sem_dim.adb (Extract_Power): Accept dimension values that are not
2037         non-negative integers when the dimensioned base type is an Integer
2038         type.
2039
2040 2017-10-20  Bob Duff  <duff@adacore.com>
2041
2042         * sinfo.ads, sinfo.adb (Alloc_For_BIP_Return): New flag to indicate
2043         that an allocator came from a b-i-p return statement.
2044         * exp_ch4.adb (Expand_Allocator_Expression): Avoid adjusting the return
2045         object of a nonlimited build-in-place function call.
2046         * exp_ch6.adb (Expand_N_Extended_Return_Statement): Set the
2047         Alloc_For_BIP_Return flag on generated allocators.
2048         * sem_ch5.adb (Analyze_Assignment): Move Assert to where it can't fail.
2049         If the N_Assignment_Statement has been transformed into something else,
2050         then Should_Transform_BIP_Assignment won't work.
2051         * exp_ch3.adb (Expand_N_Object_Declaration): A previous revision said,
2052         "Remove Adjust if we're building the return object of an extended
2053         return statement in place." Back out that part of the change, because
2054         the Alloc_For_BIP_Return flag is now used for that.
2055
2056 2017-10-19  Bob Duff  <duff@adacore.com>
2057
2058         * exp_ch6.adb (Is_Build_In_Place_Result_Type): Fix silly bug -- "Typ"
2059         should be "T".  Handle case of a subtype of a class-wide type.
2060
2061 2017-10-19  Bob Duff  <duff@adacore.com>
2062
2063         * exp_util.adb: (Process_Statements_For_Controlled_Objects): Clarify
2064         which node kinds can legitimately be ignored, and raise Program_Error
2065         for others.
2066
2067 2017-10-19  Hristian Kirtchev  <kirtchev@adacore.com>
2068
2069         * sem_elab.adb (Compilation_Unit): Handle the case of a subprogram
2070         instantiation that acts as a compilation unit.
2071         (Find_Code_Unit): Reimplemented.
2072         (Find_Top_Unit): Reimplemented.
2073         (Find_Unit_Entity): New routine.
2074         (Process_Instantiation_SPARK): Correct the elaboration requirement a
2075         package instantiation imposes on a unit.
2076
2077 2017-10-19  Bob Duff  <duff@adacore.com>
2078
2079         * exp_ch6.adb (Is_Build_In_Place_Result_Type): Enable build-in-place
2080         for a narrow set of controlled types.
2081
2082 2017-10-19  Eric Botcazou  <ebotcazou@adacore.com>
2083
2084         * sinput.ads (Line_Start): Add pragma Inline.
2085         * widechar.ads (Is_Start_Of_Wide_Char): Likewise.
2086
2087 2017-10-19  Bob Duff  <duff@adacore.com>
2088
2089         * exp_attr.adb (Expand_N_Attribute_Reference): Disable
2090         Make_Build_In_Place_Call_... for F(...)'Old, where F(...) is a
2091         build-in-place function call so that the temp is declared in the right
2092         place.
2093
2094 2017-10-18  Eric Botcazou  <ebotcazou@adacore.com>
2095
2096         * gcc-interface/misc.c (gnat_tree_size): Move around.
2097
2098         * gcc-interface/utils.c (max_size): Deal with SSA names.
2099
2100 2017-10-17  Jakub Jelinek  <jakub@redhat.com>
2101
2102         * gcc-interface/misc.c (gnat_tree_size): New function.
2103         (LANG_HOOKS_TREE_SIZE): Redefine.
2104
2105 2017-10-14  Hristian Kirtchev  <kirtchev@adacore.com>
2106
2107         * sem_elab.adb (In_Preelaborated_Context): A generic package subject to
2108         Remote_Call_Interface is not a suitable preelaboratd context when the
2109         call appears in the package body.
2110
2111 2017-10-14  Eric Botcazou  <ebotcazou@adacore.com>
2112
2113         * layout.ads (Set_Elem_Alignment): Add Align parameter defaulted to 0.
2114         * layout.adb (Set_Elem_Alignment): Likewise.  Use M name as maximum
2115         alignment for consistency.  If Align is non-zero, use the minimum of
2116         Align and M for the alignment.
2117         * cstand.adb (Build_Float_Type): Use Set_Elem_Alignment instead of
2118         setting the alignment directly.
2119
2120 2017-10-14  Ed Schonberg  <schonberg@adacore.com>
2121
2122         * sem_prag.adb (Analyze_Pragma, case Check): Defer evaluation of the
2123         optional string in an Assert pragma until the expansion of the pragma
2124         has rewritten it as a conditional statement, so that the string
2125         argument is only evaluaed if the assertion fails. This is mandated by
2126         RM 11.4.2.
2127
2128 2017-10-14  Hristian Kirtchev  <kirtchev@adacore.com>
2129
2130         * debug.adb: Switch -gnatd.v and associated flag are now used to
2131         enforce the SPARK rules for elaboration in SPARK code.
2132         * sem_elab.adb: Describe switch -gnatd.v.
2133         (Process_Call): Verify the SPARK rules only when -gnatd.v is in effect.
2134         (Process_Instantiation): Verify the SPARK rules only when -gnatd.v is
2135         in effect.
2136         (Process_Variable_Assignment): Clarify why variable assignments are
2137         processed reglardless of whether -gnatd.v is in effect.
2138         * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Update the
2139         sections on elaboration code and compilation switches.
2140         * gnat_ugn.texi: Regenerate.
2141
2142 2017-10-14  Gary Dismukes  <dismukes@adacore.com>
2143
2144         * exp_util.adb, freeze.adb, sem_aggr.adb, sem_util.ads, sem_util.adb,
2145         sem_warn.adb: Minor reformattings.
2146
2147 2017-10-14  Ed Schonberg  <schonberg@adacore.com>
2148
2149         * doc/gnat_rm/implementation_defined_aspects.rst: Add documentation
2150         for reverse iteration over formal containers.
2151         * gnat_rm.texi: Regenerate.
2152
2153 2017-10-14  Hristian Kirtchev  <kirtchev@adacore.com>
2154
2155         * sem_elab.adb (Ensure_Dynamic_Prior_Elaboration): Renamed to
2156         Ensure_Prior_Elaboration_Dynamic for consistency reasons.
2157         (Ensure_Static_Prior_Elaboration): Renamed to
2158         Ensure_Prior_Elaboration_Static for consistency reasons.
2159         (Info_Variable_Reference): Renamed to Info_Variable_Read in order to
2160         reflect its new purpose.
2161         (Is_Initialized): New routine.
2162         (Is_Suitable_Variable_Reference): Renamed to Is_Suitable_Variable_Read
2163         in order to reflect its new purpose.
2164         (Is_Variable_Read): New routine.
2165         (Output_Variable_Reference): Renamed to Output_Variable_Read in order
2166         to reflect its new purpose.
2167         (Process_Variable_Assignment): This routine now acts as a top level
2168         dispatcher for variable assignments.
2169         (Process_Variable_Assignment_Ada): New routine.
2170         (Process_Variable_Assignment_SPARK): New routine.
2171         (Process_Variable_Reference): Renamed to Process_Variable_Read in order
2172         to reflects its new purpose. A reference to a variable is now suitable
2173         for ABE processing only when it is a read. The logic in the routine now
2174         reflects the latest SPARK elaboration rules.
2175
2176 2017-10-14  Justin Squirek  <squirek@adacore.com>
2177
2178         * sem_ch8.adb (Analyze_Subprogram_Renaming): Modify condition that
2179         triggers marking on formal subprograms.
2180
2181 2017-10-14  Javier Miranda  <miranda@adacore.com>
2182
2183         * checks.adb (Ensure_Valid): Do not skip adding the validity check on
2184         renamings of objects that come from the sources.
2185
2186 2017-10-14  Eric Botcazou  <ebotcazou@adacore.com>
2187
2188         * cstand.adb (Build_Float_Type): Move down Siz parameter, add Align
2189         parameter and set the alignment of the type to Align.
2190         (Copy_Float_Type): Adjust call to Build_Float_Type.
2191         (Register_Float_Type): Add pragma Unreferenced for Precision.  Adjust
2192         call to Build_Float_Type and do not set RM_Size and Alignment.
2193
2194 2017-10-14  Patrick Bernardi  <bernardi@adacore.com>
2195
2196         * Makefile.rtl (GNATRTL_NONTASKING_OBJ): Add s-soliin to
2197         GNATRTL_NONTASKING_OBJ.
2198
2199 2017-10-14  Bob Duff  <duff@adacore.com>
2200
2201         * exp_ch6.adb (Is_Build_In_Place_Result_Type): Include code for
2202         enabling b-i-p for nonlimited controlled types (but disabled).
2203
2204 2017-10-14  Justin Squirek  <squirek@adacore.com>
2205
2206         * sem_elab.adb (Is_Suitable_Variable_Assignment): Replace call to
2207         Has_Warnings_Off with Warnings_Off.
2208
2209 2017-10-14  Piotr Trojanek  <trojanek@adacore.com>
2210
2211         * sinfo.ads (Generic_Parent): Remove wrong (possibly obsolete) comment.
2212
2213 2017-10-14  Hristian Kirtchev  <kirtchev@adacore.com>
2214
2215         * sem_ch3.adb (Analyze_Declarations): Analyze the contract of an
2216         enclosing package at the end of the visible declarations.
2217         * sem_prag.adb (Analyze_Initialization_Item): Suppress the analysis of
2218         an initialization item which is undefined due to some illegality.
2219
2220 2017-10-14  Patrick Bernardi  <bernardi@adacore.com>
2221
2222         * ali.adb: Add new ALI line 'T' to read the number of tasks contain
2223         within each unit that require a default-sized primary and secondary
2224         stack to be generated by the binder.
2225         (Scan_ALI): Scan new 'T' lines.
2226         * ali.ads: Add Primary_Stack_Count and Sec_Stack_Count to Unit_Record.
2227         * bindgen.adb (Gen_Output_File): Count the number of default-sized
2228         stacks within the closure that are to be created by the binder.
2229         (Gen_Adainit, Gen_Output_File_Ada): Generate default-sized secondary
2230         stacks and record these in System.Secodnary_Stack.
2231         (Resolve_Binder_Options): Check if System.Secondary_Stack is in the
2232         closure of the program being bound.
2233         * bindusg.adb (Display): Add "-Q" switch. Remove rouge "--RTS" comment.
2234         * exp_ch3.adb (Count_Default_Sized_Task_Stacks): New routine.
2235         (Expand_N_Object_Declaration): Count the number of default-sized stacks
2236         used by task objects contained within the object whose declaration is
2237         being expanded.  Only performed when either the restrictions
2238         No_Implicit_Heap_Allocations or No_Implicit_Task_Allocations are in
2239         effect.
2240         * exp_ch9.adb (Create_Secondary_Stack_For_Task): New routine.
2241         (Expand_N_Task_Type_Declaration): Create a secondary stack as part of
2242         the expansion of a task type if the size of the stack is known at
2243         run-time and the restrictions No_Implicit_Heap_Allocations or
2244         No_Implicit_Task_Allocations are in effect.
2245         (Make_Task_Create_Call): If using a restricted profile provide
2246         secondary stack parameter: either the statically created stack or null.
2247         * lib-load.adb (Create_Dummy_Package_Unit, Load_Unit,
2248         Load_Main_Source): Include Primary_Stack_Count and Sec_Stack_Count in
2249         Unit_Record initialization expressions.
2250         * lib-writ.adb (Add_Preprocessing_Dependency,
2251         Ensure_System_Dependency): Include Primary_Stack_Count and
2252         Sec_Stack_Count in Unit_Record initialization expression.
2253         (Write_ALI): Write T lines.
2254         (Write_Unit_Information): Do not output 'T' lines if there are no
2255         stacks for the binder to generate.
2256         * lib-writ.ads: Updated library information documentation to include
2257         new T line entry.
2258         * lib.adb (Increment_Primary_Stack_Count): New routine.
2259         (Increment_Sec_Stack_Count): New routine.
2260         (Primary_Stack_Count): New routine.
2261         (Sec_Stack_Count): New routine.
2262         * lib.ads: Add Primary_Stack_Count and Sec_Stack_Count components to
2263         Unit_Record and updated documentation.
2264         (Increment_Primary_Stack_Count): New routine along with pragma Inline.
2265         (Increment_Sec_Stack_Count): New routine along with pragma Inline.
2266         (Primary_Stack_Count): New routine along with pragma Inline.
2267         (Sec_Stack_Count): New routine along with pragma Inline.
2268         * opt.ads: New constant No_Stack_Size.  Flag Default_Stack_Size
2269         redefined.  New flag Default_Sec_Stack_Size and
2270         Quantity_Of_Default_Size_Sec_Stacks.
2271         * rtfinal.c Fixed erroneous comment.
2272         * rtsfind.ads: Moved RE_Default_Secondary_Stack_Size from
2273         System.Secondary_Stack to System.Parameters.  Add RE_SS_Stack.
2274         * sem_util.adb (Number_Of_Elements_In_Array): New routine.
2275         * sem_util.ads (Number_Of_Elements_In_Array): New routine.
2276         * switch-b.adb (Scan_Binder_Switches): Scan "-Q" switch.
2277         * libgnarl/s-solita.adb (Get_Sec_Stack_Addr): Removed routine.
2278         (Set_Sec_Stack_Addr): Removed routine.
2279         (Get_Sec_Stack): New routine.
2280         (Set_Sec_Stack): New routine.
2281         (Init_Tasking_Soft_Links): Update System.Soft_Links reference to
2282         reflect new procedure and global names.
2283         * libgnarl/s-taprop__linux.adb, libgnarl/s-taprop__mingw.adb,
2284         libgnarl/s-taprop__posix.adb, libgnarl/s-taprop__solaris.adb,
2285         libgnarl/s-taprop__vxworks.adb (Register_Foreign_Thread): Update
2286         parameter profile to allow the secondary stack size to be specified.
2287         * libgnarl/s-tarest.adb (Create_Restricted_Task): Update the parameter
2288         profile to include Sec_Stack_Address.  Update Tasking.Initialize_ATCB
2289         call to remove Secondary_Stack_Size reference.  Add secondary stack
2290         address and size to SSL.Create_TSD call.
2291         (Task_Wrapper): Remove secondary stack creation.
2292         * libgnarl/s-tarest.ads (Create_Restricted_Task,
2293         Create_Restricted_Task_Sequential): Update parameter profile to include
2294         Sec_Stack_Address and clarify the Size parameter.
2295         * libgnarl/s-taskin.adb (Initialize_ATCB): Remove Secondary_Stack_Size
2296         from profile and body.
2297         (Initialize): Remove Secondary_Stack_Size from Initialize_ATCB call.
2298         * libgnarl/s-taskin.ads: Removed component Secondary_Stack_Size from
2299         Common_ATCB.
2300         (Initialize_ATCB): Update the parameter profile to remove
2301         Secondary_Stack_Size.
2302         * libgnarl/s-tassta.adb (Create_Task): Updated parameter profile and
2303         call to Initialize_ATCB.  Add secondary stack address and size to
2304         SSL.Create_TSD call, and catch any storage exception from the call.
2305         (Finalize_Global_Tasks): Update System.Soft_Links references to reflect
2306         new subprogram and component names.
2307         (Task_Wrapper): Remove secondary stack creation.
2308         (Vulnerable_Complete_Master): Update to reflect TSD changes.
2309         * libgnarl/s-tassta.ads: Reformat comments.
2310         (Create_Task): Update parameter profile.
2311         * libgnarl/s-tporft.adb (Register_Foreign_Thread): Update parameter
2312         profile to include secondary stack size. Remove secondary size
2313         parameter from Initialize_ATCB call and add it to Create_TSD call.
2314         * libgnat/s-parame.adb, libgnat/s-parame__rtems.adb,
2315         libgnat/s-parame__vxworks.adb (Default_Sec_Stack_Size): New routine.
2316         * libgnat/s-parame.ads, libgnat/s-parame__ae653.ads,
2317         libgnat/s-parame__hpux.ads, libgnat/s-parame__vxworks.ads: Remove type
2318         Percentage.  Remove constants Dynamic, Sec_Stack_Percentage and
2319         Sec_Stack_Dynamic.  Add constant Runtime_Default_Sec_Stack_Size and
2320         Sec_Stack_Dynamic.
2321         (Default_Sec_Stack_Size): New routine.
2322         * libgnat/s-secsta.adb, libgnat/s-secsta.ads: New implementation. Is
2323         now Preelaborate.
2324         * libgnat/s-soflin.adb: Removed unused with-clauses.  With
2325         System.Soft_Links.Initialize to initialize non-tasking TSD.
2326         (Create_TSD): Update parameter profile. Initialize the TSD and
2327         unconditionally call SS_Init.
2328         (Destroy_TSD): Update SST.SS_Free call.
2329         (Get_Sec_Stack_Addr_NT, Get_Sec_Stack_Addr_Soft, Set_Sec_Stack_Addr_NT,
2330         Set_Sec_Stack_Addr_Soft): Remove routines.
2331         (Get_Sec_Stack_NT, Get_Sec_Stack_Soft, Set_Sec_Stack_NT,
2332         Set_Sec_Stack_Soft): Add routines.
2333         (NT_TSD): Move to private part of package specification.
2334         * libgnat/s-soflin.ads: New types Get_Stack_Call and Set_Stack_Call
2335         with suppressed access checks.  Renamed *_Sec_Stack_Addr_* routines and
2336         objects to *_Sec_Stack_*.  TSD: removed warning suppression and
2337         component intialization. Changed Sec_Stack_Addr to Sec_Stack_Ptr.
2338         (Create_TSD): Update parameter profile.
2339         (NT_TSD): Move to private section from body.
2340         * libgnat/s-soliin.adb, libgnat/s-soliin.ads: New files.
2341         * libgnat/s-thread.ads (Thread_Body_Enter): Update parameter profile.
2342         * libgnat/s-thread__ae653.adb (Get_Sec_Stack_Addr, Set_Sec_Stack_Addr):
2343         Remove routine.
2344         (Get_Sec_Stack, Set_Sec_Stack): Add routine.
2345         (Thread_Body_Enter): Update parameter profile and body to adapt to new
2346         System.Secondary_Stack.
2347         (Init_RTS): Update body for new System.Soft_Links names.
2348         * gcc-interface/Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add
2349         s-soliin.o.
2350
2351 2017-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
2352
2353         * gcc-interface/decl.c (annotate_value): Use wi::to_wide when
2354         operating on trees as wide_ints.
2355
2356 2017-10-09  Hristian Kirtchev  <kirtchev@adacore.com>
2357
2358         * sem_unit.adb (Find_Enclosing_Scope): Do not treat a block statement
2359         as a scoping construct when it is byproduct of exception handling.
2360
2361 2017-10-09  Hristian Kirtchev  <kirtchev@adacore.com>
2362
2363         * sinfo.ads: Update table Is_Syntactic_Field to reflect the nature of
2364         semantic field Target of node N_Call_Marker.
2365
2366 2017-10-09  Ed Schonberg  <schonberg@adacore.com>
2367
2368         * sem_res.adb (Resolve_Allocator): Reject properly an allocator that
2369         attempts to copy a limited value, when the allocator is the expression
2370         in an expression function.
2371
2372 2017-10-09  Joel Brobecker  <brobecker@adacore.com>
2373
2374         * doc/share/conf.py: Tell the style checker that this is a Python
2375         fragment, and therefore that pyflakes should not be run to validate
2376         this file.
2377
2378 2017-10-09  Eric Botcazou  <ebotcazou@adacore.com>
2379
2380         * einfo.ads (Is_Boolean_Type): Add pragma Inline.
2381         (Is_Entity_Name): Likewise.
2382         (Is_String_Type): Likewise.
2383         * sem_type.adb (Full_View_Covers): Do not test Is_Private_Type here
2384         and remove useless comparisons on the base types.
2385         (Covers): Use simple tests for Standard_Void_Type.  Move up cheap tests
2386         on T2.  Always test Is_Private_Type before Full_View_Covers.
2387
2388 2017-10-09  Bob Duff  <duff@adacore.com>
2389
2390         * exp_ch4.adb: Minor refactoring.
2391
2392 2017-10-09  Javier Miranda  <miranda@adacore.com>
2393
2394         * sem_ch3.adb (Replace_Components): Browse the list of discriminants,
2395         not components.
2396
2397 2017-10-09  Hristian Kirtchev  <kirtchev@adacore.com>
2398
2399         * sem_elab.adb (Static_Elaboration_Checks): Elaboration requirements
2400         are verified only in the static model.
2401
2402 2017-10-09  Ed Schonberg  <schonberg@adacore.com>
2403
2404         * sem_ch5.adb (Analyze_Iterator_Specification,
2405         Check_Reverse_Iteration): Check that the domain of iteration supports
2406         reverse iteration when it is a formal container.  This requires the
2407         presence of a Previous primitive in the Iterable aspect.
2408         * sem_ch13.adb (Resolve_Iterable_Operation): Verify legality of
2409         primitives Last and Previous to support reverse iteration over formal
2410         containers.
2411         (Validate_Iterable_Aspect): Add check for reverse iteration operations.
2412         * exp_ch5.adb (Build_Formal_Container_Iteration): Add proper expansion
2413         for reverse iteration using primitives Last and Previous in generated
2414         loop.
2415
2416 2017-10-09  Ed Schonberg  <schonberg@adacore.com>
2417
2418         * sem_util.adb (Subprogram_Name): If this is a child unit, use the name
2419         of the Defining_Program_Unit_Name, which is an identifier, in order to
2420         construct the string for the fully qualified name.
2421
2422 2017-10-09  Justin Squirek  <squirek@adacore.com>
2423
2424         * sem_ch3.adb: Rename Uses_Unseen_Priv into
2425         Contains_Lib_Incomplete_Type.
2426
2427 2017-10-09  Hristian Kirtchev  <kirtchev@adacore.com>
2428
2429         * sem_aggr.adb, sem_spark.adb, adabkend.adb, exp_ch5.adb, frontend.adb,
2430         sem_ch12.adb, fmap.adb, exp_ch6.adb, exp_spark.adb, lib-load.adb,
2431         exp_ch9.adb, osint.adb, exp_disp.adb, sem_ch8.adb, sem_ch8.ads,
2432         prepcomp.adb, gnat1drv.adb, atree.adb, sinput-l.adb, targparm.adb,
2433         sem_ch10.adb, par-ch8.adb: Minor reformatting.
2434
2435 2017-10-09  Hristian Kirtchev  <kirtchev@adacore.com>
2436
2437         * sem_elab.adb (Is_Suitable_Access): This scenario is now only relevant
2438         in the static model.
2439         (Is_Suitable_Variable_Assignment): This scenario is now only relevant
2440         in the static model.
2441         (Is_Suitable_Variable_Reference): This scenario is now only relevant in
2442         the static model.
2443
2444 2017-10-09  Ed Schonberg  <schonberg@adacore.com>
2445
2446         * sem_ch3.adb (Analyze_Declarations): In ASIS mode, resolve aspect
2447         expressions when the enclosing scope is a subprogram body and the next
2448         declaration is a body that freezes entities previously declared in the
2449         scope.
2450
2451 2017-10-09  Justin Squirek  <squirek@adacore.com>
2452
2453         * sem_ch8.adb (Analyze_Use_Package): Remove checking of mixture between
2454         ghost packages and living packages in use clauses.
2455         (Use_One_Type, Note_Redundant_Use): Correct warning messages
2456
2457 2017-10-09  Justin Squirek  <squirek@adacore.com>
2458
2459         * osint.ads: Document new parameter FD for Read_Source_File.
2460
2461 2017-10-09  Ed Schonberg  <schonberg@adacore.com>
2462
2463         * exp_util.adb (Make_Predicate_Call): If the type of the expression to
2464         which the predicate check applies is tagged, convert the expression to
2465         that type. This is in most cases a no-op, but is relevant if the
2466         expression is clas-swide, because the predicate function being invoked
2467         is not a primitive of the type and cannot take a class-wide actual.
2468
2469 2017-10-09  Gary Dismukes  <dismukes@adacore.com>
2470
2471         * exp_disp.adb: Minor reformatting.
2472
2473 2017-10-09  Arnaud Charlet  <charlet@adacore.com>
2474
2475         * sem_warn.adb (Warn_On_Unreferenced_Entity): Fix typo.
2476
2477 2017-10-09  Hristian Kirtchev  <kirtchev@adacore.com>
2478
2479         * sem_elab.adb (Install_ABE_Check): Do not generate an ABE check for
2480         GNATprove.
2481         (Install_ABE_Failure): Do not generate an ABE failure for GNATprove.
2482
2483 2017-10-09  Bob Duff  <duff@adacore.com>
2484
2485         * exp_ch6.adb: (Make_Build_In_Place_Call_In_Object_Declaration): Return
2486         immediately if the call has already been processed (by a previous call
2487         to Make_Build_In_Place_Call_In_Anonymous_Context).
2488         * sem_elab.adb: Minor typo fixes.
2489
2490 2017-10-09  Ed Schonberg  <schonberg@adacore.com>
2491
2492         * sem_ch13.adb (Replace_Type_Ref): In the expression for a dynamic
2493         predicate, do not replace an identifier that matches the type if the
2494         identifier is a selector in a selected component, because this
2495         indicates a reference to some homograph of the type itself, and  not to
2496         the current occurence in the predicate.
2497
2498 2017-10-09  Eric Botcazou  <ebotcazou@adacore.com>
2499
2500         * repinfo.adb (List_Record_Layout): Tweak formatting.
2501         (Write_Val): Remove superfluous spaces in back-end layout mode.
2502
2503 2017-10-09  Piotr Trojanek  <trojanek@adacore.com>
2504
2505         * sem_res.adb (Property_Error): Remove.
2506         (Resolve_Actuals): check for SPARK RM 7.1.3(10) rewritten to match the
2507         current wording of the rule.
2508
2509 2017-10-09  Justin Squirek  <squirek@adacore.com>
2510
2511         * sem_ch3.adb (Analyze_Declarations): Add check for ghost packages
2512         before analyzing a given scope due to an expression function.
2513         (Uses_Unseen_Lib_Unit_Priv): Rename to Uses_Unseen_Priv.
2514
2515 2017-10-09  Bob Duff  <duff@adacore.com>
2516
2517         * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Use
2518         Defining_Identifier (Obj_Decl) in two places, because it might have
2519         changed.
2520         * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Deal with cases
2521         involving 'Input on (not visibly) derived types.
2522
2523 2017-10-09  Hristian Kirtchev  <kirtchev@adacore.com>
2524
2525         * atree.adb: Add new soft link Rewriting_Proc.
2526         (Rewrite): Invoke the subprogram attached to the rewriting soft link.
2527         (Set_Rewriting_Proc): New routine.
2528         * attree.ads: Add new access-to-subprogram type Rewrite_Proc.
2529         (Set_Rewriting_Proc): New routine.
2530         * checks.adb (Install_Primitive_Elaboration_Check): Use 'E' character
2531         for *E*laboration flag to maintain consistency with other elaboration
2532         flag generating subprograms.
2533         * debug.adb: Document the new usage of flag -gnatdL.
2534         * einfo.adb: Node19 is now used as Receiving_Entry.  Node39 is now used
2535         as Protected_Subprogram.  Flag148 is now used as
2536         Is_Elaboration_Checks_OK_Id.  Flag302 is now used as
2537         Is_Initial_Condition_Procedure.
2538         (Is_Elaboration_Checks_OK_Id): New routine.
2539         (Is_Initial_Condition_Procedure): New routine.
2540         (Protected_Subprogram): New routine.
2541         (Receiving_Entry): New routine.
2542         (SPARK_Pragma): Update assertion.
2543         (SPARK_Pragma_Inherited): Update assertion.
2544         (Suppress_Elaboration_Warnings): Removed.
2545         (Set_Is_Elaboration_Checks_OK_Id): New routine.
2546         (Set_Is_Initial_Condition_Procedure): New routine.
2547         (Set_Protected_Subprogram): New routine.
2548         (Set_Receiving_Entry): New routine.
2549         (Set_SPARK_Pragma): Update assertion.
2550         (Set_SPARK_Pragma_Inherited): Update assertion.
2551         (Write_Entity_Flags): Update the output for Flag148 and Flag302.
2552         (Write_Field19_Name): Add output for Receiving_Entry.
2553         (Write_Field39_Name): Add output for Protected_Subprogram.
2554         (Write_Field40_Name): Update the output for SPARK_Pragma.
2555         * einfo.ads: New attributes Is_Elaboration_Checks_OK_Id,
2556         Is_Initial_Condition_Procedure, Protected_Subprogram, Receiving_Entry.
2557         Remove attribute Suppress_Elaboration_Warnings.  Update the stricture
2558         of various entities.
2559         (Is_Elaboration_Checks_OK_Id): New routine along with pragma Inline.
2560         (Is_Initial_Condition_Procedure): New routine along with pragma Inline.
2561         (Protected_Subprogram): New routine along with pragma Inline.
2562         (Receiving_Entry): New routine along with pragma Inline.
2563         (Suppress_Elaboration_Warnings): Removed.
2564         (Set_Is_Elaboration_Checks_OK_Id): New routine along with pragma
2565         Inline.
2566         (Set_Is_Initial_Condition_Procedure): New routine along with pragma
2567         Inline.
2568         (Set_Protected_Subprogram): New routine along with pragma Inline.
2569         (Set_Receiving_Entry): New routine along with pragma Inline.
2570         (Set_Suppress_Elaboration_Warnings): Removed.
2571         * exp_ch3.adb (Build_Init_Procedure): Use name _Finalizer to maintain
2572         consistency with other finalizer generating subprograms.
2573         (Default_Initialize_Object): Mark the block which wraps the call to
2574         finalize as being part of initialization.
2575         * exp_ch7.adb (Expand_N_Package_Declaration): Directly expand pragma
2576         Initial_Condition.
2577         (Expand_N_Package_Body): Directly expand pragma Initial_Condition.
2578         (Next_Suitable_Statement): Update the comment on usage. Skip over call
2579         markers generated by the ABE mechanism.
2580         * exp_ch9.adb (Activation_Call_Loc): New routine.
2581         (Add_Accept): Link the accept procedure to the original entry.
2582         (Build_Protected_Sub_Specification): Link the protected or unprotected
2583         version to the original subprogram.
2584         (Build_Task_Activation_Call): Code cleanup. Use a source location which
2585         is very close to the "begin" or "end" keywords when generating the
2586         activation call.
2587         * exp_prag.adb (Expand_Pragma_Initial_Condition): Reimplemented.
2588         * exp_spark.adb (Expand_SPARK): Use Expand_SPARK_N_Loop_Statement to
2589         process loops.
2590         (Expand_SPARK_N_Loop_Statement): New routine.
2591         (Expand_SPARK_N_Object_Declaration): Code cleanup. Partially insert the
2592         call to the Default_Initial_Condition procedure.
2593         (Expand_SPARK_Op_Ne): Renamed to Expand_SPARK_N_Op_Ne.
2594         * exp_util.adb (Build_DIC_Procedure_Body): Capture the SPARK_Mode in
2595         effect.
2596         (Build_DIC_Procedure_Declaration): Capture the SPARK_Mode in effect.
2597         (Insert_Actions): Add processing for N_Call_Marker.
2598         (Kill_Dead_Code): Explicitly kill an elaboration scenario.
2599         * exp_util.ads (Make_Invariant_Call): Update the comment on usage.
2600         * frontend.adb: Initialize Sem_Elab. Process all saved top level
2601         elaboration scenarios for ABE issues.
2602         * gcc-interface/trans.c (gnat_to_gnu): Add processing for N_Call_Marker
2603         nodes.
2604         * lib.adb (Earlier_In_Extended_Unit): New variant.
2605         * sem.adb (Analyze): Ignore N_Call_Marker nodes.
2606         (Preanalysis_Active): New routine.
2607         * sem.ads (Preanalysis_Active): New routine.
2608         * sem_attr.adb (Analyze_Access_Attribute): Save certain
2609         elaboration-related attributes. Save the scenario for ABE processing.
2610         * sem_ch3.adb (Analyze_Object_Declaration): Save the SPARK mode in
2611         effect. Save certain elaboration-related attributes.
2612         * sem_ch5.adb (Analyze_Assignment): Save certain elaboration-related
2613         attributes. Save the scenario for ABE processing.
2614         * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Save the SPARK
2615         mode in effect. Save certain elaboration-related attributes.
2616         (Analyze_Subprogram_Body_Helper): Skip N_Call_Marker nodes when
2617         locating the first real statement.
2618         (Analyze_Subprogram_Declaration): Save the SPARK mode in effect. Save
2619         certain elaboration-related attributes.
2620         * sem_ch7.adb (Analyze_Package_Declaration): Do not suppress
2621         elaboration warnings.
2622         * sem_ch8.adb (Attribute_Renaming): Mark a subprogram body which was
2623         generated for purposes of wrapping an attribute used as a generic
2624         actual.
2625         (Find_Direct_Name): Save certain elaboration-related attributes. Save
2626         the scenario for ABE processing.
2627         (Find_Expanded_Name): Save certain elaboration-related attributes. Save
2628         the scenario for ABE processing.
2629         * sem_ch9.adb (Analyze_Entry_Declaration): Save certain
2630         elaboration-related attributes.
2631         (Analyze_Requeue): Save certain elaboration-related attributes. Save
2632         the scenario for ABE processing.
2633         (Analyze_Single_Task_Declaration): Save certain elaboration-related
2634         attributes.
2635         (Analyze_Task_Type_Declaration): Save certain elaboration-related
2636         attributes.
2637         * sem_ch12.adb (Analyze_Generic_Package_Declaration): Save certain
2638         elaboration-related attributes.
2639         (Analyze_Generic_Subprogram_Declaration): Save the SPARK mode in
2640         effect. Save certain elaboration-related attributes.
2641         (Analyze_Package_Instantiation): Save certain elaboration-related
2642         attributes.  Save the scenario for ABE processing. Create completing
2643         bodies in case the instantiation results in a guaranteed ABE.
2644         (Analyze_Subprogram_Instantiation): Save certain elaboration-related
2645         attributes Save the scenario for ABE processing. Create a completing
2646         body in case the instantiation results in a guaranteed ABE.
2647         (Provide_Completing_Bodies): New routine.
2648         * sem_elab.ads: Brand new implementation.
2649         * sem_prag.adb (Analyze_Pragma, cases Elaborate, Elaborate_All,
2650         Elaborate_Body): Do not suppress elaboration warnings.
2651         * sem_res.adb (Make_Call_Into_Operator): Set the parent field of the
2652         operator.
2653         (Resolve_Call): Save certain elaboration-related attributes. Save the
2654         scenario for ABE processing.
2655         (Resolve_Entity_Name): Do not perform any ABE processing here.
2656         (Resolve_Entry_Call): Inherit certain attributes from the original call.
2657         * sem_util.adb (Begin_Keyword_Location): New routine.
2658         (Defining_Entity): Update the parameter profile. Add processing for
2659         concurrent subunits that are rewritten as null statements.
2660         (End_Keyword_Location): New routine.
2661         (Find_Enclosing_Scope): New routine.
2662         (In_Instance_Visible_Part): Code cleanup.
2663         (In_Subtree): Update the parameter profile. Add new version.
2664         (Is_Preelaborable_Aggregate): New routine.
2665         (Is_Preelaborable_Construct): New routine.
2666         (Mark_Elaboration_Attributes): New routine.
2667         (Scope_Within): Update the parameter profile.
2668         (Scope_Within_Or_Same): Update the parameter profile.
2669         * sem_util.ads (Begin_Keyword_Location): New routine.
2670         (Defining_Entity): Update the parameter profile and the comment on
2671         usage.
2672         (End_Keyword_Location): New routine.
2673         (Find_Enclosing_Scope): New routine.
2674         (In_Instance_Visible_Part): Update the parameter profile.
2675         (In_Subtree): Update the parameter profile. Add new version.
2676         (Is_Preelaborable_Aggregate): New routine.
2677         (Is_Preelaborable_Construct): New routine.
2678         (Mark_Elaboration_Attributes): New routine.
2679         (Scope_Within): Update the parameter profile and the comment on usage.
2680         (Scope_Within_Or_Same): Update the parameter profile and the comment on
2681         usage.
2682         * sem_warn.adb (Check_Infinite_Loop_Warning): Use Has_Condition_Actions
2683         to determine whether a loop has meaningful condition actions.
2684         (Has_Condition_Actions): New routine.
2685         * sinfo.adb (ABE_Is_Certain): Removed.
2686         (Is_Declaration_Level_Node): New routine.
2687         (Is_Dispatching_Call): New routine.
2688         (Is_Elaboration_Checks_OK_Node): New routine.
2689         (Is_Initialization_Block): New routine.
2690         (Is_Known_Guaranteed_ABE): New routine.
2691         (Is_Recorded_Scenario): New routine.
2692         (Is_Source_Call): New routine.
2693         (Is_SPARK_Mode_On_Node): New routine.
2694         (No_Elaboration_Check): Removed.
2695         (Target): New routine.
2696         (Was_Attribute_Reference): New routine.
2697         (Set_ABE_Is_Certain): Removed.
2698         (Set_Is_Declaration_Level_Node): New routine.
2699         (Set_Is_Dispatching_Call): New routine.
2700         (Set_Is_Elaboration_Checks_OK_Node): New routine.
2701         (Set_Is_Initialization_Block): New routine.
2702         (Set_Is_Known_Guaranteed_ABE): New routine.
2703         (Set_Is_Recorded_Scenario): New routine.
2704         (Set_Is_Source_Call): New routine.
2705         (Set_Is_SPARK_Mode_On_Node): New routine.
2706         (Set_No_Elaboration_Check): Removed.
2707         (Set_Target): New routine.
2708         (Set_Was_Attribute_Reference): New routine.
2709         * sinfo.ads: Remove attribute ABE_Is_Certain.  Attribute
2710         Do_Discriminant_Check now utilizes Flag3.  Attribute
2711         No_Side_Effect_Removal now utilizes Flag17.  Add new node
2712         N_Call_Marker.  Update the structure of various nodes.
2713         (ABE_Is_Certain): Removed along with pragma Inline.
2714         (Is_Declaration_Level_Node): New routine along with pragma Inline.
2715         (Is_Dispatching_Call): New routine along with pragma Inline.
2716         (Is_Elaboration_Checks_OK_Node): New routine along with pragma Inline.
2717         (Is_Initialization_Block): New routine along with pragma Inline.
2718         (Is_Known_Guaranteed_ABE): New routine along with pragma Inline.
2719         (Is_Recorded_Scenario): New routine along with pragma Inline.
2720         (Is_Source_Call): New routine along with pragma Inline.
2721         (Is_SPARK_Mode_On_Node): New routine along with pragma Inline.
2722         (No_Elaboration_Check): Removed along with pragma Inline.
2723         (Target): New routine along with pragma Inline.
2724         (Was_Attribute_Reference): New routine along with pragma Inline.
2725         (Set_ABE_Is_Certain): Removed along with pragma Inline.
2726         (Set_Is_Declaration_Level_Node): New routine along with pragma Inline.
2727         (Set_Is_Dispatching_Call): New routine along with pragma Inline.
2728         (Set_Is_Elaboration_Checks_OK_Node): New routine along with pragma
2729         Inline.
2730         (Set_Is_Initialization_Block): New routine along with pragma Inline.
2731         (Set_Is_Known_Guaranteed_ABE): New routine along with pragma Inline.
2732         (Set_Is_Recorded_Scenario): New routine along with pragma Inline.
2733         (Set_Is_Source_Call): New routine along with pragma Inline.
2734         (Set_Is_SPARK_Mode_On_Node): New routine along with pragma Inline.
2735         (Set_No_Elaboration_Check): Removed along with pragma Inline.
2736         (Set_Target): New routine along with pragma Inline.
2737         (Set_Was_Attribute_Reference): New routine along with pragma Inline.
2738         * sprint.adb (Sprint_Node_Actual): Add an entry for N_Call_Marker.
2739
2740 2017-10-09  Bob Duff  <duff@adacore.com>
2741
2742         * exp_ch7.adb (Create_Finalizer): Suppress checks within the finalizer.
2743
2744 2017-10-09  Bob Duff  <duff@adacore.com>
2745
2746         * freeze.ads: Minor comment fixed.
2747
2748 2017-10-09  Bob Duff  <duff@adacore.com>
2749
2750         * exp_ch6.adb: (Make_Build_In_Place_Call_In_Object_Declaration): Take
2751         care of unchecked conversions in addition to regular conversions. This
2752         takes care of a case where a type is derived from a private untagged
2753         type that is completed by a tagged controlled type.
2754
2755 2017-10-09  Ed Schonberg  <schonberg@adacore.com>
2756
2757         * exp_disp.adb (Build_Class_Wide_Check, Replace_Formals): When
2758         rewriting a class-wide condition, handle properly the case where the
2759         controlling argument of the operation to which the condition applies is
2760         an access to a tagged type, and the condition includes a dispatching
2761         call with an implicit dereference.
2762
2763 2017-10-09  Bob Duff  <duff@adacore.com>
2764
2765         * exp_ch6.adb: (Make_Build_In_Place_Call_In_Object_Declaration): Remove
2766         the code at the end of this procedure that was setting the type of a
2767         class-wide object to the specific type returned by a function call.
2768         Treat this case as indefinite instead.
2769
2770 2017-10-09  Ed Schonberg  <schonberg@adacore.com>
2771
2772         * sem_ch4.adb (Try_Class_Wide_Operation, Traverse_Homonyms):
2773         Suppress spurious ambiguity error when two traversals of the homonym
2774         chain (first directly, and then through an examination of relevant
2775         interfaces) retrieve the same operation, when other irrelevant homonyms
2776         of the operatioh are also present.
2777
2778 2017-10-09  Ed Schonberg  <schonberg@adacore.com>
2779
2780         * sem_util.adb (Object_Access_Level): If the object is the return
2781         statement of an expression function, return the level of the function.
2782         This is relevant when the object involves an implicit conversion
2783         between access types and the expression function is a completion, which
2784         forces the analysis of the expression before rewriting it as a body, so
2785         that freeze nodes can appear in the proper scope.
2786
2787 2017-10-09  Bob Duff  <duff@adacore.com>
2788
2789         * atree.adb: Make nnd apply to everything "interesting", including
2790         Rewrite.  Remove rrd.
2791
2792 2017-10-09  Javier Miranda  <miranda@adacore.com>
2793
2794         * exp_ch3.adb (Expand_N_Object_Declaration): Avoid never-ending loop
2795         processing the declaration of the dummy object internally created by
2796         Make_DT to compute the offset to the top of components referencing
2797         secondary dispatch tables.
2798         (Initialize_Tag): Do not initialize the offset-to-top field if it has
2799         been initialized initialized.
2800         * exp_disp.ads (Building_Static_Secondary_DT): New subprogram.
2801         * exp_disp.adb (Building_Static_Secondary_DT): New subprogram.
2802         (Make_DT): Create a dummy constant object if we can statically build
2803         secondary dispatch tables.
2804         (Make_Secondary_DT): For statically allocated secondary dispatch tables
2805         use the dummy object to compute the offset-to-top field value by means
2806         of the attribute 'Position.
2807
2808 2017-10-09  Bob Duff  <duff@adacore.com>
2809
2810         * exp_ch6.adb (Expand_N_Extended_Return_Statement): Add self-checking
2811         code so if BIPAlloc is not passed in, it will likely raise
2812         Program_Error instead of cause miscellaneous chaos.
2813         (Is_Build_In_Place_Result_Type): Return False if not Expander_Active,
2814         as for the other Is_B-I-P... functions.
2815         * sem_aggr.adb (Resolve_Extension_Aggregate): For an extension
2816         aggregate whose ancestor part is a build-in-place call returning a
2817         nonlimited type, transform the assignment to the ancestor part to use a
2818         temp.
2819         * sem_ch3.adb (Build_Itype_Reference): Handle the case where we're
2820         creating an Itype for a library unit entity.
2821         (Check_Initialization): Avoid spurious error message on
2822         internally-generated call.
2823         * sem_ch5.adb (Analyze_Assignment): Handle the case where the
2824         right-hand side is a build-in-place call. This didn't happen when b-i-p
2825         was only for limited types.
2826         * sem_ch6.adb (Create_Extra_Formals): Remove assumption that b-i-p
2827         implies >= Ada 2005.
2828         * sem_ch7.adb (Scan_Subprogram_Refs): Avoid traversing the same nodes
2829         repeatedly.
2830         * sem_util.adb (Next_Actual): Handle case of build-in-place call.
2831
2832 2017-10-09  Arnaud Charlet  <charlet@adacore.com>
2833
2834         * doc/gnat_ugn/gnat_and_program_execution.rst: Minor edit.
2835
2836 2017-10-09  Piotr Trojanek  <trojanek@adacore.com>
2837
2838         * libgnarl/s-taprob.adb: Minor whitespace fix.
2839
2840 2017-10-09  Bob Duff  <duff@adacore.com>
2841
2842         * namet.ads: Minor comment fix.
2843
2844 2017-10-09  Piotr Trojanek  <trojanek@adacore.com>
2845
2846         * sem_aux.adb (Unit_Declaration_Node): Detect protected declarations,
2847         just like other program units listed in Ada RM 10.1(1).
2848
2849 2017-10-09  Justin Squirek  <squirek@adacore.com>
2850
2851         * sem_ch8.adb (Update_Chain_In_Scope): Modify warning messages.
2852
2853 2017-10-09  Ed Schonberg  <schonberg@adacore.com>
2854
2855         * sem_ch12.adb (Analyze_Associations, Check_Generic_Parent): If an
2856         actual for a formal package is an instantiation of a child unit, create
2857         a freeze node for the instance of the parent if it appears in the same
2858         scope and is not frozen yet.
2859
2860 2017-10-09  Pierre-Marie de Rodat  <derodat@adacore.com>
2861
2862         * exp_atag.ads, libgnat/a-tags.adb, libgnat/a-tags.ads: Enhance
2863         in-source documentation for tagged types's Offset_To_Top.
2864
2865 2017-10-09  Bob Duff  <duff@adacore.com>
2866
2867         * exp_ch3.adb (Build_Assignment): Parameter name N was somewhat
2868         confusing.  Same for N_Loc.  Remove assumption that b-i-p implies
2869         limited.  This is for the case of a function call that occurs as the
2870         default for a record component.
2871         (Expand_N_Object_Declaration): Deal with the case where expansion has
2872         created an object declaration initialized with something like
2873         F(...)'Reference.
2874         * exp_ch3.adb: Minor reformatting.
2875
2876 2017-10-09  Ed Schonberg  <schonberg@adacore.com>
2877
2878         * exp_attr.adb (Expand_Attribute_Reference, case 'Valid): The prefix of
2879         the attribute is an object, but it may appear within a conversion. The
2880         object itself must be retrieved when generating the range test that
2881         implements the validity check on a scalar type.
2882
2883 2017-10-05  Eric Botcazou  <ebotcazou@adacore.com>
2884
2885         PR ada/82393
2886         * mingw32.h (_O_U8TEXT, _O_U16TEXT, _O_WTEXT): Delete.
2887         * sysdep.c (__gnat_set_mode ): Use DJGPP version for Cygwin.
2888
2889 2017-10-02  Eric Botcazou  <ebotcazou@adacore.com>
2890             Pierre-Marie de Rodat  <derodat@adacore.com>
2891
2892         PR ada/82384
2893         * libgnarl/s-linux__x32.ads (suseconds_t): New subtype.
2894         (time_t): Change from derived type to subtype.
2895         (timeval): Use suseconds_t for tv_usec.
2896         * libgnarl/s-osinte__x32.adb (To_Timespec): Remove use type clause.
2897
2898 2017-10-02  Richard Sandiford  <richard.sandiford@linaro.org>
2899
2900         * gcc-interface/decl.c (annotate_value): Use wi::to_widest when
2901         handling the form (plus/mult (convert @0) @1).
2902
2903 2017-09-29  Bob Duff  <duff@adacore.com>
2904
2905         * exp_ch6.adb (Expand_Call_Helper): Replace with code more similar to
2906         what we had before.
2907         (Make_Build_In_Place_Call_In_Object_Declaration): Back out previous
2908         change. Set the Etype in the class-wide case. This fixes a regression
2909         in the libadalang test suite.
2910
2911 2017-09-29  Joel Brobecker  <brobecker@adacore.com>
2912
2913         * doc/gnat_ugn/building_executable_programs_with_gnat.rst,
2914         doc/gnat_ugn/the_gnat_compilation_model.rst: Avoid use of single colon
2915         in comment markup.
2916         * gnat_ugn.texi: Regenerate.
2917
2918 2017-09-29  Justin Squirek  <squirek@adacore.com>
2919
2920         * ali-util.adb, comperr.adb, cprint.adb, errout.adb, fmap.adb,
2921         fname-sf.adb, frontend.adb, lib-xref-spark_specific.adb, gnat1drv.adb,
2922         gnatls.adb, lib.adb, lib-load.adb, lib-writ.adb, prepcomp.adb,
2923         sinput-d.adb, sinput-l.adb, sprint.adb, targparm.adb: Update comparison
2924         for checking source file status and error message and/or call to
2925         Read_Source_File.
2926         * libgnat/s-os_lib.ads: Add new potential value constant for
2927         uninitialized file descriptors.
2928         * osint.adb, osint.ads (Read_Source_File): Add extra parameter to
2929         return result of IO to encompass a read access failure in addition to a
2930         file-not-found error.
2931
2932 2017-09-29  Bob Duff  <duff@adacore.com>
2933
2934         * exp_ch6.adb (Expand_Call_Helper): Handle case of build-in-place
2935         functions returning nonlimited types. Allow for qualified expressions
2936         and type conversions.
2937         (Expand_N_Extended_Return_Statement): Correct the computation of
2938         Func_Bod to allow for child units.
2939         (Expand_Simple_Function_Return): Remove assumption that b-i-p implies
2940         limited (initialization of In_Place_Expansion), and implies >= Ada
2941         2005.
2942         (Is_Build_In_Place_Result_Type): New function to accompany
2943         Is_Build_In_Place_Function and Is_Build_In_Place_Function_Call, because
2944         sometimes we just have the type on our hands, not the function.  For
2945         now, does the same thing as the old version, so build-in-place is
2946         disabled for nonlimited types, except that you can use -gnatd.9 to
2947         enable it.
2948         * exp_ch6.ads (Is_Build_In_Place_Result_Type): New function to
2949         accompany Is_Build_In_Place_Function and
2950         Is_Build_In_Place_Function_Call, because sometimes we just have the
2951         type on our hands, not the function.
2952         (Make_Build_In_Place_Call_In_...): Handle nonlimited build-in-place
2953         cases.
2954         (Make_Build_In_Place_Call_In_Object_Declaration): Remove the
2955         questionable code at the end that was setting the Etype.
2956         * exp_aggr.adb (Is_Build_In_Place_Aggregate_Return): New function to
2957         determine whether "return (...agg...);" is returning from a
2958         build-in-place function.
2959         (Initialize_Ctrl_Array_Component, Initialize_Ctrl_Record_Component):
2960         Remove assumption that b-i-p implies limited (initialization of
2961         In_Place_Expansion).
2962         (Build_Record_Aggr_Code): AI-287: fix comment; it can't be wrapped in
2963         an unchecked conversion.  Add assertions.
2964         (Convert_Aggr_In_Object_Decl): Establish_Transient_Scope -- no need for
2965         secondary stack here, just because the type needs finalization.  That
2966         code is obsolete.
2967         (Convert_To_Assignments): Only set Unc_Decl if Nkind (N) = N_Aggregate.
2968         For "return (...agg...);" don't assume b-i-p implies limited.
2969         Needs_Finalization does not imply secondary stack.
2970         (Expand_Array_Aggregate): Named notation.  Reverse the sense of
2971         Component_OK_For_Backend -- more readability with fewer double
2972         negatives.
2973         * exp_attr.adb (Expand_N_Attribute_Reference): Remove assumptions that
2974         b-i-p implies >= Ada 2005.
2975         * exp_ch3.adb (Expand_N_Object_Declaration): Remove assumptions that
2976         b-i-p implies >= Ada 2005.  Remove Adjust if we're building the return
2977         object of an extended return statement in place.
2978         * exp_ch4.adb (Expand_Allocator_Expression, Expand_N_Indexed_Component,
2979         Expand_N_Selected_Component, Expand_N_Slice): Remove assumptions that
2980         b-i-p implies >= Ada 2005.
2981         * exp_ch5.adb (Expand_N_Assignment_Statement): Remove assumption that
2982         b-i-p implies >= Ada 2005.
2983         * exp_ch7.adb: Comment fix.
2984         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Remove
2985         assumptions that b-i-p implies >= Ada 2005.
2986         * exp_disp.adb (Expand_Interface_Actuals): Remove assumptions that
2987         b-i-p implies >= Ada 2005.
2988         * exp_util.adb (Build_Allocate_Deallocate_Proc): Look at Storage_Pool
2989         (Expr), in case Pool_Id is not set.
2990         (Initialized_By_Aliased_BIP_Func_Call): Handle case where the call is
2991         qualified or converted.
2992         (Is_Secondary_Stack_BIP_Func_Call): Don't check if Nkind (Selector_Name
2993         (Param)) = N_Identifier; that's all it could be.
2994         * sinfo.ads: Comment fixes.
2995         * snames.ads-tmpl: Comment fixes.
2996         * debug.adb: Add flag gnatd.9, to enable the build-in-place machinery.
2997
2998 2017-09-29  Justin Squirek  <squirek@adacore.com>
2999
3000         * sem_ch8.adb (Mark_Use_Clauses): Add recursive call to properly handle
3001         all cases related to marking entity identifiers.
3002
3003 2017-09-29  Vasiliy Fofanov  <fofanov@adacore.com>
3004
3005         * adaint.c (win32_wait): Properly handle error and take into account
3006         the WIN32 limitation on the number of simultaneous wait objects.
3007
3008 2017-09-29  Vasiliy Fofanov  <fofanov@adacore.com>
3009
3010         * cal.c: Minor proofreading.
3011
3012 2017-09-29  Vasiliy Fofanov  <fofanov@adacore.com>
3013
3014         * doc/gnat_ugn/gnat_utility_programs.rst: Minor formatting fix.
3015         * gnat_ugn.texi: Regenerate.
3016
3017 2017-09-29  Bob Duff  <duff@adacore.com>
3018
3019         * lib-xref.ads: Comment fix.
3020
3021 2017-09-29  Bob Duff  <duff@adacore.com>
3022
3023         * exp_aggr.adb: Remove calls to Set_No_Ctrl_Actions for discriminants.
3024         Discriminants can't need finalization.
3025
3026 2017-09-29  Ed Schonberg  <schonberg@adacore.com>
3027
3028         * sem_ch6.adb (Analyze_Expression_Function): Do not emit freeze nodes
3029         for types in expression if the function is within a generic unit.
3030         * sem_res.adb (Resolve): In a generic context do not freeze an
3031         expression, unless it is an entity. This exception is solely for the
3032         purpose of detecting illegal uses of deferred constants in generic
3033         units.
3034         * sem_res.adb: Minor reformatting.
3035
3036 2017-09-29  Justin Squirek  <squirek@adacore.com>
3037
3038         * sem_ch8.adb (Note_Redundant_Use): Add guard to protect against false
3039         redundant warnings.
3040
3041 2017-09-29  Yannick Moy  <moy@adacore.com>
3042
3043         * sinput-c.adb: Remove unused with-clause on Ada.Unchecked_Conversion.
3044
3045 2017-09-29  Eric Botcazou  <ebotcazou@adacore.com>
3046
3047         * doc/gnat_rm/representation_clauses_and_pragmas.rst: Minor rewording.
3048         * doc/gnat_rm/implementation_defined_pragmas.rst (Optimize_Alignment):
3049         Document the effect of pragma Optimize_Alignment (Space) on non-packed
3050         record types.
3051         * gnat_rm.texi: Regenerate.
3052
3053 2017-09-25  Justin Squirek  <squirek@adacore.com>
3054
3055         * aspects.adb, bindgen.adb, clean.adb, erroutc.adb, exp_ch13.adb,
3056         exp_dbug.adb, exp_unst.adb, exp_util.adb, frontend.adb, gnat1drv.adb,
3057         gnatdll.adb, gnatlink.adb, gnatls.adb, gnatname.adb, gnatxref.adb,
3058         gnatfind.adb, libgnat/a-cfhama.ads, libgnat/a-exetim__mingw.adb,
3059         libgnat/a-strmap.adb, libgnat/a-teioed.adb, libgnat/g-alvety.ads,
3060         libgnat/g-expect.adb, libgnat/g-regist.adb, libgnat/g-socket.adb,
3061         libgnat/g-socthi__mingw.ads, libgnat/s-stausa.adb,
3062         libgnat/s-tsmona__linux.adb, libgnat/s-tsmona__mingw.adb,
3063         libgnarl/s-taenca.adb, libgnarl/s-tassta.adb, libgnarl/s-tarest.adb,
3064         libgnarl/s-tpobop.adb, make.adb, makeusg.adb, namet.adb, output.ads,
3065         put_scos.adb, repinfo.adb, rtsfind.adb, scn.ads, sem_attr.adb,
3066         sem_aux.ads, sem_warn.ads, targparm.adb, xr_tabls.adb, xref_lib.adb:
3067         Removal of ineffective use-clauses.
3068         * exp_ch9.adb (Is_Simple_Barrier_Name): Check for false positives with
3069         constant folded barriers.
3070         * ghost.adb, sprint.adb, sem_ch10.adb, sem_warn.adb: Change access to
3071         Subtype_Marks and Names list in use-clause nodes to their new singular
3072         counterparts (e.g. Subtype_Mark, Name).
3073         * par.adb, par-ch8.adb (Append_Use_Clause): Created to set
3074         Prev_Ids and More_Ids in use-clause nodes.
3075         (P_Use_Clause): Modify to take a list as a parameter.
3076         (P_Use_Package_Clause, P_Use_Type_Clause): Divide names and
3077         subtype_marks within an aggregate use-clauses into individual clauses.
3078         * par-ch3.adb, par-ch10.adb, par-ch12.adb: Trivally modify call to
3079         P_Use_Clause to match its new behavior.
3080         * sem.adb (Analyze): Mark use clauses for non-overloaded entities.
3081         * sem_ch4.adb (Try_One_Interp): Add sanity check to handle previous
3082         errors.
3083         * sem_ch6.adb (Analyze_Generic_Subprogram_Body,
3084         Analyze_Subprogram_Body_Helper): Update use clause chain at the end of
3085         the declarative region.
3086         * sem_ch7.adb (Analyze_Package_Body_Helper): Update use clause chain
3087         after analysis (Analyze_Package_Specification): Update use clause chain
3088         when there is no body.
3089         * sem_ch8.ads, sem_ch8.adb (Analyze_Use_Package, Analyze_Use_Type): Add
3090         parameter to determine weither the installation of scopes should also
3091         propagate on the use-clause "chain".
3092         (Mark_Use_Clauses): Created to traverse use-clause chains and determine
3093         what constitutes a valid "use" of a clause.
3094         (Update_Use_Clause_Chain): Created to aggregate common machinary used
3095         to clean up use-clause chains (and warn on ineffectiveness) at the end
3096         of declaritive regions.
3097         * sem_ch8.adb (Analyze_Package_Name): Created to perform analysis on a
3098         package name from a use-package clause.
3099         (Analyze_Package_Name_List): Created to perform analysis on a list of
3100         package names (similar to Analyze_Package_Name).
3101         (Find_Most_Prev): Created to traverse to the beginning of a given
3102         use-clause chain.
3103         (Most_Decendant_Use_Clause): Create to identify which clause from a
3104         given set is highest in scope (not always the most prev).
3105         (Use_One_Package, Use_One_Type): Major cleanup and reorganization to
3106         handle the new chaining algorithm, also many changes related to
3107         redundant clauses. A new parameter has also been added to force
3108         installation to handle certain cases.
3109         * sem_ch9.adb (Analyze_Entry_Body, Analyze_Protected_Body,
3110         Analyze_Task_Body): Mark use clauses on relevant entities.
3111         * sem_ch10.adb, sem_ch10.ads (Install_Context_Clauses,
3112         Install_Parents): Add parameter to determine weither the installation
3113         of scopes should also propagate on the use-clause "chain".
3114         * sem_ch12.adb (Inline_Instance_Body): Add flag in call to
3115         Install_Context to avoid redundant chaining of use-clauses.
3116         * sem_ch13.adb: Minor reformatting.
3117         * sem_res.adb (Resolve): Mark use clauses on operators.
3118         (Resolve_Call, Resolve_Entity_Name): Mark use clauses on relevant
3119         entities.
3120         * sinfo.adb, sinfo.ads (Is_Effective_Use_Clause,
3121         Set_Is_Effective_Use_Clause): Add new flag to N_Use_Clause nodes to
3122         represent any given clause's usage/reference/necessity.
3123         (Prev_Use_Clause, Set_Prev_Use_Clause): Add new field to N_Use_Clause
3124         nodes to allow loose chaining of redundant clauses.
3125         (Set_Used_Operations, Set_Subtype_Mark, Set_Prev_Ids, Set_Names,
3126         Set_More_Ids, Set_Name): Modify set procedure calls to reflect
3127         reorganization in node fields.
3128         * types.ads (Source_File_Index): Adjust index bounds.
3129         (No_Access_To_Source_File): New constant.
3130
3131 2017-09-25  Ed Schonberg  <schonberg@adacore.com>
3132
3133         * sem_ch13.adb (Analyze_One_Aspect): In ASIS mode make a full copy of
3134         the expression to be used in the generated attribute specification
3135         (rather than relocating it) to avoid resolving a potentially malformed
3136         tree when the expression is resolved through an ASIS-specific call to
3137         Resolve_Aspect_Expressions.  This manifests itself as a crash on a
3138         function with parameter associations.
3139
3140 2017-09-25  Yannick Moy  <moy@adacore.com>
3141
3142         * exp_spark.adb (Expand_SPARK_Indexed_Component,
3143         Expand_SPARK_Selected_Component): New procedures to insert explicit
3144         dereference if required.
3145         (Expand_SPARK): Call the new procedures.
3146
3147 2017-09-25  Patrick Bernardi  <bernardi@adacore.com>
3148
3149         * libgnat/a-stwiun.adb, libgnat/s-stchop__vxworks.adb,
3150         libgnat/g-socthi__vxworks.ads, libgnat/a-stzunb.adb,
3151         libgnat/a-strunb.adb, libgnarl/s-osinte__lynxos178.adb,
3152         libgnarl/s-intman__vxworks.adb, libgnarl/s-osinte__darwin.adb,
3153         libgnarl/a-exetim__darwin.adb: Removed ineffective use-clauses.
3154
3155 2017-09-25  Vasiliy Fofanov  <fofanov@adacore.com>
3156
3157         * adaint.c (win32_wait): Properly handle error and take into account
3158         the WIN32 limitation on the number of simultaneous wait objects.
3159
3160 2017-09-25  Yannick Moy  <moy@adacore.com>
3161
3162         * sem_ch3.adb (Constant_Redeclaration): Do not insert a call to the
3163         invariant procedure in GNATprove mode.
3164         * sem_ch5.adb (Analyze_Assignment): Likewise.
3165
3166 2017-09-25  Piotr Trojanek  <trojanek@adacore.com>
3167
3168         * adabkend.adb (Call_Back_End): Fix wording of "front-end" and
3169         "back-end" in comments.
3170
3171 2017-09-25  Ed Schonberg  <schonberg@adacore.com>
3172
3173         * exp_ch6.adb (Expand_Call_Helper): The extra accessibility check in a
3174         call that appears in a classwide precondition and that mentions an
3175         access formal of the subprogram, must use the accessibility level of
3176         the actual in the call. This is one case in which a reference to a
3177         formal parameter appears outside of the body of the subprogram.
3178
3179 2017-09-25  Hristian Kirtchev  <kirtchev@adacore.com>
3180
3181         * sem_res.adb (Replace_Actual_Discriminants): Replace a discriminant
3182         for GNATprove.
3183         (Resolve_Entry): Clean up predicate
3184
3185 2017-09-25  Hristian Kirtchev  <kirtchev@adacore.com>
3186
3187         * sem_prag.adb (Analyze_Constituent): Raise Unrecoverable_Error rather
3188         than Program_Error because U_E is more in line with respect to the
3189         intended behavior.
3190
3191 2017-09-25  Ed Schonberg  <schonberg@adacore.com>
3192
3193         * sem_ch13.adb (Resolve_Aspect_Expressions): The expression for aspect
3194         Storage_Size does not freeze, and thus can include references to
3195         deferred constants.
3196
3197 2017-09-25  Hristian Kirtchev  <kirtchev@adacore.com>
3198
3199         * exp_spark.adb (Expand_SPARK_Potential_Renaming): Do not process a
3200         reference when it appears within a pragma of no significance to SPARK.
3201         (In_Insignificant_Pragma): New routine.
3202         * sem_prag.ads: Add new table Pragma_Significant_In_SPARK.
3203
3204 2017-09-25  Ed Schonberg  <schonberg@adacore.com>
3205
3206         * sem_ch12.adb (Analyze_Associations, case N_Formal_Package): If the
3207         actual is a renaming, indicate that it is the renamed package that must
3208         be frozen before the instantiation.
3209
3210 2017-09-25  Yannick Moy  <moy@adacore.com>
3211
3212         * doc/gnat_ugn/gnat_and_program_execution.rst: Fix typo in description
3213         of dimensionality system in GNAT UG.
3214         * gnat_ugn.texi: Regenerate.
3215
3216 2017-09-25  Yannick Moy  <moy@adacore.com>
3217
3218         * gnat1drv.adb: Call Check_Safe_Pointers from the frontend in
3219         GNATprove_Mode when switch -gnatdF used.
3220
3221 2017-09-25  Piotr Trojanek  <trojanek@adacore.com>
3222
3223         * adabkend.adb (Call_Back_End): Reset Current_Error_Node when starting
3224         the backend.
3225
3226 2017-09-25  Javier Miranda  <miranda@adacore.com>
3227
3228         * exp_imgv.adb (Expand_Image_Attribute): Disable the optimized
3229         expansion of user-defined enumeration types when the generation of
3230         names for enumeration literals is suppressed.
3231
3232 2017-09-25  Gary Dismukes  <dismukes@adacore.com>
3233
3234         * libgnarl/s-taprop__linux.adb: Minor reformatting.
3235
3236 2017-09-25  Ed Schonberg  <schonberg@adacore.com>
3237
3238         * sem_ch13.adb (Resolve_Aspect_Expressions): Do not resolve identifiers
3239         that appear as selector names of parameter associations, as these are
3240         never resolved by visibility.
3241
3242 2017-09-25  Justin Squirek  <squirek@adacore.com>
3243
3244         * sem_res.adb (Resolve_Entry): Generate reference for index entities.
3245
3246 2017-09-25  Doug Rupp  <rupp@adacore.com>
3247
3248         * libgnarl/s-taprop__linux.adb (Compute_Base_Monotonic_Clock): Refine.
3249
3250 2017-09-25  Javier Miranda  <miranda@adacore.com>
3251
3252         * exp_imgv.adb (Is_User_Defined_Enumeration_Type): New subprogram.
3253         (Expand_User_Defined_Enumeration_Image): New subprogram.
3254         (Expand_Image_Attribute): Enable speed-optimized expansion of
3255         user-defined enumeration types when we are compiling with optimizations
3256         enabled.
3257
3258 2017-09-25  Piotr Trojanek  <trojanek@adacore.com>
3259
3260         * sem_util.adb (Has_Null_Abstract_State): Remove, as an exactly same
3261         routine is already provided by Einfo.
3262         * einfo.adb (Has_Null_Abstract_State): Replace with the body from
3263         Sem_Util, which had better comments and avoided double calls to
3264         Abstract_State.
3265
3266 2017-09-25  Bob Duff  <duff@adacore.com>
3267
3268         * exp_ch3.adb: Rename Comp_Type_Simple to be Comp_Simple_Init.
3269
3270 2017-09-25  Doug Rupp  <rupp@adacore.com>
3271
3272         * libgnarl/s-taprop__linux.adb (Base_Monotonic_Clock): New variable.
3273         (Compute_Base_Monotonic_Clock): New function.
3274         (Timed_Sleep): Adjust to use Base_Monotonic_Clock.
3275         (Timed_Delay): Likewise.
3276         (Monotonic_Clock): Likewise.
3277         * s-oscons-tmplt.c (CLOCK_MONOTONIC): Use on Linux.
3278
3279 2017-09-25  Ed Schonberg  <schonberg@adacore.com>
3280
3281         * sem_ch12.adb (Save_References_In_Aggregate): Small correction to
3282         previous change.
3283
3284 2017-09-25  Hristian Kirtchev  <kirtchev@adacore.com>
3285
3286         * exp_ch5.adb, sem_ch4.adb, sem_ch13.adb, sem_attr.adb, exp_ch3.adb:
3287         Minor reformatting.
3288
3289 2017-09-20  Alexandre Oliva <aoliva@redhat.com>
3290
3291         * gcc-interface/lang.opt (gant, gnatO, gnat): Add RejectNegative.
3292
3293 2017-09-18  Bob Duff  <duff@adacore.com>
3294
3295         * sem_ch4.adb (Complete_Object_Operation): Do not insert 'Access for
3296         reference types in the access-to-access case.
3297
3298 2017-09-18  Eric Botcazou  <ebotcazou@adacore.com>
3299
3300         * sem_attr.adb (Analyze_Access_Attribute): Move check for the presence
3301         of the "aliased" keyword on the prefix from here to...
3302         (Resolve_Attribute) <Attribute_Access>: ...here.  Remove useless call
3303         to Check_No_Implicit_Aliasing.
3304         * sinfo.ads (Non_Aliased_Prefix): Delete.
3305         (Set_Non_Aliased_Prefix): Likewise.
3306         * sinfo.adb (Non_Aliased_Prefix): Delete.
3307         (Set_Non_Aliased_Prefix): Likewise.
3308
3309 2017-09-18  Bob Duff  <duff@adacore.com>
3310
3311         * exp_ch5.adb (Build_Formal_Container_Iteration,
3312         Expand_Formal_Container_Element_Loop): Convert the container to the
3313         root type before passing it to the iteration operations, so it will be
3314         of the right type.
3315
3316 2017-09-18  Bob Duff  <duff@adacore.com>
3317
3318         * einfo.ads, validsw.ads, treepr.ads, sem_util.ads: Comment fixes.
3319
3320 2017-09-18  Bob Duff  <duff@adacore.com>
3321
3322         * exp_ch3.adb (Build_Array_Init_Proc): If validity checking is enabled,
3323         and it's a bit-packed array, pass False to the Consider_IS parameter of
3324         Needs_Simple_Initialization.
3325
3326 2017-09-18  Hristian Kirtchev  <kirtchev@adacore.com>
3327
3328         * sem_ch6.adb (Check_Inline_Pragma): Link the newly generated spec to
3329         the preexisting body.
3330         * sem_prag.adb (Check_Inline_Always_Placement): New routine.
3331         (Process_Inline): Verify the placement of pragma Inline_Always. The
3332         pragma must now appear on the initial declaration of the related
3333         subprogram.
3334
3335 2017-09-18  Ed Schonberg  <schonberg@adacore.com>
3336
3337         * sem_ch3.adb (Analyze_Declarations): In ASIS mode,  At the end of the
3338         declarative list in a subprogram body, analyze aspext specifications to
3339         provide basic semantic information, because otherwise the aspect
3340         specifications might only be snalyzed during expansion, when related
3341         subprograms are generated.
3342
3343 2017-09-18  Bob Duff  <duff@adacore.com>
3344
3345         * exp_ch9.adb (Is_Simple_Barrier_Name): Follow Original_Node, in case
3346         validity checks have rewritten the tree.
3347
3348 2017-09-18  Bob Duff  <duff@adacore.com>
3349
3350         * sem_util.adb: Comment fixes, and remove redundant Is_Itype check.
3351
3352 2017-09-18  Ed Schonberg  <schonberg@adacore.com>
3353
3354         * sem_ch12.adb (Save_References_In_Aggregate): When constructing a
3355         qualified exxpression for an aggregate in a generic unit, verify that
3356         the scope of the type is itself visible and not hidden, so that the
3357         qualified expression is correctly resolved in any instance.
3358
3359 2017-09-18  Bob Duff  <duff@adacore.com>
3360
3361         * sem_ch4.adb (Analyze_Qualified_Expression): Give an error if the type
3362         mark refers to the current instance. Set the type to Any_Type in that
3363         case, to avoid later crashes.
3364
3365 2017-09-18  Ed Schonberg  <schonberg@adacore.com>
3366
3367         * exp_ch3.adb (Replace_Discriminant_References): New procedure,
3368         subsidiary of Build_Assignment, used to handle the initialization code
3369         for a mutable record component whose default value is an aggregate that
3370         sets the values of the discriminants of the components.
3371
3372 2017-09-18  Eric Botcazou  <ebotcazou@adacore.com>
3373
3374         * sem_ch13.adb (Analyze_Attribute_Definition_Clause) <Address>: Mark
3375         the entity as being volatile for an overlay that toggles the scalar
3376         storage order.
3377
3378 2017-09-18  Fedor Rybin  <frybin@adacore.com>
3379
3380         * doc/gnat_ugn/gnat_utility_programs.rst: Document that gnattest
3381         options -U main and --harness-only are not compatible.
3382
3383 2017-09-18  Hristian Kirtchev  <kirtchev@adacore.com>
3384
3385         * freeze.adb, sem_ch6.adb, sem_res.adb: Minor reformatting.
3386
3387 2017-09-18  Piotr Trojanek  <trojanek@adacore.com>
3388
3389         * einfo.ads (Is_Imported): Update comment, as this
3390         routine also applies to constants.
3391
3392 2017-09-18  Yannick Moy  <moy@adacore.com>
3393
3394         * sem_util.adb (Find_Placement_In_State_Space): Allow generic package
3395         holding state.
3396
3397 2017-09-18  Justin Squirek  <squirek@adacore.com>
3398
3399         * sem_prag.adb (Is_Non_Significant_Pragma_Reference): Change the
3400         constant indication for Pragma_Linker_Section.
3401
3402 2017-09-18  Bob Duff  <duff@adacore.com>
3403
3404         Alternate fix for PR ada/71358
3405         * libgnat/g-comlin.adb (Getopt): Remove manual null access checks.
3406         Instead, make a local copy of Config, and if it's null, allocate an
3407         empty Command_Line_Configuration_Record, so we won't crash on null
3408         pointer dereference.
3409
3410 2017-09-16  Eric Botcazou  <ebotcazou@adacore.com>
3411
3412         * libgnarl/a-intnam__rtems.ads: Update copyright date.
3413         * libgnarl/s-interr__hwint.adb: Likewise.
3414         * libgnarl/s-osinte__kfreebsd-gnu.ads: Likewise.
3415         * libgnarl/s-osinte__rtems.adb: Likewise.
3416         * libgnarl/s-osinte__rtems.ads: Likewise.
3417
3418 2017-09-13  Nicolas Roche  <roche@adacore.com>
3419
3420         * Make-lang.in: In the fallback mechanim, parse the associated .ali
3421         file and try to guess the locations of dependencies.
3422
3423 2017-09-13  Eric Botcazou  <ebotcazou@adacore.com>
3424
3425         * sem_ch13.adb (Register_Address_Clause_Check): New procedure to save
3426         the suppression status of Alignment_Check on the current scope.
3427         (Alignment_Checks_Suppressed): New function to use the saved instead of
3428         the current suppression status of Alignment_Check.
3429         (Address_Clause_Check_Record): Add Alignment_Checks_Suppressed field.
3430         (Analyze_Attribute_Definition_Clause): Instead of manually appending to
3431         the table, call Register_Address_Clause_Check.
3432         (Validate_Address_Clauses): Call Alignment_Checks_Suppressed on the
3433         recorded address clause instead of its entity.
3434
3435 2017-09-13  Jerome Guitton  <guitton@adacore.com>
3436
3437         * libgnarl/s-tpopsp__vxworks-tls.adb,
3438         libgnarl/s-tpopsp__vxworks-rtp.adb, libgnarl/s-tpopsp__vxworks.adb
3439         (Self): Register thread if task id is null.
3440
3441 2017-09-13  Arnaud Charlet  <charlet@adacore.com>
3442