[Ada] Fix failing assertions on SPARK elaboration
[gcc.git] / gcc / ada / ChangeLog
1 2019-08-14 Yannick Moy <moy@adacore.com>
2
3 * sem_disp.adb (Check_Dispatching_Operation): Update assertion
4 for the separate declarations created in GNATprove mode.
5 * sem_disp.ads (Is_Overriding_Subprogram): Update comment.
6 * sem_elab.adb (SPARK_Processor): Fix test for checking of
7 overriding primitives.
8
9 2019-08-14 Eric Botcazou <ebotcazou@adacore.com>
10
11 * inline.adb (Add_Inlined_Body): Tweak comments.
12 (List_Inlining_Info): Also list information about non-main
13 units.
14
15 2019-08-14 Gary Dismukes <dismukes@adacore.com>
16
17 * sem_ch4.adb (Analyze_Selected_Component): In the case where
18 the prefix is of a concurrent type, and the selected entity
19 matching the selector is the first private declaration of the
20 type (such as the first local variable in a task's body), set
21 Is_Private_Op.
22
23 2019-08-14 Piotr Trojanek <trojanek@adacore.com>
24
25 * einfo.adb (Is_Generic_Actual_Subprogram): Replace repeated
26 calls to Ekind with Ekind_In.
27
28 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
29
30 PR middle-end/91421
31 * gcc-interface/trans.c (gigi): Call set_decl_buillt_in_function.
32 (Call_to_gnu): Use DECL_FE_FUNCTION_CODE instead of DECL_FUNCTION_CODE.
33
34 2019-08-13 Eric Botcazou <ebotcazou@adacore.com>
35
36 * ali.ads (Linker_Option_Record): Remove Original_Pos component.
37 * ali.adb (Scan_ALI): Do not set it.
38
39 2019-08-13 Eric Botcazou <ebotcazou@adacore.com>
40
41 * sem_ch3.adb (Build_Derived_Concurrent_Type): Add a couple of
42 local variables and use them. When the derived type fully
43 constrains the parent type, rewrite it as a subtype of an
44 implicit (unconstrained) derived type instead of the other way
45 around.
46 (Copy_And_Build): Deal with concurrent types and use predicates.
47 (Build_Derived_Private_Type): Build the full derivation if
48 needed for concurrent types too.
49 (Build_Derived_Record_Type): Add marker comment.
50 (Complete_Private_Subtype): Use predicates.
51
52 2019-08-13 Ed Schonberg <schonberg@adacore.com>
53
54 * sem_ch3.adb (Check_Generic_Ancestor): New subprogram,
55 aubsidiary to Build_Derived_Record_Type. to enforce the rule
56 that a type extension declared in a generic body cznnot have an
57 ancestor that is a generic formal (RM 3.9.1 (4/2)). The rule
58 applies to all ancestors of the type, including interface
59 progenitors.
60
61 2019-08-13 Eric Botcazou <ebotcazou@adacore.com>
62
63 * sem_ch3.adb (Build_Underlying_Full_View): Delete.
64 (Complete_Private_Subtype): Do not set the full view on the
65 private subtype here. If the full base is itself derived from
66 private, do not re-derive the parent type but instead constrain
67 an existing underlying full view.
68 (Prepare_Private_Subtype_Completion): Do not get to the
69 underlying full view, if any. Set the full view on the private
70 subtype here.
71 (Process_Full_View): Likewise.
72 * sem_ch12.adb (Check_Generic_Actuals): Also set
73 Is_Generic_Actual_Type on the full view if the type of the
74 actual is private.
75 (Restore_Private_Views): Also reset Is_Generic_Actual_Type on
76 the full view if the type of the actual is private.
77 * sem_eval.adb (Subtypes_Statically_Match): Remove bypass for
78 generic actual types.
79
80 2019-08-13 Javier Miranda <miranda@adacore.com>
81
82 * sem_res.adb (Resolve_Selected_Component): When the type of the
83 component is an access to a class-wide type and the type of the
84 context is an access to a tagged type the relevant type is that
85 of the component (since in such case we may need to generate
86 implicit type conversions or dispatching calls).
87
88 2019-08-13 Ed Schonberg <schonberg@adacore.com>
89
90 * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Preanalyze
91 expression, rather do a full analysis, to prevent unwanted
92 removal of side effects which mask the intent of the expression.
93
94 2019-08-13 Eric Botcazou <ebotcazou@adacore.com>
95
96 * impunit.adb (Non_Imp_File_Names_95): Add
97 GNAT.Branch_Prediction.
98
99 2019-08-13 Eric Botcazou <ebotcazou@adacore.com>
100
101 * exp_ch6.adb: Remove with and use clauses for Sem_Ch12.
102 (Expand_Call_Helper): Swap the back-end inlining case and the
103 special front-end expansion case. In back-end inlining mode, do
104 not invoke Add_Inlined_Body unless the call may be inlined.
105 * inline.ads (Add_Pending_Instantiation): New function moved
106 from...
107 * inline.adb (Add_Inlined_Body): Simplify comment. Turn test on
108 the enclosing unit into assertion.
109 (Add_Pending_Instantiation): New function moved from...
110 * sem_ch12.ads (Add_Pending_Instantiation): ...here.
111 * sem_ch12.adb (Add_Pending_Instantiation): ...here.
112
113 2019-08-13 Eric Botcazou <ebotcazou@adacore.com>
114
115 * sem.adb (Do_Analyze): Recompute Style_Check_Max_Line_Length
116 after restoring Style_Max_Line_Length.
117
118 2019-08-13 Arnaud Charlet <charlet@adacore.com>
119
120 * sem_ch13.adb (Check_Iterator_Functions): Protect against
121 cascaded errors.
122
123 2019-08-13 Ed Schonberg <schonberg@adacore.com>
124
125 * sem_ch8.adb (Analyze_Subprogram_Renaming): Do no suppress mode
126 conformance checks on child unit instance that is a compilation
127 unit.
128
129 2019-08-13 Gary Dismukes <dismukes@adacore.com>
130
131 * exp_dbug.adb (Fully_Qualify_Name): Add full name qualification
132 for the E_Exception case.
133
134 2019-08-13 Gary Dismukes <dismukes@adacore.com>
135
136 * exp_aggr.adb (Aggr_Size_OK): Compute the aggregate size using
137 universal arithmetic, to avoid situations where the size
138 computation overflows.
139
140 2019-08-13 Justin Squirek <squirek@adacore.com>
141
142 * repinfo.adb (List_Scalar_Storage_Order): Modify conditionals
143 for displaying ordering to always be triggered when -gnatR4 is
144 in effect.
145
146 2019-08-13 Justin Squirek <squirek@adacore.com>
147
148 * aspects.adb, aspects.ads: Register new aspect.
149 * par-prag.adb (Prag): Register new pragma
150 * sem_ch13.adb (Analyze_Aspect_Specifications): Add processing
151 for new aspect similar to Aspect_Max_Entry_Queue_Length.
152 * sem_prag.adb, sem_prag.ads (Analyze_Pragma): Register new
153 pragma and set it to use the same processing as
154 Pragma_Max_Queue_Length.
155 * snames.ads-tmpl: Move definition of
156 Name_Max_Entry_Queue_Length so that it can be processed as a
157 pragma in addition to a restriction and add an entry for the
158 pragma itself.
159
160 2019-08-13 Yannick Moy <moy@adacore.com>
161
162 * sem_ch4.adb (Analyze_Allocator): Do not insert subtype
163 declaration for allocator inside a spec expression.
164
165 2019-08-13 Yannick Moy <moy@adacore.com>
166
167 * sem_res.adb (Resolve_Call): Do not inline calls inside record
168 types.
169
170 2019-08-13 Eric Botcazou <ebotcazou@adacore.com>
171
172 * sem_ch4.adb (Analyze_One_Call): Remove bypass for type
173 mismatch in nested instantiations.
174 * sem_ch8.adb (Find_Nearer_Entity): New function.
175 (Find_Renamed_Entity): Use it to disambiguate the candidates for
176 the renaming generated for an instantiation when it is
177 ambiguous.
178
179 2019-08-13 Eric Botcazou <ebotcazou@adacore.com>
180
181 * gnat1drv.adb (Adjust_Global_Switches): Do not set
182 Back_End_Inlining in ASIS mode either.
183
184 2019-08-13 Olivier Hainque <hainque@adacore.com>
185
186 * libgnat/s-win32.ads: Define size_t and fix the MapViewOfFile
187 binding to use it instead of DWORD for the dwNumberOfBytesToMap
188 argument.
189 * libgnat/g-sercom__mingw.adb (Read): State which definition of
190 size_t to fetch in call to Last_Index.
191
192 2019-08-13 Arnaud Charlet <charlet@adacore.com>
193
194 * gcc-interface/Make-lang.in: Remove unused TRACE variable. Pass
195 LN_S to relevant gnatlib targets.
196 * gcc-interface/Makefile.in: Systematically pass LN_S to
197 relevant gnatlib targets.
198
199 2019-08-13 Yannick Moy <moy@adacore.com>
200
201 * sem_dim.adb (Analyze_Dimension,
202 Analyze_Dimension_Array_Aggregate, Analyze_Dimension_Call,
203 Analyze_Dimension_Extension_Or_Record_Aggregate): Return
204 immediately when inside an inlined body.
205 * sem_res.adb (Resolve_Call): Remove special checking now done
206 inside Analyze_Dimension_Call.
207
208 2019-08-13 Justin Squirek <squirek@adacore.com>
209
210 * exp_ch4.adb (Expand_N_Allocator): Add condition to detect
211 library-level object declarations
212
213 2019-08-13 Eric Botcazou <ebotcazou@adacore.com>
214
215 * doc/gnat_ugn/building_executable_programs_with_gnat.rst
216 (-gnateT): Document Double_Float_Alignment parameter and fix
217 description of Double_Scalar_Alignment parameter.
218 * gnat_ugn.texi: Regenerate.
219
220 2019-08-13 Eric Botcazou <ebotcazou@adacore.com>
221
222 * exp_ch6.adb (Expand_Call_Helper): If back-end inlining is
223 enabled, also instantiate the body of a generic unit containing
224 a subprogram subject to aspect/pragma Inline_Always at
225 optimization level zero.
226 * sem_ch12.adb (Might_Inline_Subp): Minor tweak.
227 (Analyze_Package_Instantiation): Do not instantiate the package
228 body because of inlining considerations if the instantiation is
229 done in a generic unit. Move around similar condition involving
230 the main unit. Add test on Back_End_Inlining to processing for
231 front-end inlining.
232
233 2019-08-13 Javier Miranda <miranda@adacore.com>
234
235 * exp_disp.adb (Make_Secondary_DT): Handle record type
236 derivations that have interface components located at fixed
237 positions and interface components located at variable offset.
238 The offset of components located at fixed positions is computed
239 using the dummy object (similar to the case where all the
240 interface components are located at fixed positions).
241 (Make_DT): Build the dummy object for all tagged types that
242 implement interface types (that is, build it also for types with
243 variable size components), and use the dummy object to compute
244 the offset of all tag components located at fixed positions when
245 initializing the Interface_Table object.
246
247 2019-08-13 Justin Squirek <squirek@adacore.com>
248
249 * gnatcmd.adb (GNATCmd): Add constant for new compiler switch
250 --help-ada, and include usage subprogram. Add line to usage help
251 explaining the new flag.
252 (GNATCmd_Usage): Rename from locally declared Usage so as not to
253 confuse with the newly imported version. Add new argument case
254 for --help-ada and add bug report email to implicit display of
255 help without the --help flag so as to unify output between the
256 two cases.
257
258 2019-08-13 Dmitriy Anisimkov <anisimko@adacore.com>
259
260 * libgnat/g-comlin.adb (Getopt): Quote unrecognized switch in
261 Invalid_Switch exception message.
262
263 2019-08-13 Yannick Moy <moy@adacore.com>
264
265 * sem_util.adb (Traverse_More_Func): Take into account
266 Loop_Actions inside N_Iterated_Component_Association nodes.
267 * sinfo.ads: Document correctly Loop_Actions as a field of nodes
268 of kind N_Iterated_Component_Association.
269
270 2019-08-13 Claire Dross <dross@adacore.com>
271
272 * libgnat/a-cfinve.adb, libgnat/a-cofove.adb (Find_Index,
273 Reverse_Find_Index): Use bigger type to avoid range check
274 failure at the last loop iteration.
275
276 2019-08-12 Dmitriy Anisimkov <anisimko@adacore.com>
277
278 * libgnat/g-socket.adb (Is_IPv6_Address): Check that no less
279 then 2 colons in IPv6 numeric address.
280
281 2019-08-12 Dmitriy Anisimkov <anisimko@adacore.com>
282
283 * libgnat/g-comlin.ads, libgnat/g-comlin.adb (Getopt): Add
284 parameter Quiet. Need to do not output error messages to
285 console. Invalid_Switch exception generation surrounded by an
286 error message.
287
288 2019-08-12 Ed Schonberg <schonberg@adacore.com>
289
290 * exp_ch6.adb (Expand_Actuals. Add_Call_By_Copy_Code): Add code
291 to generate proper checks when an actual for an in-out or out
292 parameter has a non-null access type. No constraints are
293 applied to an inbound access parameter, but on exit a not-null
294 check must be performed if the type of the actual requires it.
295
296 2019-08-12 Ed Schonberg <schonberg@adacore.com>
297
298 * sem_util.adb (Is_Expaned_Priority_Attribute): Check whether
299 call comes from a rewritten attribute before comparing name with
300 Get_Ceiling run-time subprogram.
301
302 2019-08-12 Eric Botcazou <ebotcazou@adacore.com>
303
304 * exp_util.ads (Component_May_Be_Bit_Aligned): Small comment
305 tweaks.
306 (Possible_Bit_Aligned_Component): Likewise.
307 (Type_May_Have_Bit_Aligned_Components): Likewise.
308 * exp_util.adb (Component_May_Be_Bit_Aligned): Likewise.
309 (Possible_Bit_Aligned_Component): Likewise.
310 (Type_May_Have_Bit_Aligned_Components): Likewise.
311
312 2019-08-12 Eric Botcazou <ebotcazou@adacore.com>
313
314 * exp_ch4.adb (Expand_N_Op_Eq): Expand the array equality if
315 either operand is a possibly unaligned slice.
316 * exp_ch6.adb (Expand_Simple_Function_Return): Do not generate a
317 copy for a possibly unaligned object if it is represented as a
318 scalar.
319 * exp_util.adb (Is_Possibly_Unaligned_Slice): Do not always
320 return false if the target doesn't have strict alignment.
321
322 2019-08-12 Bob Duff <duff@adacore.com>
323
324 * sem_ch12.adb (Instantiate_Package_Body): Remove suppression of
325 checks in instances of internal units.
326 * sem_ch6.adb (Analyze_Function_Return): Do not generate a
327 constraint check on an extended_return_statement if the subtype
328 of the return object in the statement is identical to the return
329 subtype of the function.
330
331 2019-08-12 Bob Duff <duff@adacore.com>
332
333 * libgnat/a-cbmutr.adb (Is_Reachable): Declare Idx to be of the
334 base subtype. Clearly it makes no sense to loop "while Idx >=
335 0", if Idx is of a nonnegative subtype.
336
337 2019-08-12 Bob Duff <duff@adacore.com>
338
339 * libgnat/a-tifiio.adb (Put_Scaled): Prevent AA from being
340 negative, since Field is range 0 .. something.
341
342 2019-08-12 Bob Duff <duff@adacore.com>
343
344 * doc/gnat_ugn/gnat_utility_programs.rst (gnatmetric, gnatpp,
345 gnatstub): Remove documentation for Ada language version
346 switches, and note that they are no longer needed.
347
348 2019-08-12 Gary Dismukes <dismukes@adacore.com>
349
350 * sem_ch5.adb (Prepare_Param_Spec_Loop): Set the parents of the
351 copied low and high bounds in the case where the loop range is
352 given by a discrete_subtype_indication, to prevent hanging (or
353 Assert_Failure) in Insert_Actions.
354
355 2019-08-12 Ed Schonberg <schonberg@adacore.com>
356
357 * sem_ch6.adb (heck_Untagged_Equality): Verify that user-defined
358 equality has the same profile as the predefined equality before
359 applying legality rule in RM 4.5.2 (9.8).
360
361 2019-08-12 Bob Duff <duff@adacore.com>
362
363 * libgnat/a-except.ads: Update obsolete comment, still making
364 clear that this is a variant. Add explicit default for Id
365 component of Exception_Occurrence, because that value is used.
366 Define Null_Occurrence less redundantly.
367 * libgnat/a-einuoc.adb: Minor simplification of code.
368
369 2019-08-12 Justin Squirek <squirek@adacore.com>
370
371 * libgnat/a-dhfina.adb, libgnat/a-dhfina.ads (Is_Simple_Name,
372 Is_Root_Directory, Is_Parent_Directory,
373 Is_Current_Directory_Name, Is_Relative_Name, Initial_Directory,
374 Relative_Name, Compose): Add implementation and documentation.
375 * libgnat/a-direct.adb (Containing_Directory): Modify routine to
376 use routines from Ada.Directories.Hierarchical_File_Names and
377 remove incorrect special case for parent directories.
378 (Fetch_Next_Entry): Add check for current directory and parent
379 directory and ignore them under certain circumstances.
380 (Simple_Nmae): Add check for null result from
381 Simple_Name_Internal and raise Name_Error.
382 (Simple_Name_Internal): Add explicit check for root directories,
383 sanitize trailing directory separators, and modify behavior so
384 that current and parent directories are considered valid
385 results.
386 * Makefile.rtl: Add entry to GNATRTL_NONTASKING_OBJS.
387
388 2019-08-12 Eric Botcazou <ebotcazou@adacore.com>
389
390 * freeze.adb (Freeze_Entity): Give the same error for an
391 Object_Size clause on a variable-sized type as for a Size
392 clause.
393
394 2019-08-12 Gary Dismukes <dismukes@adacore.com>
395
396 * sem_prag.adb (Analyze_Pragma, Pragma_Suppress_Initialization):
397 For private types, set the Suppress_Initialization flag on the
398 Full_View of the entity rather than the entity's base type.
399
400 2019-08-12 Yannick Moy <moy@adacore.com>
401
402 * aspects.adb, aspects.ads (Aspect_No_Caching): New aspect.
403 * contracts.adb, contracts.ads (Add_Contract_Item): Add handling
404 of No_Caching.
405 (Analyze_Object_Contract): Add handling of No_Caching.
406 * einfo.adb, einfo.ads
407 (Get_Pragma): Add handling of No_Caching.
408 * doc/gnat_rm/implementation_defined_aspects.rst,
409 doc/gnat_rm/implementation_defined_pragmas.rst: Document new
410 aspect/pragma.
411 * gnat_rm.texi: Regenerate.
412 * par-prag.adb (Prag): New pragma Pragma_No_Caching.
413 * sem_ch13.adb (Analyze_Aspect_Specifications,
414 Check_Aspect_At_Freeze_Point): Add handling of No_Caching.
415 * sem_prag.adb (Analyze_Pragma): Deal with pragma No_Caching.
416 * sem_prag.ads (Analyze_External_Property_In_Decl_Part): Now
417 applies to No_Caching.
418 * sem_util.adb, sem_util.ads (Is_Effectively_Volatile): Add
419 handling of No_Caching.
420 (No_Caching_Enabled): New query function.
421 * snames.ads-tmpl: New names for pragma.
422
423 2019-08-12 Yannick Moy <moy@adacore.com>
424
425 * sem_util.adb, sem_util.ads (Traverse_More_Func,
426 Traverse_More_Proc): Add formal parameter for Itypes traversal.
427
428 2019-08-12 Yannick Moy <moy@adacore.com>
429
430 * exp_attr.adb, exp_attr.ads (Expand_Size_Attribute): New
431 procedure to share part of the attribute expansion with
432 GNATprove mode.
433 (Expand_N_Attribute_Reference): Extract part of the
434 Size/Object_Size expansion in the new procedure
435 Expand_Size_Attribute.
436 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Expand
437 Size/Object_Size attributes using the new procedure
438 Expand_Size_Attribute.
439
440 2019-08-12 Yannick Moy <moy@adacore.com>
441
442 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Only
443 expand Enum_Rep attribute when its parameter is a literal.
444
445 2019-08-12 Justin Squirek <squirek@adacore.com>
446
447 * sem_eval.adb (Check_Non_Static_Context): Add a condition to
448 determine if a range violation constitues a warning or an error.
449 (Out_Of_Range): Add a condition to determine if a range
450 violation constitues a warning or an error.
451
452 2019-08-12 Eric Botcazou <ebotcazou@adacore.com>
453
454 * exp_ch4.adb (Real_Range_Check): Do not rewrite the conversion
455 node but its expression instead, after having fetched its
456 current value. Clear the Do_Range_Check flag on entry. Return
457 early for a rewritten float-to-float conversion. Remove
458 redundant local variable. Suppress all checks when inserting
459 the temporary and do not reanalyze the node.
460
461 2019-08-12 Eric Botcazou <ebotcazou@adacore.com>
462
463 * sprint.ads: Minor comment tweak.
464
465 2019-08-12 Eric Botcazou <ebotcazou@adacore.com>
466
467 * checks.adb (Insert_Valid_Check): Do not retrieve the
468 Do_Range_Check flag from the Original_Node but from the
469 Validated_Object. Remove useless bypass for floating-point
470 types.
471
472 2019-08-12 Yannick Moy <moy@adacore.com>
473
474 * sem_util.adb, sem_util.ads (Traverse_More_Func,
475 Traverse_More_Proc): New traversal subprograms.
476
477 2019-08-12 Jerome Lambourg <lambourg@adacore.com>
478
479 * libgnarl/s-taprop__vxworks.adb (Abort_Handler): Only call
480 s-tpopsp.Self when actually needed.
481
482 2019-08-12 Eric Botcazou <ebotcazou@adacore.com>
483
484 * exp_ch4.adb (Discrete_Range_Check): Return if checks are
485 suppressed.
486
487 2019-08-12 Eric Botcazou <ebotcazou@adacore.com>
488
489 * sem_res.adb: Add with & use clause for Sem_Mech and
490 alphabetize.
491 (Resolve_Actuals): Do not apply a scalar range check for the
492 source of a conversion whose result is passed by reference to a
493 valued procedure.
494
495 2019-08-12 Eric Botcazou <ebotcazou@adacore.com>
496
497 * checks.adb (Insert_Valid_Check): Reset the Do_Range_Check flag
498 on the validated object.
499 * exp_ch6.adb (Add_Call_By_Copy_Code): Reset the Do_Range_Check
500 flag on the actual here, as well as on the Expression if the
501 actual is a N_Type_Conversion node.
502 (Add_Validation_Call_By_Copy_Code): Generate the incoming range
503 check if needed and reset the Do_Range_Check flag on the
504 Expression if the actual is a N_Type_Conversion node.
505 (Expand_Actuals): Do not reset the Do_Range_Check flag here.
506 Generate the incoming range check for In parameters here instead
507 of...
508 (Expand_Call_Helper): ...here. Remove redudant condition.
509 * sem_res.adb (Resolve_Actuals): Use local variable A_Typ and
510 remove obsolete comments.
511 (Resolve_Type_Conversion): Do not force the Do_Range_Check flag
512 on the operand if range checks are suppressed.
513
514 2019-08-12 Eric Botcazou <ebotcazou@adacore.com>
515
516 * checks.adb (Activate_Range_Check): Remove redundant argument.
517 (Generate_Range_Check): Likewise.
518 (Apply_Float_Conversion_Check): Reset the Do_Range_Check flag on
519 entry and remove redundant condition.
520
521 2019-08-02 Alexandre Oliva <oliva@adacore.com>
522
523 * libgnat/a-exexpr.adb (Begin_Handler_v1, End_Handler_v1): New.
524 (Claimed_Cleanup): New.
525 (Begin_Handler, End_Handler): Document.
526 * gcc-interface/trans.c (gigi): Switch to exception handler
527 ABI #1.
528 (Exception_Handler_to_gnu_gcc): Save the original cleanup
529 returned by begin handler, pass it to end handler, and use
530 EH_ELSE_EXPR to pass a propagating exception to end handler.
531 (gnat_to_gnu): Leave the exception pointer alone for reraise.
532 (add_cleanup): Handle EH_ELSE_EXPR, require it by itself.
533
534 2019-07-23 Ed Schonberg <schonberg@adacore.com>
535
536 * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations,
537 Freeze_Entity_Checks): Include Aspect_CPU with other aspects
538 whose expresssion may depend on a discriminant, and thus require
539 that components of the type be made visible.
540
541 2019-07-23 Eric Botcazou <ebotcazou@adacore.com>
542
543 * checks.adb (Convert_And_Check_Range): Add Suppress parameter
544 and pass it in the call to Insert_Actions. Rename local
545 variable.
546 (Generate_Range_Check): Minor comment fixes. Pass Range_Check
547 in the first call to Convert_And_Check_Range and All_Checks in
548 the second call.
549 * exp_ch4.adb (Expand_N_Type_Conversion): Reset the
550 Do_Overflow_Check flag in the float-to-float case too if there
551 is also a range check.
552
553 2019-07-23 Eric Botcazou <ebotcazou@adacore.com>
554
555 * checks.adb (Activate_Overflow_Check): Remove redundant
556 argument.
557 * exp_ch4.adb (Discrete_Range_Check): Reset the overflow flag.
558 (Expand_N_Type_Conversion): Do not reset it here.
559
560 2019-07-23 Eric Botcazou <ebotcazou@adacore.com>
561
562 * repinfo.adb (List_Component_Layout): Pass Decimal to UI_Write.
563 (Write_Val): Likewise.
564
565 2019-07-23 Ed Schonberg <schonberg@adacore.com>
566
567 * aspects.ads: New table Operational_Aspect, used to distinguish
568 between aspects that are view-specific, such as those related to
569 iterators, and representation aspects that apply to all views of
570 a type.
571 * aspects.adb (Find_Aspect): If the aspect being sought is
572 operational, do not ecamine the full view of a private type to
573 retrieve it.
574 * sem_ch5.adb (Analyze_Iterator_Specification): Improve error
575 message when the intended domain of iteration does not implement
576 the required iterator aspects.
577
578 2019-07-23 Yannick Moy <moy@adacore.com>
579
580 * sem_spark.ads (Is_Local_Context): New function.
581 * sem_spark.adb (Check_Declaration): Issue errors on violations
582 of SPARK RM 3.10(4)
583 (Process_Path): Do not issue error on borrow/observe during
584 elaboration, as these are caught by the new rule.
585
586 2019-07-23 Yannick Moy <moy@adacore.com>
587
588 * exp_ch7.adb (Create_Finalizer): Force finalizer not to be
589 Ghost enabled.
590 * exp_dbug.adb (Get_External_Name): Explain special case of
591 Ghost finalizer.
592
593 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
594
595 * repinfo.adb (List_Entities): Also list compiled-generated
596 types present as Etype of objects.
597
598 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
599
600 * sinfo.ads: Update the documentation about the
601 Do_Division_Check, Do_Overflow_Check and Do_Range_Check flags.
602
603 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
604
605 * exp_ch4.adb (Expand_N_Type_Conversion): Beef up comment.
606 (Fixup_Universal_Fixed_Operation): Set the base type instead of
607 the type of the enclosing type conversion on the operation.
608
609 2019-07-22 Ed Schonberg <schonberg@adacore.com>
610
611 * exp_ch4.adb (Expand_N_In): Do not suggest the use of attribute
612 'Valid as a replacement for a range check on a discrete type
613 when the bounds of the range are given by type conversions,
614 because in such a case there are distinct types involved and the
615 subbested attribute replacement would be misplaced.
616
617 2019-07-22 Yannick Moy <moy@adacore.com>
618
619 * sem_spark.adb (Get_Root_Object, Is_Path_Expression,
620 Is_Subpath_Expression): Add parameter Is_Traversal to adapt
621 these functions to the case of paths returned from a traversal
622 function.
623 (Read_Indexes): Handle the case of an if-expression or
624 case-expression.
625 (Check_Statement): Check Emit_Messages only when issuing an
626 error message. This is important as Emit_Messages may store the
627 information that an error was detected.
628
629 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
630
631 * checks.adb (Apply_Type_Conversion_Checks): Do not set
632 Do_Range_Check flag on conversions from fixed-point types
633 either.
634 * exp_attr.adb: Add use and with clause for Expander.
635 (Expand_N_Attribute_Reference) <Fixed_Value, Integer_Value>: Set
636 the Conversion_OK flag and do not generate overflow/range checks
637 manually.
638 * exp_ch4.adb (Expand_N_Qualified_Expression): Remove
639 superfluous clearing of Do_Range_Check flag.
640 (Discrete_Range_Check): New procedure to generate a range check
641 for discrete types.
642 (Real_Range_Check): Remove redundant local variable and adjust.
643 Remove useless shortcut. Clear Do_Range_Check flag on all
644 paths.
645 (Expand_N_Type_Conversion): Remove redundant test on
646 Conversion_OK. Call Discrete_Range_Check to generate range
647 checks on discrete types. Remove obsolete code for
648 float-to-integer conversions. Add code to generate range checks
649 for conversions involving fixed-point types.
650
651 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
652
653 * sprint.ads: Fix pasto in comment.
654
655 2019-07-22 Javier Miranda <miranda@adacore.com>
656
657 * sem_res.adb (Resolve_Actuals): Replace code that displaces the
658 pointer to an allocated object to reference its secondary
659 dispatch table by a type conversion (which takes care of
660 handling all cases).
661
662 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
663
664 * sprint.adb (Sprint_Node_Actual)
665 <N_Decimal_Fixed_Point_Definition>: Swap a couple of spaces.
666 (Write_Itype): Minor consistency fixes throughout. Add support
667 for printing ordinary and decimal fixed-point types and
668 subtypes.
669
670 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
671
672 * exp_attr.adb (Expand_Loop_Entry_Attribute): Beef up comment.
673
674 2019-07-22 Ed Schonberg <schonberg@adacore.com>
675
676 * libgnat/s-valboo.ads, libgnat/s-valcha.ads,
677 libgnat/s-valdec.ads, libgnat/s-valenu.ads,
678 libgnat/s-valint.ads, libgnat/s-vallld.ads,
679 libgnat/s-vallli.ads, libgnat/s-valllu.ads,
680 libgnat/s-valrea.ads, libgnat/s-valuns.ads,
681 libgnat/s-valwch.ads: Change categorization of packages that
682 implement attribute 'Value from Pure to Preelaborate, to prevent
683 undesirable optimizations when the evaluation of the attribute
684 raises Constraint_Error, but subsequent use of the result of
685 this evsaluation is removed by a subsequent optimization.
686
687 2019-07-22 Ed Schonberg <schonberg@adacore.com>
688
689 * sem_warn.adb (Check_References): Do not emit s warning on a
690 referenced entity with no explicit assignment if the type of the
691 entity has Preelaborable_Initialixation, such as
692 Exception_Occurrence.
693
694 2019-07-22 Javier Miranda <miranda@adacore.com>
695
696 * exp_ch4.adb (Size_In_Storage_Elements): Improve the expansion
697 to handle array indexes that are modular type.
698 (Expand_N_Allocator): For 32-bit targets improve the generation
699 of the runtime check associated with large arrays supporting
700 arrays initialized with a qualified expression.
701 * libgnat/s-imenne.adb (Image_Enumeration_8,
702 Image_Enumeration_16, Image_Enumeration_32): Define the index of
703 Index_Table with range Natural'First .. Names'Length since in
704 the worst case all the literals of the enumeration type would be
705 single letter literals and the Table built by the frontend would
706 have as many components as the length of the names string. As a
707 result of this enhancement, the internal tables declared using
708 Index_Table have a length closer to the real needs, thus
709 avoiding the declaration of large arrays on 32-bit CCG targets.
710
711 2019-07-22 Yannick Moy <moy@adacore.com>
712
713 * sem_ch3.adb (Constrain_Access): Issue a message about ignored
714 constraint.
715
716 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
717
718 * sem_ch8.adb (End_Use_Type): Reset the In_Use flag on the
719 class-wide type if the type is tagged.
720 (Use_One_Type): Add commentary on the handling of the class-wide
721 type.
722
723 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
724
725 * einfo.ads (Is_For_Access_Subtype): Delete.
726 (Set_Is_For_Access_Subtype): Likewise.
727 * einfo.adb (Is_For_Access_Subtype): Likewise.
728 (Set_Is_For_Access_Subtype): Likewise.
729 (Write_Entity_Flags): Do not write Is_For_Access_Subtype.
730 * exp_ch4.adb (Expand_N_Selected_Component): Do not deal with
731 it.
732 * exp_spark.adb (Expand_SPARK_N_Selected_Component): Likewise.
733 * sem_ch4.adb (Analyze_Explicit_Dereference): Likewise.
734 * sem_ch3.adb (Build_Discriminated_Subtype): Do not build a
735 special private subtype for access-to-record subtypes.
736
737 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
738
739 * sem_ch3.adb (Complete_Private_Subtype): Rework the setting of
740 the Etype of the full view for full base types that cannot
741 contain any discriminant. Remove code and comment about it in
742 the main path.
743
744 2019-07-22 Ed Schonberg <schonberg@adacore.com>
745
746 * sem_ch3.adb (Convert_Bound): Subsidiary of
747 Floating_Point_Type_Declaration, to handle properly range
748 specifications with bounds that may include static constants of
749 a given type rather than real literals.
750
751 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
752
753 * sem_aggr.adb (Rewrite_Bound): Be prepared for discriminals
754 too.
755 (Rewrite_Range;): Minor tweak.
756 (Resolve_Record_Aggregate): For a component with default
757 initialization whose expression is an array aggregate, also
758 rewrite the bounds of the component associations, if any.
759
760 2019-07-22 Gary Dismukes <dismukes@adacore.com>
761
762 * exp_ch5.adb (Expand_N_Case_Statement): In the case where a
763 case statement is rewritten as an equivalent if statement,
764 inherit the From_Condition_Expression flag from the case
765 statement.
766
767 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
768
769 * sem_ch8.adb (Check_Constrained_Object): Further extend the
770 special optimization to all limited types.
771
772 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
773
774 * exp_attr.adb (Expand_N_Attribute_Reference)
775 <Attribute_Enum_Val>: Set No_Truncation on the
776 N_Unchecked_Type_Conversion built around the argument passed to
777 the attribute.
778
779 2019-07-22 Nicolas Roche <roche@adacore.com>
780
781 * libgnat/s-valrea.adb (Scan_Real): Ignore non significative
782 digits to avoid converging to infinity in some cases.
783
784 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
785
786 * libgnat/g-encstr.adb (Encode_Wide_String): Fix oversight.
787 (Encode_Wide_Wide_String): Likewise.
788
789 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
790
791 * sem_warn.adb (Find_Var): Bail out for a function call with an
792 Out or In/Out parameter.
793
794 2019-07-22 Nicolas Roche <roche@adacore.com>
795
796 * terminals.c (__gnat_tty_waitpid): Support both blocking and
797 not blocking mode.
798 * libgnat/g-exptty.ads (Is_Process_Running): New function.
799 * libgnat/g-exptty.adb (Close): Don't try to interrupt/terminate
800 a process if it is already dead.
801
802 2019-07-22 Ed Schonberg <schonberg@adacore.com>
803
804 * freeze.adb (Freeze_Fixed_Point_Type): When freezing a
805 fixed-point subtype, check whether the parent type declarastion
806 includes an aspect specification for the 'Small type attribute,
807 and inherit the specified value.
808
809 2019-07-22 Javier Miranda <miranda@adacore.com>
810
811 * freeze.adb (Freeze_Subprogram): Check that C++ constructors
812 must have external or link name.
813
814 2019-07-22 Ed Schonberg <schonberg@adacore.com>
815
816 * sem_res.adb (Resolve_Selected_Component): If the prefix has a
817 deferred reference, generate the correct reference now, to
818 indicate that the previous assignment is used. This prevents
819 spurious warnings on useless assignments when compiling with all
820 warnings enabled. when there is a subsequent call in the same
821 stqtement list, in which the prefix of the selected component is
822 the actual for an out parameter.
823
824 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
825
826 * exp_attr.adb (Expand_Loop_Entry_Attribute): Copy the condition
827 of a while loop instead of simply relocating it.
828
829 2019-07-18 Arnaud Charlet <charlet@adacore.com>
830
831 * Makefile.rtl, expect.c, env.c, aux-io.c, mkdir.c, initialize.c,
832 cstreams.c, raise.c, tracebak.c, adadecode.c, init.c, raise-gcc.c,
833 argv.c, adaint.c, adaint.h, ctrl_c.c, sysdep.c, rtinit.c, cio.c,
834 seh_init.c, exit.c, targext.c: Introduce a "STANDALONE" mode where C
835 runtime files do not have any dependency on GCC include files.
836 Remove unnecessary includes.
837 Remove remaining references to VMS in runtime C file.
838 * runtime.h: new File.
839
840 2019-07-13 Andreas Schwab <schwab@linux-m68k.org>
841
842 * Makefile.rtl: Use g-sercom__linux.adb for all linuxes.
843
844 2019-07-11 Piotr Trojanek <trojanek@adacore.com>
845
846 * lib-writ.adb (Ensure_System_Dependency,
847 Up_To_Date_ALI_File_Exists, Write_ALI): Replace low-level access
848 to table with a high-level query.
849
850 2019-07-11 Piotr Trojanek <trojanek@adacore.com>
851
852 * checks.adb: Fix typo in comment.
853 * sem.adb (Semantics): Avoid repeated calls to
854 In_Extended_Main_Source_Unit by reusing an already-cached
855 result.
856 * sem_util.adb (First_Global): Fix style.
857
858 2019-07-11 Yannick Moy <moy@adacore.com>
859
860 * sem_res.adb (Resolve_Call): Do not perform dimensionality
861 checking on inlined bodies.
862
863 2019-07-11 Yannick Moy <moy@adacore.com>
864
865 * debug.adb: Flip meaning of debug switch -gnatdF.
866
867 2019-07-11 Yannick Moy <moy@adacore.com>
868
869 * sem_eval.adb (Is_Same_Value): Add special case for rewritten
870 Loop_Entry attribute.
871
872 2019-07-11 Claire Dross <dross@adacore.com>
873
874 * gnat1drv.adb: SPARK checking rules for pointer aliasing are
875 moved to GNATprove backend.
876 * sem_spark.ads, sem_spark.adb (Sem_SPARK): Is now a generic
877 unit. Takes as parameters:
878 - Retysp which is used to query the most underlying type
879 visible in SPARK. We do not introduce aliasing checks for
880 types which are not visibly deep.
881 - Component_Is_Visible_In_SPARK is used to avoid doing pointer
882 aliasing checks on components which are not visible in SPARK.
883 - Emit_Messages returns True in the second phase of SPARK
884 analysis. Error messages for failed aliasing checks are only
885 output in this case.
886 Additionally, errors on constructs not supported in SPARK are
887 removed as duplicates of marking errors. Components are stored
888 in the permission map using their original component to avoid
889 inconsistencies between components of different views of the
890 same type.
891 (Check_Expression): Handle delta constraints.
892 (Is_Deep): Exported so that we can check for SPARK restrictions
893 on deep types inside SPARK semantic checkings.
894 (Is_Traversal_Function): Exported so that we can check for SPARK
895 restrictions on traversal functions inside SPARK semantic
896 checkings.
897 (Check_Call_Statement, Read_Indexes): Check wether we are
898 dealing with a subprogram pointer type before querying called
899 entity.
900 (Is_Subpath_Expression): Image attribute can appear inside a
901 path.
902 (Check_Loop_Statement): Correct order of statements in the loop.
903 (Check_Node): Ignore raise nodes.
904 (Check_Statement): Use Last_Non_Pragma to get the object
905 declaration in an extended return statement.
906
907 2019-07-11 Patrick Bernardi <bernardi@adacore.com>
908
909 * bindgen.adb (Gen_Main): Do not generate a reference to
910 Ada_Main_Program_Name when the Minimal_Binder flag is set.
911 (Gen_Output_File_Ada): Do not output GNAT_Version and
912 Ada_Main_Program_Name info if Minimal_Binder flag is set.
913 * bindusg.adb: Add documentation for new -minimal switch.
914 * gnatbind.adb (Scan_Bind_Arg): Scan -minimal switch.
915 * opt.ads: Add new global flag Minimal_Binder to indicate if the
916 binder should not produce global variables.
917 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
918 Update documentation with new binder -minimal switch.
919 * gnat_ugn.texi: Regenerate.
920
921 2019-07-11 Eric Botcazou <ebotcazou@adacore.com>
922
923 * Makefile.rtl: Add warning note about compilation flags and
924 capitalize.
925
926 2019-07-11 Ed Schonberg <schonberg@adacore.com>
927
928 * exp_ch9.adb (Expand_N_Protected_Type_Declaaration): New
929 subsidiary routine Replace_Access_Definition, to handle properly
930 a protected type PT one of whose private components is of type
931 access PT.
932
933 2019-07-11 Dmitriy Anisimkov <anisimko@adacore.com>
934
935 * libgnat/g-socket.ads (Level_Type): Add enumerators for
936 IP_Protocol_For_ICMP, IP_Protocol_For_IGMP,
937 IP_Protocol_For_RAW_Level.
938 * libgnat/g-socket.adb (Levels): Handle them.
939 * s-oscons-tmplt.c: Import socket protocols defined in
940 netinet/in.h.
941
942 2019-07-11 Claire Dross <dross@adacore.com>
943
944 * libgnat/a-cfhama.adb, libgnat/a-cfhase.adb (Free): Do not
945 reset the Has_Element flag if no element is freed.
946
947 2019-07-11 Arnaud Charlet <charlet@adacore.com>
948
949 * errno.c: Remove obsolete support for MaRTE OS.
950
951 2019-07-11 Ed Schonberg <schonberg@adacore.com>
952
953 * exp_ch4.adb (Expand_N_Type_Conversion): If a predicate check
954 is generated, analyze it with range check suppressed, because
955 that check has been previously applied.
956 * exp_ch5.adb (Expand_N_Assignment_Statement): If the RHS is a
957 type conversion to the type of the LHS, do not apply a predicate
958 check to the RHS because it will have been generated already
959 during its expansion.
960 * exp_ch6.adb (Can_Fold_Predicate_Call): Extend processing to
961 handle a predicate check on a constant entity whose value is
962 static.
963
964 2019-07-11 Hristian Kirtchev <kirtchev@adacore.com>
965
966 * bindo.adb: Remove the documentation of switch -d_N because it
967 is no longer in use.
968 * bindo-graphs.ads, bindo-graphs.adb (Is_Spec_Before_Body_Edge):
969 New routine.
970 * bindo-writers.adb (Write_Dependency_Edge): Add the missing
971 case of a spec-before-body edge.
972
973 2019-07-11 Dmitriy Anisimkov <anisimko@adacore.com>
974
975 * libgnat/g-socket.ads (Mode_Type): Add a Socket_Raw enumerator.
976 * libgnat/g-socket.adb (Modes): Handle Socket_Raw.
977
978 2019-07-11 Justin Squirek <squirek@adacore.com>
979
980 * exp_ch9.adb (Build_Private_Protected_Declaration): Add
981 exception for the moving of pragmas to internally generated
982 specs for pragma Unreferenced.
983
984 2019-07-11 Bob Duff <duff@adacore.com>
985
986 * doc/gnat_ugn/gnat_utility_programs.rst: Fix inconsistent
987 documentation for gnatmetric.
988 * gnat_ugn.texi: Regenerate.
989
990 2019-07-11 Bob Duff <duff@adacore.com>
991
992 * doc/gnat_ugn/gnat_utility_programs.rst: Document gnatpp's
993 --spaces-only switch.
994
995 2019-07-11 Hristian Kirtchev <kirtchev@adacore.com>
996
997 * sem_util.adb (Null_Status): Assume that an erroneous construct
998 has an undefined null status.
999
1000 2019-07-11 Hristian Kirtchev <kirtchev@adacore.com>
1001
1002 * checks.adb, exp_ch6.adb, gnat1drv.adb, sem_aux.adb,
1003 sem_ch2.adb, sem_ch8.adb, sem_res.adb: Minor reformatting.
1004
1005 2019-07-11 Hristian Kirtchev <kirtchev@adacore.com>
1006
1007 * sem_ch8.adb (Analyze_Object_Renaming): Obtain the object being
1008 renamed using routine Get_Object_Name which takes care of
1009 various name forms.
1010 (Get_Object_Name): New routine.
1011
1012 2019-07-11 Ed Schonberg <schonberg@adacore.com>
1013
1014 * exp_ch6.adb (Can_Fold_Predicate_Call): New function,
1015 subsidiary of Expand_Call_Helper, to compute statically a
1016 predicate check when the argument is a static integer.
1017
1018 2019-07-11 Hristian Kirtchev <kirtchev@adacore.com>
1019
1020 * sem_res.adb (Resolve_Op_Not): Do not rewrite an equality
1021 operator into a function call when the operator is intrinsic.
1022
1023 2019-07-11 Thomas Quinot <quinot@adacore.com>
1024
1025 * sem_prag.adb (Analyze_Pragma, case pragma Check): Do not call
1026 Set_SCO_Pragma_Enabled for the dynamic predicate case.
1027
1028 2019-07-11 Hristian Kirtchev <kirtchev@adacore.com>
1029
1030 * exp_util.ads, exp_util.adb (Needs_Finalization): Move to
1031 Sem_Util.
1032 * sem_ch9.adb (Analyze_Protected_Definition): Code cleanup. Mark
1033 the protected type as having controlled components when it
1034 contains at least one such component.
1035 * sem_util.ads, sem_util.adb (Needs_Finalization): New
1036 function.
1037
1038 2019-07-11 Eric Botcazou <ebotcazou@adacore.com>
1039
1040 * alloc.ads (Rep_JSON_Table_Initial): New constant.
1041 (Rep_JSON_Table_Increment): Likewise.
1042 * debug.adb: Document -gnatd_j switch.
1043 * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add
1044 repinfo-input.o.
1045 * gnat1drv.adb: Add with clause for Repinfo.Input.
1046 Add with and use clauses for Sinput.
1047 (Read_JSON_Files_For_Repinfo): New procedure.
1048 (Gnat1drv1): Deal with -gnatd_j switch.
1049 * repinfo-input.ad[sb]: New unit.
1050 * snames.ads-tmpl (Name_Discriminant): New constant.
1051 (Name_Operands): Likewise.
1052
1053 2019-07-11 Justin Squirek <squirek@adacore.com>
1054
1055 * checks.adb (Apply_Accessibility_Check): Add check for constant
1056 folded conditions on accessibility checks.
1057
1058 2019-07-11 Arnaud Charlet <charlet@adacore.com>
1059
1060 * libgnarl/g-thread.ads, libgnarl/g-thread.adb (Get_Thread):
1061 Update comments. Add new version taking a Task_Id.
1062
1063 2019-07-11 Hristian Kirtchev <kirtchev@adacore.com>
1064
1065 * bindo.adb: Update the section of switches and debugging
1066 elaboration issues.
1067 * bindo.ads: Add type Elaboration_Phase.
1068 * bindo-augmentors.adb: Add use clause for
1069 Bindo.Writers.Phase_Writers.
1070 (Augment_Library_Graph): Signal the start and end of the
1071 aubmentation phase.
1072 * bindo-builders.adb: Add with and use clause for Bindo.Writers.
1073 Add use clause for Bindo.Writers.Phase_Writers.
1074 (Build_Invocation_Graph): Signal the start and end of the
1075 invocation graph construction phase.
1076 (Build_Library_Graph): Signal the start and end of the library
1077 graph construction phase.
1078 * bindo-diagnostics.adb: Add use clause for
1079 Bindo.Writers.Phase_Writers.
1080 (Diagnose_Cycle): Signal the start and end of the cycle
1081 diagnostic phase.
1082 * bindo-elaborators.adb: Add use clause for
1083 Bindo.Writers.Phase_Writers.
1084 (Elaborate_Units): Signal the start and end of the unit
1085 elaboration phase.
1086 * bindo-graphs.adb: Add use clause for
1087 Bindo.Writers.Phase_Writers.
1088 (Find_Components): Signal the start and end of the component
1089 discovery phase.
1090 (Find_Cycles): Signal the start and end of the cycle discovery
1091 phase.
1092 * bindo-units.adb: Add with and use clause for Bindo.Writers.
1093 Add use clause for Bindo.Writers.Phase_Writers.
1094 (Collect_Elaborable_Units): Signal the start and end of the unit
1095 collection phase.
1096 * bindo-validators.adb: Add with and use clause for
1097 Bindo.Writers. Add use clause for Bindo.Writers.Phase_Writers.
1098 (Validate_Cycles, Validate_Elaboration_Order,
1099 Validate_Invocation_Graph, Validate_Library_Graph): Signal the
1100 start and end of the libray graph validation phase.
1101 * bindo-writers.ads, bindo-writers.adb: Add new nested package
1102 Phase_Writers.
1103 * debug.adb: Update the documentation of switch d_S.
1104
1105 2019-07-11 Yannick Moy <moy@adacore.com>
1106
1107 * sem_res.adb (Check_Argument_Order): Special case calls to
1108 operators.
1109
1110 2019-07-10 Dmitriy Anisimkov <anisimko@adacore.com>
1111
1112 * libgnat/s-ststop.adb: Remove System.Strings.Stream_Ops
1113 dependence on System.Streams.Stream_IO.
1114
1115 2019-07-10 Ed Schonberg <schonberg@adacore.com>
1116
1117 * sem_ch2.adb (Analyze_Integer_Literal): Preserve the type of
1118 the literal if prior analysis determined that its type is a
1119 modular integer type.
1120
1121 2019-07-10 Doug Rupp <rupp@adacore.com>
1122
1123 * init.c: Do not attempt to re-arm guard page on x86_64-vx7(r2).
1124
1125 2019-07-10 Ed Schonberg <schonberg@adacore.com>
1126
1127 * sem_ch8.adb (Check_Constrained_Object): A record that is
1128 limited because of the presence of a limited component is
1129 constrained, and no subtype indiciation needs to be created for
1130 it, just as is the case for declared limited records.
1131
1132 2019-07-10 Yannick Moy <moy@adacore.com>
1133
1134 * sem_aux.adb, sem_aux.ads (Is_Protected_Operation): New
1135 function to determine if a subprogram is protected.
1136 * sem_spark.adb (Setup_Protected_Components): New procedure to
1137 add protected components to the environment.
1138 (Check_Callable_Body): Call the new Setup_Protected_Components.
1139 (Check_Package_Spec): Merge local environment with enclosing one
1140 when done.
1141
1142 2019-07-10 Claire Dross <dross@adacore.com>
1143
1144 * sem_spark.adb (Check_Expression): Allow digits constraints as
1145 input.
1146 (Illegal_Global_Usage): Pass in the entity.
1147 (Is_Subpath_Expression): New function to allow different nodes
1148 as inner parts of a path expression.
1149 (Read_Indexes): Allow concatenation and aggregates with box
1150 expressions. Allow attributes Update and Loop_Entry.
1151 (Check_Expression): Allow richer membership test.
1152 (Check_Node): Ignore bodies of generics.
1153 (Get_Root_Object): Allow concatenation and attributes.
1154
1155 2019-07-10 Hristian Kirtchev <kirtchev@adacore.com>
1156
1157 * sem_ch6.adb (Check_Discriminant_Conformance): Use Find_Type to
1158 discover the type of a full view discriminant.
1159
1160 2019-07-10 Arnaud Charlet <charlet@adacore.com>
1161
1162 * doc/gnat_ugn/gnat_and_program_execution.rst: Improve gnatmem's
1163 doc for the depth switch.
1164
1165 2019-07-10 Bob Duff <duff@adacore.com>
1166
1167 * doc/gnat_ugn/gnat_utility_programs.rst: Document gnatpp's
1168 --source-line-breaks switch.
1169
1170 2019-07-10 Justin Squirek <squirek@adacore.com>
1171
1172 * doc/gnat_rm/implementation_defined_attributes.rst: Add mention
1173 of 'Image attribute with 'Img's entry to mention additional
1174 added 2012 usage of Obj'Image.
1175 * doc/gnat_rm/implementation_defined_pragmas.rst: Correct
1176 mispelling of Async_Writers.
1177 * gnat_rm.texi: Regenerate.
1178 * sem_prag.adb (Analyze_Pragma): Correct mispelling of
1179 Async_Writers.
1180 * sem_util.adb (State_Has_Enabled_Property): Correct mispelling
1181 of Async_Writers.
1182
1183 2019-07-10 Simon Buist <buist@adacore.com>
1184
1185 * sem_util.ads (Child_Prefix): New constant.
1186 * sem_util.adb (Unique_Name): Add a special prefix to child
1187 units that have a nested subprogram or package.
1188
1189 2019-07-10 Arnaud Charlet <charlet@adacore.com>
1190
1191 * sfn_scan.adb (Scan_SFN_Pragmas): Add pragma Assert.
1192
1193 2019-07-10 Hristian Kirtchev <kirtchev@adacore.com>
1194
1195 * sem_ch3.adb (Check_Nonoverridable_Aspects): Correct the
1196 spelling in certain error messages.
1197 (Check_Pragma_Implemented): Correct the spelling in certain
1198 error messages.
1199
1200 2019-07-10 Eric Botcazou <ebotcazou@adacore.com>
1201
1202 * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add g-brapre.
1203 * libgnat/g-brapre.ads: New package specification.
1204 * doc/gnat_rm/the_gnat_library.rst: Document it.
1205 * gnat_rm.texi: Regenerate.
1206
1207 2019-07-10 Yannick Moy <moy@adacore.com>
1208
1209 * osint-c.adb (Set_File_Name): Always add extension for multiple
1210 units per file mode.
1211
1212 2019-07-10 Corentin Gay <gay@adacore.com>
1213
1214 * sysdep.c: Put include directive for 'vxWorks.h' before any
1215 other VxWorks headers.
1216
1217 2019-07-10 Eric Botcazou <ebotcazou@adacore.com>
1218
1219 * doc/gnat_rm/implementation_defined_attributes.rst
1220 (Scalar_Storage_Order): Minor tweaks. Add note about debuggers.
1221 * gnat_rm.texi: Regenerate.
1222
1223 2019-07-10 Hristian Kirtchev <kirtchev@adacore.com>
1224
1225 * exp_ch4.adb (Expand_N_Case_Expression): Mark the generated
1226 assignments to the temporary result as being OK because the
1227 expansion of case expressions is correct by construction.
1228 (Is_Copy_Type): Update the predicate to match the comment
1229 within.
1230
1231 2019-07-10 Hristian Kirtchev <kirtchev@adacore.com>
1232
1233 * bindo-graphs.adb, bindo.adb, debug.adb, exp_ch6.adb,
1234 sem_ch10.adb, sem_ch13.adb, sem_ch3.adb, sem_ch4.adb,
1235 sem_ch6.adb, sem_ch7.adb, sem_res.adb, sem_spark.adb,
1236 sem_util.adb, warnsw.ads: Minor reformatting.
1237
1238 2019-07-10 Joffrey Huguet <huguet@adacore.com>
1239
1240 * libgnat/a-strbou.ads, libgnat/a-strfix.ads,
1241 libgnat/a-strunb.ads, libgnat/a-strunb__shared.ads: Add global
1242 contracts, contract cases, preconditions and postconditions to
1243 procedures and functions.
1244
1245 2019-07-10 Doug Rupp <rupp@adacore.com>
1246
1247 * sysdep.c (__gnat_is_file_not_found_error): Reformulate to also
1248 work for vxworks7r2 SR0610.
1249
1250 2019-07-10 Doug Rupp <rupp@adacore.com>
1251
1252 * env.c (__gnat_environ): Reformulate to also work for
1253 vxworks7r2 SR0610.
1254
1255 2019-07-10 Patrick Bernardi <bernardi@adacore.com>
1256
1257 * Makefile.rtl: Handle vxworks7r2 ppc target
1258
1259 2019-07-10 Hristian Kirtchev <kirtchev@adacore.com>
1260
1261 * bindo.adb: Update the section on switches.
1262 * bindo-graphs.adb
1263 (Add_Cycle, Add_Vertex_And_Complement): Remove.
1264 (Create): The graph no longer needs a set of recorded cycles
1265 because the cycles are not rediscovered in permuted forms.
1266 (Cycle_End_Vertices): New routine.
1267 (Destroy): The graph no longer needs a set of recorded cycles
1268 because the cycles are not rediscovered in permuted forms.
1269 (Destroy_Library_Graph_Vertex): Move to the library level.
1270 (Find_All_Cycles_Through_Vertex, Find_All_Cycles_With_Edge):
1271 Remove.
1272 (Find_Cycles_From_Successor, Find_Cycles_From_Vertex,
1273 Find_Cycles_In_Component, Has_Elaborate_All_Edge): New routines.
1274 (Insert_And_Sort): Remove.
1275 (Is_Elaborate_Body_Edge): Use predicate
1276 Is_Vertex_With_Elaborate_Body.
1277 (Is_Recorded_Cycle): Remove.
1278 (Is_Vertex_With_Elaborate_Body): New routine.
1279 (Normalize_And_Add_Cycle): Remove.
1280 (Precedence): Rename to xxx_Precedence, where xxx relates to the
1281 input. These versions better reflect the desired input
1282 precedence.
1283 (Record_Cycle): New routine.
1284 (Remove_Vertex_And_Complement, Set_Is_Recorded_Cycle): Remove.
1285 (Trace_xxx): Update all versions to use debug switch -d_t.
1286 (Trace_Component): New routine.
1287 (Trace_Eol): Removed.
1288 (Trace_Vertex): Do not output the component as this information
1289 is already available when the component is traced.
1290 (Unvisit, Visit): New routine.
1291 * bindo-graphs.ads: Add new instance LGV_Lists. Remove instance
1292 RC_Sets. Update the structure of type Library_Graph_Attributes
1293 to remove the set of recorded cycles.
1294 (Destroy_Library_Graph_Vertex): Move to the library level.
1295 * bindo-writers.adb (Write_Component_Vertices): Output
1296 information about the number of vertices.
1297 * debug.adb: Document the use of binder switch -d_t. Update the
1298 use of binder switch -d_T.
1299
1300 2019-07-10 Yannick Moy <moy@adacore.com>
1301
1302 * sem_spark.adb (Get_Root_Object): Replace precondition by error
1303 message.
1304 (Read_Indexes): Replace precondition by error message.
1305 (Check_Callable_Body): Check only traversal function returns an
1306 anonymous access type.
1307 (Check_Expression): Issue error on unexpected expression as
1308 path.
1309 * sem_util.adb (First_Global): Fix access to global on
1310 entry/task.
1311
1312 2019-07-10 Javier Miranda <miranda@adacore.com>
1313
1314 * exp_ch6.adb (Is_Class_Wide_Interface_Type): New subprogram.
1315 (Expand_Call_Helper): Handle non-limited views when we check if
1316 any formal is a class-wide interface type.
1317 * exp_disp.adb (Expand_Interface_Actuals): Handle non-limited
1318 views when we look for interface type formals to force "this"
1319 displacement.
1320
1321 2019-07-10 Ed Schonberg <schonberg@adacore.com>
1322
1323 * sem_res.adb (Resolve_Equality_Op): Do not replace the resolved
1324 operator by its alias if expander is not active, because the
1325 operand type may not be frozen yet and its inherited operations
1326 have not yet been created.
1327
1328 2019-07-10 Hristian Kirtchev <kirtchev@adacore.com>
1329
1330 * bindo-elaborators.adb (Elaborate_Units): Set attribute
1331 Elab_Position of all elaborated units.
1332 (Set_Unit_Elaboration_Positions): New routine.
1333
1334 2019-07-10 Gary Dismukes <dismukes@adacore.com>
1335
1336 * exp_util.adb: Reformatting and a typo fix.
1337
1338 2019-07-10 Yannick Moy <moy@adacore.com>
1339
1340 * exp_util.adb (Remove_Side_Effects): Prefer renamings for
1341 objects of possible owning type in GNATprove mode.
1342
1343 2019-07-09 Ed Schonberg <schonberg@adacore.com>
1344
1345 * sem_ch3.adb (Analyze_Object_Declaration): If the object type
1346 is a composite type that has a dynamic predicate and, the
1347 expression in the declaration is an aggregate, the generated
1348 predicate check must appear after the expanded code for the
1349 aggregate, which will appear after the rewritten object
1350 declarastion.
1351
1352 2019-07-09 Justin Squirek <squirek@adacore.com>
1353
1354 * sem_eval.adb (Expr_Value_E): Add conditional to correctly
1355 handle constant enumerated character types.
1356
1357 2019-07-09 Eric Botcazou <ebotcazou@adacore.com>
1358
1359 * libgnarl/s-osinte__mingw.ads (CRITICAL_SECTION): Use proper
1360 type for SpinCount component.
1361
1362 2019-07-09 Justin Squirek <squirek@adacore.com>
1363
1364 * exp_ch4.adb (Expand_N_Allocator): Add conditional to detect
1365 the presence of anoymous access type allocators and issue a
1366 warning if the appropriate warning flag is enabled.
1367 * warnsw.ads: Add new warning flag for anonymous allocators
1368 * warnsw.adb (All_Warnings, Restore_Warnings, Save_Warnings,
1369 Set_Underscore_Warning_Switch): Register new flags.
1370 (WA_Warnings): Register new flag as an "all warnings" switch
1371 * usage.adb,
1372 doc/gnat_ugn/building_executable_programs_with_gnat.rst:
1373 Document new warning switches -gnatw_a and -gnatw_A.
1374 * gnat_ugn.texi: Regenerate.
1375
1376 2019-07-09 Ed Schonberg <schonberg@adacore.com>
1377
1378 * sem_ch4.adb (Diagnose_Call): Improve error recovery when a
1379 local subprogram name hides a possible candidate name declared
1380 in a child package in the context of the current unit.
1381 * sem_ch6.adb (Process_Formals): Protect against malformed
1382 formal types when the parameter type does not denote an entity.
1383
1384 2019-07-09 Hristian Kirtchev <kirtchev@adacore.com>
1385
1386 * bindo-augmentors.adb (Visit_Elaboration_Root): Do not start a
1387 DFS from an elaboration root whose corresponding unit lacks
1388 elaboration code. This behavior mimics that of the old
1389 elaboration order mechanism.
1390 * bindo-graphs.adb (Find_All_Cycles_Through_Vertex): Move the
1391 vertex tracing within the functional branches of the routine.
1392 This prevents spurious trace output.
1393 (Has_No_Elaboration_Code): New routine.
1394 (Trace_Cycle, Trace_Edge): Update the various Ids to use the
1395 "standard" trace format.
1396 * bindo-graphs.ads (Has_No_Elaboration_Code): New routine.
1397 * bindo-units.ads, bindo-units.adb (Has_No_Elaboration_Code):
1398 New routine.
1399
1400 2019-07-09 Piotr Trojanek <trojanek@adacore.com>
1401
1402 * ali.ads, bindo-graphs.adb, bindo-validators.adb, clean.adb,
1403 doc/gnat_ugn/elaboration_order_handling_in_gnat.rst, einfo.ads,
1404 exp_aggr.adb, exp_ch13.adb, exp_ch4.adb, exp_ch5.adb,
1405 exp_ch6.adb, exp_ch7.adb, exp_ch9.adb, exp_pakd.adb,
1406 fname-uf.ads, gnatlink.adb, inline.adb, lib.ads, make.adb,
1407 namet.ads, opt.ads, par-ch4.adb, par-ch6.adb, par-labl.adb,
1408 prep.adb, sem_aggr.adb, sem_ch13.adb, sem_ch4.adb, sem_ch5.adb,
1409 sem_ch6.adb, sem_ch6.ads, sem_ch7.adb, sem_ch8.adb, sem_dim.adb,
1410 sem_disp.adb, sem_prag.adb, sem_res.adb, sem_warn.adb,
1411 sinfo.ads: Replace ". " with ". ". Minor reformatting and typo
1412 corrections.
1413 * gnat_ugn.texi: Generate.
1414
1415 2019-07-09 Hristian Kirtchev <kirtchev@adacore.com>
1416
1417 * bindo.ads: Move type Precedence_Kind from the private to the
1418 visible part of the unit.
1419 * bindo-augmentors.adb: Remove the use of global data as it is
1420 bad practice.
1421 (Augment_Library_Graph): Update the parameter profile.
1422 (Is_Visited, Set_Is_Visited): Remove.
1423 (Visit_Elaboration_Root, Visit_Elaboration_Roots): Update the
1424 parameter profile and comment on usage.
1425 (Visit_Vertex): Likewise. Also keep track of which invocation
1426 edge activates a task.
1427 * bindo-augmentors.ads (Augment_Library_Graph): Update the
1428 parameter profile and comment on usage.
1429 * bindo-builders.adb (Create_Forced_Edge,
1430 Create_Spec_And_Body_Edge, Create_With_Edge): Update the call to
1431 Add_Edge.
1432 * bindo-diagnostics.adb: Add with end use clauses for Restrict
1433 and Rident.
1434 (Output_Dynamic_Model_Suggestions): Remove.
1435 (Output_Invocation_Related_Suggestions): New routine.
1436 (Output_Suggestions): Output all invocation-related suggestions
1437 together.
1438 * bindo-elaborators.adb: Remove types Comparator_Ptr and
1439 Predicate_Ptr.
1440 (Find_Best_Vertex): Update the parameter profile.
1441 * bindo-graphs.adb (Activates_Task): New routine.
1442 (Add_Body_Before_Spec_Edge): Update the call to
1443 Add_Edge_With_Return.
1444 (Add_Edge): Update the parameter profile and the call to
1445 Add_Edge_With_Return.
1446 (Add_Edge_With_Return): Update the parameter profile and comment
1447 on usage.
1448 (At_Least_One_Edge_Satisfies): New routine.
1449 (Contains_Elaborate_All_Edge): Reimplement.
1450 (Contains_Static_Successor_Edge, Contains_Task_Activation): New
1451 routine.
1452 (Contains_Weak_Static_Successor): Remove.
1453 (Is_Static_Successor_Edge): New routine.
1454 * bindo-graphs.ads: Add types LGE_Predicate_Ptr,
1455 LGV_Comparator_Ptr, and LGV_Predicate_Ptr. Update type
1456 Library_Graph_Edge_Attributes to capture whether an invocation
1457 edge activates a task. Update the value of
1458 No_Library_Graph_Edge_Attributes.
1459 (Activates_Task): Update the parameter profile and comment on
1460 usage.
1461 (Contains_Static_Successor_Edge, Contains_Task_Activation): New
1462 routines.
1463 (Contains_Weak_Static_Successor): Remove.
1464 * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst:
1465 Update the documentation to reflect the new task-related advice.
1466 * gnat_ugn.texi: Regenerate.
1467
1468 2019-07-09 Piotr Trojanek <trojanek@adacore.com>
1469
1470 * exp_util.adb (Containing_Package_With_Ext_Axioms): Replace
1471 low-level Ekind test with a high-level wrapper.
1472
1473 2019-07-09 Arnaud Charlet <charlet@adacore.com>
1474
1475 * libgnat/s-memory.adb: Disable calls to Abort defer/undefer
1476 when ZCX_By_Default.
1477
1478 2019-07-09 Javier Miranda <miranda@adacore.com>
1479
1480 * sem_ch13.adb (Rep_Item_Too_Early): Representation clauses are
1481 not allowed for a derivation of a generic type. Extend the
1482 current test to check that none of the parents is a generic
1483 type.
1484
1485 2019-07-09 Hristian Kirtchev <kirtchev@adacore.com>
1486
1487 * exp_ch9.adb, exp_util.adb, repinfo.adb, sem_ch12.adb,
1488 sem_prag.adb, sem_res.adb, sem_spark.adb, sem_util.adb: Minor
1489 reformatting.
1490
1491 2019-07-09 Ed Schonberg <schonberg@adacore.com>
1492
1493 * sem_res.adb (Resolve_Equality_Op): If the node was overloaded,
1494 set properly the entity to which the node has been resolved. The
1495 original entity is the first one found during analysis, and is
1496 not necessarily the resolved one.
1497 (Resolve_Op_Not): If the argument of negation is an overloaded
1498 equality operation, call its resolution directly given that the
1499 context type does not participate in overload resolution.
1500
1501 2019-07-09 Hristian Kirtchev <kirtchev@adacore.com>
1502
1503 * bindo.adb: Remove with and use clauses for Debug. Add with
1504 and use clauses for Opt.
1505 (Find_Elaboration_Order): Enable the v4.0 elaboration order. The
1506 v3.0 mechanism is now available under binder switch -H.
1507 * bindusg.adb (Display): Enable switch -H.
1508 * debug.adb: Free compiler switch -gnatd_G. Free binder switch
1509 -d_N.
1510 * sem_elab.adb: Update the section on switches to remove
1511 -gnatd_G.
1512 (Invocation_Graph_Recording_OK): The invocation graph is now
1513 unconditionally recorded in ALI files.
1514 * switch-b.adb (Scan_Binder_Switches): Scan switch -H.
1515 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
1516 Update the documentation on compiler switches related to
1517 elaboration. Update the documentation on binder switches to
1518 include switch -H.
1519 * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Update
1520 the documentation on elaboration order handling in GNAT.
1521 * gnat_ugn.texi: Regenerate.
1522
1523 2019-07-09 Eric Botcazou <ebotcazou@adacore.com>
1524
1525 * repinfo.adb (List_Entities): Disregard formals altogether.
1526 (List_Name): Properly escape the double quote in the JSON
1527 output.
1528
1529 2019-07-09 Javier Miranda <miranda@adacore.com>
1530
1531 * exp_util.adb (Remove_Side_Effects): Preserve the
1532 Do_Range_Check flag.
1533
1534 2019-07-09 Yannick Moy <moy@adacore.com>
1535
1536 * sinfo.ads: Refine comment for Do_Range_Check.
1537
1538 2019-07-09 Yannick Moy <moy@adacore.com>
1539
1540 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Expand
1541 attribute reference on Enum_Rep.
1542
1543 2019-07-09 Ed Schonberg <schonberg@adacore.com>
1544
1545 * sem_ch12.adb (Instantiate_Formal_Package): Handle properly the
1546 case where the actual for a formal package in an instance is the
1547 current instance of an enclosing generic package.
1548 (Check_Formal_Packages): If the formal package declaration is
1549 box-initialized or lacks associations altogether, no internal
1550 instance was created to verify conformance, and there is no
1551 validating package to remove from tree.
1552
1553 2019-07-09 Yannick Moy <moy@adacore.com>
1554
1555 * freeze.adb (Build_Renamed_Body): Do not set body to inline in
1556 GNATprove mode.
1557
1558 2019-07-09 Yannick Moy <moy@adacore.com>
1559
1560 * exp_util.adb (Expand_Subtype_From_Expr): Still expand the type
1561 of static expressions in GNATprove_Mode.
1562 * sem_ch3.adb (Analyze_Object_Declaration): Remove obsolete
1563 special case for GNATprove_Mode.
1564
1565 2019-07-09 Piotr Trojanek <trojanek@adacore.com>
1566
1567 * doc/gnat_rm/the_gnat_library.rst,
1568 doc/gnat_ugn/building_executable_programs_with_gnat.rst,
1569 erroutc.adb, libgnat/g-comlin.adb, libgnat/g-comlin.ads,
1570 libgnat/g-regexp.ads, libgnat/g-regpat.ads,
1571 libgnat/g-spipat.ads, libgnat/s-os_lib.ads,
1572 libgnat/s-regexp.ads: Reword "wild card" to "wildcard".
1573 * gnat_rm.texi, gnat_ugn.texi: Regenerate.
1574
1575 2019-07-09 Yannick Moy <moy@adacore.com>
1576
1577 * sem_spark.adb (Check_Expression): Handle correctly implicit
1578 assignments as part of allocators and (extension) aggregates.
1579 (Get_Root_Object): Adapt for new path expressions.
1580 (Is_Path_Expression): Return True for (extension) aggregate.
1581
1582 2019-07-09 Piotr Trojanek <trojanek@adacore.com>
1583
1584 * einfo.ads: Fix a typo.
1585
1586 2019-07-09 Ed Schonberg <schonberg@adacore.com>
1587
1588 * sem_util.adb (Scope_Within_Or_Same): Handle properly task
1589 bodies and protected bodies, so that local variables within have
1590 their proper scopes after these constructs have been rewritten
1591 during expansion. This patch resembles but is not identical to
1592 the code in Scope_Within.
1593
1594 2019-07-09 Arnaud Charlet <charlet@adacore.com>
1595
1596 * gnat1drv.adb (Adjust_Global_Switches): Set
1597 Dynamic_Elaboration_Checks to True in CodePeer mode.
1598
1599 2019-07-09 Yannick Moy <moy@adacore.com>
1600
1601 * sem_spark.adb (Get_Perm_Or_Tree): Issue an error when
1602 encountering unknown global variable.
1603
1604 2019-07-09 Yannick Moy <moy@adacore.com>
1605
1606 * sem_spark.adb (Check_Expression): Change signature to take an
1607 Extended_Checking_Mode, for handling read permission checking of
1608 sub-expressions in an assignment.
1609 (Check_Parameter_Or_Global): Adapt to new behavior of
1610 Check_Expression for mode Assign.
1611 (Check_Safe_Pointers): Do not analyze generic bodies.
1612 (Check_Assignment): Separate checking of the target of an
1613 assignment.
1614
1615 2019-07-09 Eric Botcazou <ebotcazou@adacore.com>
1616
1617 * repinfo.ads (JSON format): Adjust.
1618 * repinfo.adb (Need_Blank_Line): Rename to...
1619 (Need_Separator): ...this.
1620 (Blank_Line): Rename to...
1621 (Write_Separator): ...this and add JSON specific handling.
1622 (List_Array_Info): Adjust to above renaming.
1623 (List_Object_Info): Likewise.
1624 (List_Record_Info): Likewise.
1625 (List_Subprogram_Info): Likewise.
1626 (List_Type_Info): Likewise.
1627 (List_Entities): Do not set Need_Blank_Line.
1628 (List_Rep_Info): Set Need_Separator and add JSON specific
1629 handling. Output a single JSON stream in the normal case.
1630
1631 2019-07-09 Arnaud Charlet <charlet@adacore.com>
1632
1633 * doc/gnat_ugn/the_gnat_compilation_model.rst: Update doc on
1634 -fdump-ada-spec now that we generate Ada 2012.
1635 * gnat_ugn.texi: Regenerate.
1636
1637 2019-07-08 Eric Botcazou <ebotcazou@adacore.com>
1638
1639 * repinfo.adb (List_Common_Type_Info): New procedure extracted
1640 from...
1641 (List_Type_Info): ...here. Call it for the common information,
1642 start with a blank line and output the linker section at the
1643 end, if any.
1644 (List_Mechanisms): Rename to...
1645 (List_Subprogram_Info): ...this.
1646 (List_Array_Info): Call List_Common_Type_Info.
1647 (List_Entities): Adjust to above change and renaming.
1648 (List_Record_Info): Call List_Common_Type_Info.
1649
1650 2019-07-08 Dmitriy Anisimkov <anisimko@adacore.com>
1651
1652 * libgnat/g-sercom.ads
1653 (Serial_Port_Descriptor): New type.
1654 (Serial_Port): Add a comment, make it hold a
1655 Serial_Port_Descriptor.
1656 (To_Ada, To_C): New procedures.
1657 (Port_Data, Port_Data_Access): Remove types.
1658 * libgnat/g-sercom.adb (To_Ada): New stub.
1659 * libgnat/g-sercom__linux.adb, libgnat/g-sercom__mingw.adb:
1660 Update implementations accordingly.
1661 * s-oscons-tmplt.c: Bind Serial_Port_Descriptor to
1662 System.Win32.HANDLE on Windows, and to Interfaces.C.int on
1663 Linux. Add "Interfaces.C." prefix for other basic integer type
1664 bindings.
1665 * xoscons.adb (Output_Info): Remove the "Interfaces.C." prefix
1666 for subtypes generation.
1667
1668 2019-07-08 Arnaud Charlet <charlet@adacore.com>
1669
1670 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
1671 Update documentation on No_Exceptions restriction.
1672 * gnat_rm.texi: Regenerate.
1673
1674 2019-07-08 Dmitriy Anisimkov <anisimko@adacore.com>
1675
1676 * libgnat/s-os_lib.adb: Do not call __gnat_kill for Invalid_Pid.
1677
1678 2019-07-08 Piotr Trojanek <trojanek@adacore.com>
1679
1680 * sem_util.adb (Enclosing_Package_Or_Subprogram): Do not expect
1681 package and subprogram bodies.
1682
1683 2019-07-08 Bob Duff <duff@adacore.com>
1684
1685 * doc/gnat_ugn/gnat_utility_programs.rst: Remove documentation
1686 of ignored GNATpp switch.
1687
1688 2019-07-08 Hristian Kirtchev <kirtchev@adacore.com>
1689
1690 * doc/gnat_rm/implementation_defined_pragmas.rst:
1691 Update the documentation of pragma Initialize_Scalars.
1692 * gnat_rm.texi: Regenerate.
1693
1694 2019-07-08 Javier Miranda <miranda@adacore.com>
1695
1696 * exp_ch4.adb (Tagged_Membership): Fix regression silently
1697 introduced in r260738 that erroneouslusy causes the evaluation
1698 to True of the membership test when the left operand of the
1699 membership test is a class-wide interface object and the right
1700 operand is a type that implements such interface type.
1701
1702 2019-07-08 Hristian Kirtchev <kirtchev@adacore.com>
1703
1704 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Do not
1705 register an address clause when its prefix denotes a generic
1706 formal object.
1707
1708 2019-07-08 Hristian Kirtchev <kirtchev@adacore.com>
1709
1710 * bindo-diagnostics.adb (Diagnose_Cycle): Capture the presence
1711 of an Elaborate_All edge before iterating over the edges of the
1712 cycle.
1713 (Output_Elaborate_Body_Transition): Update the parameter profile
1714 and the comment on usage. Add a missing case where the edge is
1715 within the context of an Elaborate_All.
1716 (Output_Transition): Update the call to
1717 Output_Elaborate_Body_Transition.
1718 * bindo-graphs.ads, bindo-graphs.adb
1719 (Contains_Elaborate_All_Edge): New routine.
1720
1721 2019-07-08 Piotr Trojanek <trojanek@adacore.com>
1722
1723 * lib-xref-spark_specific.adb (Create_Heap): Set dummy Etype for
1724 the fake __HEAP entity.
1725
1726 2019-07-08 Daniel Mercier <mercier@adacore.com>
1727
1728 * gnat1drv.adb: Suppress warnings on memory representation in
1729 CodePeer compiler mode.
1730
1731 2019-07-08 Nicolas Roche <roche@adacore.com>
1732
1733 * rtinit.c (__gnat_runtime_initialize): Remove dependency on
1734 CommandLineToArgvW.
1735
1736 2019-07-08 Doug Rupp <rupp@adacore.com>
1737
1738 * Makefile.rtl: Handle vxworks7r2 in x86_64 and x86 vxworks7.
1739
1740 2019-07-08 Dmitriy Anisimkov <anisimko@adacore.com>
1741
1742 * Makefile.rtl: Use g-sercom__linux.adb for all linuxes.
1743
1744 2019-07-08 Yannick Moy <moy@adacore.com>
1745
1746 * expander.adb (Expand): Do not reset Analyzed flag always.
1747 * sem_eval.adb (Fold_Ureal): Mark node as analyzed.
1748
1749 2019-07-08 Ed Schonberg <schonberg@adacore.com>
1750
1751 * exp_ch9.adb (Expand_N_Timed_Entry_Call): Do not insert twice
1752 the assignment statement that computes the delay value, to
1753 prevent improper tree sharing when the value is a type
1754 conversion and Float_Overflow checks are enabled.
1755
1756 2019-07-08 Hristian Kirtchev <kirtchev@adacore.com>
1757
1758 * bindo.adb: Update the section on terminology to include new
1759 concepts. Update the section on switches to include new
1760 entries.
1761 * bindo.ads: Add type Precedence_Kind.
1762 * bindo-builders.adb: Add with and use clauses for Debug and
1763 Bindo.Validators. Add use clauses for
1764 Bindo.Validators.Invocation_Graph_Validators and
1765 Bindo.Validators.Library_Graph_Validators.
1766 (Build_Invocation_Graph): Validate the graph immediately after
1767 it was built.
1768 (Build_Library_Graph): Update the parameter profile. The
1769 creation of the graph is now elaboration model-agnostic.
1770 Validate the graph immediately after it was built.
1771 (Create_With_Edge): Create regular with edges for Elaborate and
1772 Elaborate_All edges when the appropriate debug switches are in
1773 effect.
1774 * bindo-builders.ads (Build_Library_Graph): Update the parameter
1775 profile.
1776 * bindo-diagnostics.adb (Diagnose_Cycle): Track the presence of
1777 an Elaborate_All edge throughout the inspection of the cycle's
1778 edges.
1779 (Output_Dynamic_Model_Suggestions): Output the suggestion only
1780 when the cycle contains at least one weak edge where the
1781 successor was statically elaborated.
1782 (Output_Elaborate_Body_Transition, Output_Forced_Transition,
1783 Output_With_Transition): Update the assertions.
1784 * bindo-elaborators.adb: Remove use clauses for
1785 Bindo.Validators.Invocation_Graph_Validators and
1786 Bindo.Validators.Library_Graph_Validators. Remove strings
1787 Add_To_All_Candidates_Msg and Add_To_Comp_Candidates_Msg.
1788 Remove type String_Ptr.
1789 (Add_Vertex, Add_Vertex_If_Elaborable, Create_All_Candidates_Set
1790 Create_Component_Candidates_Set): Remove.
1791 (Create_Component_Vertex_Sets, Create_Vertex_Sets): New routine.
1792 (Elaborate_Component): Update the parameter profile and the
1793 comment on usage. Reimplement the elaboration of a component.
1794 The algorithm will now attempt to elaborate as many vertices
1795 possible. If this is not possible, and a weakly elaborable
1796 vertex is available use unit was compiled using the dynamic
1797 model, the algorithm will elaborate it.
1798 (Elaborate_Library_Graph): Reimplement the elaboration of the
1799 graph. The algorithm will now attempt to elaborate as many
1800 vertices along with their components as possible. If this is not
1801 possible, and a weakly elaborable vertex is available use unit
1802 was compiled using the dynamic model, the algorithm will
1803 elaborate it along with its component.
1804 (Elaborate_Units): Merge with the functionality of
1805 Elaborate_Units_Common.
1806 (Elaborate_Units_Common, Elaborate_Units_Dynamic,
1807 Elaborate_Units_Static): Remove.
1808 (Elaborate_Vertex): Update the parameter profile and the comment
1809 on usage. Reimplemented.
1810 (Find_Best_Candidate): Remove.
1811 (Find_Best_Elaborable_Vertex, Find_Best_Vertex,
1812 Find_Best_Weakly_Elaborable_Vertex, Has_Elaborable_Body,
1813 Insert_Elaborable_Successor, Insert_Vertex): New routines.
1814 (Is_Better_Candidate): Remove.
1815 (Is_Better_Elaborable_Vertex,
1816 Is_Better_Weakly_Elaborable_Vertex,
1817 Is_Suitable_Elaborable_Vertex,
1818 Is_Suitable_Weakly_Elaborable_Vertex): New routines.
1819 (Trace_Candidate_Vertices): Remove.
1820 (Trace_Component): Output the number of strong and weak
1821 predecessors.
1822 (Trace_Unelaborated_Vertices): Remove.
1823 (Trace_Vertex): Output the number of strong and weak
1824 predecessors.
1825 (Trace_Vertices): New routine.
1826 (Update_Successor, Update_Successors): Update the parameter
1827 profile and the comment on usage.
1828 * bindo-graphs.adb: Remove type Precedence_Kind.
1829 (Add_Edge_With_Return): Update the increment of pending
1830 predecessors.
1831 (Add_Vertex): Provide default values for strong and weak
1832 predecessors.
1833 (Complementary_Vertex): Move the initial declaration to the
1834 spec. Update the parameter profile and the comment on usage.
1835 (Contains_Weak_Static_Successor): New routine.
1836 (Create): Update the parameter profile. The creation of the
1837 graph is now elaboration model-agnostic.
1838 (Decrement_Pending_Predecessors): Update the parameter profile
1839 and the comment on usage. Reimplemented.
1840 (Delete_Edge): Update the decrement of pending predecesors.
1841 (Has_Elaborate_Body): Do not treat a vertex as being subject to
1842 Elaborate_Body when a debug switch is in effect.
1843 (Increment_Pending_Predecessors): Update the parameter profile
1844 and the comment on usage. Reimplemented.
1845 (Is_Elaborable_Component): Reimplemented.
1846 (Is_Elaborable_Vertex): Move the initial declaration to the
1847 spec. Reimplemented.
1848 (Is_Elaborate_Body_Pair): New routine.
1849 (Is_Dynamically_Elaborated): Update the parameter profile.
1850 Reimplemented.
1851 (Is_Weakly_Elaborable_Vertex): New routine.
1852 (Pending_Predecessors): Removed.
1853 (Pending_Predecessors_For_Elaboration,
1854 Pending_Strong_Predecessors, Pending_Weak_Predecessors,
1855 Update_Pending_Predecessors): New routines.
1856 (Update_Pending_Predecessors_Of_Components): Update the
1857 increment of pending predecessors.
1858 * bindo-graphs.ads: Update the components of type
1859 Component_Attributes. Update the components of type
1860 Library_Graph_Attributes. Update the components of type
1861 Library_Graph_Vertex_Attributes. Update the initialization of
1862 No_Component_Attributes. Update the initialization of
1863 No_Library_Graph_Vertex_Attributes.
1864 (Complementary_Vertex, Contains_Weak_Static_Successor): New
1865 routines.
1866 (Create): Update the parameter profile and the comment on usage.
1867 (Decrement_Pending_Predecessors, Is_Dynamically_Elaborated):
1868 Update the parameter profile and the comment on usage.
1869 (Is_Elaborate_Body_Pair, Is_Weakly_Elaborable_Vertex): New
1870 routines.
1871 (Pending_Predecessors): Removed.
1872 (Pending_Predecessors_For_Elaboration,
1873 Pending_Strong_Predecessors, Pending_Weak_Predecessors): New
1874 routines.
1875 * bindo-writers.adb (Write_Components): Moved from the spec.
1876 (Write_Component): Output the strong and weak predecessors.
1877 (Write_Library_Graph): Output the components as part of the
1878 graph.
1879 (Write_Library_Graph_Vertex): Output the strong and weak
1880 predecessors.
1881 * bindo-writers.ads (Write_Components): Moved to the body.
1882 * debug.adb: Add and document new GNATbind switches -d_a, -d_b,
1883 -d_e.
1884 * bindo-validators.adb: Minor reformattings.
1885
1886 2019-07-08 Bob Duff <duff@adacore.com>
1887
1888 * libgnat/g-sercom.ads, libgnat/g-sercom__linux.adb (Data_Rate):
1889 Support additional data rates.
1890
1891 2019-07-08 Olivier Hainque <hainque@adacore.com>
1892
1893 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Don't request
1894 DECL_ARTIFICIAL_P on elab proc declarations.
1895
1896 2019-07-08 Eric Botcazou <ebotcazou@adacore.com>
1897
1898 * repinfo.adb (List_Record_Info): Declare Incomplete_Layout and
1899 Not_In_Extended_Main local exceptions.
1900 (List_Structural_Record_Layout): For an extension, raise the
1901 former if the parent subtype has not been built and the latter
1902 if it is not declared in the main source unit. Fall back to the
1903 flat layout if either exception has been raised.
1904
1905 2019-07-08 Ed Schonberg <schonberg@adacore.com>
1906
1907 * libgnat/a-strfix.adb (Delete): The RM describes the semantics
1908 of Delete as equivalent to that of Replace_String with a null
1909 argument. As a result, deleting a null string that starts past
1910 the end of its argument is a noop and must not raise
1911 Index_Error.
1912
1913 2019-07-08 Javier Miranda <miranda@adacore.com>
1914
1915 * exp_disp.adb (Register_Primitive): When registering a
1916 primitive in the secondary dispatch table, handle primitive
1917 inherited through several levels of type derivation (required to
1918 properly handle inherited 'null' primitive).
1919
1920 2019-07-08 Bob Duff <duff@adacore.com>
1921
1922 * doc/gnat_ugn/gnat_utility_programs.rst: Document handling of
1923 preprocessor directives in GNATpp.
1924
1925 2019-07-08 Javier Miranda <miranda@adacore.com>
1926
1927 * gnat1drv.adb (Post_Compilation_Validation_Checks:
1928 Validate_Compile_Time_Warning_Errors is now located in sem_prag
1929 (instead of sem_ch13).
1930 * sem_ch13.ads (Validate_Compile_Time_Warning_Error,
1931 Validate_Compile_Time_Warning_Errors): Move to sem_prag.
1932 * sem_ch13.adb
1933 (Compile_Time_Warnings_Errors): Move to sem_prag.
1934 (Initialize): Remove initialization of table
1935 Compile_Time_Warning_Errors.
1936 (Validate_Compile_Time_Warning_Error,
1937 Validate_Compile_Time_Warning_Errors): Move to sem_prag.
1938 * sem_prag.ads (Validate_Compile_Time_Warning_Errors): New
1939 procedure.
1940 * sem_prag.adb (Initialize): Initialize table
1941 Compile_Time_Warning_Errors.
1942
1943 2019-07-08 Ed Schonberg <schonberg@adacore.com>
1944
1945 * sem_ch13.adb (Analyze_Aspect_Specifications): For a
1946 pre/postcondition of a generic subprogram declaration, do not
1947 use Relocate_Node on the aspect expression to construct the
1948 corresponding attribute specification, to prevent tree anomalies
1949 when the expression is a call with named actual parameters.
1950
1951 2019-07-08 Javier Miranda <miranda@adacore.com>
1952
1953 * sem_attr.adb (Analyze_Attribute [Attribute_Size]): For pragmas
1954 used to report user defined compile time warning or errors
1955 handle 'Size for types with known static RM size.
1956
1957 2019-07-08 Justin Squirek <squirek@adacore.com>
1958
1959 * exp_imgv.adb (Build_Enumeration_Image_Tables): Default SSO for
1960 the building of image tables.
1961 (Expand_Image_Attribute): Minor cleanup.
1962
1963 2019-07-08 Dmitriy Anisimkov <anisimko@adacore.com>
1964
1965 * libgnat/g-socket.ads, libgnat/g-socket.adb: Improve
1966 documentation.
1967 (Get_Socket_Option, Set_Socket_Option): Remove default value for
1968 the Level formal.
1969
1970 2019-07-08 Ed Schonberg <schonberg@adacore.com>
1971
1972 * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): For an
1973 unanalized aspect in a generic context that has not been
1974 analyzed yet, if the aspect applies to a type, place the type on
1975 the scope stack to make its components visible, before checking
1976 conformance with the version of the expression analyzed at the
1977 freeze point.
1978
1979 2019-07-05 Justin Squirek <squirek@adacore.com>
1980
1981 * checks.adb (Apply_Accessibility_Check): Add logic to fetch the
1982 function result accessibility level if one is required within
1983 the generated check.
1984 * exp_ch6.adb (Needs_Result_Accessibility_Level): Modify
1985 controlling elsif block to handle more cases such as anonymous
1986 access results and disable checking for coextensions.
1987
1988 2019-07-05 Ed Schonberg <schonberg@adacore.com>
1989
1990 * sem_ch9.adb (Analyze_Accept_Statement): If this is an illegal
1991 accept statement for an enclosing entry abandon analysis to
1992 prevent scope mismatches and potential infinite loops in
1993 compiler.
1994
1995 2019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
1996
1997 * ali.adb (For_Each_Invocation_Construct,
1998 For_Each_Invocation_Relation): New version.
1999 (Scan_ALI): Initialize field Invocation_Graph_Encoding.
2000 (Set_Invocation_Graph_Encoding): Update the setting of the
2001 invocation graph encoding.
2002 * ali.ads: Move field Invocation_Graph_Encoding from Unit_Record
2003 to ALI_Record because the encoding applies to the whole ALI,
2004 rather than one of the units (spec or body) for which the ALI
2005 file was created.
2006 (For_Each_Invocation_Construct, For_Each_Invocation_Relation):
2007 New version.
2008 * bindo.adb: Update the section on switches. Complete the
2009 section of debugging elaboration order issues.
2010 (Find_Elaboration_Order): Prepare the routine for the switch
2011 from the old to the new elaboration order mechanism.
2012 * bindo-diagnostics.adb (Find_And_Output_Invocation_Paths):
2013 Manage a visited set used by Visit_Vertex.
2014 (Output_All_Cycles_Suggestions,
2015 Output_Dynamic_Model_Suggestions): Clarify the nature of the
2016 suggested switch.
2017 (Output_Elaborate_Body_Transition): Update the diagnostic to
2018 emit a better message.
2019 (Output_Forced_Suggestions, Output_Full_Encoding_Suggestions):
2020 Clarify the nature of the suggested switch.
2021 (Visit_Vertex): Update the parameter profile to add a set of
2022 invokers visited during the transition. This set prevents
2023 infinite exploration of the graph in case the invocations are
2024 recursive.
2025 * bindo-elaborators.adb: Add a use clause for
2026 Bindo.Writers.Dependency_Writers.
2027 (Elaborate_Units_Common): Output the library graph after it has
2028 been augmented with invocation edges. Output just the components
2029 instead of outputting the whole library graph again.
2030 (Elaborate_Units_Dynamic, Elaborate_Units_Static): Output the
2031 dependencies as expressed in the library graph.
2032 * bindo-units.adb (Invocation_Graph_Encoding): Update the
2033 extraction of the invocation graph encoding.
2034 * bindo-writers.adb: Add with and use clauses for Binderr and
2035 Butil.
2036 (palgc, plgc): New debug routine.
2037 (Write_Components): Moved to the spec. Add a header for the
2038 output.
2039 (Write_Dependencies, Write_Dependencies_Of_Vertex,
2040 Write_Dependency_Edge): New routine.
2041 (Write_Elaboration_Order): Update the logic to follow the format
2042 of Binde's order output.
2043 (Write_Library_Graph): Do not output the components every time
2044 the graph is written.
2045 (Write_Unit): Output the invocation graph encoding of the unit.
2046 Output the invocation constructs and relations for the unit
2047 only.
2048 * bindo-writers.ads (Write_Components): Moved from the body.
2049 (Write_Dependencies): New routine.
2050 * bindusg.adb: Prepare the routine for the switch from the old
2051 to the new elaboration order mechanism.
2052 * debug.adb: Binder switch -d_O is now not associated with any
2053 functionality.
2054 * einfo.adb (Is_Elaboration_Target): The attribute applies to
2055 packages, as specified by the comment on the attribute usage.
2056 * opt.ads: Add a global flag which controls the choice between
2057 the new and the legacy elaboration order mechanism.
2058 * sem_elab.adb: Add Package_Target to type Target_Kind.
2059 (Build_Elaborate_Body_Procedure, Build_Elaborate_Procedure,
2060 Build_Elaborate_Spec_Procedure, Check_Elaboration_Scenarios,
2061 Check_SPARK_Model_In_Effect): Use Main_Unit_Entity to obtain the
2062 entity of the main unit.
2063 (Create_Package_Rep): New routine.
2064 (Create_Target_Rep): Add processing for packages.
2065 (Declaration_Placement_Of_Node, Has_Prior_Elaboration): Use
2066 Main_Unit_Entity to obtain the entity of the main
2067 unit.
2068 (Invocation_Graph_Recording_OK): Prepare the routine for the
2069 switch from the old to the new elaboration order mechanism.
2070 (Main_Unit_Entity): New routine.
2071 (Meet_Elaboration_Requirement,
2072 Process_Conditional_ABE_Variable_Reference): Use
2073 Main_Unit_Entity to obtain the entity of the main unit.
2074 (Process_Invocation_Instantiation): New routine.
2075 (Process_Invocation_Scenario): Add processing for
2076 instantiations.
2077 * switch-b.adb (Scan_Binder_Switches): Prepare the routine for
2078 the switch from the old to the new elaboration order mechanism.
2079
2080 2019-07-05 Joffrey Huguet <huguet@adacore.com>
2081
2082 * libgnat/a-textio.adb: Add abstract state refinment.
2083 * libgnat/a-textio.ads: Add File_System abstract state. Add
2084 global contracts, contract cases, preconditions and
2085 postconditions to procedures and functions.
2086 (Set_Input, Set_Output, Set_Error, Standard_Input,
2087 Standard_Output, Standard_Error, Current_Input, Current_Output,
2088 Current_Error): Turn SPARK_Mode off.
2089 (Get_Line): Turn SPARK_Mode off on Get_Line functions.
2090 * libgnat/a-tideio.ads, libgnat/a-tienio.ads,
2091 libgnat/a-tifiio.ads, libgnat/a-tiflio.ads,
2092 libgnat/a-tiinio.ads, libgnat/a-timoio.ads: Add global
2093 contracts, contract cases, preconditions and postconditions to
2094 procedures and functions.
2095
2096 2019-07-05 Arnaud Charlet <charlet@adacore.com>
2097
2098 * doc/gnat_ugn/platform_specific_information.rst: Refresh doc on
2099 installing from the command line on Windows. Remove obsolete
2100 part.
2101 * gnat_ugn.texi: Regenerate.
2102
2103 2019-07-05 Vasiliy Fofanov <fofanov@adacore.com>
2104
2105 * libgnat/a-wichha.ads (Is_Alphanumeric): Replace comment with
2106 the correct one. Also capitalize references to False
2107 throughout.
2108
2109 2019-07-05 Eric Botcazou <ebotcazou@adacore.com>
2110
2111 * exp_ch4.adb (Expand_N_Indexed_Component): Do not expand actual
2112 parameters of function calls here either.
2113
2114 2019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
2115
2116 * bindo-units.adb, checks.adb, exp_attr.adb, exp_ch3.adb,
2117 exp_ch4.adb, exp_pakd.adb, lib-writ.adb, libgnat/g-traceb.adb,
2118 libgnat/g-traceb.ads, libgnat/s-stratt.ads, sem_aux.ads,
2119 sem_util.adb: Minor reformatting.
2120
2121 2019-07-05 Ed Schonberg <schonberg@adacore.com>
2122
2123 * sem_ch13.adb (Build_Predicate_Functions): If a subtype that
2124 carries a static predicate aspect is frozen immediately after
2125 its declaration, ensure that the generated function body created
2126 for predicate checking is inserted after the corresponding
2127 subprogram declaration, which is created at the point the
2128 declaration is elaborated.
2129
2130 2019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
2131
2132 * exp_ch7.adb (Cleanup_Record): Use the underlying type when
2133 checking for components with tasks.
2134
2135 2019-07-05 Arnaud Charlet <charlet@adacore.com>
2136
2137 * libgnarl/s-osinte__linux.ads: Link with -lrt before -lpthread.
2138
2139 2019-07-05 Ed Schonberg <schonberg@adacore.com>
2140
2141 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Add explicit
2142 range checks when the index type of the bit-packed array is an
2143 enumeration type with a non-standard representation,
2144
2145 2019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
2146
2147 * sem_res.adb (Is_Control_Flow_Statement): Delay statements
2148 contain an expression, which in turn may have side effects and
2149 affect the infinite recursion. As a result, delay statements
2150 should not be treated specially.
2151
2152 2019-07-05 Arnaud Charlet <charlet@adacore.com>
2153
2154 * libgnarl/s-linux.ads, libgnarl/s-linux__alpha.ads,
2155 libgnarl/s-linux__android.ads, libgnarl/s-linux__hppa.ads,
2156 libgnarl/s-linux__mips.ads, libgnarl/s-linux__riscv.ads,
2157 libgnarl/s-linux__sparc.ads: Fix typos in comments.
2158
2159 2019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
2160
2161 * sem_res.adb (Check_Infinite_Recursion): Reimplemented.
2162 (Enclosing_Declaration_Or_Statement,
2163 Invoked_With_Different_Arguments, Is_Conditional_Statement,
2164 Is_Control_Flow_Statement, Is_Immediately_Within_Body,
2165 Is_Raise_Idiom, Is_Raise_Statement, Is_Sole_Statement,
2166 Preceded_By_Control_Flow_Statement,
2167 Within_Conditional_Statement): New routines.
2168
2169 2019-07-05 Javier Miranda <miranda@adacore.com>
2170
2171 * exp_ch4.adb (Expand_N_Type_Conversion): Do not apply an
2172 accessibility check when the conversion is an access to
2173 class-wide interface type and it is an actual parameter.
2174 * exp_ch6.adb (Expand_Call_Helper): Add documentation on the
2175 accessibility level of an anonymous allocator defining the value
2176 of an access parameter.
2177 * sem_util.ads, sem_util.adb (Dynamic_Accessibility_Level): Add
2178 support for an anonymous allocator whose type is that of a
2179 stand-alone object of an anonymous access to object type.
2180
2181 2019-07-05 Piotr Trojanek <trojanek@adacore.com>
2182
2183 * einfo.ads, sem_res.adb: Typo fixes in comments.
2184
2185 2019-07-05 Bob Duff <duff@adacore.com>
2186
2187 * exp_ch6.adb (Is_Build_In_Place_Function): Narrow the check for
2188 Has_Foreign_Convention to the imported case only. If a
2189 build-in-place function is exported, and called from Ada code,
2190 build-in-place protocols should be used.
2191
2192 2019-07-05 Ed Schonberg <schonberg@adacore.com>
2193
2194 * sem_util.adb (Encloing_Subprogram): If Enclosing_Dynamic_Scope
2195 is a loop, continue climbing the scope stack to find the
2196 enclosing subprogram.
2197 (Gather_Components): Handle properly a choice in a record
2198 aggregate that is given by a subtype with a static predicate.
2199
2200 2019-07-05 Javier Miranda <miranda@adacore.com>
2201
2202 * debug.adb (-gnatd.K): Leave available this switch.
2203 * contracts.adb (Build_And_Analyze_Contract_Only_Subprograms):
2204 Remove.
2205 * scil_ll.ads, scil_ll.adb (Contract_Only_Body_Flag,
2206 Contract_Only_Body_Nodes, Get_Contract_Only_Body,
2207 Is_Contract_Only_Body, Set_Contract_Only_Body): Remove.
2208
2209 2019-07-05 Pierre-Marie de Rodat <derodat@adacore.com>
2210
2211 * libgnat/a-strunb.ads: Import documentation from the RM
2212
2213 2019-07-05 Pierre-Marie de Rodat <derodat@adacore.com>
2214
2215 * libgnat/a-strfix.ads: Import documentation from the RM
2216
2217 2019-07-05 Yannick Moy <moy@adacore.com>
2218
2219 * adabkend.adb (Scan_Back_End_Switches): Accept -Og and -Ofast
2220 switches.
2221
2222 2019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
2223
2224 * ali.adb: Relocate types Invocation_Construct_Record,
2225 Invocation_Relation_Record, and Invocation_Signature_Record to
2226 the body of ALI. Relocate tables Invocation_Constructs,
2227 Invocation_Relations, and Invocation_Signatures to the body of
2228 ALI. Remove type Body_Placement_Codes. Add new types
2229 Declaration_Placement_Codes, and
2230 Invocation_Graph_Encoding_Codes. Update the literals of type
2231 Invocation_Graph_Line_Codes.
2232 (Add_Invocation_Construct): Update the parameter profile. Add an
2233 invocation construct built from all attributes provided.
2234 (Add_Invocation_Relation): Update the parameter profile. Add an
2235 invocation relation built from all attributes provided.
2236 (Body_Placement): New routine.
2237 (Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind):
2238 Removed.
2239 (Code_To_Declaration_Placement_Kind,
2240 Code_To_Invocation_Graph_Encoding_Kind, Column,
2241 Declaration_Placement_Kind_To_Code, Extra,
2242 For_Each_Invocation_Construct, For_Each_Invocation_Relation,
2243 Invocation_Graph_Encoding,
2244 Invocation_Graph_Encoding_Kind_To_Code, Invoker, Kind, Line,
2245 Locations, Name): New routine.
2246 (Scan_Invocation_Construct_Line): Reimplement the scanning
2247 mechanism.
2248 (Scan_Invocation_Graph_Attributes_Line): New routine.
2249 (Scan_Invocation_Graph_Line): Use a case statement to dispatch.
2250 (Scan_Invocation_Relation_Line): Reimplement the scanning
2251 mechanism.
2252 (Scope): New routine.
2253 (Set_Invocation_Graph_Encoding, Signature, Spec_Placement,
2254 Target): New routine.
2255 * ali.ads: Add new type Invocation_Graph_Encoding_Kind. Add
2256 component Invocation_Graph_Encoding to type Unit_Record.
2257 Relocate various types and data structures to the body of ALI.
2258 (Add_Invocation_Construct, Add_Invocation_Relation): Update the
2259 parameter profile.
2260 (Body_Placement): New routine.
2261 (Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind):
2262 Removed.
2263 (Code_To_Declaration_Placement_Kind,
2264 Code_To_Invocation_Graph_Encoding_Kind, Column,
2265 Declaration_Placement_Kind_To_Code, Extra,
2266 For_Each_Invocation_Construct, For_Each_Invocation_Relation,
2267 Invocation_Graph_Encoding,
2268 Invocation_Graph_Encoding_Kind_To_Code, Invoker, Kind, Line,
2269 Locations, Name, Scope, Set_Invocation_Graph_Encoding,
2270 Signature, Spec_Placement, Target): New routine.
2271 * bindo.adb: Add with clause for Binde. Add with and use
2272 clauses for Debug. Update the documentation. Add new switches.
2273 (Find_Elaboration_Order): Dispatch to the proper elaboration
2274 mechanism.
2275 * bindo-augmentors.adb:
2276 Remove with and use clauses for GNAT and GNAT.Sets. Remove
2277 membership set VS. Update the parameter profiles of most
2278 routines to use better parameter names. Update the
2279 implementation of most routine to use the new parameter names.
2280 Remove various redundant assertions.
2281 * bindo-builders.adb: Use better names for instantiated data
2282 structures. Update all references to these names. Update the
2283 parameter profiles of most routines to use better parameter
2284 names. Update the implementation of most routine to use the new
2285 parameter names.
2286 (Build_Library_Graph): Update the parameter profile. Update the
2287 call to Create.
2288 (Create_Vertex): Reimplemented.
2289 (Declaration_Placement_Vertex): New routine.
2290 * bindo-builders.ads (Build_Library_Graph): Update the parameter
2291 profile and comment on usage.
2292 * bindo-diagnostics.adb: Almost a new unit.
2293 * bindo-diagnostics.ads: Add a use clause for
2294 Bindo.Graphs.Invocation_Graphs. Remove package
2295 Cycle_Diagnostics.
2296 (Diagnose_Circularities): New routine.
2297 * bindo-elaborators.adb: Remove the with and use clauses for
2298 Binderr and GNAT.Sets. Remove the use clause for
2299 Bindo.Diagnostics.Cycle_Diagnostics. Remove membership set VS.
2300 Update the parameter profiles of most routines to use better
2301 parameter names. Update the implementation of most routine to
2302 use the new parameter names. (Elaborate_Units_Common): Update
2303 the parameter profile. Pass an infication to the library graph
2304 builder whether the dynamic model is in effect.
2305 (Elaborate_Units_Dynamic, Elaborate_Units_Static): Use
2306 Diagnose_Circularities to provide diagnostics.
2307 (Update_Successor): Use routine In_Same_Component to determine
2308 whether the predecessor and successor reside in different
2309 components.
2310 * bindo-graphs.adb: Add with and use clauses for Butil, Debug,
2311 Output, and Bindo.Writers. Remove with and use clauses for
2312 GNAT.Lists. Update the parameter profiles of most routines to
2313 use better parameter names. Update the implementation of most
2314 routine to use the new parameter names. Remove various
2315 redundant assertions. Remove doubly linked list EL. Add new
2316 type Precedence_Kind.
2317 (Add_Cycle): New routine.
2318 (Add_Vertex): Update the parameter profile. Update the creation
2319 of vertex attributes.
2320 (Add_Vertex_And_Complement, Body_Vertex, Column,
2321 Complementary_Vertex, Copy_Cycle_Path, Cycle_Kind_Of): New
2322 routines.
2323 (Destroy_Invocation_Graph_Edge, Destroy_Library_Graph_Cycle,
2324 Destroy_Library_Graph_Edge, Extra, File_Name,
2325 Find_All_Cycles_Through_Vertex, Find_All_Cycles_With_Edge,
2326 Find_Cycles, Find_First_Lower_Precedence_Cycle,
2327 Get_LGC_Attributes, Has_Next, Hash_Library_Graph_Cycle,
2328 Hash_Library_Graph_Cycle_Attributes, Highest_Precedence_Cycle,
2329 Highest_Precedence_Edge, In_Same_Component, Insert_And_Sort,
2330 Invocation_Edge_Count, Invocation_Graph_Encoding,
2331 Is_Cycle_Initiating_Edge, Is_Cyclic_Edge,
2332 Is_Cyclic_Elaborate_All_Edge, Is_Cyclic_Elaborate_Body_Edge,
2333 Is_Cyclic_Elaborate_Edge, Is_Cyclic_Forced_Edge,
2334 Is_Cyclic_Invocation_Edge, Is_Cyclic_With_Edge,
2335 Is_Dynamically_Elaborated, Is_Elaborate_All_Edge,
2336 Is_Elaborate_Body_Edge, Is_Elaborate_Edge: New routines.
2337 (Is_Existing_Predecessor_Successor_Relation): Removed.
2338 (Is_Forced_Edge, Is_Invocation_Edge, Is_Recorded_Cycle,
2339 Is_Recorded_Edge, Is_With_Edge, Iterate_Edges_Of_Cycle, Kind,
2340 Length): New routine.
2341 (Lib_Vertex): Removed.
2342 (Line, Links_Vertices_In_Same_Component,
2343 Maximum_Invocation_Edge_Count, Next, Normalize_And_Add_Cycle,
2344 Normalize_Cycle_Path, Number_Of_Cycles, Path, Precedence,
2345 Remove_Vertex_And_Complement, Sequence_Next_Cycle): New routines.
2346 (Sequence_Next_IGE_Id): Renamed to Sequence_Next_Edge.
2347 (Sequence_Next_IGV_Id): Renamed to Sequence_Next_Vertex.
2348 (Sequence_Next_LGE_Id): Renamed to Sequence_Next_Edge.
2349 (Sequence_Next_LGV_Id): Renamed to Sequence_Next_Vertex.
2350 (Set_Is_Existing_Predecessor_Successor_Relation): Removed.
2351 (Set_Is_Recorded_Cycle, Set_Is_Recorded_Edge,
2352 Set_LGC_Attributes, Spec_Vertex, Trace_Cycle, Trace_Edge,
2353 Trace_Eol, Trace_Vertex): New routines.
2354 * bindo-graphs.ads: Add with and use clauses for Types and
2355 GNAT.Lists. Update the parameter profiles of most routines to
2356 use better parameter names. Update the implementation of most
2357 routine to use the new parameter names. Add the new
2358 instantiated data structures IGE_Lists, IGV_Sets, LGC_Lists,
2359 LGE_Lists, LGE_Sets, LGV_Sets, and RC_Sets. Add new type
2360 Library_Graph_Cycle_Id along with an empty and initial value.
2361 Remove component Lib_Vertex and add new components Body_Vertex
2362 and Spec_Vertex to type Invocation_Graph_Vertex_Attributes. Add
2363 new type Library_Graph_Cycle_Kind. Add new iterators
2364 All_Cycle_Iterator and Edges_Of_Cycle_Iterator. Add new type
2365 Library_Graph_Cycle_Attributes. Add new components
2366 Cycle_Attributes, Cycles, and Dynamically_Elaborated to type
2367 Library_Graph_Attributes.
2368 (Body_Vertex, Column, Destroy_Invocation_Graph_Edge,
2369 Destroy_Library_Graph_Cycle_Attributes,
2370 Destroy_Library_Graph_Edge, Extra, File_Name, Find_Cycles,
2371 Has_Elaborate_All_Cycle, Has_Next, Hash_Library_Graph_Cycle,
2372 Hash_Library_Graph_Cycle_Attributes, Highest_Precedence_Cycle,
2373 In_Same_Component, Invocation_Edge_Count,
2374 Invocation_Graph_Encoding, Is_Dynamically_Elaborated,
2375 Is_Elaborate_All_Edge, Is_Elaborate_Body_Edge,
2376 Is_Elaborate_Edge, Is_Forced_Edge, Is_Invocation_Edge,
2377 Is_With_Edge, Iterate_All_Cycles, Iterate_Edges_Of_Cycle, Kind):
2378 New routines.
2379 (Length, Lib_Vertex, (Line, Next, Number_Of_Cycles, Present,
2380 Same_Library_Graph_Cycle_Attributes, Spec_Vertex): New routines.
2381 * bindo-units.adb (File_Name, Invocation_Graph_Encoding): New
2382 routines.
2383 * bindo-units.ads: Add new instantiated data structure
2384 Unit_Sets.
2385 (File_Name, Invocation_Graph_Encoding): New routine.
2386 * bindo-validators.adb: Remove with and use clauses for GNAT and
2387 GNAT.Sets. Remove membership set US. Update the parameter
2388 profiles of most routines to use better parameter names. Update
2389 the implementation of most routine to use the new parameter
2390 names.
2391 (Validate_Cycle, Validate_Cycle_Path, Validate_Cycles,
2392 Validate_Invocation_Graph_Vertex): Remove the validation of
2393 component Lib_Vertex. Add the validation of components
2394 Body_Vertex and Spec_Vertex.
2395 (Write_Error): New routine.
2396 * bindo-validators.ads (Validate_Cycles): New routine.
2397 * bindo-writers.adb: Update the parameter profiles of most
2398 routines to use better parameter names. Update the
2399 implementation of most routine to use the new parameter names.
2400 (Write_Cycle, Write_Cyclic_Edge, Write_Cycles): New routines.
2401 (Write_Invocation_Graph_Vertex): Remove the output of component
2402 Lib_Vertex. Add the output of components Body_Vertex and
2403 Spec_Vertex.
2404 * bindo-writers.ads (Write_Cycles): New routine.
2405 * debug.adb: Use binder switches -d_C and -d_P, add
2406 documentation on their usage.
2407 * gnatbind.adb: Remove with and use clauses for Binde. Delegate
2408 the choice of elaboration mechanism to Bindo.
2409 * lib-writ.adb (Column, Extra, Invoker, Kind, Line, Locations,
2410 Name, Placement, Scope, Signature, Target): Removed.
2411 (Write_Invocation_Graph): Moved at the top level.
2412 (Write_Invocation_Graph_Attributes): New routine.
2413 (Write_Invocation_Relation, Write_Invocation_Signature): Moved
2414 at the top level.
2415 * lib-writ.ads: Add a documentation section on invocation graph
2416 attributes.
2417 * sem_elab.adb (Body_Placement_Of): New routine.
2418 (Declare_Invocation_Construct): Update the call to
2419 Add_Invocation_Construct.
2420 (Declaration_Placement_Of_Node): New routine.
2421 (Get_Invocation_Attributes): Correct the retrieval of the
2422 enclosing subprogram where the postcondition procedure lives.
2423 (Placement_Of, Placement_Of_Node): Removed.
2424 (Record_Invocation_Graph): Record the encoding format used.
2425 (Record_Invocation_Graph_Encoding): New routine.
2426 (Record_Invocation_Relation): Update the call to
2427 Add_Invocation_Relation.
2428 (Spec_Placement_Of): Removed.
2429 * libgnat/g-lists.ads, libgnat/g-lists.adb (Equal): New routine.
2430
2431 2019-07-05 Ed Schonberg <schonberg@adacore.com>
2432
2433 * checks.adb (Apply_Predicate_Check): Except within the
2434 subprogram body that defines the formal, do not apply predicate
2435 check on a formal IN parameter: such a check is redundant and
2436 its expansion can lead to out-of-scope references when it is
2437 originates in a function call in a precondition,
2438
2439 2019-07-05 Yannick Moy <moy@adacore.com>
2440
2441 * sem_res.adb (Resolve_Call): Cannot inline in quantified
2442 expressions.
2443 * sem_util.adb, sem_util.ads (In_Quantified_Expression): New
2444 function.
2445
2446 2019-07-05 Bob Duff <duff@adacore.com>
2447
2448 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
2449 Fix typo.
2450 * gnat_rm.texi: Regenerate.
2451
2452 2019-07-05 Bob Duff <duff@adacore.com>
2453
2454 * exp_attr.adb (Input): Take the No_Stream_Optimizations
2455 restriction into account.
2456
2457 2019-07-05 Claire Dross <dross@adacore.com>
2458
2459 * libgnat/a-cofove.ads, libgnat/a-cofove.adb: Definite formal
2460 vectors are now always bounded so that they do not need to be
2461 limited anymore.
2462
2463 2019-07-05 Dmitriy Anisimkov <anisimko@adacore.com>
2464
2465 * libgnat/g-traceb.ads, libgnat/g-traceb.adb (Call_Chain): New
2466 function.
2467
2468 2019-07-04 James Clarke <jrtc27@debian.org>
2469
2470 * libgnarl/s-osinte__kfreebsd-gnu.ads (clockid_t): Make type
2471 definition public.
2472 (CLOCK_REALTIME): Make value public.
2473
2474 2019-07-04 Javier Miranda <miranda@adacore.com>
2475
2476 * exp_tss.adb (Init_Proc): Adding missing support for access to
2477 subprograms and access to protected subprograms of non-default
2478 C++ constructors.
2479
2480 2019-07-04 Eric Botcazou <ebotcazou@adacore.com>
2481
2482 * gnat1drv.adb (Adjust_Global_Switches): Use proper interface to
2483 set the validity settings in CodePeer mode.
2484 * par-load.adb (Load): Remove all code dealing with validity
2485 settings.
2486 * validsw.ads (Validity_Check_Copies): Alphabetize.
2487 * validsw.adb (Reset_Validity_Check_Options): Set all options to
2488 off.
2489 (Save_Validity_Check_Options): Save all options.
2490
2491 2019-07-04 Hristian Kirtchev <kirtchev@adacore.com>
2492
2493 * exp_ch3.adb, exp_ch4.adb, exp_ch4.ads, exp_ch5.adb,
2494 exp_ch7.adb, exp_ch9.adb, exp_ch11.adb, exp_unst.adb,
2495 rtsfind.ads, sem_attr.adb, sem_ch10.adb, sem_ch12.adb,
2496 sem_ch13.adb, sem_dim.adb, sem_disp.adb, xref_lib.adb: Minor
2497 reformatting.
2498
2499 2019-07-04 Joffrey Huguet <huguet@adacore.com>
2500
2501 * libgnarl/a-taside.ads: Add assertion policy to ignore
2502 preconditions.
2503 (Abort_Task, Is_Terminated, Is_Callable): Add preconditions.
2504
2505 2019-07-04 Eric Botcazou <ebotcazou@adacore.com>
2506
2507 * doc/gnat_rm/implementation_defined_pragmas.rst: Fix
2508 capitalization and parenthesis glitches.
2509 * gnat_rm.texi: Regenerate.
2510
2511 2019-07-04 Ed Schonberg <schonberg@adacore.com>
2512
2513 * sem_ch10.adb (Remove_Context_Clauses): Handle properly the
2514 removal of a limited_with_clause which appears in the library
2515 unit oF the main unit, when some other unit in the context has a
2516 regular with_clause on the same unit, to prevent spurious
2517 visibility errors in the subsequent analysis of pending instance
2518 bodies.
2519
2520 2019-07-04 Hristian Kirtchev <kirtchev@adacore.com>
2521
2522 * sem_elab.adb: Add new type Elaboration_Phase_Status along with
2523 a global to keep track of the elaboration phase status.
2524 Initialize all internal data structures to Nil for services
2525 Elaborated_Units, Internal_Representation, and Scenario_Storage.
2526 (Build_Call_Marker): Do not create a call marker when the
2527 elaboration phase is not active.
2528 (Build_Variable_Reference_Marker): Do not create a call marker
2529 when the elaboration phase is not active.
2530 (Check_Elaboration_Scenarios): Destroy all internal structures
2531 when the elaboration phase does not have to run. Do not execute
2532 when the elaboration phase is not active.
2533 (Elaboration_Phase_Active): New routine.
2534 (Finalize_All_Data_Structures): New routine.
2535 (Initialize): Initialize all internal data structures and signal
2536 that the elaboration phase has started.
2537 (Initialize_All_Data_Structures): New routine.
2538 (Initialize_Elaborated_Units): Initialize all internal data
2539 structures.
2540 (Initialize_Internal_Representation): Initialize all internal
2541 data structures.
2542 (Initialize_Scenario_Storage): Initialize all internal data
2543 structures.
2544 (Kill_Elaboration_Scenario): Do not execute when the elaboration
2545 phase is not active.
2546 (Set_Elaboration_Phase): New routine.
2547 (Update_Elaboration_Scenario): Do not execute when the
2548 elaboration phase is not active.
2549
2550 2019-07-04 Gary Dismukes <dismukes@adacore.com>
2551
2552 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): The special
2553 treatment of calling Mask_Unfrozen_Types must also be done in
2554 the case of an Ignored_Ghost_Entity, because Expander_Active is
2555 False in that case.
2556
2557 2019-07-04 Yannick Moy <moy@adacore.com>
2558
2559 * sem_prag.adb (Check_Library_Level_Entity): Update for new rule
2560 on SPARK_Mode.
2561
2562 2019-07-04 Justin Squirek <squirek@adacore.com>
2563
2564 * sem_disp.adb (Check_Controlling_Formals): Obtain the full view
2565 before type comparison.
2566
2567 2019-07-04 Ed Schonberg <schonberg@adacore.com>
2568
2569 * exp_ch4.ads, exp_ch4.adb (Build_Eq_Call): New visible
2570 subprogram, extracted from Expand_Composite_Equality, to handle
2571 properly the composition of equality for variant record types.
2572 * exp_ch3.adb (MAke_Eq_If): Use Build_Eq_Call for each
2573 component, to handle properly the case of a component with a
2574 user-defined equality. Revert to predefined equality if the
2575 user-defined operation is abstract, to maintain compatibility
2576 with older versions,
2577
2578 2019-07-04 Justin Squirek <squirek@adacore.com>
2579
2580 * exp_ch3.adb (Build_Initialization_Call): Fixup
2581 *_skip_null_excluding_check argument to handle new default.
2582 (Init_Formals): Make *_skip_null_excluding_check formal default
2583 to False
2584 * exp_ch4.adb (Expand_N_Allocator): Add comment to note heavy
2585 code duplication
2586
2587 2019-07-04 Bob Duff <duff@adacore.com>
2588
2589 * sem_ch3.adb (Access_Definition): Do not create a master unless
2590 Tasking_Allowed. Otherwise, this fails on restricted runtimes.
2591
2592 2019-07-04 Hristian Kirtchev <kirtchev@adacore.com>
2593
2594 * sem_util.adb (Propagate_DIC_Attributes): Do not propagate the
2595 Default_Initial_Condition attributes to an incomplete type.
2596
2597 2019-07-04 Ed Schonberg <schonberg@adacore.com>
2598
2599 * sem_attr.adb (Check_Array_Type): An array type attribute such
2600 as 'First can be applied to an unconstrained array tyope when
2601 the attribute reference appears within an aspect specification
2602 and the prefix is a current instance, given that the prefix of
2603 the attribute will become a formal of the subprogram that
2604 implements the aspect (typically a predicate check).
2605
2606 2019-07-04 Piotr Trojanek <trojanek@adacore.com>
2607
2608 * sem_util.adb (Yields_Synchronized_Object): Fix typos in
2609 comments.
2610
2611 2019-07-04 Yannick Moy <moy@adacore.com>
2612
2613 * sem_util.adb (Yields_Synchronized_Object): Adapt to new SPARK
2614 rule.
2615
2616 2019-07-04 Yannick Moy <moy@adacore.com>
2617
2618 * sem_spark.adb (Check_Statement): Only check permission of
2619 object in extended return when it is of a deep type.
2620
2621 2019-07-04 Justin Squirek <squirek@adacore.com>
2622
2623 * sem_ch12.adb (Perform_Appropriate_Analysis): Added for
2624 selecting which type of analysis based on wheither the
2625 instantiation is a generic at the library-level. In which case
2626 expansion during analysis.
2627 (Preanalyze_Actuals): Modify calls to Analyze to use the new
2628 routine.
2629
2630 2019-07-04 Ed Schonberg <schonberg@adacore.com>
2631
2632 * exp_unst.adb: Handle conditional expressions.
2633
2634 2019-07-04 Yannick Moy <moy@adacore.com>
2635
2636 * sem_spark.adb (Check_Package_Spec, Check_Package_Body): Only
2637 analyze parts of the code marked in SPARK.
2638
2639 2019-07-04 Hristian Kirtchev <kirtchev@adacore.com>
2640
2641 * erroutc.adb, exp_aggr.adb, inline.adb, opt.adb, sem_ch3.adb:
2642 Minor reformatting.
2643
2644 2019-07-04 Yannick Moy <moy@adacore.com>
2645
2646 * sem_spark.adb (Explanation, Get_Expl): New functions to get
2647 the explanation for a permission mismatch.
2648 (Perm_Error, Perm_Mismatch, Perm_Error_Loop_Exit): Take
2649 explanation into account for issuing a more precise error
2650 message.
2651 (Set_Perm_Prefixes, Set_Perm_Extensions,
2652 Set_Perm_Extensions_Move): Pass suitable argument for the
2653 explanation node.
2654
2655 2019-07-04 Arnaud Charlet <charlet@adacore.com>
2656
2657 * exp_aggr.adb (In_Place_Assign_OK): Moved to top level and add
2658 support for record aggregates.
2659 (Component_Check): Use Is_CCG_Supported_Aggregate instead of a
2660 similar local predicate.
2661 (Convert_To_Assignments): Take advantage of In_Place_Assign_OK
2662 predicate when possible.
2663 (Is_CCG_Supported_Aggregate): Return False for records with
2664 representation clauses and fix the logic for dealing with nested
2665 aggregates.
2666
2667 2019-07-04 Piotr Trojanek <trojanek@adacore.com>
2668
2669 * opt.adb (Set_Config_Switches): Keep assertions policy as
2670 enabled when analysing internal units in GNATprove mode.
2671
2672 2019-07-04 Arnaud Charlet <charlet@adacore.com>
2673
2674 * exp_ch4.adb (Expand_Short_Circuit_Operator): Strip
2675 N_Variable_Reference_Marker when checking for the presence of
2676 actions.
2677
2678 2019-07-04 Arnaud Charlet <charlet@adacore.com>
2679
2680 * exp_aggr.adb (Check_Component): Take into account type
2681 conversions.
2682
2683 2019-07-04 Dmitriy Anisimkov <anisimko@adacore.com>
2684
2685 * doc/gnat_ugn/platform_specific_information.rst: Document
2686 Windows socket timeout particularity.
2687 * gnat_ugn.texi: Regenerate.
2688 * gsocket.h: Include versionhelpers.h.
2689 * socket.c (__gnat_minus_500ms): New function.
2690 * libgnat/g-sothco.ads (Minus_500ms_Windows_Timeout): New
2691 imported function.
2692 * libgnat/g-socket.adb (Set_Socket_Option): Refactor to remove
2693 500ms from the requested timeout only on old Windows version.
2694
2695 2019-07-04 Thomas Quinot <quinot@adacore.com>
2696
2697 * get_scos.adb: Remove bogus, dead code.
2698
2699 2019-07-04 Ed Schonberg <schonberg@adacore.com>
2700
2701 * sem_dim.adb (Analyze_Dimension_Array_Aggregate): If the
2702 component is an entity name, its dimensions are those of its
2703 type.
2704
2705 2019-07-03 Bob Duff <duff@adacore.com>
2706
2707 * doc/gnat_ugn/gnat_utility_programs.rst: Document new flags in
2708 GNATpp.
2709
2710 2019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
2711
2712 * binde.adb: Remove with clause for System.OS_Lib.
2713 (Force_Elab_Order): Refactor the majority of the code in Butil.
2714 Use the new forced units iterator to obtain unit names.
2715 * bindo-builders.adb: Add with and use clauses for Binderr,
2716 Butil, Opt, Output, Types, GNAT, and GNAT.Dynamic_HTables. Add
2717 a hash table which maps units to line number in the forced
2718 elaboration order file.
2719 (Add_Unit): New routine.
2720 (Build_Library_Graph): Create forced edges between pairs of
2721 units listed in the forced elaboration order file.
2722 (Create_Forced_Edge, Create_Forced_Edges, Destroy_Line_Number,
2723 Duplicate_Unit_Error, Hash_Unit, Internal_Unit_Info,
2724 Is_Duplicate_Unit, Missing_Unit_Info): New routines.
2725 * bindo-graphs.adb (Is_Internal_Unit, Is_Predefined_Unit):
2726 Refactor some of the behavior to Bindo-Units.
2727 * bindo-graphs.ads: Enable the enumeration literal for forced
2728 edges.
2729 * bindo-units.adb, bindo-units.ads (Is_Internal_Unit,
2730 Is_Predefined_Unit): New routines.
2731 * butil.adb: Add with and use clauses for Opt, GNAT, and
2732 System.OS_Lib. Add with clause for Unchecked_Deallocation.
2733 (Has_Next, Iterate_Forced_Units, Next, Parse_Next_Unit_Name,
2734 Read_Forced_Elab_Order_File): New routines.
2735 * butil.ads: Add with and use clauses for Types. Add new
2736 iterator over the units listed in the forced elaboration order
2737 file.
2738 (Has_Next, Iterate_Forced_Units, Next): New routine.
2739 * namet.adb, namet.ads (Present): New routine.
2740
2741 2019-07-03 Bob Duff <duff@adacore.com>
2742
2743 * sem_ch3.adb (Access_Definition): The code was creating a
2744 master in the case where the designated type is a class-wide
2745 interface type. Create a master in the noninterface case as
2746 well. That is, create a master for all limited class-wide types.
2747
2748 2019-07-03 Yannick Moy <moy@adacore.com>
2749
2750 * erroutc.adb (Sloc_In_Range): New function to determine whether
2751 the range of a pragma Warnings covers a location, taking
2752 instantiations into account.
2753
2754 2019-07-03 Johannes Kanig <kanig@adacore.com>
2755
2756 * osint.ads, osint.adb (Get_First_Main_File_Name): New routine
2757 to access the first file provided on the command line.
2758
2759 2019-07-03 Ed Schonberg <schonberg@adacore.com>
2760
2761 * inline.adb (Process_Formals_In_Aspects): New procedure within
2762 Expand_Inlined_Call, to perform a replacement of references to
2763 formals that appear in aspect specifications within the body
2764 being inlined.
2765
2766 2019-07-03 Justin Squirek <squirek@adacore.com>
2767
2768 * sem_ch8.adb (Analyze_Object_Renaming): Add call to search for
2769 the appropriate actual subtype of the object renaming being
2770 analyzed.
2771 (Check_Constrained_Object): Minor cleanup.
2772
2773 2019-07-03 Yannick Moy <moy@adacore.com>
2774
2775 * sem_spark.adb (Get_Observed_Or_Borrowed_Expr): New function to
2776 return go through traversal function call.
2777 (Check_Type): Consistently use underlying type.
2778 (Get_Perm): Adapt for case of elaboration code where variables
2779 are not declared in the environment. Remove incorrect handling
2780 of borrow and observe.
2781
2782 2019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
2783
2784 * inline.adb (Build_Return_Object_Formal): New routine.
2785 (Can_Split_Unconstrained_Function): Code clean up.
2786 (Copy_Formals,Copy_Return_Object): New routines.
2787 (Split_Unconstrained_Function): Code clean up and refactoring.
2788
2789 2019-07-03 Gary Dismukes <dismukes@adacore.com>
2790
2791 * bindo-augmentors.adb, bindo-augmentors.ads,
2792 bindo-builders.ads, bindo-elaborators.adb, sem_ch12.adb,
2793 sem_ch13.adb, sem_spark.adb, sinfo.ads: Minor editorial
2794 corrections and reformatting.
2795
2796 2019-07-03 Bob Duff <duff@adacore.com>
2797
2798 * sem_warn.adb (Check_Infinite_Loop_Warning): Avoid the warning
2799 if an Iterator_Specification is present.
2800
2801 2019-07-03 Bob Duff <duff@adacore.com>
2802
2803 * doc/gnat_ugn/gnat_utility_programs.rst: Document default
2804 new-line behavior.
2805
2806 2019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
2807
2808 * ali.adb: Add with and use clauses for GNAT,
2809 GNAT.Dynamic_HTables, and Snames. Add a map from invocation
2810 signature records to invocation signature ids. Add various
2811 encodings of invocation-related attributes. Sort and update
2812 table Known_ALI_Lines.
2813 (Add_Invocation_Construct, Add_Invocation_Relation,
2814 Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind,
2815 Code_To_Invocation_Construct_Kind, Code_To_Invocation_Kind,
2816 Code_To_Invocation_Graph_Line_Kind, Destroy, Hash): New
2817 routines.
2818 (Initialize_ALI): Sort the initialization sequence. Add
2819 initialization for all invocation-related tables.
2820 (Invocation_Construct_Kind_To_Code,
2821 Invocation_Graph_Line_Kind_To_Code, Invocation_Kind_To_Code,
2822 Invocation_Signature_Of, Present): New routines.
2823 (Scan_ALI): Add the default values for invocation-related ids.
2824 Scan invocation graph lines.
2825 (Scan_Invocation_Graph_Line): New routine.
2826 * ali.ads: Add with clause for GNAT.Dynamic_Tables. Add types
2827 for invocation constructs, relations, and signatures. Add
2828 tables for invocation constructs, relations, and signatures.
2829 Update Unit_Record to capture invocation-related ids. Relocate
2830 table Unit_Id_Tables and subtypes Unit_Id_Table, Unit_Id_Array
2831 from Binde.
2832 (Add_Invocation_Construct, Add_Invocation_Relation,
2833 Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind,
2834 Code_To_Invocation_Construct_Kind, Code_To_Invocation_Kind,
2835 Code_To_Invocation_Graph_Line_Kind,
2836 Invocation_Construct_Kind_To_Code,
2837 Invocation_Graph_Line_Kind_To_Code, Invocation_Kind_To_Code,
2838 Invocation_Signature_Of, Present): New routines.
2839 * binde.adb: Add with and use clause for Types. Add use clause
2840 for ALI.Unit_Id_Tables;
2841 * binde.ads: Relocate table Unit_Id_Tables and subtypes
2842 Unit_Id_Table, Unit_Id_Array to ALI.
2843 * bindgen.adb: Remove with and use clause for ALI.
2844 * bindgen.ads: Remove with and use clause for Binde. Add with
2845 and use clause for ALI.
2846 * bindo.adb, bindo.ads, bindo-augmentors.adb,
2847 bindo-augmentors.ads, bindo-builders.adb, bindo-builders.ads,
2848 bindo-diagnostics.adb, bindo-diagnostics.ads,
2849 bindo-elaborators.adb, bindo-elaborators.ads, bindo-graphs.adb,
2850 bindo-graphs.ads, bindo-units.adb, bindo-units.ads,
2851 bindo-validators.adb, bindo-validators.ads, bindo-writers.adb,
2852 bindo-writers.ads: New units.
2853 * debug.adb: Use and describe GNAT debug switches -gnatd_F and
2854 -gnatd_G. Add GNATbind debug switches in the ranges dA .. dZ,
2855 d.a .. d.z, d.A .. d.Z, d.1 .. d.9, d_a .. d_z, d_A .. d_Z, and
2856 d_1 .. d_9. Use and describe GNATbind debug switches -d_A,
2857 -d_I, -d_L, -d_N, -d_O, -d_T, and -d_V.
2858 * exp_util.adb, exp_util.ads (Exceptions_OK): Relocate to
2859 Sem_Util.
2860 * gnatbind.adb: Add with and use clause for Bindo. Use the new
2861 Bindo elaboration order only when -d_N is in effect.
2862 * lib-writ.adb
2863 (Column, Extra, Invoker, Kind, Line, Locations, Name, Placement,
2864 Scope, Signature, Target): New routines.
2865 (Write_ALI): Output all invocation-related data.
2866 (Write_Invocation_Graph): New routine.
2867 * lib-writ.ads: Document the invocation graph ALI line.
2868 * namet.adb, namet.ads (Present): New routines.
2869 * sem_ch8.adb (Find_Direct_Name): Capture the status of
2870 elaboration checks and warnings of an identifier.
2871 (Find_Expanded_Name): Capture the status of elaboration checks
2872 and warnings of an expanded name.
2873 * sem_ch12.adb (Analyze_Generic_Package_Declaration): Ensure
2874 that invocation graph-related data within the body of the main
2875 unit is encoded in the ALI file.
2876 (Analyze_Generic_Subprogram_Declaration): Ensure that invocation
2877 graph-related data within the body of the main unit is encoded
2878 in the ALI file.
2879 (Analyze_Package_Instantiation): Perform minimal decoration of
2880 the instance entity.
2881 (Analyze_Subprogram_Instantiation): Perform minimal decoration
2882 of the instance entity.
2883 * sem_elab.adb: Perform heavy refactoring of all code. The unit
2884 is now split into "services" which specialize in one area of ABE
2885 checks. Add processing in order to capture invocation-graph
2886 related attributes of the main unit, and encode them in the ALI
2887 file. The Processing phase can now operate in multiple modes,
2888 all described by type Processing_Kind. Scenarios and targets
2889 are now distinct at the higher level, and carry their own
2890 representations. This eliminates the need to constantly
2891 recompute their attributes, and offers the various processors a
2892 uniform interface. The various initial states of the Processing
2893 phase are now encoded using type Processing_In_State, and
2894 xxx_State constants.
2895 * sem_elab.ads: Update the literals of type
2896 Enclosing_Level_Kind. Add Inline pragmas on several routines.
2897 * sem_prag.adb (Process_Inline): Ensure that invocation
2898 graph-related data within the body of the main unit is encoded
2899 in the ALI file.
2900 * sem_util.adb (Enclosing_Generic_Body, Enclosing_Generic_Unit):
2901 Code clean up.
2902 (Exceptions_OK): Relocated from Sem_Util.
2903 (Mark_Save_Invocation_Graph_Of_Body): New routine.
2904 * sem_util.ads (Exceptions_OK): Relocated from Sem_Util.
2905 (Mark_Save_Invocation_Graph_Of_Body): New routine.
2906 * sinfo.adb (Is_Elaboration_Checks_OK_Node): Now applicable to
2907 N_Variable_Reference_Marker.
2908 (Is_Elaboration_Warnings_OK_Node): Now applicable to
2909 N_Expanded_Name, N_Identifier, N_Variable_Reference_Marker.
2910 (Is_Read): Use Flag4.
2911 (Is_SPARK_Mode_On_Node): New applicable to
2912 N_Variable_Reference_Marker.
2913 (Is_Write): Use Flag5.
2914 (Save_Invocation_Graph_Of_Body): New routine.
2915 (Set_Is_Elaboration_Checks_OK_Node): Now applicable to
2916 N_Variable_Reference_Marker.
2917 (Set_Is_Elaboration_Warnings_OK_Node): Now applicable to
2918 N_Expanded_Name, N_Identifier, N_Variable_Reference_Marker.
2919 (Set_Is_SPARK_Mode_On_Node): New applicable to
2920 N_Variable_Reference_Marker.
2921 (Set_Save_Invocation_Graph_Of_Body): New routine.
2922 * sinfo.ads: Update the documentation of attributes
2923 Is_Elaboration_Checks_OK_Node, Is_Elaboration_Warnings_OK_Node,
2924 Is_SPARK_Mode_On_Node. Update the flag usage of attributes
2925 Is_Read, Is_Write. Add attribute Save_Invocation_Graph_Of_Body
2926 and update its occurrence in nodes.
2927 (Save_Invocation_Graph_Of_Body): New routine along with pragma
2928 Inline.
2929 (Set_Save_Invocation_Graph_Of_Body): New routine along with
2930 pragma Inline.
2931 * switch-b.adb (Scan_Binder_Switches): Refactor the scanning of
2932 debug switches.
2933 (Scan_Debug_Switches): New routine.
2934 * libgnat/g-dynhta.adb, libgnat/g-dynhta.ads (Contains): New routine.
2935 * libgnat/g-graphs.adb (Associate_Vertices): Update the use of
2936 Component_Vertex_Iterator.
2937 (Contains_Component, Contains_Edge, Contains_Vertex, Has_Next):
2938 Reimplemented.
2939 (Iterate_Component_Vertices): New routine.
2940 (Iterate_Vertices): Removed.
2941 (Next): Update the parameter profile.
2942 (Number_Of_Component_Vertices, Number_Of_Outgoing_Edges): New
2943 routines.
2944 * libgnat/g-graphs.ads: Update the initialization of
2945 No_Component. Add type Component_Vertex_Iterator. Remove type
2946 Vertex_Iterator.
2947 (Has_Next): Add new versions and remove old ones.
2948 (Iterate_Component_Vertices): New routine.
2949 (Iterate_Vertices): Removed.
2950 (Next): Add new versions and remove old ones.
2951 (Number_Of_Component_Vertices, Number_Of_Outgoing_Edges): New
2952 routines.
2953 * libgnat/g-sets.adb (Contains): Reimplemented.
2954 * gcc-interface/Make-lang.in (GNATBIND_OBJS): Add
2955 GNAT.Dynamic_HTables, GNAT.Graphs and Bindo units.
2956 * rtsfind.ads: Remove extra space.
2957
2958 2019-07-03 Yannick Moy <moy@adacore.com>
2959
2960 * sem_spark.adb: Add support for locally borrowing and observing
2961 a path.
2962 (Get_Root_Object): Add parameter Through_Traversal to denote
2963 when we are interesting in getting to the traversed parameter.
2964 (Is_Prefix_Or_Almost): New function to support detection of
2965 illegal access to borrowed or observed paths.
2966 (Check_Pragma): Add analysis of assertion pragmas.
2967
2968 2019-07-03 Ed Schonberg <schonberg@adacore.com>
2969
2970 * sem_ch13.adb (Build_Predicate_Functions): In a generic context
2971 we do not build the bodies of predicate fuctions, but the
2972 expression in a static predicate must be elaborated to allow
2973 case coverage checking within the generic unit.
2974 (Build_Discrete_Static_Predicate): In a generic context, return
2975 without building function body once the
2976 Static_Discrete_Predicate expression for the type has been
2977 constructed.
2978
2979 2019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
2980
2981 * bindgen.adb, inline.adb, layout.adb, sem_ch12.adb,
2982 sem_ch13.adb, sem_ch7.adb, styleg.adb: Minor reformatting.
2983
2984 2019-07-03 Bob Duff <duff@adacore.com>
2985
2986 * par-ch3.adb (P_Defining_Identifier): Call
2987 Check_Defining_Identifier_Casing.
2988 * style.ads, styleg.ads, styleg.adb
2989 (Check_Defining_Identifier_Casing): New procedure to check for
2990 mixed-case defining identifiers.
2991 * stylesw.ads, stylesw.adb (Style_Check_Mixed_Case_Decls): New
2992 flag for checking for mixed-case defining identifiers.
2993 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
2994 Document new feature.
2995 * gnat_ugn.texi: Regenerate.
2996
2997 2019-07-03 Eric Botcazou <ebotcazou@adacore.com>
2998
2999 * doc/gnat_ugn/building_executable_programs_with_gnat.rst
3000 (Warning message control): Document that -gnatw.z/Z apply to
3001 array types.
3002 * freeze.adb (Freeze_Entity): Give -gnatw.z warning for array
3003 types as well, but not if the specified alignment is the minimum
3004 one.
3005 * gnat_ugn.texi: Regenerate.
3006
3007 2019-07-03 Bob Duff <duff@adacore.com>
3008
3009 * einfo.ads, exp_util.adb, layout.ads, sinfo.ads: Spell "laid"
3010 correctly.
3011
3012 2019-07-03 Ed Schonberg <schonberg@adacore.com>
3013
3014 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): No error
3015 message on attribute applied to a renaming when the renamed
3016 object is an aggregate (from code reading).
3017 (Check_Aspect_At_End_Of_Declarations): In a generic context
3018 where freeze nodes are not generated, the original expression
3019 for an aspect may need to be analyzed to precent spurious
3020 conformance errors when compared with the expression that is
3021 anakyzed at the end of the current declarative list.
3022
3023 2019-07-03 Eric Botcazou <ebotcazou@adacore.com>
3024
3025 * layout.adb (Layout_Type): Do not set the component size of an
3026 array with a scalar component if the component type is
3027 overaligned.
3028
3029 2019-07-03 Ed Schonberg <schonberg@adacore.com>
3030
3031 * inline.adb (Make_Loop_Labels_Unique): New procedure to modify
3032 the source code of subprograms that are inlined by the
3033 front-end, to prevent accidental duplication between loop labels
3034 in the inlined code and the code surrounding the inlined call.
3035
3036 2019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
3037
3038 * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Update
3039 the section on resolving elaboration circularities to eliminate
3040 certain combinations of switches which together do not produce
3041 the desired effect and confuse users.
3042 * gnat_ugn.texi: Regenerate.
3043
3044 2019-07-03 Arnaud Charlet <charlet@adacore.com>
3045
3046 * bindgen.adb (Gen_Main): Disable generation of reference to
3047 Ada_Main_Program_Name for CCG.
3048 * bindusg.adb (Display): Add -G to the command-line usage for
3049 gnatbind.
3050 * opt.ads (Generate_C_Code): Update comment.
3051 * switch-b.adb (Scan_Binder_Switches): Add handling for -G.
3052
3053 2019-07-03 Arnaud Charlet <charlet@adacore.com>
3054
3055 * sem_ch7.adb (Has_Referencer): Do not consider inlined
3056 subprograms when generating C code, which allows us to generate
3057 static inline subprograms.
3058
3059 2019-07-03 Justin Squirek <squirek@adacore.com>
3060
3061 * sem_ch6.adb (Check_Conformance): Add expression checking for
3062 constant modifiers in anonymous access types (in addition to
3063 "non-null" types) so that they are considered "matching" for
3064 subsequent conformance tests.
3065
3066 2019-07-03 Arnaud Charlet <charlet@adacore.com>
3067
3068 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
3069 Clarify wording on No_Multiple_Elaboration.
3070 * gnat_rm.texi: Regenerate.
3071
3072 2019-07-03 Ed Schonberg <schonberg@adacore.com>
3073
3074 * sem_ch8.adb (Find_Selected_Component): If the prefix is the
3075 current instance of a type or subtype, complete the resolution
3076 of the name by finding the component of the type denoted by the
3077 selector name.
3078
3079 2019-07-03 Eric Botcazou <ebotcazou@adacore.com>
3080
3081 * doc/gnat_rm/interfacing_to_other_languages.rst (Interfacing to C):
3082 Document that boolean types with convention C now map to C99 bool.
3083 * gnat_rm.texi: Regenerate.
3084
3085 2019-07-03 Javier Miranda <miranda@adacore.com>
3086
3087 * exp_attr.adb (Expand_Min_Max_Attribute): Code cleanup:
3088 removing code that it is now never executed in the CCG compiler
3089 (dead code).
3090
3091 2019-07-02 Iain Sandoe <iain@sandoe.co.uk>
3092
3093 * libgnat/system-darwin-ppc.ads: Set Stack_Check_Probes True for
3094 PPC Darwin.
3095
3096 2019-07-01 Ed Schonberg <schonberg@adacore.com>
3097
3098 * sem_ch12.adb (Is_Defaulted): New predicate in
3099 Check_Formal_Package_Intance, to skip the conformance of checks
3100 on parameters of a formal package that are defaulted,
3101
3102 2019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
3103
3104 * checks.adb, exp_ch9.adb, exp_unst.adb, sem_ch4.adb,
3105 sem_prag.adb, sem_spark.adb: Minor reformatting.
3106
3107 2019-07-01 Ed Schonberg <schonberg@adacore.com>
3108
3109 * sem_attr.adb (Analyze_Attribute, case Enum_Rep): Allow prefix
3110 of attribute to be an attribute reference of a discrete type.
3111
3112 2019-07-01 Eric Botcazou <ebotcazou@adacore.com>
3113
3114 * sem_ch12.adb (Analyze_Subprogram_Instantiation): Move up
3115 handling of Has_Pragma_Inline_Always and deal with
3116 Has_Pragma_No_Inline.
3117
3118 2019-07-01 Ed Schonberg <schonberg@adacore.com>
3119
3120 * sem_ch3.adb (Build_Derived_Record_Type): If the parent type is
3121 declared as a subtype of a private type with an inherited
3122 discriminant constraint, its generated full base appears as a
3123 record subtype, so we need to retrieve its oen base type so that
3124 the inherited constraint can be applied to it.
3125
3126 2019-07-01 Yannick Moy <moy@adacore.com>
3127
3128 * sem_spark.adb: Completely rework the algorithm for ownership
3129 checking, as the rules in SPARK RM have changed a lot.
3130 * sem_spark.ads: Update comments.
3131
3132 2019-07-01 Dmitriy Anisimkov <anisimko@adacore.com>
3133
3134 * gsocket.h (Has_Sockaddr_Len): Use the offset of sin_family offset in
3135 the sockaddr_in structure to determine the existence of length field
3136 before the sin_family.
3137
3138 2019-07-01 Ed Schonberg <schonberg@adacore.com>
3139
3140 * sem_prag.adb (Analyze_Pragma, case Weak_External): Pragma only
3141 applies to entities with run-time addresses, not to types.
3142
3143 2019-07-01 Piotr Trojanek <trojanek@adacore.com>
3144
3145 * einfo.adb, sem_ch7.adb, sem_prag.adb, sem_util.adb: Update
3146 references to the SPARK RM after the removal of Rule 7.1.4(5).
3147
3148 2019-07-01 Piotr Trojanek <trojanek@adacore.com>
3149
3150 * sysdep.c: Cleanup references to LynuxWorks in docs and
3151 comments.
3152
3153 2019-07-01 Ed Schonberg <schonberg@adacore.com>
3154
3155 * checks.adb (Insert_Valid_Check): Do not apply validity check
3156 to variable declared within a protected object that uses the
3157 Lock_Free implementation, to prevent unwarranted constant
3158 folding, because entities within such an object msut be treated
3159 as volatile.
3160
3161 2019-07-01 Eric Botcazou <ebotcazou@adacore.com>
3162
3163 * exp_ch9.adb (Check_Inlining): Deal with Has_Pragma_No_Inline.
3164
3165 2019-07-01 Ed Schonberg <schonberg@adacore.com>
3166
3167 * exp_unst.adb (Visit_Node, Check_Static_Type): Improve the
3168 handling of private and incomplete types whose full view is an
3169 access type, to detect additional uplevel references in dynamic
3170 bounds. This is relevant to N_Free_Statement among others that
3171 manipulate types whose full viww may be an access type.
3172
3173 2019-07-01 Pat Rogers <rogers@adacore.com>
3174
3175 * doc/gnat_rm/representation_clauses_and_pragmas.rst: Correct
3176 size indicated for R as a component of an array.
3177 * gnat_rm.texi: Regenerate.
3178
3179 2019-07-01 Justin Squirek <squirek@adacore.com>
3180
3181 * libgnat/s-win32.ads: Add definition for ULONG, modify
3182 OVERLAPPED type, and add appropriate pragmas.
3183
3184 2019-07-01 Bob Duff <duff@adacore.com>
3185
3186 * gnat1drv.adb (gnat1drv): Call Write_ALI if the main unit is
3187 ignored-ghost.
3188
3189 2019-07-01 Yannick Moy <moy@adacore.com>
3190
3191 * sem_ch4.adb (Operator_Check): Refine error message.
3192
3193 2019-07-01 Piotr Trojanek <trojanek@adacore.com>
3194
3195 * libgnat/a-calend.ads: Revert "Global => null" contracts on
3196 non-pure routines.
3197
3198 2019-07-01 Piotr Trojanek <trojanek@adacore.com>
3199
3200 * exp_attr.adb, libgnat/g-graphs.ads: Fix typos in comments:
3201 componant -> component.
3202
3203 2019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
3204
3205 * libgnat/g-graphs.adb: Use type Directed_Graph rather than
3206 Instance in various routines.
3207 * libgnat/g-graphs.ads: Change type Instance to Directed_Graph.
3208 Update various routines that mention the type.
3209
3210 2019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
3211
3212 * libgnat/g-sets.adb: Use type Membership_Set rathern than
3213 Instance in various routines.
3214 * libgnat/g-sets.ads: Change type Instance to Membership_Set.
3215 Update various routines that mention the type.
3216
3217 2019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
3218
3219 * libgnat/g-lists.adb: Use type Doubly_Linked_List rather than
3220 Instance in various routines.
3221 * libgnat/g-lists.ads: Change type Instance to
3222 Doubly_Linked_List. Update various routines that mention the
3223 type.
3224
3225 2019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
3226
3227 * libgnat/g-dynhta.adb: Use type Dynamic_Hash_Table rather than
3228 Instance in various routines.
3229 * libgnat/g-dynhta.ads: Change type Instance to
3230 Dynamic_Hash_Table. Update various routines that mention the
3231 type.
3232
3233 2019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
3234
3235 * exp_attr.adb, exp_ch7.adb, exp_unst.adb, sem_ch3.adb,
3236 sem_util.adb, uintp.adb, uintp.ads: Minor reformatting.
3237
3238 2019-07-01 Javier Miranda <miranda@adacore.com>
3239
3240 * exp_attr.adb (Expand_Min_Max_Attribute): Disable expansion of
3241 'Min/'Max on integer, enumeration, fixed point and floating
3242 point types since the CCG backend now provides in file
3243 standard.h routines to support it.
3244
3245 2019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
3246
3247 * impunit.adb: Add GNAT.Graphs to list Non_Imp_File_Names_95.
3248 * Makefile.rtl, gcc-interface/Make-lang.in: Register unit
3249 GNAT.Graphs.
3250 * libgnat/g-dynhta.adb: Various minor cleanups (use Present
3251 rather than direct comparisons).
3252 (Delete): Reimplement to use Delete_Node.
3253 (Delete_Node): New routine.
3254 (Destroy_Bucket): Invoke the provided destructor.
3255 (Present): New routines.
3256 * libgnat/g-dynhta.ads: Add new generic formal Destroy_Value.
3257 Use better names for the components of iterators.
3258 * libgnat/g-graphs.adb, libgnat/g-graphs.ads: New unit.
3259 * libgnat/g-lists.adb: Various minor cleanups (use Present
3260 rather than direct comparisons).
3261 (Delete_Node): Invoke the provided destructor.
3262 (Present): New routine.
3263 * libgnat/g-lists.ads: Add new generic formal Destroy_Element.
3264 Use better names for the components of iterators.
3265 (Present): New routine.
3266 * libgnat/g-sets.adb, libgnat/g-sets.ads (Destroy, Preset,
3267 Reset): New routines.
3268
3269 2019-07-01 Dmitriy Anisimkov <anisimko@adacore.com>
3270
3271 * libgnat/g-sothco.adb (Get_Address): Fix the case when AF_INET6
3272 is not defined.
3273
3274 2019-07-01 Ed Schonberg <schonberg@adacore.com>
3275
3276 * exp_attr.adb (Expand_Attribute_Reference, case Invalid_Value):
3277 Resolve result of call to Get_Simple_Init_Val, which may be a
3278 conversion of a literal.
3279
3280 2019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
3281
3282 * freeze.adb (Freeze_Expression): Remove the horrible useless
3283 name hiding of N. Insert the freeze nodes generated by the
3284 expression prior to the expression when the nearest enclosing
3285 scope is transient.
3286
3287 2019-07-01 Pierre-Marie de Rodat <derodat@adacore.com>
3288
3289 * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix
3290 formatting issues in the -gnatR section.
3291 * gnat_ugn.texi: Regenerate.
3292
3293 2019-06-30 Iain Sandoe <iain@sandoe.co.uk>
3294
3295 * gnatlink.adb (Link_Step): Remove duplicate -static-libgcc switches.
3296 Push -shared-libgcc explicitly, when it is the target default (unless
3297 overidden by the static flag).
3298 When the user has put an instance of shared/static-libgcc do not push
3299 a duplicate of this.
3300
3301 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
3302
3303 * gcc-interface/decl.c (gnat_to_gnu_entity): Beep up comment on SAVED,
3304 and tweak comment on the assertion about the scopes of Itypes. Do not
3305 skip the regular processing for Itypes that are E_Record_Subtype with
3306 a Cloned_Subtype. Get the Cloned_Subtype for every E_Record_Subtype
3307 if the type is dummy and hasn't got its own freeze node.
3308 <E_Record_Subtype>: Save again the DECL of the Cloned_Subtype, if any.
3309 <E_Access_Subtype>: Save again the DECL of the equivalent type.
3310 (Gigi_Equivalent_Type) <E_Access_Subtype>: New case.
3311
3312 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
3313
3314 * gcc-interface/utils.c (unchecked_convert): Tweak comment. Only skip
3315 dereferences when padding to have the same size on both sides. Do it
3316 for destination types with self-referential size too.
3317
3318 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
3319
3320 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the
3321 type requires strict alignment, then set the RM size to the type size.
3322 Rework handling of alignment and sizes of tagged types in ASIS mode.
3323 (validate_size): Rename local variable and remove special handling for
3324 strict-alignment types.
3325 * gcc-interface/utils.c (finish_record_type): Constify local variables
3326 and use properly typed constants.
3327
3328 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
3329
3330 * gcc-interface/decl.c (gnat_to_gnu_field): Rework error messages for
3331 fields requiring strict alignment, add explicit test on Storage_Unit
3332 for position and size, and mention type alignment for position.
3333
3334 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
3335
3336 * gcc-interface/trans.c (mark_visited_r): Set TYPE_SIZES_GIMPLIFIED on
3337 the main variant of a type, if any.
3338
3339 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
3340
3341 * gcc-interface/decl.c (set_nonaliased_component_on_array_type): Add
3342 missing guard for the presence of TYPE_CANONICAL.
3343 (set_reverse_storage_order_on_array_type): Likewise.
3344
3345 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
3346
3347 * gcc-interface/gigi.h (make_packable_type): Remove default value.
3348 (value_factor_p): Tweak prototype.
3349 * gcc-interface/decl.c (gnat_to_gnu_entity): Add comment.
3350 (gnat_to_gnu_component_type): Likewise.
3351 (gnat_to_gnu_field): Likewise. Fetch the position of the field earlier
3352 and simplify the condition under which the type is packed. Declare
3353 local variable is_bitfield. Pass 1 as max_align to make_packable_type
3354 if it is set to true.
3355 (copy_and_substitute_in_layout): Pass 0 to make_packable_type.
3356 * gcc-interface/utils.c (make_packable_array_type): New function.
3357 (make_packable_type): Use it to rewrite the type of array field.
3358 (maybe_pad_type): Pass align parameter to make_packable_type.
3359 (create_field_decl): Minor tweaks.
3360 (value_factor_p): Assert that FACTOR is a power of 2 and replace the
3361 modulo computation by a masking operation.
3362
3363 2019-06-25 Eric Botcazou <ebotcazou@adacore.com>
3364
3365 * gcc-interface/decl.c (gnat_to_gnu_entity): Remove superfluous test
3366 in previous change.
3367 * gcc-interface/gigi.h (maybe_character_type): Fix formatting.
3368 (maybe_character_value): Likewise.
3369
3370 2019-06-24 Jan Hubicka <jh@suse.cz>
3371
3372 * gcc-interface/decl.c (gnat_to_gnu_entity): Check that
3373 type is array or integer prior checking string flag.
3374 * gcc-interface/gigi.h (maybe_character_type): Likewise.
3375 (maybe_character_value): Likewise.
3376
3377 2019-06-24 Martin Sebor <msebor@redhat.com>
3378
3379 * gcc-interface/utils.c (handle_nonnull_attribute): Quote attribute
3380 name.
3381
3382 2019-06-18 Arnaud Charlet <charlet@adacore.com>
3383
3384 PR ada/80590
3385 * sem_ch5.adb (Analyze_Loop_Statement): Avoid exception propagation
3386 during normal processing.
3387
3388 2019-06-17 Arnaud Charlet <charlet@adacore.com>
3389
3390 PR ada/80590
3391 * exp_ch9.adb (Expand_N_Delay_Relative_Statement): Swap the two
3392 conditions to avoid a unnecessary exception propagation in the default
3393 case.
3394
3395 2019-05-28 Eric Botcazou <ebotcazou@adacore.com>
3396
3397 * gcc-interface/utils.c (handle_stack_protect_attribute): Move around.
3398
3399 2019-05-28 Eric Botcazou <ebotcazou@adacore.com>
3400
3401 * doc/gnat_rm/implementation_defined_pragmas.rst (Machine_Attribute):
3402 Document additional optional parameters.
3403 * sem_prag.adb (Analyze_Pragma) <Pragma_Machine_Attribute>: Accept
3404 more than one optional parameter.
3405 * gcc-interface/decl.c (prepend_one_attribute_pragma): Alphabetize
3406 the list of supported pragmas. Simplify the handling of parameters
3407 and add support for more than one optional parameter.
3408 * gcc-interface/utils.c (attr_cold_hot_exclusions): New constant.
3409 (gnat_internal_attribute_table): Add entry for no_icf, noipa, flatten,
3410 used, cold, hot, target and target_clones.
3411 (begin_subprog_body): Do not create the RTL for the subprogram here.
3412 (handle_noicf_attribute): New static function.
3413 (handle_noipa_attribute): Likewise.
3414 (handle_flatten_attribute): Likewise.
3415 (handle_used_attribute): Likewise.
3416 (handle_cold_attribute): Likewise.
3417 (handle_hot_attribute): Likewise.
3418 (handle_target_attribute): Likewise.
3419 (handle_target_clones_attribute): Likewise.
3420
3421 2019-05-28 Eric Botcazou <ebotcazou@adacore.com>
3422
3423 * gcc-interface/trans.c (lvalue_required_for_attribute_p): Return 0
3424 for 'Size too.
3425 (Identifier_to_gnu): Use the actual subtype for a reference to a
3426 packed array in a return statement.
3427 (Attribute_to_gnu) <Attr_Size>: Do not strip VIEW_CONVERT_EXPRs from
3428 the prefix in every case.
3429
3430 2019-05-28 Eric Botcazou <ebotcazou@adacore.com>
3431
3432 * gcc-interface/trans.c (gnat_to_gnu): Remove superfluous tests on
3433 Backend_Overflow_Checks_On_Target and rework comments.
3434
3435 2019-05-28 Eric Botcazou <ebotcazou@adacore.com>
3436
3437 * gcc-interface/trans.c (walk_nesting_tree): New static function.
3438 (finalize_nrv): Use it to walk the entire nesting tree.
3439
3440 2019-05-28 Eric Botcazou <ebotcazou@adacore.com>
3441
3442 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Remove
3443 obsolete test on Is_For_Access_Subtype.
3444
3445 2019-05-28 Eric Botcazou <ebotcazou@adacore.com>
3446
3447 * gcc-interface/decl.c (components_to_record): Set a name on the type
3448 created for the REP part, if any.
3449 * gcc-interface/utils.c (finish_record_type): Only take the maximum
3450 when merging sizes for a variant part at offset 0.
3451 (merge_sizes): Rename has_rep parameter into max.
3452
3453 2019-05-28 Eric Botcazou <ebotcazou@adacore.com>
3454
3455 * gcc-interface/utils.c (gnat_internal_attribute_table): Add support
3456 for stack_protect attribute.
3457 (handle_stack_protect_attribute): New static function.
3458
3459 2019-05-28 Eric Botcazou <ebotcazou@adacore.com>
3460
3461 * gcc-interface/decl.c (intrin_arglists_compatible_p): Do not return
3462 false if the internal builtin uses a variable list.
3463
3464 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
3465
3466 * gcc-interface/trans.c (Call_to_gnu): Do not initialize the temporary
3467 created out of addressability concerns if it's for the _Init parameter
3468 of an initialization procedure.
3469
3470 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
3471
3472 * gcc-interface/ada-builtin-types.def: New file.
3473 * gcc-interface/ada-builtins.def: Likewise.
3474 * gcc-interface/ada-tree.h (BUILT_IN_LIKELY): New macro.
3475 (BUILT_IN_UNLIKELY): Likewise.
3476 * gcc-interface/trans.c (independent_iterations_p): Initialize the
3477 auto-vector to 16 elements.
3478 (Call_to_gnu): Remove local variable and change the vector of actual
3479 parameters to an auto-vector. Do not convert actual parameters to
3480 the argument type for front-end built-in functions. Add support for
3481 front-end built-in functions.
3482 (build_noreturn_cond): Use internal instead of built-in function.
3483 * gcc-interface/utils.c (c_builtin_type): Include ada-builtin-types.def
3484 (install_builtin_function_types): Likewise.
3485 (install_builtin_functions): Include ada-builtins.def first.
3486
3487 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
3488
3489 * gcc-interface/utils.c (maybe_pad_type): Issue the warning for the
3490 specific case of component types preferably.
3491
3492 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
3493
3494 * gcc-interface/trans.c (Identifier_to_gnu): Minor tweaks.
3495 (gnat_to_gnu): Do not convert the result if it is a reference to an
3496 unconstrained array used as the prefix of an attribute reference that
3497 requires an lvalue.
3498
3499 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
3500
3501 * gcc-interface/trans.c (Gigi_Types_Compatible): New predicate.
3502 (Identifier_to_gnu): Use it to assert that the type of the identifier
3503 and that of its entity are compatible for gigi. Rename a couple of
3504 local variables and separate the processing of the result type.
3505
3506 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
3507
3508 * gcc-interface/trans.c (Call_to_gnu): Use the unpadded type when
3509 putting back an intermediate conversion the type of the actuals.
3510
3511 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
3512
3513 * gcc-interface/trans.c (gnat_to_gnu) <Shift operations>: Convert the
3514 count to the unsigned version of its base type before proceeding.
3515
3516 2019-05-16 Martin Sebor <msebor@redhat.com>
3517
3518 * gcc-interface/trans.c (check_inlining_for_nested_subprog): Quote
3519 reserved names.
3520
3521 2019-05-08 Arnaud Charlet <charlet@adacore.com>
3522
3523 * standard.ads.h: New file.
3524
3525 2019-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3526
3527 * gcc-interface/Makefile.in (install-gcc-specs): Use foreach.
3528 Honor DESTDIR.
3529
3530 2019-04-29 Michael K. Darling <darlingm@gmail.com>
3531
3532 * gnatvsn.ads: Bump Library_Version to 10.
3533
3534 2019-04-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3535 Bernd Edlinger <bernd.edlinger@hotmail.de>
3536 Jakub Jelinek <jakub@redhat.com>
3537
3538 PR target/89093
3539 * raise-gcc.c (TARGET_ATTRIBUTE): Define.
3540 (continue_unwind, personality_body, PERSONALITY_FUNCTION): Add
3541 TARGET_ATTRIBUTE.
3542
3543 2019-04-07 Eric Botcazou <ebotcazou@adacore.com>
3544
3545 * libgnat/i-cexten.ads (CFloat_128): New type.
3546
3547 2019-03-22 Dmitriy Anisimkov <anisimko@adacore.com>
3548
3549 PR ada/89583
3550 * libgnat/g-socket.adb (Bind_Socket, Connect_Socket,
3551 Send_Socket): Fix the computation of structure lengths passed to
3552 low level routines.
3553 (Is_IPv6_Address): Fix the number of expected colons.
3554
3555 2019-03-11 Martin Liska <mliska@suse.cz>
3556
3557 * gcc-interface/misc.c (gnat_post_options): Wrap option name in string
3558 format message and fix GNU coding style.
3559
3560 2019-02-08 Eric Botcazou <ebotcazou@adacore.com>
3561
3562 * gcc-interface/trans.c (gnat_to_gnu) <N_Aggregate>: Minor tweak.
3563 * gcc-interface/utils.c (convert): Do not pad when doing an unchecked
3564 conversion here. Use TREE_CONSTANT throughout the function.
3565 (unchecked_convert): Also pad if the source is a CONSTRUCTOR and the
3566 destination is a more aligned array type or a larger aggregate type,
3567 but not between original and packable versions of a type.
3568
3569 2019-02-08 Eric Botcazou <ebotcazou@adacore.com>
3570
3571 * gcc-interface/utils.c (max_size) <tcc_unary>: Be prepared for an
3572 operand with VOID_TYPE.
3573
3574 2019-02-08 Eric Botcazou <ebotcazou@adacore.com>
3575
3576 * gcc-interface/trans.c (elaborate_all_entities): Do not elaborate the
3577 entities of a package renaming another one.
3578
3579 2019-02-08 Eric Botcazou <ebotcazou@adacore.com>
3580
3581 * gcc-interface/trans.c (Regular_Loop_to_gnu): Replace tests on
3582 individual flag_unswitch_loops and flag_tree_loop_vectorize switches
3583 with test on global optimize switch.
3584 (Raise_Error_to_gnu): Likewise.
3585
3586 2019-02-07 Eric Botcazou <ebotcazou@adacore.com>
3587
3588 * libgnarl/s-linux__sparc.ads (ETIMEDOUT): Set to correct value.
3589
3590 2019-02-06 Arnaud Charlet <charlet@adacore.com>
3591
3592 * libgnarl/s-linux__x32.ads: Resync list of signals with s-linux.ads
3593
3594 2019-01-27 Eric Botcazou <ebotcazou@adacore.com>
3595
3596 * repinfo.adb (List_Component_Layout): Remove superfluous space for
3597 zero-sized field.
3598 * gcc-interface/ada-tree.h (TYPE_IS_EXTRA_SUBTYPE_P): New macro.
3599 * gcc-interface/gigi.h (create_extra_subtype): Declare.
3600 * gcc-interface/decl.c (TYPE_ARRAY_SIZE_LIMIT): Likewise.
3601 (update_n_elem): New function.
3602 (gnat_to_gnu_entity): Use create_extra_subtype to create extra subtypes
3603 instead of doing it manually.
3604 <E_Array_Type>: Use update_n_elem to compute the maximum size. Use the
3605 index type instead of base type for the bounds. Set TYPE_ARRAY_MAX_SIZE
3606 of the array to the maximum size.
3607 <E_Array_Subtype>: Create an extra subtype using the index type of the
3608 base array type for self-referential bounds. Use update_n_elem to
3609 compute the maximum size. Set TYPE_ARRAY_MAX_SIZE of the array to the
3610 maximum size.
3611 (gnat_to_gnu_field): Clear DECL_NONADDRESSABLE_P on discriminants.
3612 * gcc-interface/misc.c (gnat_get_alias_set): Return the alias set of
3613 the base type for an extra subtype.
3614 (gnat_type_max_size): Remove obsolete code.
3615 * gcc-interface/trans.c (Attribute_to_gnu): Minor tweak.
3616 (can_be_lower_p): Deal with pathological types.
3617 * gcc-interface/utils.c (create_extra_subtype): New function.
3618 (create_field_decl): Minor tweak.
3619 (max_size) <tcc_reference>: Compute a better value by using the extra
3620 subtypes on the self-referential bounds.
3621 <tcc_binary>: Rewrite. Deal with "negative value" in unsigned types.
3622 <tcc_expression>: Likewise.
3623 * gcc-interface/utils2.c (compare_arrays): Retrieve the original bounds
3624 of the arrays upfront. Swap only if the second length is not constant.
3625 Use comparisons on the original bounds consistently for the null tests.
3626 (build_binary_op): Use TYPE_IS_EXTRA_SUBTYPE_P macro.
3627 (build_allocator): Minor tweak.
3628
3629 2019-01-27 Eric Botcazou <ebotcazou@adacore.com>
3630
3631 * gcc-interface/decl.c (array_type_has_nonaliased_component): Return
3632 the same value for every dimension of a multidimensional array type.
3633
3634 2019-01-26 Eric Botcazou <ebotcazou@adacore.com>
3635
3636 * gcc-interface/trans.c (Regular_Loop_to_gnu): Use the SLOC of the
3637 iteration scheme, if present, throughout the translation.
3638
3639 2019-01-26 Eric Botcazou <ebotcazou@adacore.com>
3640
3641 * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Use
3642 DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT for the size to be assigned
3643 by a call to memset if the LHS is a DECL.
3644
3645 2019-01-26 Eric Botcazou <ebotcazou@adacore.com>
3646
3647 * gcc-interface/trans.c (struct loop_info_d): Remove artificial field.
3648 (Loop_Statement_to_gnu): Do not set it.
3649
3650 2019-01-26 Eric Botcazou <ebotcazou@adacore.com>
3651
3652 * gcc-interface/trans.c (Iterate_Acc_Clause_Arg): Fix formatting.
3653 (Acc_gnat_to_gnu): Likewise.
3654 (Acc_Data_to_gnu): Likewise.
3655 (Acc_Var_to_gnu): Likewise.
3656 (Acc_Reduc_to_gnu): Likewise.
3657 (Acc_Size_List_to_gnu): Likewise.
3658 (Pragma_to_gnu) <Pragma_Acc_Loop>: Likewise.
3659 <Pragma_Acc_Data>): Likewise.
3660 (find_loop_for): Remove default value for parameters.
3661 * gcc-interface/trans.c (gnat_to_gnu) <N_Op_And>: Merge into...
3662 <N_Op_Eq>): ...this.
3663
3664 2019-01-26 Eric Botcazou <ebotcazou@adacore.com>
3665
3666 * gcc-interface/decl.c (annotate_value) <INTEGER_CST>: Use test on
3667 the sign bit instead of on the sign of the value.
3668 <PLUS_EXPR>: Turn addition of negative constant into subtraction.
3669 <MULT_EXPR>: Add test for degenerate case.
3670 <BIT_AND_EXPR>: Simplify.
3671
3672 2019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
3673
3674 * s-oscons-tmplt.c (AF_INET6): Do not undefine for RTEMS.
3675
3676 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
3677
3678 PR other/16615
3679 * exp_ch11.adb: Change "can not" to "cannot".
3680 * sem_ch4.adb: Likewise.
3681
3682 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
3683
3684 PR other/16615
3685 * exp_ch9.adb: Mechanically replace "can not" with "cannot".
3686 * libgnat/s-regpat.ads: Likewise.
3687 * par-ch4.adb: Likewise.
3688 * set_targ.adb: Likewise.
3689 * types.ads: Likewise.
3690
3691 2019-01-08 Justin Squirek <squirek@adacore.com>
3692
3693 Revert:
3694 2018-07-31 Justin Squirek <squirek@adacore.com>
3695
3696 * lib-writ.adb (Write_With_Lines): Modfiy the generation
3697 of dependencies within ali files so that source unit
3698 bodies are properly listed even if said bodies are
3699 missing. Perform legacy behavior in GNATprove mode.
3700 * lib-writ.ads: Modify documentation to reflect current
3701 behavior.
3702
3703 and:
3704 2018-09-26 Justin Squirek <squirek@adacore.com>
3705
3706 * lib-writ.adb, lib-writ.ads (Write_With_Lines): Add
3707 documentation and an extra conditional check for RCI
3708 units so that generated ali files will list the spec
3709 only instead of a body when a body is not found.
3710
3711 2019-01-04 Eric Botcazou <ebotcazou@adacore.com>
3712
3713 * gnatvsn.ads: Bump copyright year.
3714
3715 2019-01-01 Jakub Jelinek <jakub@redhat.com>
3716
3717 Update copyright years.
3718
3719 * gnat_ugn.texi: Bump @copying's copyright year.
3720 * gnat_rm.texi: Likewise.
3721 \f
3722 Copyright (C) 2019 Free Software Foundation, Inc.
3723
3724 Copying and distribution of this file, with or without modification,
3725 are permitted in any medium without royalty provided the copyright
3726 notice and this notice are preserved.