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