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