cafac4fcf2abd67b47fabca000992e40c4adc6df
[gcc.git] / gcc / ada / ChangeLog
1 2018-06-11 Javier Miranda <miranda@adacore.com>
2
3 * exp_ch9.adb (Expand_N_Protected_Body): Add missing handling of
4 N_Call_Marker nodes.
5
6 2018-06-11 Arnaud Charlet <charlet@adacore.com>
7
8 * exp_ch3.adb, exp_unst.adb, inline.adb, sem_prag.adb: Minor
9 reformatting.
10
11 2018-06-11 Yannick Moy <moy@adacore.com>
12
13 * doc/gnat_rm/implementation_defined_pragmas.rst: Add Suppressible
14 argument to Assertion_Policy
15 * gnat_rm.texi: Regenerate.
16
17 2018-06-11 Yannick Moy <moy@adacore.com>
18
19 * gnat1drv.adb: Do not check representation information in CodePeer and
20 GNATprove modes, as these modes call a special backend instead of gigi,
21 so do not have the information.
22
23 2018-06-11 Yannick Moy <moy@adacore.com>
24
25 * inline.adb (Build_Body_To_Inline): Consider case of extended return
26 of unconstrained type as one case where inlining is not supported.
27 (Expand_Inlined_Call): Remove special case for body as extended return
28 of unconstrained type.
29
30 2018-06-11 Yannick Moy <moy@adacore.com>
31
32 * sem_prag.adb (Analyze_Part_Of): Only allow Part_Of on non-generic
33 unit.
34 (Check_Missing_Part_Of): Do not force Part_Of on generic unit.
35
36 2018-06-11 Piotr Trojanek <trojanek@adacore.com>
37
38 * sem_ch13.adb (Analyze_Aspect_Specifications): Don't split AND THEN
39 expressions in Pre/Post contracts while in GNATprove_Mode.
40
41 2018-06-11 Piotr Trojanek <trojanek@adacore.com>
42
43 * sem_util.adb (Is_Potentially_Unevaluated): Fix detection of contracts
44 with AND THEN expressions broken down into individual conjuncts.
45
46 2018-06-11 Ed Schonberg <schonberg@adacore.com>
47
48 * exp_ch7.adb (Check_Unnesting_Elaboration_Code): Add guard.
49
50 2018-06-11 Ed Schonberg <schonberg@adacore.com>
51
52 * exp_unst.adb (Visit_Node): Skip generic associations.
53
54 2018-06-11 Arnaud Charlet <charlet@adacore.com>
55
56 * libgnat/memtrack.adb (fwrite): Remove second definition.
57
58 2018-06-11 Javier Miranda <miranda@adacore.com>
59
60 * sinfo.ads (Is_Dynamic_Coextension): Adding documentation.
61 (Is_Static_Coextension): Adding documentation.
62 * sinfo.adb (Is_Dynamic_Coextension): Extending the assertion.
63 (Is_Static_Coextension): Extending the assertion.
64 * sem_util.adb (Mark_Allocator): Clear Is_Static_Coextension when
65 setting flag Is_Dynamic_Coextension (and vice versa).
66
67 2018-06-11 Ed Schonberg <schonberg@adacore.com>
68
69 * exp_unst.adb (Search_Subprograms): Handle explicitly stubs at the top
70 level of a compilation unit, becuase they may contain nested
71 subprograms that need an activation record.
72
73 2018-06-11 Arnaud Charlet <charlet@adacore.com>
74
75 * Makefile.rtl: Compile Ada files with $(ADAC) instead of $(CC).
76
77 2018-06-11 Hristian Kirtchev <kirtchev@adacore.com>
78
79 * exp_ch11.adb, exp_unst.adb, inline.adb, sem_ch12.adb, sem_util.adb:
80 Minor reformatting.
81 * sinfo.ads: Fix a typo.
82
83 2018-06-11 Ed Schonberg <schonberg@adacore.com>
84
85 * inline.adb (Expand_Inlined_Call): If no optimization level is
86 specified, the expansion of a call to an Inline_Always function is
87 fully performed in the front-end even on a target that support back-end
88 inlining.
89
90 2018-06-11 Arnaud Charlet <charlet@adacore.com>
91
92 * bindgen.adb (Gen_Adainit): Protect reference to System.Parameters
93 with Sec_Stack_Used.
94
95 2018-06-11 Hristian Kirtchev <kirtchev@adacore.com>
96
97 * sem_ch8.adb (Find_Direct_Name): Mode the declaration of
98 Is_Assignment_LHS further in. Use predicate
99 Needs_Variable_Reference_Marker to determine whether to create a
100 variable marker.
101 (Find_Expanded_Name): Mode the declaration of Is_Assignment_LHS further
102 in. Use predicate Needs_Variable_Reference_Marker to determine whether
103 to create a variable marker.
104 * sem_elab.adb (Build_Variable_Reference_Marker): Remove the various
105 checks that determine whether the identifier or expanded name is a
106 suitable variable reference. The checks are now performed by
107 Needs_Variable_Reference_Marker.
108 * sem_res.adb (Resolve_Actuals): Use predicate
109 Needs_Variable_Reference_Marker to determine whether to create a
110 variable marker.
111 * sem_util.adb (Needs_Variable_Reference_Marker): New routine.
112 * sem_util.ads (Needs_Variable_Reference_Marker): New routine.
113
114 2018-06-11 Valentine Reboul <reboul@adacore.com>
115
116 * doc/gnat_rm.rst, doc/gnat_ugn.rst: Rename "GPL Edition" into
117 "Community Edition".
118
119 2018-06-11 Ed Schonberg <schonberg@adacore.com>
120
121 * sem_ch12.adb (Install_Body): In order to determine the placement of
122 the freeze node for an instance of a generic nested within another
123 instance, take into account that the outer instance may be declared in
124 the visible part of a package and the inner intance may be in the
125 private part of the same package.
126
127 2018-06-11 Eric Botcazou <ebotcazou@adacore.com>
128
129 * errout.adb (Special_Msg_Delete): Remove handling of Atomic and VFA.
130
131 2018-06-11 Nicolas Roche <roche@adacore.com>
132
133 * libgnat/s-valuti.adb (Bad_Value): Ensure that we do not generate a
134 stack overflow while raising a constraint error.
135
136 2018-06-11 Eric Botcazou <ebotcazou@adacore.com>
137
138 * repinfo.ads (Rep_Value): Use a single line.
139 * repinfo.adb (Rep_Value): Likewise.
140 (List_Attr): Do not use string concatenation.
141
142 2018-06-11 Ed Schonberg <schonberg@adacore.com>
143
144 * exp_unst.adb (Visit_Node): Check reference to formal parameter of
145 current procedure, because the bounds of its type may be uplevel
146 references.
147
148 2018-06-02 Eric Botcazou <ebotcazou@adacore.com>
149
150 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: If this is
151 not a definition, retrieve the expression only if it's a compile-time
152 known value if we are just annotating types.
153
154 * gcc-interface/utils.c (convert): Do not try to upcast properly for a
155 conversion between tagged types in type_annotate_only mode.
156
157 2018-06-02 Eric Botcazou <ebotcazou@adacore.com>
158
159 * gcc-interface/ada-tree.h (TYPE_PADDING_FOR_COMPONENT): New macro.
160 * gcc-interface/decl.c (gnat_to_gnu_component_type): Cache the padding
161 type built for an aliased component with variable size.
162
163 2018-05-31 Pierre-Marie de Rodat <derodat@adacore.com>
164
165 * doc/gnat_ugn/project-manager-figure.png: Delete.
166
167 2018-05-31 Pierre-Marie de Rodat <derodat@adacore.com>
168
169 * vxworks-arm-link.spec, vxworks-e500-link.spec,
170 vxworks-gnat-crtbe-link.spec, vxworks-smp-arm-link.spec,
171 vxworks-smp-e500-link.spec, vxworks-smp-ppc-link.spec,
172 vxworks-smp-x86-link.spec: New files.
173
174 2018-05-31 Pierre-Marie de Rodat <derodat@adacore.com>
175
176 * gnatvsn.adb: Re-center the copyright header.
177 * indepsw-darwin.adb: Adjust the starting copyright year to 2011.
178
179 2018-05-31 Fedor Rybin <frybin@adacore.com>
180
181 * doc/gnat_ugn/gnat_utility_programs.rst: Document Stubs_Subdir in
182 gnattest section on user guide.
183
184 2018-05-31 Ed Schonberg <schonberg@adacore.com>
185
186 * sem_res.adb (Resolve_String_Literal): If the type is a string type
187 whose component subtype has a static predicate, ensure that the
188 predicate is applied to each character by expanding the string into the
189 equivalent aggregate. This is also done if the component subtype is
190 constrained.
191
192 2018-05-31 Eric Botcazou <ebotcazou@adacore.com>
193
194 * gcc-interface/trans.c (Call_to_gnu): Remove obsolete code.
195
196 2018-05-31 Piotr Trojanek <trojanek@adacore.com>
197
198 * sem_ch6.adb (Check_Missing_Return): Handle procedures with no
199 explicit spec.
200
201 2018-05-31 Eric Botcazou <ebotcazou@adacore.com>
202
203 * gcc-interface/trans.c (Call_to_gnu): In the by-reference case, if
204 the type of the parameter is an unconstrained array type, convert
205 to the type of the actual before the type of the formal only if the
206 conversion was suppressed earlier. Use in_param and gnu_actual_type
207 local variables throughout, and uniform spelling for In Out or Out.
208 Also remove dead code in the component-by-reference case.
209
210 2018-05-31 Frederic Konrad <konrad@adacore.com>
211
212 * tracebak.c (STOP_FRAME): Harden condition.
213 (is_return_from, EXTRA_STOP_CONDITION): New helpers for VxWorks in RTP
214 mode.
215
216 2018-05-31 Ed Schonberg <schonberg@adacore.com>
217
218 * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
219 check to a call to a build-in-place function, given that the return
220 object is limited and cannot be copied.
221
222 2018-05-31 Olivier Hainque <hainque@adacore.com>
223
224 * libgnat/s-atopri.ads: Update comment on __atomic_compare_exchange
225 builtins.
226
227 2018-05-31 Eric Botcazou <ebotcazou@adacore.com>
228
229 * gcc-interface/trans.c (Call_to_gnu): If this is a function call and
230 there is no target, also create a temporary for the return value for
231 an allocator if the type is an unconstrained record type with default
232 discriminant.
233
234 2018-05-31 Hristian Kirtchev <kirtchev@adacore.com>
235
236 * exp_ch7.adb (Find_Transient_Context): An iteration scheme is a valid
237 boudary for a transient scope.
238
239 2018-05-31 Valentine Reboul <reboul@adacore.com>
240
241 * gnatvsn.ads: Rename "GPL" version to "Community".
242
243 2018-05-31 Ed Schonberg <schonberg@adacore.com>
244
245 * einfo.ads: Improve documentation for the Is_Unsigned_Type entity
246 flag.
247
248 2018-05-31 Piotr Trojanek <trojanek@adacore.com>
249
250 * sem_prag.adb (Analyze_Pragma): Replace call to Unique_Defining_Entity
251 with a semantically equivalent call to Defining_Entity.
252
253 2018-05-31 Piotr Trojanek <trojanek@adacore.com>
254
255 * sem_prag.adb (Analyze_Pragma): Set Etype on the rewritten
256 Max_Queue_Length expression.
257
258 2018-05-31 Sergey Rybin <rybin@adacore.com>
259
260 * doc/gnat_ugn/gnat_and_program_execution.rst: gnatelim does not need
261 that the main unit to be built before the call, now it computes the
262 closure of the main unit itself.
263 * gnat_ugn.texi: Regenerate.
264
265 2018-05-31 Eric Botcazou <ebotcazou@adacore.com>
266
267 * repinfo.adb (List_Structural_Record_Layout): Set First to false
268 after having listed the fields of the parent type, if any.
269
270 2018-05-31 Eric Botcazou <ebotcazou@adacore.com>
271
272 * gcc-interface/decl.c (gnat_to_gnu_entity) <discrete_type>: Do not
273 deal with the ___XP suffix for packed array types here...
274 <E_Array_Subtype>: ...or here when processing the implementation type
275 but when processing the original type instead. Do not reuse the DECL
276 of the implementation type for the original type. Tidy up.
277
278 2018-05-31 Eric Botcazou <ebotcazou@adacore.com>
279
280 * einfo.ads (Object_Size_Clause): Declare.
281 * einfo.adb (Object_Size_Clause): New function.
282 * gcc-interface/utils.c (maybe_pad_type): Test Has_Size_Clause before
283 retrieving Size_Clause and post the warning on the object size clause
284 if Has_Object_Size_Clause is true.
285
286 2018-05-31 Javier Miranda <miranda@adacore.com>
287
288 * sem_util.ads, sem_util.adb (Find_Primitive_Eq): New subprogram.
289 * exp_ch4.adb (Expand_Composite_Equality): Use the new subprogram
290 Find_Primitive_Eq to search for the primitive of types whose underlying
291 type is a tagged type.
292
293 2018-05-31 Yannick Moy <moy@adacore.com>
294
295 * sem_prag.adb (Analyze_Pragma.Check_Loop_Pragma_Placement): Inverse
296 order of treatment between nodes recognized as loop pragmas (or
297 generated from one) and block statements.
298
299 2018-05-31 Doug Rupp <rupp@adacore.com>
300
301 * libgnat/s-osprim__posix2008.adb (Clock): Implement using
302 clock_gettime.
303
304 2018-05-31 Ed Schonberg <schonberg@adacore.com>
305
306 * exp_unst.ads, exp_unst.adb (In_Synchronized_Unit): New predicate to
307 mark subprograms that cannot be eliminated because they must be treated
308 as reachable from outside the current unit. This includes entry bodies
309 and protected operations.
310
311 2018-05-31 Ed Schonberg <schonberg@adacore.com>
312
313 * exp_ch4.adb (Expand_Modular_Addition, Expand_Modular_Subtraction):
314 Convert all operands of the generated code to Standard.Unsigned, to
315 prevent spurious visibility errors. This is needed when the generated
316 expansion involves a modular index type of an array type, and the index
317 type is not immediately visible.
318
319 2018-05-30 Piotr Trojanek <trojanek@adacore.com>
320
321 * einfo.ads (Package_Instantiation): Update comment after a routine
322 that uses this field has been renamed.
323
324 2018-05-30 Ed Schonberg <schonberg@adacore.com>
325
326 * exp_ch11.adb (Replace_Raise_By_Goto): The transfomation is legal even
327 if the local raise statement includes a string expression. This
328 expression might be picked up by an outer handler or discarded, but
329 plays no role in this transformation.
330
331 2018-05-30 Hristian Kirtchev <kirtchev@adacore.com>
332
333 * exp_aggr.adb, exp_unst.adb, freeze.adb, libgnat/a-direct.adb: Minor
334 reformatting.
335
336 2018-05-30 Ed Schonberg <schonberg@adacore.com>
337
338 * exp_unst.adb (Visit_Node): Handle the semantic Procedure_To_Call
339 field in relevant nodes: Allocate, Free, and return statements.
340
341 2018-05-30 Ed Schonberg <schonberg@adacore.com>
342
343 * exp_unst.adb (Visit_Node): Do not traverse a Component_Association
344 that has not been analyzed, as will be the case for a nested aggregate
345 that is expanded into individual assignments.
346
347 2018-05-30 Justin Squirek <squirek@adacore.com>
348
349 * aspects.adb, aspects.ads: Register new aspect.
350 * par-prag.adb (Prag): Register new pragma.
351 * sem_ch13.adb (Analyze_Aspect_Specifications): Add processing for new
352 aspect similar to Aspect_Max_Queue_Length.
353 * sem_prag.adb, sem_prag.ads (Analyze_Pragma): Register new pragma and
354 set it to use the same processing as Pragma_Max_Queue_Length.
355 * snames.ads-tmpl: Move definition of Name_Max_Entry_Queue_Depth so
356 that it can be processed as a pragma in addition to a restriction and
357 add an entry for the pragma itself.
358
359 2018-05-30 Ed Schonberg <schonberg@adacore.com>
360
361 * freeze.adb (Freeze_Object_Declaration): A pragma Thread_Local_Storage
362 is now legal on a variable of composite type initialized with an
363 aggregate that is fully static and requires no elaboration code.
364 * exp_aggr.adb (Convert_To_Positional): Recognize additional cases of
365 nested aggregates that are compile-time static, so they can be used to
366 initialize variables declared with Threqd_Local_Storage.
367 * doc/gnat_rm/implementation_defined_pragmas.rst: Add documentation on
368 Thread_Local_Storage.
369 * gnat_rm.texi: Regenerate.
370
371 2018-05-30 Yannick Moy <moy@adacore.com>
372
373 * sem_util.adb (Policy_In_Effect): Take into account CodePeer and
374 GNATprove modes.
375
376 2018-05-30 Justin Squirek <squirek@adacore.com>
377
378 * libgnat/a-direct.adb, libgnat/a-direct.ads (Name_Case_Equivalence):
379 Add implementation.
380 (Start_Search): Modify to use Start_Search_Internal
381 (Start_Search_Internal): Add to break out an extra flag for searching
382 case insensative due to the potential for directories within the same
383 OS to allow different casing schemes.
384 * sysdep.c (__gnat_name_case_equivalence): Add as a default fallback
385 for when the more precise solution fails.
386
387 2018-05-30 Hristian Kirtchev <kirtchev@adacore.com>
388
389 * checks.adb, exp_ch5.adb, exp_ch7.adb, exp_unst.adb, sem_eval.adb:
390 Minor reformatting.
391
392 2018-05-30 Pascal Obry <obry@adacore.com>
393
394 * libgnat/g-comlin.ads (Value_Callback, Define_Switch): New.
395 * libgnat/g-comlin.adb: Add corresponding implementation.
396
397 2018-05-30 Gary Dismukes <dismukes@adacore.com>
398
399 * sem_res.adb, sem_util.adb: Fix several typos.
400
401 2018-05-30 Olivier Hainque <hainque@adacore.com>
402
403 * vx_crtbegin_attr.c (CTOR_ATTRIBUTE, DTOR_ATTRIBUTE): Empty.
404 (eh_registration_ctors, eh_registration_tors): New static variables,
405 forced in a .ctors/.dtors section, respectively, with priority.
406
407 2018-05-30 Bob Duff <duff@adacore.com>
408
409 * aspects.ads, contracts.adb, exp_util.adb, expander.adb, expander.ads,
410 freeze.adb, inline.adb, lib-xref.adb, sem.ads, sem_aggr.adb,
411 sem_attr.adb, sem_ch13.adb, sem_ch3.adb, sem_ch5.adb, sem_ch6.adb,
412 sem_ch8.adb, sem_dim.adb, sem_elab.adb, sem_res.adb, sem_res.ads,
413 sinfo.ads: Spell preanalysis, preanalyze correctly.
414
415 2018-05-30 Bob Duff <duff@adacore.com>
416
417 * libgnat/g-sestin.ads: Rework documentation comments.
418
419 2018-05-30 Piotr Trojanek <trojanek@adacore.com>
420
421 * errout.adb, exp_aggr.adb, exp_ch7.adb, exp_util.adb, lib.adb,
422 sem_ch13.adb, sem_ch4.adb, sem_res.adb, sem_util.adb
423 (Has_Original_Node): Refactor to use Is_Rewrite_Substitution.
424
425 2018-05-30 Piotr Trojanek <trojanek@adacore.com>
426
427 * sem_prag.adb (Analyze_Pragma): Remove conjuncts that are always true.
428
429 2018-05-30 Hristian Kirtchev <kirtchev@adacore.com>
430
431 * sem_util.adb (Is_Atomic_Object): Cleaned up. Split the entity logic
432 in a separate routine.
433 (Is_Atomic_Object_Entity): New routine.
434 (Is_Atomic_Prefix): Cleaned up.
435 (Is_Synchronized_Object): Check that the object is atomic, or its type
436 is atomic.
437 (Object_Has_Atomic_Components): Removed.
438 * sem_util.ads (Is_Atomic_Object): Reword the comment on usage.
439 (Is_Atomic_Object_Entity): New routine.
440
441 2018-05-30 Ed Schonberg <schonberg@adacore.com>
442
443 * sem_ch3.adb (Access_Subprogram_Declaration): The flag
444 Needs_Activation_Record is only needed on a subprogram type, not on a
445 pointer to such.
446 * sem_res.adb (Resolve_Selected_Component): If the context type and the
447 component type are anonymous access to subprograms, use the component
448 type to obtain the proper value of Needs_Activation_Record flag for the
449 expression.
450
451 2018-05-30 Eric Botcazou <ebotcazou@adacore.com>
452
453 * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Add
454 comment about the memset case.
455
456 2018-05-30 Bob Duff <duff@adacore.com>
457
458 * exp_ch5.adb (Expand_Formal_Container_Element_Loop): Remove the code
459 to analyze the Elmt_Decl, because it gets analyzed in the wrong scope.
460 We need to analyze it as part of analyzing the block, so that if the
461 call to Element that initializes Elmt_Decl returns on the secondary
462 stack, the block will ss_mark/ss_release. This block is inside the
463 loop; we don't want to leak memory until the loop exits. The purpose
464 of analyzing Elmt_Decl first was to catch the error of modifying it,
465 which is illegal because it's a loop parameter. The above causes us to
466 miss that error. Therefore, we add a flag Is_Loop_Parameter, and set
467 it on the Element entity, so we end up with an E_Variable node with the
468 flag set.
469 * einfo.ads, einfo.adb (Is_Loop_Parameter): New flag.
470 * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Give the "assignment to loop
471 parameter not allowed" error if Is_Loop_Parameter.
472 * sem_util.adb (Is_Variable): Return False if Is_Loop_Parameter, to
473 trigger the call to Diagnose_Non_Variable_Lhs.
474
475 2018-05-30 Arnaud Charlet <charlet@adacore.com>
476
477 * checks.adb (Apply_Scalar_Range_Check):
478 * sem_eval.adb (Check_Non_Static_Context, Out_Of_Range): Ignore out of
479 range values for System.Priority in CodePeer mode since the actual
480 target compiler may provide a wider range.
481
482 2018-05-30 Ed Schonberg <schonberg@adacore.com>
483
484 * exp_unst.adb: Search specification of main unit as well, for
485 unnesting.
486
487 2018-05-30 Ed Schonberg <schonberg@adacore.com>
488
489 * exp_ch7.adb (Check_Unnesting_Elaboration_Code): The statement part of
490 a package body that is a compilation unit may contain blocks that
491 declare local subprograms. In Subprogram_Unnesting Mode such
492 subprograms must be handled as nested inside the (implicit) elaboration
493 procedure that executes that statement part. To handle properly uplevel
494 references we construct that subprogram explicitly, to contain blocks
495 and inner subprograms, The statement part of the compilation unit
496 becomes a call to this subprogram. This is only done if blocks are
497 present in the statement list of the body.
498
499 2018-05-30 Bob Duff <duff@adacore.com>
500
501 * exp_ch7.adb: Minor comment fix.
502
503 2018-05-30 Ed Schonberg <schonberg@adacore.com>
504
505 * exp_unst.adb (Visit_Node): Handle properly subprogram instantiations
506 that have no corresponding body and appear as attributes of the
507 corresponding wrapper package declaration.
508 (Register_Subprogram): New subprogram, used for subprogram bodies and
509 for subprogram instantiations to enter callable entity into Subp table.
510
511 2018-05-30 Hristian Kirtchev <kirtchev@adacore.com>
512
513 * libgnat/s-secsta.adb: Reimplement the secondary stack support.
514 * libgnat/s-secsta.ads: Update the documentation of all routines in the
515 public part of the package. Reimplement the private part of the
516 package to account for the new secondary stack structure. Add types
517 and subprograms for testing purposes. Add several documentation
518 sections.
519
520 2018-05-30 Hristian Kirtchev <kirtchev@adacore.com>
521
522 * exp_aggr.adb, exp_ch3.adb, exp_ch4.adb, exp_ch7.adb, exp_unst.adb,
523 exp_util.adb, exp_util.ads, libgnat/a-calcon.adb, libgnat/a-calcon.ads,
524 libgnat/s-os_lib.adb, repinfo.adb, sem_ch3.adb, sem_disp.adb,
525 sem_disp.ads, sem_util.adb: Minor reformatting.
526
527 2018-05-30 Arnaud Charlet <charlet@adacore.com>
528
529 * gcc-interface/Makefile.in: Move special flags for Ada runtime files
530 from here...
531 * Makefile.rtl: ... to here. Update comments. Protect call to
532 "GCC_FOR_TARGET" in case target_os isn't defined.
533
534 2018-05-30 Arnaud Charlet <charlet@adacore.com>
535
536 * gcc-interface/Makefile.in: Move target pair settings from here...
537 * Makefile.rtl: ... to here.
538 (setup-rts): New target.
539
540 2018-05-29 Eric Botcazou <ebotcazou@adacore.com>
541
542 * doc/gnat_ugn/building_executable_programs_with_gnat.rst (Alphabetical
543 List of All Switches): Replace "modules" with "units".
544 (Subprogram Inlining Control): Likewise.
545 * gnat_ugn.texi: Regenerate.
546 * usage.adb (Usage): Fix description of -gnatn switch.
547
548 2018-05-29 Arnaud Charlet <charlet@adacore.com>
549
550 * gcc-interface/Makefile.in: Fix typos.
551
552 2018-05-29 Ed Schonberg <schonberg@adacore.com>
553
554 * exp_ch7.adb (Build_Finalizer_Call): Attach to tree the reference to
555 the finalizer procedure in the At_End handler, for use in LLVM
556 generation.
557
558 2018-05-29 Javier Miranda <miranda@adacore.com>
559
560 * exp_ch4.adb (Expand_N_Op_Eq, Expand_Composite_Equality): Use the new
561 subprogram Inherits_From_Tagged_Full_View to identify more reliably
562 untagged private types completed with a derivation of an untagged
563 private whose full view is a tagged type.
564 * sem_util.ads, sem_util.adb (Inherits_From_Tagged_Full_View): New
565 subprogram.
566 (Collect_Primitive_Operations): Handle untagged private types completed
567 with a derivation of an untagged private type whose full view is a
568 tagged type. In such case, collecting the list of primitives we may
569 find two equality primitives: one associated with the untagged private
570 and another associated with the ultimate tagged type (and we must
571 remove from the returned list this latter one).
572
573 2018-05-29 Ed Schonberg <schonberg@adacore.com>
574
575 * exp_unst.adb (Visit_Node): Handle statement sequences that include an
576 At_End handler.
577
578 2018-05-29 Eric Botcazou <ebotcazou@adacore.com>
579
580 * repinfo.adb (List_Entities): Also recurse into blocks without label.
581
582 2018-05-29 Ed Schonberg <schonberg@adacore.com>
583
584 * exp_ch6.adb (Expand_N_Subprogram_Body): Do not generate push/pop for
585 exceptions if subprogram unnesting is in effect, because these branch
586 nodes are relevant only in the presence of nested subprograms.
587
588 2018-05-29 Ed Schonberg <schonberg@adacore.com>
589
590 * libgnat/s-fatgen.adb (Succ, Pred): Raise Constraint_Error
591 unconditionally when applied to the largest positive (resp. largest
592 negative) value of a floating-point type.
593
594 2018-05-29 Ed Schonberg <schonberg@adacore.com>
595
596 * einfo.ads, einfo.adb: Clarify use of Activation_Record_Component:
597 discriminants and exceptions are never components of such. The flag
598 Needs_Activation_Record is set on subprogram types, not on access to
599 them.
600
601 2018-05-29 Ed Schonberg <schonberg@adacore.com>
602
603 * sem_ch3.adb: Set scope of component of subtype.
604
605 2018-05-29 Ed Schonberg <schonberg@adacore.com>
606
607 * exp_unst.adb (Visit_Node): Exclude selected components whose prefix
608 carry no type. Such selected components appear in unit names that are
609 child units, both in the specification and possibly in an end label for
610 the unit, and they do not contain any relevant uplevel references.
611
612 2018-05-29 Arnaud Charlet <charlet@adacore.com>
613
614 * libgnat/a-calend.ads, libgnat/a-calend.adb (Epoch_Offset): Make it a
615 function.
616
617 2018-05-29 Olivier Hainque <hainque@adacore.com>
618
619 * libgnat/system-vxworks7-ppc-rtp.ads: New file.
620 * libgnat/system-vxworks7-ppc-kernel.ads: New file.
621 * libgnat/system-vxworks7-e500-rtp.ads: New file.
622 * libgnat/system-vxworks7-e500-kernel.ads: New file.
623 * libgnat/system-vxworks7-x86-rtp.ads: New file.
624 * libgnat/system-vxworks-ppc64-kernel.ads: Rename as ...
625 * libgnat/system-vxworks7-ppc64-kernel.ads: and adjust name of
626 gnat-crtbe link spec to use the vx7 variant.
627
628 2018-05-29 Olivier Hainque <hainque@adacore.com>
629
630 * vx_crtbegin.inc: Use a consistent naming convention for the
631 registration/deregistration functions across RTP or kernel. Remove the
632 ctor/dtor attribute setting based on RTP/kernel, expect the optional
633 attribute extension to be provided by includers instead.
634 * vx_crtbegin.c: Mere inclusion of vx_crtbegin.inc with empty attribute
635 extension for the registration/deregistration functions.
636 * vx_crtbegin_attr.c: New file. Include vx_crtbegin.inc with explicit
637 constructor/destructor attribute extensions.
638 * vx_crtbegin_array.c: New file. Include vx_crtbegin.inc with empty
639 attribute extensions and declare _ctors/_dtors arrays.
640 * vx_crtbegin_auto.c: Remove.
641 * libgnat/system-vxworks7-aarch64-rtp-smp.ads: Use
642 vxworks7-gnat-crtbe-link.spec.
643 * libgnat/system-vxworks7-aarch64.ads: Likewise.
644 * libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise.
645 * libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
646 * libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise.
647 * libgnat/system-vxworks7-x86-kernel.ads: Likewise.
648 * libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise.
649 * libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.
650 * libgnat/system-vxworks7-x86_64-rtp-smp.ads: Likewise.
651
652 2018-05-29 Piotr Trojanek <trojanek@adacore.com>
653
654 * ali.adb: Minor reformatting.
655
656 2018-05-29 Joel Brobecker <brobecker@adacore.com>
657
658 * doc/gnat_ugn/platform_specific_information.rst: Update package
659 requirements for 32bit GNAT on x86_64-linux.
660 * gnat_ugn.texi: Regenerate.
661
662 2018-05-29 Eric Botcazou <ebotcazou@adacore.com>
663
664 * doc/gnat_ugn/building_executable_programs_with_gnat.rst (Debugging
665 Control): Adjust description of -gnatRj.
666 * gnat_ugn.texi: Regenerate.
667 * opt.ads (List_Representation_Info_To_JSON): Likewise.
668 * repinfo.adb (List_Rep_Info): Do not automatically create a file
669 if List_Representation_Info_To_JSON is true.
670 * switch-c.adb (Scan_Front_End_Switches) <R>: Remove incompatibility
671 check between -gnatRj and -gnatRs.
672 * usage.adb (Usage): Adjust description of -gnatRj.
673
674 2018-05-29 Pascal Obry <obry@adacore.com>
675
676 * libgnat/s-os_lib.adb (Normalize_Pathname): Fix handling of ".." in
677 the root directory.
678
679 2018-05-29 Pascal Obry <obry@adacore.com>
680
681 * libgnat/s-os_lib.adb: Minor reformatting.
682
683 2018-05-29 Doug Rupp <rupp@adacore.com>
684
685 * libgnat/a-calend.adb (Epoch_Offset): Move from body to ...
686 * libgnat/a-calend.ads (Epoch_Offset): to private part of spec
687 * libgnat/a-calcon.ads (To_Unix_Nano_Time): New function spec.
688 * libgnat/a-calcon.adb (To_Unix_Nano_Time): New function body.
689
690 2018-05-29 Eric Botcazou <ebotcazou@adacore.com>
691
692 * repinfo.ads (JSON format): Document new pair for components.
693 * repinfo.adb (Derived_Discriminant): New function.
694 (List_Structural_Record_Layout): Add Outer_Ent parameter and pass it
695 in recursive calls. If the record type is the parent of an extension,
696 find and list the derived discriminant from the extension, if any.
697 (List_Component_Layout): List the Discriminant_Number in JSON mode.
698 (List_Record_Info): Adjust call to List_Structural_Record_Layout.
699
700 2018-05-29 Eric Botcazou <ebotcazou@adacore.com>
701
702 * doc/gnat_ugn/building_executable_programs_with_gnat.rst (Alphabetical
703 List of All Switches): Document -gnatRj.
704 (Debugging Control): Likewise.
705 * gnat_ugn.texi: Regenerate.
706 * opt.ads (List_Representation_Info_To_JSON): New boolean variable.
707 * osint-c.adb (Create_Repinfo_File): Use the .json instead of .rep
708 extension if List_Representation_Info_To_JSON is true.
709 * repinfo.ads: Document the JSON output format.
710 * repinfo.adb (List_Location): New procedure.
711 (List_Array_Info): Add support for JSON output.
712 (List_Entities): Likewise.
713 (Unop): Likewise.
714 (Binop): Likewise.
715 (Print_Expr): Likewise.
716 (List_Linker_Section): Likewise.
717 (List_Mechanisms): Likewise.
718 (List_Name): Likewise.
719 (List_Object_Info): Likewise.
720 (List_Record_Info): Likewise.
721 (List_Component_Layout): Likewise. Add Indent parameter.
722 (List_Structural_Record_Layout): New procedure.
723 (List_Attr): Add support for JSON output.
724 (List_Type_Info): Likewise.
725 (Write_Unknown_Val): Likewise.
726 * switch-c.adb (Scan_Front_End_Switches) <R>: Deal with 'j'.
727 * usage.adb (Usage): List -gnatRj.
728
729 2018-05-29 Eric Botcazou <ebotcazou@adacore.com>
730
731 * repinfo.adb (List_Component_Layout): New procedure extracted from...
732 (List_Record_Layout): ...here. Invoke it.
733
734 2018-05-29 Eric Botcazou <ebotcazou@adacore.com>
735
736 * repinfo.adb (Write_Unknown_Val): New procedure.
737 (List_GCC_Expression): Call it.
738 (List_Record_Layout): Likewise.
739 (Write_Val): Likewise.
740
741 2018-05-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
742
743 * exp_ch4.adb (Expand_N_Op_Abs): Clear Do_Overflow_Check when inserting
744 code to do check.
745
746 2018-05-29 Arnaud Charlet <charlet@adacore.com>
747
748 * lib-writ.adb (Write_ALI): Do not use new function from s-casuti yet.
749 This breaks build of cross compilers with older versions of GNAT, so
750 better avoid it.
751
752 2018-05-29 Doug Rupp <rupp@adacore.com>
753
754 * libgnarl/s-taprop.ads (Monotonic_Clock): Refine documentation to
755 reflect reality.
756
757 2018-05-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
758
759 * exp_ch4.adb (Expand_N_Op_Abs): Always do range check against 'First.
760
761 2018-05-29 Eric Botcazou <ebotcazou@adacore.com>
762
763 * repinfo.adb (List_Entities): Do not list the Linker_Section for
764 subprograms here...
765 (List_Mechanisms): ...but here instead. Use consistent name output
766 and formatting conventions.
767
768 2018-05-29 Bob Duff <duff@adacore.com>
769
770 * lib-writ.adb (Write_ALI): Cleanup: avoid use of global var; call new
771 To_Lower function.
772 * libgnat/s-casuti.ads, libgnat/s-casuti.adb (To_Upper, To_Lower,
773 To_Mixed): New functions.
774 * osint.adb: Cleanup: use Is_Directory_Separator, which correctly
775 allows both '\' and '/' on Windows.
776
777 2018-05-28 Eric Botcazou <ebotcazou@adacore.com>
778
779 * repinfo.ads: Minor fixes and tweaks in comments.
780
781 2018-05-28 Eric Botcazou <ebotcazou@adacore.com>
782
783 * repinfo.adb (List_GCC_Expression): Remove Valop and replace calls to
784 it with calls to Unop.
785
786 2018-05-28 Eric Botcazou <ebotcazou@adacore.com>
787
788 * repinfo.ads (TCode): Adjust range.
789 (Truth_Andif_Expr): Remove.
790 (Truth_Orif_Expr): Likewise.
791 (Truth_And_Expr .. Dynamic_Val): Adjust value.
792 * repinfo.adb (Print_Expr): Remove handling of Truth_{And,Or}if_Expr.
793 (Rep_Value): Likewise.
794 * repinfo.h (Truth_Andif_Expr): Remove.
795 (Truth_Orif_Expr): Likewise.
796 (Truth_And_Expr .. Dynamic_Val): Adjust value.
797 * gcc-interface/decl.c (annotate_value) <TRUTH_ANDIF_EXPR>: Fall
798 through to TRUTH_AND_EXPR case.
799 <TRUTH_ORIF_EXPR>: Fall through to TRUTH_OR_EXPR case.
800
801 2018-05-28 Ed Schonberg <schonberg@adacore.com>
802
803 * exp_unst.adb (Visit_Node): For indexed components and attribute
804 references, examine index expressions or associated expressions as well
805 to record uplevel references.
806 (Vist_Node): For function and procedure calls, if a formal is an
807 unconstrained array and the actual is constrained, check whether bounds
808 of actual have uplevel references.
809
810 2018-05-28 Ed Schonberg <schonberg@adacore.com>
811
812 * einfo.ads, einfo.adb: Exceptions can be uplevel references, and thus
813 they can appear as components of activation records.
814 * exp_unst.adb (Visit_Node): A reference to an exception may be an
815 uplevel reference.
816
817 2018-05-28 Eric Botcazou <ebotcazou@adacore.com>
818
819 * exp_ch4.adb (Expand_Composite_Equality): Compute whether the size
820 depends on a discriminant manually instead of using the predicate
821 Size_Depends_On_Discriminant in the array type case.
822
823 2018-05-28 Ed Schonberg <schonberg@adacore.com>
824
825 * exp_unst.adb (Check_Static_Type): For a record subtype, check
826 discriminant constraints as well.
827 (Visit_Node): For a selected component, check type of prefix, as is
828 done for indexed components and slices.
829
830 2018-05-28 Javier Miranda <miranda@adacore.com>
831
832 * exp_ch4.adb (Real_Range_Check): Add a temporary to store the integer
833 value when converting a float value to a fixed-point value. This is
834 required for CCG because it handles fixed-point types by means of
835 unsigned integer type variables. The range check is now performed using
836 the integer value stored in this temporary.
837
838 2018-05-28 Yannick Moy <moy@adacore.com>
839
840 * sem_util.adb (Is_OK_Volatile_Context): Add attributes First, Last and
841 Length as valid non-interfering contexts for SPARK.
842
843 2018-05-28 Claire Dross <dross@adacore.com>
844
845 * sem_disp.ads, sem_disp.adb (Inheritance_Utilities): Package for
846 generic inheritance utilities.
847 (Generic_Inherited_Subprograms): Generic version of
848 Inherited_Subprograms, generic in Find_Dispatching_Type function.
849 (Generic_Is_Overriding_Subprogram): Generic version of
850 Is_Overriding_Subprogram, generic in Find_Dispatching_Type function.
851 (Inherited_Subprograms): Instance of Generic_Inherited_Subprograms with
852 Sem_Disp.Find_Dispatching_Type.
853 (Is_Overriding_Subprogram): Instance of
854 Generic_Is_Overriding_Subprogram with Sem_Disp.Find_Dispatching_Type.
855 (Inheritance_Utilities_Inst): Instance of Inheritance_Utilities
856 with Sem_Disp.Find_Dispatching_Type.
857
858 2018-05-28 Eric Botcazou <ebotcazou@adacore.com>
859
860 * exp_ch4.adb (Expand_Composite_Equality): For a composite (or FP)
861 component type, do not expand array equality using the unconstrained
862 base type, except for the case where the bounds of the type depend on a
863 discriminant.
864
865 2018-05-28 Ed Schonberg <schonberg@adacore.com>
866
867 * einfo.ads, einfo.adb (Needs_Activation_Record): New flag on
868 access-to-subprogram types, to indicate that an indirect call through
869 such a type requires an activation record when compiling for LLVM.
870 * sem_ch3.adb (Access_Subprogram_Declaration): Set new flag as needed.
871
872 2018-05-28 Ed Schonberg <schonberg@adacore.com>
873
874 * exp_ch4.adb (Real_Range_Check): Specialize float-to-fixed conversions
875 when bounds of fixed type are static, to remove some spuerfluous
876 implicit conversions and provide an accurate result when converting
877 back and forth between the fixed point type and a floating point type.
878
879 2018-05-28 Ed Schonberg <schonberg@adacore.com>
880
881 * exp_unst.adb (Unnest_Subprogram): Prevent creation of empty
882 activation records.
883
884 2018-05-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
885
886 * exp_unst.adb (Check_Static_Type): Add argument to indicate node to be
887 replaced, if any; all callers changed.
888 (Note_Uplevel_Ref): Likewise. Also replace reference to deferred
889 constant with private view so we take the address of that entity.
890 (Note_Uplevel_Bound): Add argument to indicate node to be replaced, if
891 any; all callers changed. Handle N_Indexed_Component like
892 N_Attribute_Reference. Add N_Type_Conversion case.
893 (Visit_Node): Indexed references can be uplevel if the type isn't
894 static.
895 (Unnest_Subprograms): Don't rewrite if no reference given. If call has
896 been relocated, set first_named pointer in original node as well.
897
898 2018-05-28 Ed Schonberg <schonberg@adacore.com>
899
900 * exp_aggr.adb (Flatten): Copy tree of expression in a component
901 association with a range or a set of discrete choices, rather than
902 relocating the node. This avoids inconsistencies in the tree when
903 handling nested subprograms with uplevel references for LLVM.
904
905 2018-05-28 Arnaud Charlet <charlet@adacore.com>
906
907 * exp_util.adb (Possible_Bit_Aligned_Component): Always return False in
908 codepeer mode.
909
910 2018-05-28 Arnaud Charlet <charlet@adacore.com>
911
912 * exp_unst.adb: Fix typo.
913
914 2018-05-28 Bob Duff <duff@adacore.com>
915
916 * libgnat/a-convec.adb (Query_Element): Minor cleanup: remove an
917 unnecessary use of 'Unrestricted_Access.
918
919 2018-05-28 Hristian Kirtchev <kirtchev@adacore.com>
920
921 * repinfo.adb (Expr_Value_S): New routine.
922 (List_Linker_Section): Properly extract the value of the section
923 argument.
924
925 2018-05-28 Patrick Bernardi <bernardi@adacore.com>
926
927 * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Update the
928 description of the -D binder switch to reflect current usage.
929 * gnat_ugn.texi: Regenerate.
930
931 2018-05-28 Gary Dismukes <dismukes@adacore.com>
932
933 * exp_ch3.adb: Minor reformatting
934
935 2018-05-28 Justin Squirek <squirek@adacore.com>
936
937 * exp_ch3.adb
938 (Build_Initialization_Call): Add logic to pass the appropriate actual to match
939 new formal.
940 (Init_Formals): Add new formal *_skip_null_excluding_check
941 * exp_util.adb, exp_util.ads
942 (Enclosing_Init_Proc): Added to fetch the enclosing Init_Proc from the current
943 scope.
944 (Inside_Init_Proc): Refactored to use Enclosing_Init_Proc
945 (Needs_Conditional_Null_Excluding_Check): Added to factorize the predicate
946 used to determine how to generate an Init_Proc for a given type.
947 (Needs_Constant_Address): Minor reformatting
948 * sem_res.adb
949 (Resolve_Null): Add logic to generate a conditional check in certain cases
950
951 2018-05-28 Hristian Kirtchev <kirtchev@adacore.com>
952
953 * exp_aggr.adb, gnatlink.adb, sem_ch6.adb, sem_res.adb, sem_util.adb:
954 Minor reformatting.
955
956 2018-05-28 Hristian Kirtchev <kirtchev@adacore.com>
957
958 * sem_prag.adb (Process_Atomic_Independent_Shared_Volatile): Include
959 the declarations of single concurrent types because they fall in the
960 category of full type and object declarations.
961
962 2018-05-28 Eric Botcazou <ebotcazou@adacore.com>
963
964 * repinfo.adb (Compute_Max_Length): Skip _Parent component.
965 (List_Record_Layout): Likewise.
966
967 2018-05-28 Ed Schonberg <schonberg@adacore.com>
968
969 * sem_util.adb (Is_Function_Result): Add a warning if a postcondition
970 includes a call to function to which it applies. This may mean an
971 omission of an attribute reference 'Result, in particular if the
972 function is pqrameterless.
973
974 2018-05-28 Justin Squirek <squirek@adacore.com>
975
976 * sem_ch8.adb (Find_Expanded_Name): Add extra guard to make sure the
977 misresolved package name is not a case of mistaken identity.
978
979 2018-05-28 Yannick Moy <moy@adacore.com>
980
981 * sem_res.adb (Resolve_Range): Re-resolve the low bound of a range in
982 GNATprove mode, as the order of resolution (low then high) means that
983 all the information is not available when resolving the low bound the
984 first time.
985
986 2018-05-28 Eric Botcazou <ebotcazou@adacore.com>
987
988 * repinfo.adb (List_Array_Info): Start with an explicit blank line and
989 end with the linker section, if any.
990 (List_Entities): Do not output the linker section for record types,
991 array types and variables.
992 (Print_Expr): Factor out common processing for unary operators and
993 special values. Adjust and reorder the various cases.
994 (List_Object_Info): End with the linker section, if any.
995 (List_Record_Info): Likewise.
996 (List_Type_Info): Do not start with a blank line.
997
998 2018-05-25 Nicolas Roche <roche@adacore.com>
999
1000 * libgnat/s-valrea.adb (Scan_Real): Abort computation once it is sure
1001 that the result will be either -infinite or +infinite.
1002
1003 2018-05-25 Patrick Bernardi <bernardi@adacore.com>
1004
1005 * libgnat/s-parame.ads, libgnat/s-parame__vxworks.ads,
1006 libgnat/s-parame__ae653.ads, libgnat/s-parame__hpux.ads (Size_Type):
1007 Expand range of type to match the address space of the target.
1008 (Task_Storage_Size): Remove unused type.
1009
1010 2018-05-25 Ed Schonberg <schonberg@adacore.com>
1011
1012 * sem_res.adb (Set_Mixed_Mode_Operand): If the operand is an expression
1013 of a fixed point type and the parent is a multiplying operation,
1014 resolve the operand with its own type because the context will impose a
1015 resulting type on the result of the multiplication by means of
1016 approriate conversion.
1017
1018 2018-05-25 Hristian Kirtchev <kirtchev@adacore.com>
1019
1020 * exp_ch3.adb (Default_Initialize_Object): Ensure that the analysis of
1021 the in-place initialization aggregate created for pragmas
1022 Initialize_Scalars or Normalize_Scalars is performed with checks
1023 suppressed.
1024
1025 2018-05-25 Arnaud Charlet <charlet@adacore.com>
1026
1027 * exp_aggr.adb (Convert_To_Positional): Bump default for
1028 Max_Others_Replicate to 32. Update comments.
1029 * osint.ads (Unknown_Attributes): No longer pretend this is a constant.
1030 (No_File_Info_Cache): Initialize separately.
1031 * osint.adb (No_File_Info_Cache): Update initializer.
1032
1033 2018-05-25 Javier Miranda <miranda@adacore.com>
1034
1035 * sem_res.adb (Resolve_Membership_Op): Allow the use of the membership
1036 test when the left operand is a class-wide interface and the right
1037 operand is not a class-wide type.
1038 * exp_ch4.adb (Tagged_Membership): Adding support for interface as the
1039 left operand.
1040
1041 2018-05-25 Ed Schonberg <schonberg@adacore.com>
1042
1043 * exp_aggr.adb (Flatten): A quantified expression cannot be duplicated
1044 in an others clause to prevent visibility issues with the generated
1045 loop variable.
1046 (Component_OK_For_Backend): Return false for a quantified expression.
1047 (Check_Static_Component): Ditto.
1048
1049 2018-05-25 Hristian Kirtchev <kirtchev@adacore.com>
1050
1051 * libgnat/s-secsta.adb (SS_Allocate): Reimplemented.
1052 (SS_Allocate_Dynamic): New routine. The allocation logic is now split
1053 into three distring cases rather than in one loop which attempts to
1054 handle all three cases. This rewrite eliminates an issue where the last
1055 frame of the stack cannot be freed, thus causing the memory range of a
1056 new frame to approach the overflow point of the memory index type.
1057 Since the overflow is logically treated as a
1058 too-much-memory-on-the-stack scenario, it causes a bogus Storage_Error.
1059 (SS_Allocate_Static): New routine. The routine factorizes the static
1060 secondary stack-related code from the former SS_Allocate.
1061
1062 2018-05-25 Sergey Rybin <rybin@adacore.com>
1063
1064 * doc/gnat_ugn/gnat_and_program_execution.rst: Add description of '-U'
1065 option for gnatelim.
1066
1067 2018-05-25 Ed Schonberg <schonberg@adacore.com>
1068
1069 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not create
1070 Class_Wide_Clone_Body when analyzing a subprogram_body_stub: the clone
1071 is created when the proper body of the stub is analyzed.
1072 * sem_util.adb (ZBuild_Class_Wide_Clone_Body): If the subprogram body
1073 is the proper body of a subunit, the cloned body must be inserted in
1074 the declarative list that contains the stub.
1075
1076 2018-05-25 Justin Squirek <squirek@adacore.com>
1077
1078 * exp_ch6.adb (Expand_Simple_Function_Return): Add guard in check to
1079 generate code for 6.5(8-10) so that we don't get an assertion error
1080 when dealing with an incomplete return type.
1081
1082 2018-05-25 Arnaud Charlet <charlet@adacore.com>
1083
1084 * pprint.adb (Expression_Name): Strip too long expressions to avoid
1085 carrying very large strings.
1086
1087 2018-05-25 Patrick Bernardi <bernardi@adacore.com>
1088
1089 * switch-b.adb (Scan_Binder_Switches): binder switch -Q accepts Natural
1090 numbers.
1091
1092 2018-05-25 Doug Rupp <rupp@adacore.com>
1093
1094 * tracebak.c (aarch64-linux): Implement.
1095
1096 2018-05-25 Justin Squirek <squirek@adacore.com>
1097
1098 * sem_ch8.adb: Minor reformatting.
1099
1100 2018-05-25 Piotr Trojanek <trojanek@adacore.com>
1101
1102 * sem_util.adb (Iterate_Call_Parameters): Fix code convention and
1103 assertions.
1104
1105 2018-05-25 Hristian Kirtchev <kirtchev@adacore.com>
1106
1107 * einfo.adb, einfo.ads, exp_ch3.adb, exp_ch8.adb, exp_unst.adb,
1108 pprint.adb, sem_ch12.adb, sem_ch3.adb, sem_prag.adb, sem_util.adb:
1109 Minor reformatting.
1110
1111 2018-05-25 Ed Schonberg <schonberg@adacore.com>
1112
1113 * sem_ch12.adb (Instance_Exists): New function, subsidiary of
1114 Validate_Derived_Type_Instance, to verify that all interfaces
1115 implemented by the formal type are also implemented by the actual. The
1116 verification is complicated when an interface of the formal is declared
1117 in a generic unit and the actual is declared in an instance of it.
1118 There is currently no mechanism to relate an interface declared within
1119 a generic to the corresponding interface in an instance, so we must
1120 traverse the list of interfaces of the actual, looking for a name
1121 match, and verifying that that interface is declared in an instance.
1122
1123 2018-05-25 Piotr Trojanek <trojanek@adacore.com>
1124
1125 * sem_util.adb (Iterate_Call_Parameters): Rewrite with extra
1126 assertions; replace function versions of Next_Formal/Next_Actual with
1127 their procedural versions (which are more concise).
1128
1129 2018-05-25 Doug Rupp <rupp@adacore.com>
1130
1131 * libgnarl/s-osinte__aix.ads, libgnarl/s-osinte__android.ads,
1132 libgnarl/s-osinte__darwin.ads, libgnarl/s-osinte__freebsd.ads,
1133 libgnarl/s-osinte__hpux.ads, libgnarl/s-osinte__kfreebsd-gnu.ads,
1134 libgnarl/s-osinte__linux.ads, libgnarl/s-osinte__lynxos178e.ads,
1135 libgnarl/s-osinte__qnx.ads, libgnarl/s-osinte__rtems.ads
1136 (Relative_Timed_Wait): Remove.
1137 * libgnarl/s-tpopmo.adb (Timed_Sleep, Timed_Delay): Rewrite to allow
1138 for incremental looping. Remove references to Rel_Time and
1139 Relative_Timed_Wait.
1140 * libgnat/s-osprim__posix.adb, libgnat/s-osprim__posix2008.adb
1141 (Timed_Delay): Make separate.
1142 * libgnat/s-optide.adb: New separate procedure.
1143 * libgnat/s-osprim.ads (Max_System_Delay): New constant.
1144 * libgnat/s-osprim__lynxos.ads (Max_Sensible_Delay): Set to 6 months.
1145 (Max_System_Delay): New constant.
1146
1147 2018-05-25 Ed Schonberg <schonberg@adacore.com>
1148
1149 * sem_ch12.adb (Validate_Derived_Type_Instance): Verify that the actual
1150 for a formal derived type implements all the interfaces declared for
1151 the formal.
1152
1153 2018-05-25 Yannick Moy <moy@adacore.com>
1154
1155 * sem_prag.adb (Check_Applicable_Policy): Deal specially with CodePeer
1156 and GNATprove modes when applicable policy is Ignore.
1157
1158 2018-05-25 Eric Botcazou <ebotcazou@adacore.com>
1159
1160 * freeze.adb (Freeze_Enumeration_Type): Do not give integer size to a
1161 boolean type with convention C.
1162 * libgnat/i-cexten.ads (bool): Change to boolean with convention C.
1163 * gcc-interface/decl.c (gnat_to_gnu_entity): Add new local variable
1164 FOREIGN and use it throughout the function.
1165 <E_Enumeration_Type>: Set precision 1 on boolean types with foreign
1166 convention.
1167 <E_Enumeration_Subtype>: Likewise for subtypes.
1168 <E_Record_Type>: Force the size of a storage unit on empty classes.
1169 * gcc-interface/utils.c (make_type_from_size) <BOOLEAN_TYPE>: Skip
1170 boolean types with precision 1 if the size is the expected one.
1171
1172 2018-05-25 Arnaud Charlet <charlet@adacore.com>
1173
1174 * pprint.adb (Expression_Name): Do not print non ASCII characters.
1175
1176 2018-05-25 Bob Duff <duff@adacore.com>
1177
1178 * libgnat/a-strunb__shared.ads, libgnat/a-stwiun__shared.ads,
1179 libgnat/a-stzunb__shared.ads: (Initialize, Adjust): Add pragma Inline.
1180
1181 2018-05-25 Bob Duff <duff@adacore.com>
1182
1183 * sem_util.ads: Minor comment fix.
1184
1185 2018-05-25 Ed Schonberg <schonberg@adacore.com>
1186
1187 * exp_unst.adb (Visit_Node): Restrict check for uplevel references in
1188 prefixes of array attributes, to prefixes that are entity names whose
1189 type is constrained.
1190 (Note_Uplevel_Bound): Verify that the bound is declared in an enclosing
1191 subprogram, as itype created for loops in pre/postcondition may appear
1192 in loops at the library level.
1193
1194 2018-05-25 Ed Schonberg <schonberg@adacore.com>
1195
1196 * sem_ch13.adb (Build_Predicate_Functions): The predicate function
1197 declaration is inserted into the tree and analyzed at that point, so
1198 should not be reinserted when the body is constructed. Inside a
1199 generic, ensure that the body is not inserted twice in the tree.
1200
1201 2018-05-25 Yannick Moy <moy@adacore.com>
1202
1203 * sem_prag.adb (Check_Grouping): Modify test to ignore statements and
1204 declarations not coming from source.
1205
1206 2018-05-25 Fedor Rybin <frybin@adacore.com>
1207
1208 * doc/gnat_ugn/gnat_utility_programs.rst: Document new switch
1209 --copy-environment for gnattest.
1210
1211 2018-05-24 Piotr Trojanek <trojanek@adacore.com>
1212
1213 * sem_elab.adb (Non_Private_View): Simplify by removing a local Result
1214 variable.
1215 * sem_prag.adb (Get_Base_Subprogram): Same as above.
1216
1217 2018-05-24 Eric Botcazou <ebotcazou@adacore.com>
1218
1219 * fe.h (Set_Normalized_First_Bit): Declare.
1220 (Set_Normalized_Position): Likewise.
1221 * repinfo.adb (List_Record_Layout): Do not use irregular output for a
1222 variable position. Fix minor spacing issue.
1223 * gcc-interface/decl.c (annotate_rep): If a field has a variable
1224 offset, compute the normalized position and annotate it in addition to
1225 the bit offset.
1226
1227 2018-05-24 Eric Botcazou <ebotcazou@adacore.com>
1228
1229 * gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu):
1230 Constify and rename variables. Fix formatting.
1231 (gnat_to_gnu) <N_Exception_Handler>: Minor tweak.
1232 <N_Raise_Statement>: Likewise.
1233
1234 2018-05-24 Javier Miranda <miranda@adacore.com>
1235
1236 * exp_ch8.adb (Build_Body_For_Renaming): Adding support to build the
1237 body of a variant record equality renaming.
1238 (Expand_N_Subprogram_Renaming_Declaration): Adapt the code to the new
1239 implementation of Build_Body_For_Renaming.
1240 * exp_ch3.ads (Build_Variant_Record_Equality): New library level
1241 function that factorizes the functionality needed by
1242 Build_Body_For_Renaming and Expand_Freeze_Record_Type to build the body
1243 of a variant record equality subprogram.
1244 * exp_ch3.adb (Build_Variant_Record_Equality): New subprogram.
1245 (Build_Variant_Record_Equality): New local procedure of
1246 Expand_Freeze_Record_Type containing all the code specific for freezing
1247 the record type that cannot be place in the new library level function.
1248
1249 2018-05-24 Ed Schonberg <schonberg@adacore.com>
1250
1251 * einfo.ads, einfo.adb (Is_Activation_Record): New flag on
1252 in_parameters, used when unesting subprograms for LLVM, to indicate
1253 that a generated parameter carries the activation record from the
1254 enclosing subprogram.
1255 * exp_unst.adb (Check_Static_Type): Handle array attributes of types
1256 whose bounds may contain up-level references that need to be added to
1257 an activation recoord.
1258 (Add_Extra_Formal): Set Is_Activation_Record on new formal.
1259
1260 2018-05-24 Yannick Moy <moy@adacore.com>
1261
1262 * pprint.adb (Expression_Image): Improve the printing of expressions,
1263 by taking more cases into account, in particular qualified expressions
1264 and aggregates. Also count more the number of parentheses to close
1265 after the expression.
1266
1267 2018-05-24 Javier Miranda <miranda@adacore.com>
1268
1269 * sem_ch3.adb (Is_Visible_Component): For untagged types add missing
1270 check for renamed discriminants.
1271 * sem_ch4.adb (Analyze_Overloaded_Selected_Component,
1272 Analyze_Selected_Component, Check_Misspelled_Selector): For calls to
1273 Is_Visible_Component pass the associated selector node to allow
1274 checking renamed discriminants on untagged types.
1275
1276 2018-05-24 Ed Schonberg <schonberg@adacore.com>
1277
1278 * sem_ch8.adb (Analyze_Use_Type): Do not assign the Prev_Use_Clause
1279 link to a use_type clause if this would cause an infinite loop in the
1280 machinery that detects redundant use clauses. This may happen when the
1281 redundant clauses appear in the context of a child unit and the context
1282 of its parent.
1283
1284 2018-05-24 Piotr Trojanek <trojanek@adacore.com>
1285
1286 * sinfo.ads: Fix grammar in comment.
1287
1288 2018-05-24 Justin Squirek <squirek@adacore.com>
1289
1290 * einfo.ads, einfo.adb (Append_Entity): Modified to use Link_Entities
1291 and manage doubly-linked entity chain.
1292 (Nested_Scenarios): Removed entity field used for optimization during
1293 elaboration to make room for the new field Prev_Entity.
1294 (Link_Entities): Added to replace redundant calls to Set_Next_Entity
1295 and Set_Prev_Entity as well as centralize changes to the entity chain.
1296 (Predicated_Parent): Modified to use Node38.
1297 (Prev_Entity): Added to fetch new node field Prev_Entity in all entity
1298 types.
1299 (Remove_Entity): Moved from sem_util.
1300 (Set_Nested_Scenarios): Deleted.
1301 (Set_Predicated_Parent): Modified to use Node38.
1302 (Set_Prev_Entity): Added to set Prev_Entity field.
1303 (Set_Validated_Object): Modified to use Node38.
1304 (Unlink_Next_Entity): Added to process Prev_Entity when an unlinking
1305 action is required.
1306 (Validated_Object): Modified to use Node38.
1307 (Write_Field36_Name): Remove Nested_Scenarios, Validated_Object, and
1308 predicated parent cases.
1309 (Write_Field38_Name): Add predicated parent and Validated_Object cases.
1310 * sem_ch3.adb (Process_Subtype): Add guard to protect against
1311 inappropriate marking of Predicated_Parent to non-itype subtypes.
1312 (Make_Class_Wide_Type): Preserve Prev_Entity field and set in new type.
1313 (Copy_And_Swap): Add setting of Prev_Entity.
1314 (Build_derived_Record_Type): Replace Set_Next_Entity w/ Link_Entities.
1315 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Replace Set_Next_Entity
1316 w/ Link_Entities.
1317 (New_Overloaded_Entity): Remove block created to search for previous
1318 entities in the entity chain with relevant calls to Prev_Entity as well
1319 as replace duplicated code from Remove_Entity_And_Homonym with a call
1320 to that subprogram.
1321 * sem_ch7.adb (Exchange_Declarations): Replace Set_Next_Entity w/
1322 Link_Entities.
1323 * sem_elab.adb (Find_And_Process_Nested_Scenarios): Remove global and
1324 initial subprogram declarations related to Nested_Scenarios.
1325 (Process_Nested_Scenarios): Deleted.
1326 (Save_Scenario): Deleted.
1327 (Traverse_Body): Remove optimization for Nested_Scenarios so as to free
1328 node space in the entity tree.
1329 * sem_util.adb, sem_util.ads (Remove_Entity): Moved to einfo.
1330 (Remove_Entity_And_Homonym): Added to separate functionality of
1331 Remove_Entity from the homonym chain directly.
1332 * exp_attr.adb (Expand_N_Attribute_Reference): Replace Set_Next_Entity
1333 w/ Link_Entities and Unlink_Next_Entity.
1334 * exp_ch3.adb (Expand_N_Object_Declaration): Replace Set_Next_Entity w/
1335 Link_Entities.
1336 * exp_ch6.adb (Replace_Renaming_Declaration_Id): Replace
1337 Set_Next_Entity w/ Link_Entities.
1338 * exp_disp.adb (Expand_Dispatching_Call): Replace Set_Next_Entity w/
1339 Link_Entities and Unlink_Next_Entity.
1340 * exp_spark.adb (Expand_SPARK_N_Object_Renaming_Declaration): Replace
1341 call to Remove_Entity with its new incarnation.
1342 * exp_util.adb (New_Class_Wide_Subtype): Add setting of Prev_Entity.
1343 * freeze.adb (Freeze_Record_Type): Replace Set_Next_Entity w/
1344 Link_Entities.
1345
1346 2018-05-24 Hristian Kirtchev <kirtchev@adacore.com>
1347
1348 * sem_ch10.adb (Expand_Limited_With_Clause): Update the call to
1349 Install_Limited_Withed_Unit.
1350 (Expand_With_Clause): Update the call to Install_Withed_Unit.
1351 (Implicit_With_On_Parent): Update the call to Install_Withed_Unit.
1352 (Install_Context_Clauses): Update the call to Install_Withed_Unit.
1353 (Install_Limited_Context_Clauses): Update the calls to
1354 Install_Limited_Withed_Unit.
1355 (Install_Limited_Withed_Unit): Renamed to better illustrate its
1356 purpose.
1357 (Install_Private_With_Clauses): Update the calls to Install_Withed_Unit
1358 and Install_Limited_Withed_Unit.
1359 (Install_With_Clause): Uninstall a limited with clause if a [private]
1360 with clause is given for the same package.
1361 (Install_Withed_Unit): Renamed to better illustrate its purpose.
1362 (Remove_Limited_With_Unit): New routine.
1363
1364 2018-05-24 Eric Botcazou <ebotcazou@adacore.com>
1365
1366 * raise-gcc.c (__gnat_SEH_error_handler): Remove prototype.
1367 (__gnat_personality_seh0): Adjust and beef up comments, and
1368 fix formatting throughout.
1369 (__gnat_adjust_context): Deal minimally with version 2.
1370 * seh_init.c (__gnat_map_SEH): Fix formatting.
1371 (_gnat_SEH_error_handler): Adjust comments.
1372 (__gnat_install_SEH_handler): Fix formatting.
1373
1374 2018-05-24 Hristian Kirtchev <kirtchev@adacore.com>
1375
1376 * exp_ch7.adb, sem_ch3.adb, sem_res.adb: Minor reformatting.
1377
1378 2018-05-24 Ed Schonberg <schonberg@adacore.com>
1379
1380 * exp_aggr.adb (Flatten): Add a warning on an others clause in an array
1381 aggregate with static bounds when named associations cover all index
1382 positions and the others clause is redundant.
1383
1384 2018-05-24 Raphael Amiard <amiard@adacore.com>
1385
1386 * libgnat/a-cohama.ads: Add documentation.
1387
1388 2018-05-24 Raphael Amiard <amiard@adacore.com>
1389
1390 * libgnat/a-convec.ads: Add documentation.
1391
1392 2018-05-24 Justin Squirek <squirek@adacore.com>
1393
1394 * exp_ch3.adb (Expand_N_Object_Declaration): Ignore raising an error in
1395 expansion for limited tagged types when the node to be expanded is a
1396 raise expression due to it not representing a valid object.
1397 * exp_ch5.adb (Expand_N_Assignment_Statement): Add exception to error
1398 message regarding assignments to limited types to ignore genereated
1399 code.
1400
1401 2018-05-24 Hristian Kirtchev <kirtchev@adacore.com>
1402
1403 * exp_util.adb (New_Class_Wide_Subtype): Capture and restore relevant
1404 Ghost-related attributes of the class-wide subtype because the copy
1405 clobbers them.
1406
1407 2018-05-24 Justin Squirek <squirek@adacore.com>
1408
1409 * sem_res.adb (Resolve_Entity_Name): Add guard to protect against
1410 marking use clauses as effective when the reference appears within
1411 generated code.
1412
1413 2018-05-24 Cyrille Comar <comar@adacore.com>
1414
1415 * doc/gnat_rm/the_gnat_library.rst: Fix typos.
1416 * gnat_rm.texi: Regenerate.
1417
1418 2018-05-24 Bob Duff <duff@adacore.com>
1419
1420 * exp_ch7.adb (Expand_Cleanup_Actions): Create a mark unconditionally
1421 for build-in-place functions with a caller-unknown-size result.
1422 (Create_Finalizer): For build-in-place functions with a
1423 caller-unknown-size result, check at run time whether we need to
1424 release the secondary stack.
1425
1426 2018-05-24 Hristian Kirtchev <kirtchev@adacore.com>
1427
1428 * sem_prag.adb (Analyze_Pragma): Use the full view of an internally
1429 generated incomplete type.
1430
1431 2018-05-24 Hristian Kirtchev <kirtchev@adacore.com>
1432
1433 * expander.adb (Expand): Update the save and restore of the Ghost
1434 region.
1435 * exp_ch3.adb (Freeze_Type): Likewise.
1436 * exp_disp.adb (Make_DT): Likewise.
1437 * exp_util.adb (Build_DIC_Procedure_Body): Likewise.
1438 (Build_DIC_Procedure_Declaration): Likewise.
1439 (Build_Invariant_Procedure_Body): Likewise.
1440 (Build_Invariant_Procedure_Declaration): Likewise.
1441 (Make_Predicate_Call): Likewise.
1442 * freeze.adb (Add_To_Result): Insert the freeze action of a living
1443 entity prior to the start of the enclosing ignored Ghost region.
1444 (Freeze_Entity): Update the save and restore of the Ghost region.
1445 * ghost.adb (Install_Ghost_Mode): Reimplemented.
1446 (Install_Ghost_Region): New routine.
1447 (Mark_And_Set_Ghost_Assignment): Install a region rather than a mode.
1448 (Mark_And_Set_Ghost_Body): Likewise.
1449 (Mark_And_Set_Ghost_Completion): Likewise.
1450 (Mark_And_Set_Ghost_Declaration): Likewise.
1451 (Mark_And_Set_Ghost_Instantiation): Likewise.
1452 (Mark_And_Set_Ghost_Procedure_Call): Likewise.
1453 (Name_To_Ghost_Mode): New routine.
1454 (Restore_Ghost_Region): New routine.
1455 * ghost.ads (Install_Ghost_Region): New routine.
1456 (Restore_Ghost_Region): New routine.
1457 * opt.ads: Add new global variable Ignored_Ghost_Region.
1458 * rtsfind.adb (Load_RTU): Update the save and restore of the Ghost
1459 region. Install a clean region.
1460 * sem.adb (Analyze): Likewise.
1461 (Do_Analyze): Likewise.
1462 * sem_ch3.adb (Analyze_Object_Declaration): Likewise
1463 (Derive_Progenitor_Subprograms): Use local variable Iface_Alias to
1464 capture the ultimate alias of the current primitive.
1465 (Process_Full_View): Update the save and restore of the Ghost region.
1466 Do not inherit DIC and invariant procedures.
1467 * sem_ch5.adb (Analyze_Assignment): Update the save and restore of the
1468 Ghost region.
1469 * sem_ch6.adb (Analyze_Procedure_Call): Likewise.
1470 (Analyze_Subprogram_Body_Helper): Likewise.
1471 * sem_ch7.adb (Analyze_Package_Body_Helper): Likewise.
1472 * sem_ch12.adb (Analyze_Package_Instantiation): Likewise.
1473 (Analyze_Subprogram_Instantiation): Likewise.
1474 (Instantiate_Package_Body): Likewise.
1475 (Instantiate_Subprogram_Body): Likewise.
1476 * sem_ch13.adb (Build_Predicate_Functions): Likewise.
1477 (Build_Predicate_Function_Declaration): Likewise.
1478 * sem_disp.adb
1479 (Add_Dispatching_Operation): Do not consider DIC and invariant
1480 procedures.
1481 (Check_Dispatching_Operation): Use Add_Dispatching_Operation to collect
1482 a dispatching subprogram.
1483 (Check_Operation_From_Private_View): Likewise.
1484 (Override_Dispatching_Operation): Likewise.
1485 * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): Update the save
1486 and restore of the Ghost region.
1487 (Analyze_Initial_Condition_In_Decl_Part): Likewise.
1488 (Analyze_Pragma): Update the save and restore of the Ghost region.
1489 (Analyze_Pre_Post_Condition_In_Decl_Part): Likewise.
1490 * sem_util.adb (Is_Suitable_Primitive): New routine.
1491 * sem_util.ads (Is_Suitable_Primitive): New routine.
1492 * sinfo.ads: Update the section of Ghost regions.
1493
1494 2018-05-24 Piotr Trojanek <trojanek@adacore.com>
1495
1496 * doc/gnat_rm/implementation_defined_pragmas.rst (Contract_Cases):
1497 Change "condition" to "case guard" after renaming in the contract
1498 grammar.
1499 * gnat_rm.texi: Regenerate.
1500
1501 2018-05-24 Hristian Kirtchev <kirtchev@adacore.com>
1502
1503 * exp_util.adb (Expand_Static_Predicates_In_Choices): Indicate that the
1504 construct with discrete choices no longer contains a subtype with
1505 predicates since the expansion already handled this case.
1506
1507 2018-05-24 Hristian Kirtchev <kirtchev@adacore.com>
1508
1509 * freeze.adb (Wrap_Imported_Subprogram): Generate an unchecked
1510 conversion to the return type to avoid a side effect where an imported
1511 relocated function generates a new anonymous access type, whose
1512 accessibility level does not agree with with that of the wrapper.
1513
1514 2018-05-24 Javier Miranda <miranda@adacore.com>
1515
1516 * sem_util.adb (Abstract_Interface_List): Add missing support for
1517 private types whose full view is a synchronized type.
1518 * sem_ch3.adb (Build_Derived_Private_Type): Skip building the full
1519 derivation of a private type parent type is a task type with
1520 discriminants as gigi does not use such type directly.
1521
1522 2018-05-24 Hristian Kirtchev <kirtchev@adacore.com>
1523
1524 * sem_elab.adb (Build_Variable_Reference_Marker): Do not create a
1525 variable marker when the reference appears in the formal part of a
1526 compilation unit instance because there is no place to insert it.
1527 (In_Compilation_Instance_Formal_Part): New routine.
1528
1529 2018-05-24 Piotr Trojanek <trojanek@adacore.com>
1530
1531 * layout.ads, repinfo.ads: Fix references to renamed Backend_Layout
1532 configuration parameter.
1533
1534 2018-05-24 Doug Rupp <rupp@adacore.com>
1535
1536 * argv-lynxos178-raven-cert.c: New file.
1537 * libgnat/system-lynxos178-x86.ads: New file.
1538
1539 2018-05-23 Hristian Kirtchev <kirtchev@adacore.com>
1540
1541 * exp_disp.adb, freeze.adb, gnat1drv.adb, sem_ch5.adb, sem_spark.adb:
1542 Minor reformattings.
1543
1544 2018-05-23 Pascal Obry <obry@adacore.com>
1545
1546 * adaint.c (win32_wait): Properly free the handle/pid lists when
1547 WaitForMultipleObjects fails (return WAIT_FAILED).
1548
1549 2018-05-23 Pascal Obry <obry@adacore.com>
1550
1551 * adaint.c (win32_wait): Add missing parentheses.
1552
1553 2018-05-23 Hristian Kirtchev <kirtchev@adacore.com>
1554
1555 * exp_ch3.adb (Check_Large_Modular_Array): Moved to Freeze.
1556 (Expand_N_Object_Declaration): Do not check for a large modular array
1557 here.
1558 * freeze.adb (Check_Large_Modular_Array): Moved from Exp_Ch3.
1559 (Freeze_Object_Declaration): Code cleanup. Check for a large modular
1560 array.
1561 * sem_ch3.adb: Minor reformatting.
1562
1563 2018-05-23 Ed Schonberg <schonberg@adacore.com>
1564
1565 * einfo.ads: New attribute on types: Predicated_Parent, to simplify the
1566 retrieval of the applicable predicate function to an itype created for
1567 a constrained array component.
1568 * einfo.adb: Subprograms for Predicated_Parent.
1569 (Predicate_Function): Use new attribute.
1570 * exp_util.adb (Make_Predicate_Call): If the predicate function is not
1571 available for a subtype, retrieve it from the base type, which may have
1572 been frozen after the subtype declaration and not captured by the
1573 subtype declaration.
1574 * sem_aggr.adb (Resolve_Array_Aggregate): An Others association is
1575 legal within a generated initiqlization procedure, as may happen with a
1576 predicate check on a component, when the predicate function applies to
1577 the base type of the component.
1578 * sem_ch3.adb (Analyze_Subtype_Declaration): Clean up inheritance of
1579 predicates for subtype declarations and for subtype indications in
1580 other contexts.
1581 (Process_Subtype): Likewise. Handle properly the case of a private type
1582 with unknown discriminants whose full view is an unconstrained array.
1583 Use Predicated_Parent to indicate source of predicate function on an
1584 itype whose parent is itself an itype.
1585 (Complete_Private_Subtype): If the private view has unknown
1586 discriminants and the full view is an unconstrained array, set base
1587 type of completion to the full view of parent.
1588 (Inherit_Predicate_Flags): Prevent double assignment of predicate
1589 function and flags.
1590 (Build_Subtype): For a constrained array component, propagate predicate
1591 information from original component type declaration.
1592
1593 2018-05-23 Boris Yakobowski <yakobowski@adacore.com>
1594
1595 * libgnat/a-ngelfu.ads (Arctanh, Arccoth): Fix faulty preconditions.
1596
1597 2018-05-23 Arnaud Charlet <charlet@adacore.com>
1598
1599 * checks.adb (Minimize_Eliminate_Overflows): Default initialize Lo and
1600 Hi.
1601 * sem_elab.adb: Make "out" parameters instead of "in out" when
1602 relevant.
1603
1604 2018-05-23 Bob Duff <duff@adacore.com>
1605
1606 * gnatbind.adb (List_Applicable_Restrictions): Add
1607 No_Implementation_Restrictions to the list of restrictions not to list.
1608 Remove double negative "not No_Restriction_List". Comment the
1609 commentary that is output, so it won't cause errors if used directly in
1610 a gnat.adc.
1611
1612 2018-05-23 Ed Schonberg <schonberg@adacore.com>
1613
1614 * sem_prag.adb (Inherit_Class_Wide_Pre): Refine legality check on
1615 class-wide precondition on a type extension when ancestor does not have
1616 a class-wide precondition. Previously the compiler accepted such a
1617 precondition when the ancestor had a class-wide postcondition.
1618
1619 2018-05-23 Javier Miranda <miranda@adacore.com>
1620
1621 * sem_attr.adb (Valid_Scalars): Do not invoke Error_Attr_P to report
1622 the warning on occurrences of this attribute whose evaluation is always
1623 true (since that subprogram aborts processing the attribute). In
1624 addition, replace the node by its boolean result 'True' (required
1625 because the backend has no knowledge of this attribute).
1626
1627 2018-05-23 Bob Duff <duff@adacore.com>
1628
1629 * libgnat/a-convec.adb: (Insert, Insert_Space): Suppress warnings. The
1630 code in question is not reachable in the case where Count_Type'Last is
1631 out of range.
1632
1633 2018-05-23 Yannick Moy <moy@adacore.com>
1634
1635 * doc/gnat_rm/implementation_defined_pragmas.rst: Clarify meaning of
1636 local pragma Warnings Off without On.
1637 * gnat_rm.texi: Regenerate.
1638
1639 2018-05-23 Olivier Hainque <hainque@adacore.com>
1640
1641 * libgnat/g-excact.ads (Is_Foreign_Exception): New predicate.
1642 * libgnat/g-excact.adb: Implement.
1643
1644 2018-05-23 Ed Schonberg <schonberg@adacore.com>
1645
1646 * sem_ch5.adb (Analyze_Iterator_Specification): If a subtype indication
1647 is present, verify its legality when the domain of iteration is a
1648 GNAT-specific formal container, as is already done for arrays and
1649 predefined containers.
1650
1651 2018-05-23 Yannick Moy <moy@adacore.com>
1652
1653 * sem_util.adb (Enclosing_Declaration): Fix the case of a named number
1654 declaration, which was not taken into account.
1655
1656 2018-05-23 Hristian Kirtchev <kirtchev@adacore.com>
1657
1658 * debug.adb: Switch -gnatd_s is now used to stop elaboration checks on
1659 synchronized suspension.
1660 * rtsfind.ads: Add entries for units Ada.Synchronous_Barriers and
1661 Ada.Synchronous_Task_Control and routines Suspend_Until_True and
1662 Wait_For_Release.
1663 * sem_elab.adb: Document switch -gnatd_s.
1664 (In_Task_Body): New routine.
1665 (Is_Potential_Scenario): Code cleanup. Stop the traversal of a task
1666 body when the current construct denotes a synchronous suspension call,
1667 and restriction No_Entry_Calls_In_Elaboration_Code or switch -gnatd_s
1668 is in effect.
1669 (Is_Synchronous_Suspension_Call): New routine.
1670 * switch-c.adb (Scan_Front_End_Switches): Switch -gnatJ now sets switch
1671 -gnatd_s.
1672
1673 2018-05-23 Javier Miranda <miranda@adacore.com>
1674
1675 * exp_disp.adb (Make_DT): Restrict the initialization of
1676 External_Tag and Expanded_Name to an empty string to the case where
1677 both pragmas apply (i.e. No_Tagged_Streams and Discard_Names), since
1678 restricted runtimes are compiled with pragma Discard_Names.
1679 * doc/gnat_rm/implementation_defined_pragmas.rst,
1680 doc/gnat_rm/implementation_defined_characteristics.rst: Add
1681 documentation.
1682 * gnat_rm.texi: Regenerate.
1683
1684 2018-05-23 Maroua Maalej <maalej@adacore.com>
1685
1686 * sem_spark.adb: Fix of some permission rules of pointers in SPARK.
1687
1688 2018-05-23 Ed Schonberg <schonberg@adacore.com>
1689
1690 * sem_ch5.adb (Preanalyze_Range): The pre-analysis of the domain of
1691 iteration of an Ada2012 loop is performed to determine the type of the
1692 domain, but full analysis is performed once the loop is rewritten as a
1693 while-loop during expansion. The pre-analysis suppresses expansion; it
1694 must also suppress the generation of freeze nodes, which may otherwise
1695 appear in the wrong scope before rewritting.
1696
1697 2018-05-23 Hristian Kirtchev <kirtchev@adacore.com>
1698
1699 * sem_elab.adb: Update the section on suppressing elaboration warnings.
1700
1701 2018-05-23 Hristian Kirtchev <kirtchev@adacore.com>
1702
1703 * einfo.adb (Is_Elaboration_Checks_OK_Id): Use predicate
1704 Is_Elaboration_Target.
1705 (Is_Elaboration_Target): New routine.
1706 (Is_Elaboration_Warnings_OK_Id): Use predicate Is_Elaboration_Target.
1707 (Set_Is_Elaboration_Checks_OK_Id): Use predicate Is_Elaboration_Target.
1708 (Set_Is_Elaboration_Warnings_OK_Id): Use predicate
1709 Is_Elaboration_Target.
1710 * einfo.ads: Add new synthesized attribute Is_Elaboration_Target along
1711 with occurrences in nodes.
1712 (Is_Elaboration_Target): New routine.
1713 * sem_prag.adb (Analyze_Pragma): Suppress elaboration warnings when an
1714 elaboration target is subject to pragma Warnings (Off, ...).
1715
1716 2018-05-23 Eric Botcazou <ebotcazou@adacore.com>
1717
1718 * repinfo.adb (List_Type_Info): Remove obsolete stuff.
1719
1720 2018-05-23 Hristian Kirtchev <kirtchev@adacore.com>
1721
1722 * einfo.adb: Flag304 is now Is_Elaboration_Warnings_OK_Id.
1723 (Is_Elaboration_Warnings_OK_Id): New routine.
1724 (Set_Is_Elaboration_Warnings_OK_Id): New routine.
1725 (Write_Entity_Flags): Output Flag304.
1726 * einfo.ads: Add new attribute Is_Elaboration_Warnings_OK_Id along with
1727 occurrences in entities.
1728 (Is_Elaboration_Warnings_OK_Id): New routine along with pragma Inline.
1729 (Set_Is_Elaboration_Warnings_OK_Id): New routine along with pragma
1730 Inline.
1731 * sem_attr.adb (Analyze_Access_Attribute): Capture the state of
1732 elaboration warnings.
1733 * sem_ch3.adb (Analyze_Object_Declaration): Capture the state of
1734 elaboration warnings.
1735 * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Capture the
1736 state of elaboration warnings.
1737 (Analyze_Subprogram_Body_Helper): Capture the state of elaboration
1738 warnings.
1739 (Analyze_Subprogram_Declaration): Capture the state of elaboration
1740 warnings.
1741 * sem_ch9.adb (Analyze_Entry_Declaration): Capture the state of
1742 elaboration warnings.
1743 (Analyze_Single_Task_Declaration): Capture the state of elaboration
1744 warnings.
1745 (Analyze_Task_Type_Declaration): Capture the state of elaboration
1746 warnings.
1747 * sem_ch12.adb (Analyze_Generic_Package_Declaration): Capture the state
1748 of elaboration warnings.
1749 (Analyze_Generic_Subprogram_Declaration): Capture the state of
1750 elaboration warnings.
1751 * sem_elab.adb: Add a section on suppressing elaboration warnings.
1752 Type Processing_Attributes includes component Suppress_Warnings
1753 intended to suppress any elaboration warnings along a path in the
1754 graph. Update Initial_State to include a value for this component.
1755 Types Target_Attributes and Task_Attriutes include component
1756 Elab_Warnings_OK to indicate whether the target or task has elaboration
1757 warnings enabled. component Elab_Warnings_OK.
1758 (Build_Access_Marker): Propagate attribute
1759 Is_Elaboration_Warnings_OK_Node from the attribute to the generated
1760 call marker.
1761 (Extract_Instantiation_Attributes): Set the value for Elab_Warnings_OK.
1762 (Extract_Target_Attributes): Set the value for Elab_Warnings_OK.
1763 (Extract_Task_Attributes): Set the value for Elab_Warnings_OK.
1764 (Process_Conditional_ABE_Access): Suppress futher elaboration warnings
1765 when already in this mode or when the attribute or target have warnings
1766 suppressed.
1767 (Process_Conditional_ABE_Activation_Impl): Do not emit any diagnostics
1768 if warnings are suppressed.
1769 (Process_Conditional_ABE_Call): Suppress further elaboration warnings
1770 when already in this mode, or the target or call have warnings
1771 suppressed.
1772 (Process_Conditional_ABE_Call_Ada): Do not emit any diagnostics if
1773 warnings are suppressed.
1774 (Process_Conditional_ABE_Call_SPARK): Do not emit any diagnostics if
1775 warnings are suppressed.
1776 (Process_Conditional_ABE_Instantiation): Suppress further elaboration
1777 warnings when already in this mode or when the instantiation has
1778 warnings suppressed.
1779 (Process_Conditional_ABE_Instantiation_Ada): Do not emit any
1780 diagnostics if warnings are suppressed.
1781 (Process_Conditional_ABE_Variable_Assignment_Ada): Use the more
1782 specific Is_Elaboration_Warnings_OK_Id rather than Warnings_Off.
1783 (Process_Conditional_ABE_Variable_Assignment_SPARK): Use the more
1784 specific Is_Elaboration_Warnings_OK_Id rather than Warnings_Off.
1785 (Process_Task_Object): Suppress further elaboration warnings when
1786 already in this mode, or when the object, activation call, or task type
1787 have warnings suppressed. Update the processing state to indicate that
1788 the path goes through a task body.
1789 * sinfo.adb (Is_Elaboration_Warnings_OK_Node): Accept attribute
1790 references.
1791 (Set_Is_Elaboration_Warnings_OK_Node): Accept attribute references.
1792 * sinfo.ads: Attribute Is_Elaboration_Warnings_OK_Node now applies to
1793 attribute references.
1794
1795 2018-05-23 Piotr Trojanek <trojanek@adacore.com>
1796
1797 * einfo.ads: Minor reformatting.
1798
1799 2018-05-23 Ed Schonberg <schonberg@adacore.com>
1800
1801 * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
1802 anonymous_access_to_ subprogram formal, apply a conversion to force an
1803 accsssibility check that will fail statically, enforcing 3.10.2 (13).
1804
1805 2018-05-23 Daniel Mercier <mercier@adacore.com>
1806
1807 * gnat1drv.adb: Turn off length expansion in CodePeer mode.
1808
1809 2018-05-23 Bob Duff <duff@adacore.com>
1810
1811 * freeze.adb: (Check_Address_Clause): Deal with build-in-place
1812 aggregates in addition to build-in-place calls.
1813
1814 2018-05-23 Bob Duff <duff@adacore.com>
1815
1816 * einfo.ads: Minor reformatting.
1817 * sem_ch3.adb: Likewise.
1818 * sinfo.ads: Likewise.
1819
1820 2018-05-23 Hristian Kirtchev <kirtchev@adacore.com>
1821
1822 * exp_ch3.adb (Default_Initialize_Object): Do not optimize scalar array
1823 initialization when the component type has predicates.
1824 * exp_ch4.adb (Expand_N_Allocator): Do not optimize scalar array
1825 allocation when the component type has predicates.
1826
1827 2018-05-23 Hristian Kirtchev <kirtchev@adacore.com>
1828
1829 * einfo.adb, exp_disp.adb, sem_ch3.adb, sem_ch6.adb, sem_prag.adb:
1830 Minor reformatting.
1831
1832 2018-05-22 Justin Squirek <squirek@adacore.com>
1833
1834 * sem_ch6.adb (Analyze_Expression_Function): Propagate flags from the
1835 original function spec into the generated function spec due to
1836 expansion of expression functions during analysis.
1837 (Analyze_Subprogram_Body_Helper): Modify check on formal parameter
1838 references from the body to the subprogram spec in the case of
1839 expression functions because of inconsistances related to having a
1840 generated body.
1841 * libgnarl/s-osinte__android.ads: Flag parameters as unused.
1842 * libgnarl/s-osinte__lynxos178e.ads: Likewise.
1843 * libgnarl/s-osinte__qnx.adb: Likewise.
1844 * libgnarl/s-osinte__qnx.ads: Likewise.
1845
1846 2018-05-22 Doug Rupp <rupp@adacore.com>
1847
1848 * init.c (HAVE_ADJUST_CONTEXT_FOR_RAISE): Don't define on VxWorks7 for
1849 AArch64.
1850
1851 2018-05-22 Olivier Hainque <hainque@adacore.com>
1852
1853 * libgnat/a-except.adb (Exception_Propagation.Propagate_Exception):
1854 Expect an Exception_Occurence object, not an Access.
1855 (Complete_And_Propagate_Occurrence): Adjust accordingly.
1856 (Raise_From_Signal_Handler): Likewise.
1857 (Reraise_Occurrence_No_Defer): If we have a Machine_Occurrence
1858 available in the provided occurrence object, just re-propagate the
1859 latter as a bare "raise;" would do.
1860 * libgnat/a-exexpr.adb (Propagate_Exception): Adjust to spec change.
1861 * libgnat/a-exstat.adb (String_To_EO): Initialize X.Machine_Occurrence
1862 to null, to mark that the occurrence we're crafting from the stream
1863 contents is not being propagated (yet).
1864
1865 2018-05-22 Hristian Kirtchev <kirtchev@adacore.com>
1866
1867 * exp_aggr.adb (Initialize_Ctrl_Record_Component): Insert the generated
1868 code for a transient component in line with the rest of the
1869 initialization code, rather than before the aggregate. This ensures
1870 that the component has proper visibility of the discriminants.
1871
1872 2018-05-22 Jerome Lambourg <lambourg@adacore.com>
1873
1874 * adaint.c: Reorganize QNX-specific macros, use syspage to retreive the
1875 number of CPUs.
1876
1877 2018-05-22 Jerome Lambourg <lambourg@adacore.com>
1878
1879 * sigtramp-qnx.c: Properly restore link register in signal trampoline.
1880
1881 2018-05-22 Hristian Kirtchev <kirtchev@adacore.com>
1882
1883 * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Strip away any
1884 conversions before extracting the value of the expression.
1885 * exp_ch3.adb (Default_Initialize_Object): Optimize the default
1886 initialization of an array of scalars.
1887 (Get_Simple_Init_Val): Add processing for array types. Remove the
1888 processing of strings because this case is already handled by the array
1889 case.
1890 (Needs_Simple_Initialization): Moved to Sem_Util.
1891 (Simple_Init_Array_Type): New routine.
1892 (Simple_Init_Initialize_Scalars_Type): Reimplemented to use the new
1893 facilities from Sem_Util.
1894 (Simple_Initialization_OK): New routine.
1895 * exp_ch3.ads (Needs_Simple_Initialization): Moved to Sem_Util.
1896 * exp_ch4.adb (Expand_N_Allocator): Optimize the default allocation of
1897 an array of scalars.
1898 * sem_prag.adb (Analyze_Float_Value): New routine.
1899 (Analyze_Integer_Value): New routine.
1900 (Analyze_Pragma): Reimplement the analysis of pragma Initialize_Scalars
1901 to handled the extended form of the pragma.
1902 (Analyze_Type_Value_Pair): New routine.
1903 * sem_util.adb: Add invalid value-related data structures.
1904 (Examine_Array_Bounds): New routine.
1905 (Has_Static_Array_Bounds): Reimplemented.
1906 (Has_Static_Non_Empty_Array_Bounds): New routine.
1907 (Invalid_Scalar_Value): New routine.
1908 (Needs_Simple_Initialization): Moved from Exp_Ch3.
1909 (Set_Invalid_Scalar_Value): New routines.
1910 * sem_util.ads (Has_Static_Non_Empty_Array_Bounds): New routine.
1911 (Invalid_Scalar_Value): New routine.
1912 (Needs_Simple_Initialization): Moved from Exp_Ch3.
1913 (Set_Invalid_Scalar_Value): New routines.
1914 * snames.ads-tmpl: Add names for the salar type families used by pragma
1915 Initialize_Scalars.
1916
1917 2018-05-22 Javier Miranda <miranda@adacore.com>
1918
1919 * exp_disp.adb (Make_DT): Initialize the External_Tag with an empty
1920 string when pragma No_Tagged_Streams is applicable to the tagged type,
1921 and initialize the Expanded_Name with an empty string when pragma
1922 Discard_Names is applicable to the tagged type.
1923
1924 2018-05-22 Ed Schonberg <schonberg@adacore.com>
1925
1926 * sem_ch6.adb (Check_Conformance): Add RM reference for rule that a
1927 formal subprogram is never subtype conformqnt, and thus cannot be the
1928 prefix of 'Access. Reject as well the attribute when applied to a
1929 renaming of a formal subprogram.
1930
1931 2018-05-22 Hristian Kirtchev <kirtchev@adacore.com>
1932
1933 * exp_ch3.adb (Build_Array_Init_Proc): Update the call to
1934 Needs_Simple_Initialization.
1935 (Build_Init_Statements): Update the call to Get_Simple_Init_Val.
1936 (Check_Subtype_Bounds): Renamed to Extract_Subtype_Bounds. Update the
1937 profile and comment on usage.
1938 (Default_Initialize_Object): Do not use New_Copy_Tree to set the proper
1939 Sloc of a value obtained from aspect Default_Value because this could
1940 potentially replicate large trees. The proper Sloc is now set in
1941 Get_Simple_Init_Val.
1942 (Get_Simple_Init_Val): Reorganized by breaking the various cases into
1943 separate routines. Eliminate the use of global variables.
1944 (Init_Component): Update the call to Get_Simple_Init_Val.
1945 (Needs_Simple_Initialization): Update the parameter profile and all
1946 uses of T.
1947 (Simple_Init_Defaulted_Type): Copy the value of aspect Default_Value
1948 and set the proper Sloc.
1949 * exp_ch3.ads (Get_Simple_Init_Val): Update the parameter profile and
1950 comment on usage.
1951 (Needs_Simple_Initialization): Update the parameter profile.
1952
1953 2018-05-22 Patrick Bernardi <bernardi@adacore.com>
1954
1955 * sem_ch3.adb (Build_Discriminant_Constraints): Raise an error if the
1956 user tries to use a subtype indication as a discriminant constraint.
1957
1958 2018-05-22 Ed Schonberg <schonberg@adacore.com>
1959
1960 * exp_ch4.ads, exp_ch4.adb, exp_util.adb, expander.adb: Remove mention
1961 of N_Reduction_Expression and N_Reduction_Expression_Parameter.
1962 * par-ch4.adb: Remove parsing routines for reduction expressions.
1963 * sem.adb, sinfo.ads, sinfo.adb, sem_ch4.ads, sem_ch4.adb, sem_res.adb,
1964 sem_spark.adb, sprint.adb: Remove analysis routines for reduction
1965 expressions.
1966
1967 2018-05-22 Arnaud Charlet <charlet@adacore.com>
1968
1969 * sem_ch8.adb (Check_Frozen_Renaming): Do not emit error in
1970 Relaxed_RM_Semantics mode.
1971
1972 2018-05-22 Arnaud Charlet <charlet@adacore.com>
1973
1974 * comperr.adb (Delete_SCIL_Files): Take into account
1975 N_Generic_Package_Renaming_Declaration.
1976
1977 2018-05-22 Ed Schonberg <schonberg@adacore.com>
1978
1979 * sem_ch3.adb (Search_Derivation_Levels): Whenever a parent type is
1980 private, use the full view if available, because it may include renamed
1981 discriminants whose values are stored in the corresponding
1982 Stored_Constraint.
1983
1984 2018-05-22 Ed Schonberg <schonberg@adacore.com>
1985
1986 * einfo.ads, einfo.adb: New attribute Hidden_In_Formal_Instance,
1987 defined on packages that are actuals for formal packages, in order to
1988 set/reset the visibility of the formals of a formal package with given
1989 actuals, when there are subsequent uses of those formals in the
1990 enclosing generic, as required by RN 12.7 (10).
1991 * atree.ads, atree.adb: Add operations for Elist30.
1992 * atree.h: Add Elist30.
1993 * sem_ch12.adb (Analyze_Formal_Package_Instantiation): Collect formals
1994 that are not defaulted and are thus not visible within the current
1995 instance.
1996 (Check_Formal_Packages): Reset visibility of formals of a formal
1997 package that are not defaulted, on exit from current instance.
1998
1999 2018-05-22 Hristian Kirtchev <kirtchev@adacore.com>
2000
2001 * sem_prag.adb (Analyze_Input_Output): Emit an error when a non-null,
2002 non-'Result output appears in the output list of a function.
2003
2004 2018-05-22 Hristian Kirtchev <kirtchev@adacore.com>
2005
2006 * exp_attr.adb (Build_Array_VS_Func): Reimplemented.
2007 (Build_Record_VS_Func): Reimplemented.
2008 (Expand_N_Attribute): Reimplement the handling of attribute
2009 'Valid_Scalars.
2010 * sem_attr.adb (Analyze_Attribute): Reimplement the handling of
2011 attribute 'Valid_Scalars.
2012 * sem_util.adb (Scalar_Part_Present): Reimplemented.
2013 (Validated_View): New routine.
2014 * sem_util.ads (Scalar_Part_Present): Update the parameter profile and
2015 comment on usage.
2016 (Validated_View): New routine.
2017 * doc/gnat_rm/implementation_defined_attributes.rst: Update the
2018 documentation of attribute 'Valid_Scalars.
2019 * gnat_rm.texi: Regenerate.
2020
2021 2018-05-22 Bob Duff <duff@adacore.com>
2022
2023 * binde.adb: (Choose): Ignore a pragma Elaborate_Body that appears in
2024 the spec of a SAL_Interface package.
2025
2026 2018-05-22 Ed Schonberg <schonberg@adacore.com>
2027
2028 * freeze.adb (Freeze_Entity): When analyzing delayed aspects of an
2029 entity E within a generic unit, indicate that there are no remaining
2030 delayed aspects after invoking Analyze_Aspects_At_Freeze_Point. The
2031 entity E is not frozen yet but the aspects should not be reanalyzed at
2032 the freeze point, which may be outside of the generic and may not have
2033 the proper visibility.
2034
2035 2018-05-22 Bob Duff <duff@adacore.com>
2036
2037 * doc/gnat_ugn/gnat_utility_programs.rst: Add documentation for
2038 the new --split-line-before-record, --indent-named-statements and
2039 --no-align-modes gnatpp switches.
2040
2041 2018-05-22 Ed Schonberg <schonberg@adacore.com>
2042
2043 * sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Handle properly
2044 a second argument that is a constant of a given string value.
2045
2046 2018-05-22 Doug Rupp <rupp@adacore.com>
2047
2048 * sigtramp-vxworks-target.inc: Align stack to 128bits on AArch64.
2049
2050 2018-05-22 Jerome Lambourg <lambourg@adacore.com>
2051
2052 * sigtramp-qnx.c: Fix stack alignment issue in the signal trampoline.
2053
2054 2018-05-22 Ed Schonberg <schonberg@adacore.com>
2055
2056 * freeze.adb (Freeze_Fixed_Point_Type): If the first subtype has
2057 delayed aspects, analyze them now, os that the representation of the
2058 type (size, bounds) can be computed and validated.
2059
2060 2018-05-22 Olivier Hainque <hainque@adacore.com>
2061
2062 * libgnat/s-dwalin.adb (Enable_Cache): Skip symbols outside of the
2063 executable code section boundaries.
2064
2065 2018-05-22 Javier Miranda <miranda@adacore.com>
2066
2067 * locales.c: New implementation for the Ada.Locales package.
2068 * libgnat/a-locale.ads: Remove comment indicating that this is not
2069 implemented.
2070 * doc/gnat_rm/standard_library_routines.rst: Remove comment indicating
2071 that this is not implemented.
2072 * gnat_rm.texi: Regenerate.
2073
2074 2018-05-22 Hristian Kirtchev <kirtchev@adacore.com>
2075
2076 * exp_ch5.adb, freeze.adb, pprint.adb, sem_ch4.adb, sem_res.adb: Minor
2077 reformattings.
2078
2079 2018-05-22 Justin Squirek <squirek@adacore.com>
2080
2081 * sem_ch12.adb (In_Same_Declarative_Part): Moved to sem_util.
2082 (Freeze_Subprogram_Body, Install_Body): Modify calls to
2083 In_Same_Declarative_Part.
2084 * sem_prag.adb (Analyze_Pragma-Pragma_Pure_Function): Add check to
2085 verify pragma declaration is within the same declarative list with
2086 corresponding error message.
2087 * sem_util.adb, sem_util.ads (In_Same_Declarative_Part): Moved from
2088 sem_ch12.adb and generalized to be useful outside the scope of
2089 freezing.
2090
2091 2018-05-22 Hristian Kirtchev <kirtchev@adacore.com>
2092
2093 * sem_ch6.adb (Analyze_Subprogram_Declaration): Set the proper
2094 categorization of the unit after processing the aspects in case one of
2095 its aspects is converted into a categorization pragma.
2096
2097 2018-05-21 Ed Schonberg <schonberg@adacore.com>
2098
2099 * freeze.adb (Warn_Overlay): Do not emit a wawrning on an object
2100 declaration with an explicit address clause and a type with default
2101 initialization, if the declaration carries an aspect
2102 Suppress_Initialization.
2103
2104 2018-05-21 Daniel Mercier <mercier@adacore.com>
2105
2106 * pprint.adb: Use mixed case for attribute names.
2107
2108 2018-05-21 Hristian Kirtchev <kirtchev@adacore.com>
2109
2110 * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Rename the call to
2111 Analyze_Aspect_Specifications_On_Body_Or_Stub.
2112 (Analyze_Subprogram_Body_Helper): Rename the calls to
2113 Analyze_Aspect_Specifications_On_Body_Or_Stub.
2114 * sem_ch9.adb (Analyze_Entry_Body): Rename the call to
2115 Analyze_Aspect_Specifications_On_Body_Or_Stub.
2116 * sem_ch10.adb: Add with and use clause for Sem_Ch13.
2117 (Analyze_Package_Body_Stub): Add constant Id. Decorate the package stub
2118 prior to analyzing its aspects.
2119 (Analyze_Protected_Body_Stub): Add constant Id. Decorate the package
2120 stub prior to analyzing its aspects. Save and restore the configuration
2121 switches.
2122 (Analyze_Task_Body_Stub): Add constant Id. Decorate the package stub
2123 prior to analyzing its aspects.
2124 * sem_ch13.adb (Analyze_Aspect_Specifications_On_Body_Or_Stub): Renamed
2125 to Analyze_Aspects_On_Subprogram_Body_Or_Stub.
2126 * sem_ch13.ads (Analyze_Aspect_Specifications_On_Body_Or_Stub): Renamed
2127 to Analyze_Aspects_On_Subprogram_Body_Or_Stub.
2128 * sem_prag.adb: Code reformatting.
2129 (Analyze_Refined_Depends_Global_Post): Consider task body stubs.
2130
2131 2018-05-21 Jerome Lambourg <lambourg@adacore.com>
2132
2133 * gcc-interface/Makefile.in: Add g-soliop__qnx.ads to the runtime build
2134 for QNX.
2135
2136 2018-05-21 Hristian Kirtchev <kirtchev@adacore.com>
2137
2138 * exp_cg.adb: Remove with and use clause for Exp_Disp.
2139 * exp_ch9.adb: Remove with and use clause for Exp_Disp.
2140 * exp_disp.adb (Is_Predefined_Dispatching_Operation): Moved to Sem_Util.
2141 (Is_Predefined_Interface_Primitive): Moved to Sem_Util.
2142 (Is_Predefined_Internal_Operation): Moved to Sem_Util.
2143 * exp_disp.ads (Is_Predefined_Dispatching_Operation): Moved to Sem_Util.
2144 (Is_Predefined_Interface_Primitive): Moved to Sem_Util.
2145 (Is_Predefined_Internal_Operation): Moved to Sem_Util.
2146 * exp_dist.adb: Remove with and use clause for Exp_Disp.
2147 * freeze.adb: Remove with and use clause for Exp_Disp.
2148 * sem_cat.adb: Remove with and use clause for Exp_Disp.
2149 * sem_ch6.adb: Remove with and use clause for Exp_Disp.
2150 * sem_ch12.adb: Remove with and use clause for Exp_Disp.
2151 * sem_elab.adb (Check_Overriding_Primitive): Do not process predefined
2152 primitives.
2153 * sem_util.adb: Remove with and use clause for Exp_Disp.
2154 (Is_Predefined_Dispatching_Operation): Moved from Exp_Disp.
2155 (Is_Predefined_Interface_Primitive): Moved from Exp_Disp.
2156 (Is_Predefined_Internal_Operation): Moved from Exp_Disp.
2157 * sem_util.ads (Is_Predefined_Dispatching_Operation): Moved from
2158 Exp_Disp.
2159 (Is_Predefined_Interface_Primitive): Moved from Exp_Disp.
2160 (Is_Predefined_Internal_Operation): Moved from Exp_Disp.
2161
2162 2018-05-21 Ed Schonberg <schonberg@adacore.com>
2163
2164 * sem_res.adb (Valid_Conversion): Improve error message on an illegal
2165 type conversion whose expression has a limited view of a type.
2166
2167 2018-05-21 Ed Schonberg <schonberg@adacore.com>
2168
2169 * exp_ch5.adb (Build_Formal_Container_Iteration): If source has
2170 explicit name for iterator loop, preserve that name in expanded
2171 construct, for possible use in exit statements.
2172
2173 2018-05-21 Javier Miranda <miranda@adacore.com>
2174
2175 * sem_ch4.adb (Analyze_Membership_Op): Avoid compiler crash when the
2176 spec of a unit has Ada 2012 membership tests with multiple choices and
2177 the unit body is not compiled under Ada 2012 mode.
2178
2179 2018-05-21 Doug Rupp <rupp@adacore.com>
2180
2181 * sigtramp-vxworks-target.inc: Set cfa_reg properly from sigcontext
2182 pregs.
2183 (CFI_COMMON_REGS): Restore LR jic probed from prologue.
2184 (REGNO_PC_OFFSET): Change to correct value for Aarch64.
2185
2186 2018-05-21 Jose Ruiz <ruiz@adacore.com>
2187
2188 * doc/gnat_ugn/gnat_utility_programs.rst, exp_attr.adb,
2189 libgnarl/s-tassta.adb: Minor typo fixes
2190
2191 2018-05-21 Ed Schonberg <schonberg@adacore.com>
2192
2193 * sem_ch4.adb (Analyze_One_Call): Recognize complex cases where an
2194 indexed call originally in prefix forn is itself the prefix of a
2195 further call.
2196
2197 2018-05-21 Piotr Trojanek <trojanek@adacore.com>
2198
2199 * sem_eval.adb (Is_Null_Range): Clarify access to the full view of a
2200 type.
2201 (Not_Null_Range): Same as above.
2202
2203 2018-05-21 Hristian Kirtchev <kirtchev@adacore.com>
2204
2205 * exp_ch3.adb: Minor reformatting.
2206 * exp_ch6.adb: Likewise.
2207 * freeze.adb: Likewise.
2208 * inline.adb: Likewise.
2209 * sem_util.adb: Likewise.
2210
2211 2018-05-21 Yannick Moy <moy@adacore.com>
2212
2213 * inline.adb (Expand_Inlined_Call.Process_Formals): Use a type
2214 conversion instead of an unchecked type conversion when inlining a
2215 return statement, unless type qualification is required (for character
2216 and string literal) or no check can result from the conversion (for
2217 access types).
2218 * opt.ads: Update comment.
2219
2220 2018-05-21 Hristian Kirtchev <kirtchev@adacore.com>
2221
2222 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Install the elaboration
2223 model of the compilation unit spec, if any.
2224 * sem_ch7.adb (Analyze_Package_Body_Helper): Install the elaboration
2225 model of the compilation unit spec, if any.
2226 * sem_ch10.adb (Analyze_Subunit): Install the elaboration model of the
2227 parent compilation unit spec, if any.
2228 * sem_elab.adb (Check_Elaboration_Scenarios): Restore the elaboration
2229 model of the main unit.
2230 (Is_Same_Unit): The routine now uses Unit_Entity.
2231 (Is_Subunit): Removed.
2232 (Normalize_Unit): Removed.
2233 (Unit_Entity): New routine.
2234 * sem_prag.adb (Analyze_Pragma): Reimplement the handling of pragma
2235 Elaboration_Checks. The analysis now ensures that the pragma appears at
2236 the configuration level, and on the initial declaration of a unit.
2237 Other placements are either flagged as illegal, or ignored.
2238 (Check_Duplicate_Elaboration_Checks_Pragma): New routine.
2239 (Ignore_Elaboration_Checks_Pragma): New routine.
2240 * sem_util.adb (Install_Elaboration_Model): New routine.
2241 * sem_util.ads (Install_Elaboration_Model): New routine.
2242 * doc/gnat_rm/implementation_defined_pragmas.rst: Update the
2243 documentation of pragma Elaboration_Checks.
2244 * gnat_rm.texi: Regenerate.
2245
2246 2018-05-21 Olivier Hainque <hainque@adacore.com>
2247
2248 * libgnat/s-trasym__dwarf.adb (Executable_Name): Return argv[0] instead
2249 of empty string when argv[0] couldn't be found on PATH.
2250 (Enable_Cache): Raise Program_Error instead of attempting a null
2251 pointer dereference when the Exec_Module initialization failed.
2252
2253 2018-05-21 Piotr Trojanek <trojanek@adacore.com>
2254
2255 * libgnarl/a-reatim.ads (Clock_Time): Remove External aspect.
2256 * libgnarl/a-taside.ads (Tasking_State): Likewise.
2257 * libgnat/a-calend.ads (Clock_Time): Likewise.
2258
2259 2018-05-21 Yannick Moy <moy@adacore.com>
2260
2261 * sem_ch6.adb (Analyze_Procedure_Call): Refine test to recognize prefix
2262 call notation in inlined call in GNATprove mode.
2263
2264 2018-05-21 Hristian Kirtchev <kirtchev@adacore.com>
2265
2266 * einfo.adb (Is_External_State): An abstract state is also external
2267 when it is declared with option "synchronous".
2268 * einfo.ads: Update the documentation of synthesized attribute
2269 Is_External_State.
2270 * sem_util.adb (Find_Simple_Properties): New routine.
2271 (Is_Enabled_External_Property): New routine.
2272 (State_Has_Enabled_Property): Reimplemented. The two flavors of option
2273 External have precedence over option Synchronous when determining
2274 whether a property is in effect.
2275
2276 2018-05-21 Yannick Moy <moy@adacore.com>
2277
2278 * sem_eval.adb (Static_Length): Take into account case of variable of
2279 subtype string literal.
2280
2281 2018-05-21 Olivier Hainque <hainque@adacore.com>
2282
2283 * libgnat/s-objrea.ads (Get_Memory_Bounds): Rename as Get_Xcode_Bounds.
2284 (Object_Section): Rename Flag_Alloc component as Flag_Xcode.
2285 * libgnat/s-objrea.adb (Get_Xcode_Bounds): Adjust to new subprogram and
2286 component name.
2287 (Get_Section, ELF case): Set Flag_Xcode from SHF_EXECINSTR.
2288 * libgnat/s-dwalin.adb (Open): Adjust to the Get_Memory_Bounds name
2289 change.
2290
2291 2018-05-21 Olivier Hainque <hainque@adacore.com>
2292
2293 * libgnat/s-dwalin.ads (Dwarf_Context): Change type of Load_Address to
2294 Address, and type of Low, High to Storage_Offset.
2295 (Low): Rename as Low_Address and convey that the return value is a
2296 runtime reference accounting for a load address.
2297 * libgnat/s-dwalin.adb (Read_Aranges_Entry): Adjust to the
2298 address/offset type changes.
2299 (Aranges_Lookup): Likewise.
2300 (Symbolic_Address): Likewise.
2301 (Symbolic_Traceback): Likewise.
2302 (Dump_Cache): Likewise.
2303 (Is_Inside): Likewise.
2304 (Open): Likewise.
2305 (Set_Load_Address): Likewise.
2306 (Low_Address): Likewise, and account for C.Load_Address.
2307 * libgnat/s-trasym__dwarf.adb (Lt): Use Low_Address instead of Low.
2308 (Multi_Module_Symbolic_Traceback): Compare address in traceback
2309 with module Low_Address instead of Low.
2310
2311 2018-05-21 Olivier Hainque <hainque@adacore.com>
2312
2313 * libgnat/s-dwalin.ads (Dwarf_Context): Rename Load_Slide as
2314 Load_Address.
2315 * libgnat/s-dwalin.adb (Is_Inside): Adjust accordingly.
2316 (Set_Load_Address): Likewise.
2317 (Symbolic_Traceback): Likewise.
2318
2319 2018-05-21 Olivier Hainque <hainque@adacore.com>
2320
2321 * libgnat/s-trasym__dwarf.adb (Add_Module_To_Cache): Expect a
2322 Load_Address argument and pass it down to Init_Module.
2323 * libgnat/s-tsmona__linux.adb (Build_Cache_For_All_Modules): Pass
2324 lm.l_addr as the Load_Address to Add_Module_To_Cache.
2325
2326 2018-05-21 Piotr Trojanek <trojanek@adacore.com>
2327
2328 * einfo.adb (Has_Discriminants): Stronger assertion.
2329 (Set_Has_Discriminants): Stronger assertion.
2330 * sem_ch13.adb (Push_Scope_And_Install_Discriminants): Adapt to respect
2331 the stronger assertion on Has_Discriminant.
2332 (Uninstall_Discriminants_And_Pop_Scope): Same as above.
2333 * sem_util.adb (New_Copy_Tree): Same as above.
2334 * sem_ch7.adb (Generate_Parent_References): Prevent calls to
2335 Has_Discriminant on non-type entities that might happen when the
2336 compiled code has errors.
2337 * sem_ch3.adb (Derived_Type_Declaration): Only call
2338 Set_Has_Discriminant on type entities.
2339
2340 2018-05-21 Arnaud Charlet <charlet@adacore.com>
2341
2342 * exp_unst.adb (Unnest_Subprogram): Unnest all subprograms relevant for
2343 code generation.
2344
2345 2018-05-21 Piotr Trojanek <trojanek@adacore.com>
2346
2347 * lib.ads: Fix typo in enumeration in comment.
2348
2349 2018-05-21 Ed Schonberg <schonberg@adacore.com>
2350
2351 * sem_attr.adb (Analyze_Attribute, case Scalar_Storage_Order): The
2352 attribute reference is legal within a generic unit when the prefix is a
2353 formal private type.
2354
2355 2018-05-21 Hristian Kirtchev <kirtchev@adacore.com>
2356
2357 * exp_ch7.adb (Establish_Transient_Scope): Code cleanup. Do not
2358 delegate the secondary stack management when there is no suitable
2359 transient context, and the transient scope was intended to manage the
2360 secondary stack because this causes premature reclamation. Change the
2361 transient scope creation logic by special casing assignment statements
2362 of controlled components for type initialization procedures.
2363 (Find_Node_To_Be_Wrapped): Renamed to Find_Transient_Context. Update
2364 the comment on usage.
2365 (Find_Transient_Context): Change the initinte loop into a while loop.
2366 Iterations schemes and iterator specifications are not valid transient
2367 contexts because they rely on special processing. Assignment statements
2368 are now treated as a normal transient context, special cases are
2369 handled by the caller. Add special processing for pragma Check.
2370 (Is_OK_Construct): Removed. Its functionality has been merged in
2371 routine Find_Transient_Context.
2372 * sem_ch5.adb (Check_Call): Reimplemented. Add code to properly
2373 retrieve the subprogram being invoked. Use a more accurate predicate
2374 (Requires_Transient_Scope) to determine that the function will emply
2375 the secondary stack.
2376
2377 2018-05-21 Piotr Trojanek <trojanek@adacore.com>
2378
2379 * ada_get_targ.adb: Fix subprogram body headers.
2380 * adabkend.adb: Likewise.
2381 * checks.adb: Likewise.
2382 * exp_ch3.adb: Likewise.
2383 * exp_ch5.adb: Likewise.
2384 * exp_ch9.adb: Likewise.
2385 * exp_dist.adb: Likewise.
2386 * exp_tss.adb: Likewise.
2387 * inline.adb: Likewise.
2388 * lib-writ.adb: Likewise.
2389 * lib-xref-spark_specific.adb: Likewise.
2390 * libgnarl/s-osinte__darwin.adb: Likewise.
2391 * libgnarl/s-stusta.adb: Likewise.
2392 * libgnarl/s-taprop__solaris.adb: Likewise.
2393 * libgnarl/s-tposen.adb: Likewise.
2394 * libgnarl/s-vxwext__kernel-smp.adb: Likewise.
2395 * libgnarl/s-vxwext__kernel.adb: Likewise.
2396 * libgnat/a-btgbso.adb: Likewise.
2397 * libgnat/a-cfdlli.adb: Likewise.
2398 * libgnat/a-cfhama.adb: Likewise.
2399 * libgnat/a-cfinve.adb: Likewise.
2400 * libgnat/a-cimutr.adb: Likewise.
2401 * libgnat/a-coboho.adb: Likewise.
2402 * libgnat/a-cofove.adb: Likewise.
2403 * libgnat/a-cofuve.adb: Likewise.
2404 * libgnat/a-comutr.adb: Likewise.
2405 * libgnat/a-exexda.adb: Likewise.
2406 * libgnat/a-tags.adb: Likewise.
2407 * libgnat/a-tideau.adb: Likewise.
2408 * libgnat/a-wtdeau.adb: Likewise.
2409 * libgnat/a-ztdeau.adb: Likewise.
2410 * libgnat/g-alleve.adb: Likewise.
2411 * libgnat/s-excdeb.adb: Likewise.
2412 * libgnat/s-parint.adb: Likewise.
2413 * libgnat/s-shasto.adb: Likewise.
2414 * libgnat/s-traceb__hpux.adb: Likewise.
2415 * prepcomp.adb: Likewise.
2416 * sem_ch4.adb: Likewise.
2417 * sem_ch6.adb: Likewise.
2418 * sem_dist.adb: Likewise.
2419 * sem_prag.adb: Likewise.
2420 * sem_util.adb: Likewise.
2421 * sinfo.adb: Likewise.
2422 * switch.adb: Likewise.
2423
2424 2018-05-04 John Marino <gnugcc@marino.st>
2425
2426 PR ada/85635
2427 * link.c (BSD platforms): Add missing backslash.
2428
2429 2018-04-27 Eric Botcazou <ebotcazou@adacore.com>
2430
2431 PR ada/85540
2432 * init.c (__gnat_handle_vms_condition): Add missing parentheses.
2433
2434 2018-04-25 Eric Botcazou <ebotcazou@adacore.com>
2435
2436 PR ada/85007
2437 * gnat_ugn.texi: Regenerate.
2438
2439 2018-03-23 Eric Botcazou <ebotcazou@adacore.com>
2440
2441 PR ada/85007
2442 * gnatlink.adb (Gnatlink): Remove handling of -b switch.
2443 * doc/gnat_ugn/building_executable_programs_with_gnat.rst (gnatlink):
2444 Remove documentation of -b switch.
2445
2446 2018-03-23 Eric Botcazou <ebotcazou@adacore.com>
2447
2448 PR ada/85036
2449 * gnatlink.adb (Process_Args): Drop existing link switches if multiple
2450 switches are passed for --LINK.
2451
2452 2018-03-12 Eric Botcazou <ebotcazou@adacore.com>
2453
2454 PR ada/82813
2455 * gcc-interface/misc.c (gnat_post_options): Disable string overflow
2456 warnings.
2457
2458 2018-03-10 Eric Botcazou <ebotcazou@adacore.com>
2459
2460 * gcc-interface/trans.c (node_has_volatile_full_access) <N_Identifier>:
2461 Consider only entities for objects.
2462
2463 2018-03-07 Sebastian Huber <sebastian.huber@embedded-brains.de>
2464
2465 * gcc-interface/Makefile.in (OSCONS_CPP): Remove redundant
2466 $(GNATLIBCFLAGS).
2467 (OSCONS_EXTRACT): Add $(GNATLIBCFLAGS_FOR_C).
2468
2469 2018-03-06 Eric Botcazou <ebotcazou@adacore.com>
2470
2471 * gcc-interface/trans.c (convert_with_check): Fix typo in the condition
2472 guarding the overflow check emitted for the upper bound of a floating-
2473 point conversion.
2474
2475 2018-03-06 Eric Botcazou <ebotcazou@adacore.com>
2476
2477 * gcc-interface/utils.c (def_builtin_1): Bail out on error_mark_node.
2478
2479 2018-02-28 Eric Botcazou <ebotcazou@adacore.com>
2480
2481 * libgnat/i-cexten.ads (Float_128): New type.
2482
2483 2018-02-02 Eric Botcazou <ebotcazou@adacore.com>
2484
2485 * gcc-interface/decl.c (array_type_has_nonaliased_component): Return
2486 false if the component type is a pointer.
2487
2488 2018-01-11 Gary Dismukes <dismukes@adacore.com>
2489
2490 * exp_ch3.adb (Default_Initialize_Object): Call New_Copy_Tree on the
2491 result of Get_Simple_Init_Value and pass the source location of the
2492 object declaration's object_definition.
2493
2494 2018-01-11 Ed Schonberg <schonberg@adacore.com>
2495
2496 * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Handle
2497 properly object declarations with initializations that are
2498 build-in-place function calls, when there is an address specification,
2499 either as an aspect specification or an explicit attribute
2500 specification clause, for the initialized object.
2501 * freeze.adb (Check_Address_Clause): Do not remove side-effects from
2502 initial expressions in the case of a build-in-place call.
2503
2504 2018-01-11 Piotr Trojanek <trojanek@adacore.com>
2505
2506 * sem_eval.adb (Is_Null_Range): Retrieve the full view when called on a
2507 private (sub)type; refactor to avoid early return statement.
2508 (Not_Null_Range): Same as above.
2509
2510 2018-01-11 Hristian Kirtchev <kirtchev@adacore.com>
2511
2512 * freeze.adb (Freeze_Entity): Ensure that a Ghost type is not
2513 concurrent, nor effectively volatile.
2514 * ghost.adb (Check_Ghost_Type): New routine.
2515 * ghost.ads (Check_Ghost_Type): New routine.
2516 * sem_util.adb (Is_Declaration): Reimplemented. The routine can now
2517 consider specific subsets of declarations.
2518 (Is_Declaration_Other_Than_Renaming): Removed. Its functionality is
2519 replicated by Is_Declaration.
2520 * sem_util.ads (Is_Declaration): New parameter profile. Update the
2521 comment on usage.
2522 (Is_Declaration_Other_Than_Renaming): Removed.
2523
2524 2018-01-11 Hristian Kirtchev <kirtchev@adacore.com>
2525
2526 * sem_ch5.adb (Analyze_Assignment): Assignments to variables that act
2527 as Part_Of consituents of single protected types are illegal when they
2528 take place inside a protected function.
2529 (Diagnose_Non_Variable_Lhs): Use Within_Function to check for an
2530 enclosing function.
2531 (Is_Protected_Part_Of_Constituent): New routine.
2532 (Within_Function): New routine.
2533
2534 2018-01-11 Arnaud Charlet <charlet@adacore.com>
2535
2536 Bump copyright notices to 2018.
2537
2538 2018-01-11 Hristian Kirtchev <kirtchev@adacore.com>
2539
2540 * binde.adb, par-ch6.adb, par-ch9.adb, sem_ch12.adb, sem_ch13.adb:
2541 Minor reformatting.
2542
2543 2018-01-11 Justin Squirek <squirek@adacore.com>
2544
2545 * par-ch6.adb (Scan_Body_Or_Expression_Function): Add additional check
2546 to make sure a given expression function is properly parenthesized.
2547
2548 2018-01-11 Hristian Kirtchev <kirtchev@adacore.com>
2549
2550 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Check the
2551 categorization of a subprogram body which does not complete a previous
2552 declaration.
2553
2554 2018-01-11 Hristian Kirtchev <kirtchev@adacore.com>
2555
2556 * sem_ch10.adb (Check_Private_Child_Unit): Ensure that the enclosing
2557 scope of package Ada is Standard.
2558
2559 2018-01-11 Ed Schonberg <schonberg@adacore.com>
2560
2561 * sem_ch13.adb (Replace_Type_Ref): Handle properly reference to a
2562 subcomponent of the current entity when building the body for a dynamic
2563 predicate function for a record with composite subcomponents.
2564
2565 2018-01-11 Hristian Kirtchev <kirtchev@adacore.com>
2566
2567 * exp_aggr.adb (Convert_Aggr_In_Object_Decl): Update the call to
2568 Establish_Transient_Scope.
2569 (Convert_To_Assignments): Update the call to Establish_Transient_Scope.
2570 (Expand_Array_Aggregate): Update the call to Establish_Transient_Scope.
2571 * exp_ch6.adb (Expand_Call_Helper): Update the call to
2572 Establish_Transient_Scope.
2573 (Make_Build_In_Place_Call_In_Object_Declaration): Update the call to
2574 Establish_Transient_Scope.
2575 * exp_ch7.adb (Establish_Transient_Scope): Restructured. Delegate the
2576 management of the secondary stack to an enclosing scope if there is no
2577 suitable construct to wrap, and the transient scope was intended to
2578 manage the secondary stack.
2579 (Find_Node_To_Be_Wrapped): Restructured. A case_statement_alternative
2580 is a valid boundary for a transient expression which comes from the
2581 statements of the alternative, otherwise alternatives cannot be
2582 wrapped. Assignments of controlled objects which have controlled
2583 actions suppressed now stop the traversal as there is no point in
2584 looking for an enclosing construct. Add several N_xxx_Body choices to
2585 the termination conditions for completeness.
2586 * exp_ch7.ads (Establish_Transient_Scope): Update the parameter profile
2587 and the associated comment on usage.
2588 * exp_smem.adb (Add_Shared_Var_Lock_Procs): Update the call to
2589 Establish_Transient_Scope.
2590 (Add_Write_After): Update the call to Establish_Transient_Scope.
2591 * sem_res.adb (Check_Initialization_Call): Removed.
2592 (Resolve_Actuals): Account for additional cases where finalization
2593 actions are required by utilizing predicate Needs_Finalization rather
2594 than Is_Controlled.
2595 (Resolve_Call): Type initialization procedures can now utilize
2596 transient scopes to manage the secondary stack, thus preventing leaks
2597 during initialization. Remove the previous kludgy algorithm which
2598 attempts to manage the secondary stack at the object creation site.
2599
2600 2018-01-11 Jerome Lambourg <lambourg@adacore.com>
2601
2602 * libgnat/g-soliop__qnx.ads: New.
2603 * adaint.c, adaint.h, cstreams.c, s-oscons-tmplt.c, sysdep.c: Update
2604 for QNX.
2605
2606 2018-01-11 Bob Duff <duff@adacore.com>
2607
2608 * par-ch9.adb (P_Protected_Operation_Declaration_Opt): Give an error if
2609 a null procedure occurs in a protected definition.
2610
2611 2018-01-11 Bob Duff <duff@adacore.com>
2612
2613 * binderr.ads, namet.ads: Minor reformatting.
2614
2615 2018-01-11 Bob Duff <duff@adacore.com>
2616
2617 * doc/gnat_ugn/gnat_utility_programs.rst: Improve documentation of
2618 xml2gnat.
2619
2620 2018-01-11 Bob Duff <duff@adacore.com>
2621
2622 * binde.adb (Force_Elab_Order): Give an error if there are duplicate
2623 unit names.
2624
2625 2018-01-11 Ed Schonberg <schonberg@adacore.com>
2626
2627 * sem_ch6.adb (Freeze_Expr_Types): If an access value is the
2628 controlling argument of a dispatching call. freeze the corresponding
2629 designated type.
2630
2631 2018-01-11 Ben Brosgol <brosgol@adacore.com>
2632
2633 * doc/Makefile: Add Sphinx option -W to treat warnings as errors.
2634
2635 2018-01-11 Ben Brosgol <brosgol@adacore.com>
2636
2637 * doc/gnat_rm/implementation_defined_aspects.rst: Minor type/wording
2638 corrections.
2639 * gnat_rm.texi: Regenerate.
2640
2641 2018-01-11 Ed Schonberg <schonberg@adacore.com>
2642
2643 * sem_ch12.adb (Check_Fixed_Point_Type): Do not apply check if the
2644 formsl type corresponding to the actual fixed point type is private,
2645 because in this case there can be no suspicious arithmetic operations
2646 in the generic unless they reference a formal subprogram. Clarify
2647 warning.
2648
2649 2018-01-11 Javier Miranda <miranda@adacore.com>
2650
2651 * exp_util.adb (Remove_Side_Effects): No action done for functions
2652 returning class-wide types since it requires generating code using
2653 'reference and the CCG target has no secondary stack.
2654 * gnat1drv.adb: Disable building static dispatch tables when generating
2655 C code.
2656
2657 2018-01-11 Piotr Trojanek <trojanek@adacore.com>
2658
2659 * libgnat/a-direio.ads, libgnat/a-sequio.ads, libgnat/a-ststio.ads,
2660 libgnat/a-textio.ads, libgnat/a-witeio.ads, libgnat/a-ztexio.ads
2661 (File_Type): Add Default_Initial_Condition aspect.
2662
2663 2018-01-11 Pascal Obry <obry@adacore.com>
2664
2665 * libgnat/s-os_lib.adb (Normalize_Pathname): New implementation.
2666
2667 2018-01-11 Bob Duff <duff@adacore.com>
2668
2669 * doc/gnat_ugn/gnat_utility_programs.rst: Rewrite gnatpp documentation
2670 to match what the Libadalang-based version does.
2671 * doc/gnat_ugn/about_this_guide.rst: Update reference.
2672
2673 2018-01-11 Hristian Kirtchev <kirtchev@adacore.com>
2674
2675 * sem_res.adb (Uses_SS): A controlled type requires the secondary stack
2676 if it contains at least one component declaration employing a function
2677 call returning on the secondary stack.
2678
2679 2018-01-11 Yannick Moy <moy@adacore.com>
2680
2681 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
2682 Update description of restriction SPARK_05 with SPARK 2014.
2683 * gnat_rm.texi: Regenerate.
2684
2685 2018-01-11 Vasiliy Fofanov <fofanov@adacore.com>
2686
2687 * doc/gnat_ugn/gnat_utility_programs.rst: Fix layout.
2688
2689 2018-01-11 Hristian Kirtchev <kirtchev@adacore.com>
2690
2691 * exp_aggr.adb, exp_ch9.adb, exp_util.adb, sem_aggr.adb, sem_ch3.adb,
2692 sem_res.adb, sem_util.adb: Minor reformatting.
2693
2694 2018-01-11 Ed Schonberg <schonberg@adacore.com>
2695
2696 * sem_prag.adb (Analyze_Pragma, case Predicate): Indicate that the type
2697 has a delayed aspect which must be processed at the point the type is
2698 frozen. This mimics what is done when the predicate is provided by a
2699 source aspect.
2700
2701 2018-01-11 Doug Rupp <rupp@adacore.com>
2702
2703 * init.c (vxworks): Add macro checks for __aarch64__.
2704
2705 2018-01-11 Hristian Kirtchev <kirtchev@adacore.com>
2706
2707 * exp_util.adb (Add_Failure_Expression): New routine.
2708 (Make_Predicate_Check): Reimplement the handling of Predicate_Failure.
2709 * sem_util.adb (Is_Current_Instance): Code cleanup.
2710
2711 2018-01-11 Patrick Bernardi <bernardi@adacore.com>
2712
2713 * libgnat/s-parame*.adb, libgnat/s-parame*.ads: Remove unneeded
2714 Default_Sec_Stack_Size.
2715 * libgnat/s-secsta.adb (SS_Allocate): Handle the fixed secondary stack
2716 limit check so that the integer index does not overflow. Check the
2717 dynamic stack allocation does not cause the secondary stack pointer to
2718 overflow.
2719 (SS_Info): Align colons.
2720 (SS_Init): Cover the case when bootstraping with an old compiler that
2721 does not set Default_SS_Size.
2722
2723 2018-01-11 Ed Schonberg <schonberg@adacore.com>
2724
2725 * sem_ch3.adb (Add_Internal_Interface_Entities): When checking the
2726 legality of an inherited operation that may require overriding, ignore
2727 primitive_wrappers that correspond to explicit operations that override
2728 an interface primitive.
2729 * exp_util.adb (Build_Class_Wide_Expression, Replace_Entity): If the
2730 operation to which the class-wide expression applies is a protected op.
2731 with a primitive_wrapper, verify that the updated inherited expression
2732 does not contain an internal call to a protected function. This
2733 completes the implementation of AI12-0166.
2734
2735 2018-01-11 Hristian Kirtchev <kirtchev@adacore.com>
2736
2737 * ali.adb: Document the remaining letters available for ALI lines.
2738 (Scan_ALI): A with clause is internal when it is encoded on a 'Z' line.
2739 * ali.ads: Update type With_Record. Field
2740 Implicit_With_From_Instantiation is no longer in use. Add field
2741 Implicit_With.
2742 * csinfo.adb (CSinfo): Remove the setup for attribute
2743 Implicit_With_From_Instantiation.
2744 * lib-writ.adb (Collect_Withs): Correct the logic which marks a unit as
2745 either implicitly or explicitly withed.
2746 (Is_Implicit_With_Clause): New routine.
2747 (Write_ALI): Rename array Implicit_With to Has_Implicit_With to avoid
2748 confusion with the with clause attribute by the same name.
2749 (Write_With_Lines): Update the emission of 'W', 'Y', and 'Z' headers.
2750 * rtsfind.adb (Maybe_Add_With): Code cleanup.
2751 * sem_ch8.adb (Present_System_Aux): Code cleanup.
2752 * sem_ch10.adb (Expand_With_Clause): Mark the with clause as generated
2753 for a parent unit.
2754 (Implicit_With_On_Parent): Mark the with clause as generated for a
2755 parent unit.
2756 * sem_ch12.adb (Inherit_Context): With clauses inherited by an
2757 instantiation are no longer marked as Implicit_With_From_Instantiation
2758 because they are already marked as implicit.
2759 * sem_elab.adb (Ensure_Prior_Elaboration_Static): Remove the kludge
2760 which marks implicit with clauses as related to an instantiation.
2761 * sinfo.adb (Implicit_With_From_Instantiation): Removed.
2762 (Parent_With): New routine.
2763 (Set_Implicit_With_From_Instantiation): Removed.
2764 (Set_Parent_With): New routine.
2765 * sinfo.ads: Update the documentation of attribute Implicit_With.
2766 Remove attribute Implicit_With_From_Instantiation along with
2767 occurrences in nodes. Add attribute Parent_With along with occurrences
2768 in nodes.
2769 (Implicit_With_From_Instantiation): Removed along with pragma Inline.
2770 (Parent_With): New routine along with pragma Inline.
2771 (Set_Implicit_With_From_Instantiation): Removed along with pragma Inline.
2772 (Set_Parent_With): New routine along with pragma Inline.
2773
2774 2018-01-11 Hristian Kirtchev <kirtchev@adacore.com>
2775
2776 * sem_util.adb (Find_Enclosing_Scope): Return the unique defining
2777 entity when the enclosing construct is a body.
2778
2779 2018-01-11 Patrick Bernardi <bernardi@adacore.com>
2780
2781 * exp_ch9.adb (Expand_N_Task_Type_Declaration): Simplified
2782 Secondary_Stack_Size handling as a pragma is now generated for the
2783 corresponding aspect instead of an attribute. Pragma expression is
2784 relocated instead of evaluated. Discriminant of the corresponding
2785 record type is referenced rather than the type discriminant.
2786 (Create_Secondary_Stack_For_Task, Make_Task_Create_Call): Update
2787 Secondary_Stack_Size rep item checks to only look for the pragma rep.
2788 * sem_ch13.adb (Analyze_One_Aspect): Transform
2789 Aspect_Secondary_Stack_Size into a pragma instead of an attribute
2790 because the attribute does not have visibility on a task type's
2791 discriminants when the type's definition is expanded.
2792 (Analyze_Attribute_Definition_Clause): Remove handling of
2793 Attribute_Secondary_Stack_Size.
2794 * snames.adb-tmpl, snames.ads-tmpl: Remove
2795 Attribute_Secondary_Stack_Size, no longer used.
2796
2797 2018-01-11 Justin Squirek <squirek@adacore.com>
2798
2799 * sem_ch8.adb: Minor comment fix.
2800
2801 2018-01-11 Hristian Kirtchev <kirtchev@adacore.com>
2802
2803 * exp_ch4.adb (Process_Action): Do not abandon the inspection of an
2804 individual action because the action may denote a complex expression,
2805 such as a case statement, which in turn may contain additional
2806 transient objects.
2807
2808 2018-01-11 Ed Schonberg <schonberg@adacore.com>
2809
2810 * sem_aggr.adb (Resolve_Iterated_Component_Association): Perform
2811 analysis on a copy of the expression with a copy of the index variable,
2812 because full expansion will rewrite construct into a loop with the
2813 original loop variable.
2814 * exp_aggr.adb (Gen_Assign): Defer analysis and resolution if the
2815 expression is an iterated component association. Full analysis takes
2816 place when construct is rewritten as a loop.
2817 (In_Place_Assign_OK, Safe_Component): An iterated_component_association
2818 is not safe for in-place assignment.
2819 * sem_util.adb (Remove_Entity): Handle properly the case of an isolated
2820 entity with no homonym and no other entity in the scope.
2821
2822 2018-01-11 Justin Squirek <squirek@adacore.com>
2823
2824 * sem_prag.adb (Analyze_Pragma:Pragma_Loop_Variant): Modify error
2825 message to be printed on the pragma argument identifier.
2826
2827 2018-01-11 Hristian Kirtchev <kirtchev@adacore.com>
2828
2829 * exp_util.adb (Build_Invariant_Procedure_Declaration): Set the last
2830 entity of the generated invariant procedure in order to construct a
2831 proper entity chain.
2832
2833 2018-01-11 Piotr Trojanek <trojanek@adacore.com>
2834
2835 * sem_ch13.adb (Build_Predicate_Functions): Fix minor issues in
2836 comment.
2837
2838 2018-01-11 Arnaud Charlet <charlet@adacore.com>
2839
2840 * einfo.ads, einfo.adb (Activation_Record_Component,
2841 Set_Activation_Record_Component, Set_Is_Uplevel_Referenced_Entity):
2842 Allow E_Discriminant.
2843
2844 2018-01-10 Eric Botcazou <ebotcazou@adacore.com>
2845
2846 * gcc-interface/decl.c (gnat_to_gnu_component_type): Apply the check
2847 for atomic access once the component size is taken into account and
2848 also do it if the component type is Atomic or Volatile_Full_Access.
2849
2850 2018-01-04 Eric Botcazou <ebotcazou@adacore.com>
2851
2852 * gnatvsn.ads: Bump copyright year.
2853
2854 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org>
2855 Alan Hayward <alan.hayward@arm.com>
2856 David Sherwood <david.sherwood@arm.com>
2857
2858 * gcc-interface/misc.c (enumerate_modes): Treat GET_MODE_BITSIZE
2859 as polynomial.
2860
2861 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org>
2862 Alan Hayward <alan.hayward@arm.com>
2863 David Sherwood <david.sherwood@arm.com>
2864
2865 * gcc-interface/misc.c (enumerate_modes): Treat GET_MODE_PRECISION
2866 as polynomial.
2867
2868 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org>
2869 Alan Hayward <alan.hayward@arm.com>
2870 David Sherwood <david.sherwood@arm.com>
2871
2872 * gcc-interface/utils.c (gnat_types_compatible_p): Handle
2873 polynomial TYPE_VECTOR_SUBPARTS.
2874
2875 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org>
2876 Alan Hayward <alan.hayward@arm.com>
2877 David Sherwood <david.sherwood@arm.com>
2878
2879 * gcc-interface/misc.c (enumerate_modes): Handle polynomial
2880 GET_MODE_NUNITS.
2881
2882 2018-01-03 Jakub Jelinek <jakub@redhat.com>
2883
2884 Update copyright years.
2885
2886 * gnat_ugn.texi: Bump @copying's copyright year.
2887 * gnat_rm.texi: Likewise.
2888 \f
2889 Copyright (C) 2018 Free Software Foundation, Inc.
2890
2891 Copying and distribution of this file, with or without modification,
2892 are permitted in any medium without royalty provided the copyright
2893 notice and this notice are preserved.