1 2019-08-12 Yannick Moy <moy@adacore.com>
3 * sem_util.adb, sem_util.ads (Traverse_More_Func,
4 Traverse_More_Proc): Add formal parameter for Itypes traversal.
6 2019-08-12 Yannick Moy <moy@adacore.com>
8 * exp_attr.adb, exp_attr.ads (Expand_Size_Attribute): New
9 procedure to share part of the attribute expansion with
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.
18 2019-08-12 Yannick Moy <moy@adacore.com>
20 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Only
21 expand Enum_Rep attribute when its parameter is a literal.
23 2019-08-12 Justin Squirek <squirek@adacore.com>
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.
30 2019-08-12 Eric Botcazou <ebotcazou@adacore.com>
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.
39 2019-08-12 Eric Botcazou <ebotcazou@adacore.com>
41 * sprint.ads: Minor comment tweak.
43 2019-08-12 Eric Botcazou <ebotcazou@adacore.com>
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
50 2019-08-12 Yannick Moy <moy@adacore.com>
52 * sem_util.adb, sem_util.ads (Traverse_More_Func,
53 Traverse_More_Proc): New traversal subprograms.
55 2019-08-12 Jerome Lambourg <lambourg@adacore.com>
57 * libgnarl/s-taprop__vxworks.adb (Abort_Handler): Only call
58 s-tpopsp.Self when actually needed.
60 2019-08-12 Eric Botcazou <ebotcazou@adacore.com>
62 * exp_ch4.adb (Discrete_Range_Check): Return if checks are
65 2019-08-12 Eric Botcazou <ebotcazou@adacore.com>
67 * sem_res.adb: Add with & use clause for Sem_Mech and
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
73 2019-08-12 Eric Botcazou <ebotcazou@adacore.com>
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
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.
92 2019-08-12 Eric Botcazou <ebotcazou@adacore.com>
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.
99 2019-08-02 Alexandre Oliva <oliva@adacore.com>
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
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.
112 2019-07-23 Ed Schonberg <schonberg@adacore.com>
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.
119 2019-07-23 Eric Botcazou <ebotcazou@adacore.com>
121 * checks.adb (Convert_And_Check_Range): Add Suppress parameter
122 and pass it in the call to Insert_Actions. Rename local
124 (Generate_Range_Check): Minor comment fixes. Pass Range_Check
125 in the first call to Convert_And_Check_Range and All_Checks in
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.
131 2019-07-23 Eric Botcazou <ebotcazou@adacore.com>
133 * checks.adb (Activate_Overflow_Check): Remove redundant
135 * exp_ch4.adb (Discrete_Range_Check): Reset the overflow flag.
136 (Expand_N_Type_Conversion): Do not reset it here.
138 2019-07-23 Eric Botcazou <ebotcazou@adacore.com>
140 * repinfo.adb (List_Component_Layout): Pass Decimal to UI_Write.
141 (Write_Val): Likewise.
143 2019-07-23 Ed Schonberg <schonberg@adacore.com>
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
149 * aspects.adb (Find_Aspect): If the aspect being sought is
150 operational, do not ecamine the full view of a private type to
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.
156 2019-07-23 Yannick Moy <moy@adacore.com>
158 * sem_spark.ads (Is_Local_Context): New function.
159 * sem_spark.adb (Check_Declaration): Issue errors on violations
161 (Process_Path): Do not issue error on borrow/observe during
162 elaboration, as these are caught by the new rule.
164 2019-07-23 Yannick Moy <moy@adacore.com>
166 * exp_ch7.adb (Create_Finalizer): Force finalizer not to be
168 * exp_dbug.adb (Get_External_Name): Explain special case of
171 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
173 * repinfo.adb (List_Entities): Also list compiled-generated
174 types present as Etype of objects.
176 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
178 * sinfo.ads: Update the documentation about the
179 Do_Division_Check, Do_Overflow_Check and Do_Range_Check flags.
181 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
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.
187 2019-07-22 Ed Schonberg <schonberg@adacore.com>
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.
195 2019-07-22 Yannick Moy <moy@adacore.com>
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
201 (Read_Indexes): Handle the case of an if-expression or
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.
207 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
209 * checks.adb (Apply_Type_Conversion_Checks): Do not set
210 Do_Range_Check flag on conversions from fixed-point types
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
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
220 (Real_Range_Check): Remove redundant local variable and adjust.
221 Remove useless shortcut. Clear Do_Range_Check flag on all
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.
229 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
231 * sprint.ads: Fix pasto in comment.
233 2019-07-22 Javier Miranda <miranda@adacore.com>
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
240 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
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
248 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
250 * exp_attr.adb (Expand_Loop_Entry_Attribute): Beef up comment.
252 2019-07-22 Ed Schonberg <schonberg@adacore.com>
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.
265 2019-07-22 Ed Schonberg <schonberg@adacore.com>
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.
272 2019-07-22 Javier Miranda <miranda@adacore.com>
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.
289 2019-07-22 Yannick Moy <moy@adacore.com>
291 * sem_ch3.adb (Constrain_Access): Issue a message about ignored
294 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
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
301 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
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
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.
315 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
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
322 2019-07-22 Ed Schonberg <schonberg@adacore.com>
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.
329 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
331 * sem_aggr.adb (Rewrite_Bound): Be prepared for discriminals
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.
338 2019-07-22 Gary Dismukes <dismukes@adacore.com>
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
345 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
347 * sem_ch8.adb (Check_Constrained_Object): Further extend the
348 special optimization to all limited types.
350 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
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
357 2019-07-22 Nicolas Roche <roche@adacore.com>
359 * libgnat/s-valrea.adb (Scan_Real): Ignore non significative
360 digits to avoid converging to infinity in some cases.
362 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
364 * libgnat/g-encstr.adb (Encode_Wide_String): Fix oversight.
365 (Encode_Wide_Wide_String): Likewise.
367 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
369 * sem_warn.adb (Find_Var): Bail out for a function call with an
370 Out or In/Out parameter.
372 2019-07-22 Nicolas Roche <roche@adacore.com>
374 * terminals.c (__gnat_tty_waitpid): Support both blocking and
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.
380 2019-07-22 Ed Schonberg <schonberg@adacore.com>
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.
387 2019-07-22 Javier Miranda <miranda@adacore.com>
389 * freeze.adb (Freeze_Subprogram): Check that C++ constructors
390 must have external or link name.
392 2019-07-22 Ed Schonberg <schonberg@adacore.com>
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.
402 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
404 * exp_attr.adb (Expand_Loop_Entry_Attribute): Copy the condition
405 of a while loop instead of simply relocating it.
407 2019-07-18 Arnaud Charlet <charlet@adacore.com>
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.
418 2019-07-13 Andreas Schwab <schwab@linux-m68k.org>
420 * Makefile.rtl: Use g-sercom__linux.adb for all linuxes.
422 2019-07-11 Piotr Trojanek <trojanek@adacore.com>
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.
428 2019-07-11 Piotr Trojanek <trojanek@adacore.com>
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
434 * sem_util.adb (First_Global): Fix style.
436 2019-07-11 Yannick Moy <moy@adacore.com>
438 * sem_res.adb (Resolve_Call): Do not perform dimensionality
439 checking on inlined bodies.
441 2019-07-11 Yannick Moy <moy@adacore.com>
443 * debug.adb: Flip meaning of debug switch -gnatdF.
445 2019-07-11 Yannick Moy <moy@adacore.com>
447 * sem_eval.adb (Is_Same_Value): Add special case for rewritten
448 Loop_Entry attribute.
450 2019-07-11 Claire Dross <dross@adacore.com>
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
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
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
475 (Check_Call_Statement, Read_Indexes): Check wether we are
476 dealing with a subprogram pointer type before querying called
478 (Is_Subpath_Expression): Image attribute can appear inside a
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.
485 2019-07-11 Patrick Bernardi <bernardi@adacore.com>
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.
499 2019-07-11 Eric Botcazou <ebotcazou@adacore.com>
501 * Makefile.rtl: Add warning note about compilation flags and
504 2019-07-11 Ed Schonberg <schonberg@adacore.com>
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
511 2019-07-11 Dmitriy Anisimkov <anisimko@adacore.com>
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
520 2019-07-11 Claire Dross <dross@adacore.com>
522 * libgnat/a-cfhama.adb, libgnat/a-cfhase.adb (Free): Do not
523 reset the Has_Element flag if no element is freed.
525 2019-07-11 Arnaud Charlet <charlet@adacore.com>
527 * errno.c: Remove obsolete support for MaRTE OS.
529 2019-07-11 Ed Schonberg <schonberg@adacore.com>
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
542 2019-07-11 Hristian Kirtchev <kirtchev@adacore.com>
544 * bindo.adb: Remove the documentation of switch -d_N because it
546 * bindo-graphs.ads, bindo-graphs.adb (Is_Spec_Before_Body_Edge):
548 * bindo-writers.adb (Write_Dependency_Edge): Add the missing
549 case of a spec-before-body edge.
551 2019-07-11 Dmitriy Anisimkov <anisimko@adacore.com>
553 * libgnat/g-socket.ads (Mode_Type): Add a Socket_Raw enumerator.
554 * libgnat/g-socket.adb (Modes): Handle Socket_Raw.
556 2019-07-11 Justin Squirek <squirek@adacore.com>
558 * exp_ch9.adb (Build_Private_Protected_Declaration): Add
559 exception for the moving of pragmas to internally generated
560 specs for pragma Unreferenced.
562 2019-07-11 Bob Duff <duff@adacore.com>
564 * doc/gnat_ugn/gnat_utility_programs.rst: Fix inconsistent
565 documentation for gnatmetric.
566 * gnat_ugn.texi: Regenerate.
568 2019-07-11 Bob Duff <duff@adacore.com>
570 * doc/gnat_ugn/gnat_utility_programs.rst: Document gnatpp's
571 --spaces-only switch.
573 2019-07-11 Hristian Kirtchev <kirtchev@adacore.com>
575 * sem_util.adb (Null_Status): Assume that an erroneous construct
576 has an undefined null status.
578 2019-07-11 Hristian Kirtchev <kirtchev@adacore.com>
580 * checks.adb, exp_ch6.adb, gnat1drv.adb, sem_aux.adb,
581 sem_ch2.adb, sem_ch8.adb, sem_res.adb: Minor reformatting.
583 2019-07-11 Hristian Kirtchev <kirtchev@adacore.com>
585 * sem_ch8.adb (Analyze_Object_Renaming): Obtain the object being
586 renamed using routine Get_Object_Name which takes care of
588 (Get_Object_Name): New routine.
590 2019-07-11 Ed Schonberg <schonberg@adacore.com>
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.
596 2019-07-11 Hristian Kirtchev <kirtchev@adacore.com>
598 * sem_res.adb (Resolve_Op_Not): Do not rewrite an equality
599 operator into a function call when the operator is intrinsic.
601 2019-07-11 Thomas Quinot <quinot@adacore.com>
603 * sem_prag.adb (Analyze_Pragma, case pragma Check): Do not call
604 Set_SCO_Pragma_Enabled for the dynamic predicate case.
606 2019-07-11 Hristian Kirtchev <kirtchev@adacore.com>
608 * exp_util.ads, exp_util.adb (Needs_Finalization): Move to
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
616 2019-07-11 Eric Botcazou <ebotcazou@adacore.com>
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
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.
631 2019-07-11 Justin Squirek <squirek@adacore.com>
633 * checks.adb (Apply_Accessibility_Check): Add check for constant
634 folded conditions on accessibility checks.
636 2019-07-11 Arnaud Charlet <charlet@adacore.com>
638 * libgnarl/g-thread.ads, libgnarl/g-thread.adb (Get_Thread):
639 Update comments. Add new version taking a Task_Id.
641 2019-07-11 Hristian Kirtchev <kirtchev@adacore.com>
643 * bindo.adb: Update the section of switches and debugging
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
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
660 * bindo-elaborators.adb: Add use clause for
661 Bindo.Writers.Phase_Writers.
662 (Elaborate_Units): Signal the start and end of the unit
664 * bindo-graphs.adb: Add use clause for
665 Bindo.Writers.Phase_Writers.
666 (Find_Components): Signal the start and end of the component
668 (Find_Cycles): Signal the start and end of the cycle discovery
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
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
681 * debug.adb: Update the documentation of switch d_S.
683 2019-07-11 Yannick Moy <moy@adacore.com>
685 * sem_res.adb (Check_Argument_Order): Special case calls to
688 2019-07-10 Dmitriy Anisimkov <anisimko@adacore.com>
690 * libgnat/s-ststop.adb: Remove System.Strings.Stream_Ops
691 dependence on System.Streams.Stream_IO.
693 2019-07-10 Ed Schonberg <schonberg@adacore.com>
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.
699 2019-07-10 Doug Rupp <rupp@adacore.com>
701 * init.c: Do not attempt to re-arm guard page on x86_64-vx7(r2).
703 2019-07-10 Ed Schonberg <schonberg@adacore.com>
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.
710 2019-07-10 Yannick Moy <moy@adacore.com>
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
720 2019-07-10 Claire Dross <dross@adacore.com>
722 * sem_spark.adb (Check_Expression): Allow digits constraints as
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.
733 2019-07-10 Hristian Kirtchev <kirtchev@adacore.com>
735 * sem_ch6.adb (Check_Discriminant_Conformance): Use Find_Type to
736 discover the type of a full view discriminant.
738 2019-07-10 Arnaud Charlet <charlet@adacore.com>
740 * doc/gnat_ugn/gnat_and_program_execution.rst: Improve gnatmem's
741 doc for the depth switch.
743 2019-07-10 Bob Duff <duff@adacore.com>
745 * doc/gnat_ugn/gnat_utility_programs.rst: Document gnatpp's
746 --source-line-breaks switch.
748 2019-07-10 Justin Squirek <squirek@adacore.com>
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
758 * sem_util.adb (State_Has_Enabled_Property): Correct mispelling
761 2019-07-10 Simon Buist <buist@adacore.com>
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.
767 2019-07-10 Arnaud Charlet <charlet@adacore.com>
769 * sfn_scan.adb (Scan_SFN_Pragmas): Add pragma Assert.
771 2019-07-10 Hristian Kirtchev <kirtchev@adacore.com>
773 * sem_ch3.adb (Check_Nonoverridable_Aspects): Correct the
774 spelling in certain error messages.
775 (Check_Pragma_Implemented): Correct the spelling in certain
778 2019-07-10 Eric Botcazou <ebotcazou@adacore.com>
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.
785 2019-07-10 Yannick Moy <moy@adacore.com>
787 * osint-c.adb (Set_File_Name): Always add extension for multiple
790 2019-07-10 Corentin Gay <gay@adacore.com>
792 * sysdep.c: Put include directive for 'vxWorks.h' before any
793 other VxWorks headers.
795 2019-07-10 Eric Botcazou <ebotcazou@adacore.com>
797 * doc/gnat_rm/implementation_defined_attributes.rst
798 (Scalar_Storage_Order): Minor tweaks. Add note about debuggers.
799 * gnat_rm.texi: Regenerate.
801 2019-07-10 Hristian Kirtchev <kirtchev@adacore.com>
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
809 2019-07-10 Hristian Kirtchev <kirtchev@adacore.com>
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.
816 2019-07-10 Joffrey Huguet <huguet@adacore.com>
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.
823 2019-07-10 Doug Rupp <rupp@adacore.com>
825 * sysdep.c (__gnat_is_file_not_found_error): Reformulate to also
826 work for vxworks7r2 SR0610.
828 2019-07-10 Doug Rupp <rupp@adacore.com>
830 * env.c (__gnat_environ): Reformulate to also work for
833 2019-07-10 Patrick Bernardi <bernardi@adacore.com>
835 * Makefile.rtl: Handle vxworks7r2 ppc target
837 2019-07-10 Hristian Kirtchev <kirtchev@adacore.com>
839 * bindo.adb: Update the section on switches.
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):
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
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.
878 2019-07-10 Yannick Moy <moy@adacore.com>
880 * sem_spark.adb (Get_Root_Object): Replace precondition by error
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
887 * sem_util.adb (First_Global): Fix access to global on
890 2019-07-10 Javier Miranda <miranda@adacore.com>
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"
899 2019-07-10 Ed Schonberg <schonberg@adacore.com>
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.
906 2019-07-10 Hristian Kirtchev <kirtchev@adacore.com>
908 * bindo-elaborators.adb (Elaborate_Units): Set attribute
909 Elab_Position of all elaborated units.
910 (Set_Unit_Elaboration_Positions): New routine.
912 2019-07-10 Gary Dismukes <dismukes@adacore.com>
914 * exp_util.adb: Reformatting and a typo fix.
916 2019-07-10 Yannick Moy <moy@adacore.com>
918 * exp_util.adb (Remove_Side_Effects): Prefer renamings for
919 objects of possible owning type in GNATprove mode.
921 2019-07-09 Ed Schonberg <schonberg@adacore.com>
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
930 2019-07-09 Justin Squirek <squirek@adacore.com>
932 * sem_eval.adb (Expr_Value_E): Add conditional to correctly
933 handle constant enumerated character types.
935 2019-07-09 Eric Botcazou <ebotcazou@adacore.com>
937 * libgnarl/s-osinte__mingw.ads (CRITICAL_SECTION): Use proper
938 type for SpinCount component.
940 2019-07-09 Justin Squirek <squirek@adacore.com>
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
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.
954 2019-07-09 Ed Schonberg <schonberg@adacore.com>
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.
962 2019-07-09 Hristian Kirtchev <kirtchev@adacore.com>
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):
978 2019-07-09 Piotr Trojanek <trojanek@adacore.com>
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
991 * gnat_ugn.texi: Generate.
993 2019-07-09 Hristian Kirtchev <kirtchev@adacore.com>
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
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
1010 * bindo-diagnostics.adb: Add with end use clauses for Restrict
1012 (Output_Dynamic_Model_Suggestions): Remove.
1013 (Output_Invocation_Related_Suggestions): New routine.
1014 (Output_Suggestions): Output all invocation-related suggestions
1016 * bindo-elaborators.adb: Remove types Comparator_Ptr and
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
1026 (At_Least_One_Edge_Satisfies): New routine.
1027 (Contains_Elaborate_All_Edge): Reimplement.
1028 (Contains_Static_Successor_Edge, Contains_Task_Activation): New
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
1039 (Contains_Static_Successor_Edge, Contains_Task_Activation): New
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.
1046 2019-07-09 Piotr Trojanek <trojanek@adacore.com>
1048 * exp_util.adb (Containing_Package_With_Ext_Axioms): Replace
1049 low-level Ekind test with a high-level wrapper.
1051 2019-07-09 Arnaud Charlet <charlet@adacore.com>
1053 * libgnat/s-memory.adb: Disable calls to Abort defer/undefer
1054 when ZCX_By_Default.
1056 2019-07-09 Javier Miranda <miranda@adacore.com>
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
1063 2019-07-09 Hristian Kirtchev <kirtchev@adacore.com>
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
1069 2019-07-09 Ed Schonberg <schonberg@adacore.com>
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.
1079 2019-07-09 Hristian Kirtchev <kirtchev@adacore.com>
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
1088 * sem_elab.adb: Update the section on switches to remove
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
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.
1101 2019-07-09 Eric Botcazou <ebotcazou@adacore.com>
1103 * repinfo.adb (List_Entities): Disregard formals altogether.
1104 (List_Name): Properly escape the double quote in the JSON
1107 2019-07-09 Javier Miranda <miranda@adacore.com>
1109 * exp_util.adb (Remove_Side_Effects): Preserve the
1110 Do_Range_Check flag.
1112 2019-07-09 Yannick Moy <moy@adacore.com>
1114 * sinfo.ads: Refine comment for Do_Range_Check.
1116 2019-07-09 Yannick Moy <moy@adacore.com>
1118 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Expand
1119 attribute reference on Enum_Rep.
1121 2019-07-09 Ed Schonberg <schonberg@adacore.com>
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.
1131 2019-07-09 Yannick Moy <moy@adacore.com>
1133 * freeze.adb (Build_Renamed_Body): Do not set body to inline in
1136 2019-07-09 Yannick Moy <moy@adacore.com>
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.
1143 2019-07-09 Piotr Trojanek <trojanek@adacore.com>
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.
1153 2019-07-09 Yannick Moy <moy@adacore.com>
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.
1160 2019-07-09 Piotr Trojanek <trojanek@adacore.com>
1162 * einfo.ads: Fix a typo.
1164 2019-07-09 Ed Schonberg <schonberg@adacore.com>
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.
1172 2019-07-09 Arnaud Charlet <charlet@adacore.com>
1174 * gnat1drv.adb (Adjust_Global_Switches): Set
1175 Dynamic_Elaboration_Checks to True in CodePeer mode.
1177 2019-07-09 Yannick Moy <moy@adacore.com>
1179 * sem_spark.adb (Get_Perm_Or_Tree): Issue an error when
1180 encountering unknown global variable.
1182 2019-07-09 Yannick Moy <moy@adacore.com>
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
1193 2019-07-09 Eric Botcazou <ebotcazou@adacore.com>
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.
1209 2019-07-09 Arnaud Charlet <charlet@adacore.com>
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.
1215 2019-07-08 Eric Botcazou <ebotcazou@adacore.com>
1217 * repinfo.adb (List_Common_Type_Info): New procedure extracted
1219 (List_Type_Info): ...here. Call it for the common information,
1220 start with a blank line and output the linker section at the
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.
1228 2019-07-08 Dmitriy Anisimkov <anisimko@adacore.com>
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
1243 * xoscons.adb (Output_Info): Remove the "Interfaces.C." prefix
1244 for subtypes generation.
1246 2019-07-08 Arnaud Charlet <charlet@adacore.com>
1248 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
1249 Update documentation on No_Exceptions restriction.
1250 * gnat_rm.texi: Regenerate.
1252 2019-07-08 Dmitriy Anisimkov <anisimko@adacore.com>
1254 * libgnat/s-os_lib.adb: Do not call __gnat_kill for Invalid_Pid.
1256 2019-07-08 Piotr Trojanek <trojanek@adacore.com>
1258 * sem_util.adb (Enclosing_Package_Or_Subprogram): Do not expect
1259 package and subprogram bodies.
1261 2019-07-08 Bob Duff <duff@adacore.com>
1263 * doc/gnat_ugn/gnat_utility_programs.rst: Remove documentation
1264 of ignored GNATpp switch.
1266 2019-07-08 Hristian Kirtchev <kirtchev@adacore.com>
1268 * doc/gnat_rm/implementation_defined_pragmas.rst:
1269 Update the documentation of pragma Initialize_Scalars.
1270 * gnat_rm.texi: Regenerate.
1272 2019-07-08 Javier Miranda <miranda@adacore.com>
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.
1280 2019-07-08 Hristian Kirtchev <kirtchev@adacore.com>
1282 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Do not
1283 register an address clause when its prefix denotes a generic
1286 2019-07-08 Hristian Kirtchev <kirtchev@adacore.com>
1288 * bindo-diagnostics.adb (Diagnose_Cycle): Capture the presence
1289 of an Elaborate_All edge before iterating over the edges of the
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.
1299 2019-07-08 Piotr Trojanek <trojanek@adacore.com>
1301 * lib-xref-spark_specific.adb (Create_Heap): Set dummy Etype for
1302 the fake __HEAP entity.
1304 2019-07-08 Daniel Mercier <mercier@adacore.com>
1306 * gnat1drv.adb: Suppress warnings on memory representation in
1307 CodePeer compiler mode.
1309 2019-07-08 Nicolas Roche <roche@adacore.com>
1311 * rtinit.c (__gnat_runtime_initialize): Remove dependency on
1314 2019-07-08 Doug Rupp <rupp@adacore.com>
1316 * Makefile.rtl: Handle vxworks7r2 in x86_64 and x86 vxworks7.
1318 2019-07-08 Dmitriy Anisimkov <anisimko@adacore.com>
1320 * Makefile.rtl: Use g-sercom__linux.adb for all linuxes.
1322 2019-07-08 Yannick Moy <moy@adacore.com>
1324 * expander.adb (Expand): Do not reset Analyzed flag always.
1325 * sem_eval.adb (Fold_Ureal): Mark node as analyzed.
1327 2019-07-08 Ed Schonberg <schonberg@adacore.com>
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.
1334 2019-07-08 Hristian Kirtchev <kirtchev@adacore.com>
1336 * bindo.adb: Update the section on terminology to include new
1337 concepts. Update the section on switches to include new
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
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
1352 * bindo-builders.ads (Build_Library_Graph): Update the parameter
1354 * bindo-diagnostics.adb (Diagnose_Cycle): Track the presence of
1355 an Elaborate_All edge throughout the inspection of the cycle's
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
1400 (Trace_Unelaborated_Vertices): Remove.
1401 (Trace_Vertex): Output the number of strong and weak
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
1409 (Add_Vertex): Provide default values for strong and weak
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.
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
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
1449 (Pending_Predecessors): Removed.
1450 (Pending_Predecessors_For_Elaboration,
1451 Pending_Strong_Predecessors, Pending_Weak_Predecessors): New
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
1457 (Write_Library_Graph_Vertex): Output the strong and weak
1459 * bindo-writers.ads (Write_Components): Moved to the body.
1460 * debug.adb: Add and document new GNATbind switches -d_a, -d_b,
1462 * bindo-validators.adb: Minor reformattings.
1464 2019-07-08 Bob Duff <duff@adacore.com>
1466 * libgnat/g-sercom.ads, libgnat/g-sercom__linux.adb (Data_Rate):
1467 Support additional data rates.
1469 2019-07-08 Olivier Hainque <hainque@adacore.com>
1471 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Don't request
1472 DECL_ARTIFICIAL_P on elab proc declarations.
1474 2019-07-08 Eric Botcazou <ebotcazou@adacore.com>
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.
1483 2019-07-08 Ed Schonberg <schonberg@adacore.com>
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
1491 2019-07-08 Javier Miranda <miranda@adacore.com>
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).
1498 2019-07-08 Bob Duff <duff@adacore.com>
1500 * doc/gnat_ugn/gnat_utility_programs.rst: Document handling of
1501 preprocessor directives in GNATpp.
1503 2019-07-08 Javier Miranda <miranda@adacore.com>
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.
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
1518 * sem_prag.adb (Initialize): Initialize table
1519 Compile_Time_Warning_Errors.
1521 2019-07-08 Ed Schonberg <schonberg@adacore.com>
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.
1529 2019-07-08 Javier Miranda <miranda@adacore.com>
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.
1535 2019-07-08 Justin Squirek <squirek@adacore.com>
1537 * exp_imgv.adb (Build_Enumeration_Image_Tables): Default SSO for
1538 the building of image tables.
1539 (Expand_Image_Attribute): Minor cleanup.
1541 2019-07-08 Dmitriy Anisimkov <anisimko@adacore.com>
1543 * libgnat/g-socket.ads, libgnat/g-socket.adb: Improve
1545 (Get_Socket_Option, Set_Socket_Option): Remove default value for
1548 2019-07-08 Ed Schonberg <schonberg@adacore.com>
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
1557 2019-07-05 Justin Squirek <squirek@adacore.com>
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.
1566 2019-07-05 Ed Schonberg <schonberg@adacore.com>
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
1573 2019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
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
1584 (For_Each_Invocation_Construct, For_Each_Invocation_Relation):
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
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
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
1614 (palgc, plgc): New debug routine.
1615 (Write_Components): Moved to the spec. Add a header for the
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
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
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
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
1655 * switch-b.adb (Scan_Binder_Switches): Prepare the routine for
1656 the switch from the old to the new elaboration order mechanism.
1658 2019-07-05 Joffrey Huguet <huguet@adacore.com>
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.
1674 2019-07-05 Arnaud Charlet <charlet@adacore.com>
1676 * doc/gnat_ugn/platform_specific_information.rst: Refresh doc on
1677 installing from the command line on Windows. Remove obsolete
1679 * gnat_ugn.texi: Regenerate.
1681 2019-07-05 Vasiliy Fofanov <fofanov@adacore.com>
1683 * libgnat/a-wichha.ads (Is_Alphanumeric): Replace comment with
1684 the correct one. Also capitalize references to False
1687 2019-07-05 Eric Botcazou <ebotcazou@adacore.com>
1689 * exp_ch4.adb (Expand_N_Indexed_Component): Do not expand actual
1690 parameters of function calls here either.
1692 2019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
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.
1699 2019-07-05 Ed Schonberg <schonberg@adacore.com>
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.
1708 2019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
1710 * exp_ch7.adb (Cleanup_Record): Use the underlying type when
1711 checking for components with tasks.
1713 2019-07-05 Arnaud Charlet <charlet@adacore.com>
1715 * libgnarl/s-osinte__linux.ads: Link with -lrt before -lpthread.
1717 2019-07-05 Ed Schonberg <schonberg@adacore.com>
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,
1723 2019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
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.
1730 2019-07-05 Arnaud Charlet <charlet@adacore.com>
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.
1737 2019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
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.
1747 2019-07-05 Javier Miranda <miranda@adacore.com>
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.
1759 2019-07-05 Piotr Trojanek <trojanek@adacore.com>
1761 * einfo.ads, sem_res.adb: Typo fixes in comments.
1763 2019-07-05 Bob Duff <duff@adacore.com>
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.
1770 2019-07-05 Ed Schonberg <schonberg@adacore.com>
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.
1778 2019-07-05 Javier Miranda <miranda@adacore.com>
1780 * debug.adb (-gnatd.K): Leave available this switch.
1781 * contracts.adb (Build_And_Analyze_Contract_Only_Subprograms):
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.
1787 2019-07-05 Pierre-Marie de Rodat <derodat@adacore.com>
1789 * libgnat/a-strunb.ads: Import documentation from the RM
1791 2019-07-05 Pierre-Marie de Rodat <derodat@adacore.com>
1793 * libgnat/a-strfix.ads: Import documentation from the RM
1795 2019-07-05 Yannick Moy <moy@adacore.com>
1797 * adabkend.adb (Scan_Back_End_Switches): Accept -Og and -Ofast
1800 2019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
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):
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
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
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
1838 (Body_Placement): New routine.
1839 (Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind):
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
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
1864 (Build_Library_Graph): Update the parameter profile. Update the
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
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
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
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):
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
1961 * bindo-units.ads: Add new instantiated data structure
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
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
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
1993 * lib-writ.ads: Add a documentation section on invocation graph
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.
2009 2019-07-05 Ed Schonberg <schonberg@adacore.com>
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,
2017 2019-07-05 Yannick Moy <moy@adacore.com>
2019 * sem_res.adb (Resolve_Call): Cannot inline in quantified
2021 * sem_util.adb, sem_util.ads (In_Quantified_Expression): New
2024 2019-07-05 Bob Duff <duff@adacore.com>
2026 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
2028 * gnat_rm.texi: Regenerate.
2030 2019-07-05 Bob Duff <duff@adacore.com>
2032 * exp_attr.adb (Input): Take the No_Stream_Optimizations
2033 restriction into account.
2035 2019-07-05 Claire Dross <dross@adacore.com>
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
2041 2019-07-05 Dmitriy Anisimkov <anisimko@adacore.com>
2043 * libgnat/g-traceb.ads, libgnat/g-traceb.adb (Call_Chain): New
2046 2019-07-04 James Clarke <jrtc27@debian.org>
2048 * libgnarl/s-osinte__kfreebsd-gnu.ads (clockid_t): Make type
2050 (CLOCK_REALTIME): Make value public.
2052 2019-07-04 Javier Miranda <miranda@adacore.com>
2054 * exp_tss.adb (Init_Proc): Adding missing support for access to
2055 subprograms and access to protected subprograms of non-default
2058 2019-07-04 Eric Botcazou <ebotcazou@adacore.com>
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
2064 * validsw.ads (Validity_Check_Copies): Alphabetize.
2065 * validsw.adb (Reset_Validity_Check_Options): Set all options to
2067 (Save_Validity_Check_Options): Save all options.
2069 2019-07-04 Hristian Kirtchev <kirtchev@adacore.com>
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
2077 2019-07-04 Joffrey Huguet <huguet@adacore.com>
2079 * libgnarl/a-taside.ads: Add assertion policy to ignore
2081 (Abort_Task, Is_Terminated, Is_Callable): Add preconditions.
2083 2019-07-04 Eric Botcazou <ebotcazou@adacore.com>
2085 * doc/gnat_rm/implementation_defined_pragmas.rst: Fix
2086 capitalization and parenthesis glitches.
2087 * gnat_rm.texi: Regenerate.
2089 2019-07-04 Ed Schonberg <schonberg@adacore.com>
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
2098 2019-07-04 Hristian Kirtchev <kirtchev@adacore.com>
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
2118 (Initialize_Internal_Representation): Initialize all internal
2120 (Initialize_Scenario_Storage): Initialize all internal data
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.
2128 2019-07-04 Gary Dismukes <dismukes@adacore.com>
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
2135 2019-07-04 Yannick Moy <moy@adacore.com>
2137 * sem_prag.adb (Check_Library_Level_Entity): Update for new rule
2140 2019-07-04 Justin Squirek <squirek@adacore.com>
2142 * sem_disp.adb (Check_Controlling_Formals): Obtain the full view
2143 before type comparison.
2145 2019-07-04 Ed Schonberg <schonberg@adacore.com>
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,
2156 2019-07-04 Justin Squirek <squirek@adacore.com>
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
2162 * exp_ch4.adb (Expand_N_Allocator): Add comment to note heavy
2165 2019-07-04 Bob Duff <duff@adacore.com>
2167 * sem_ch3.adb (Access_Definition): Do not create a master unless
2168 Tasking_Allowed. Otherwise, this fails on restricted runtimes.
2170 2019-07-04 Hristian Kirtchev <kirtchev@adacore.com>
2172 * sem_util.adb (Propagate_DIC_Attributes): Do not propagate the
2173 Default_Initial_Condition attributes to an incomplete type.
2175 2019-07-04 Ed Schonberg <schonberg@adacore.com>
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).
2184 2019-07-04 Piotr Trojanek <trojanek@adacore.com>
2186 * sem_util.adb (Yields_Synchronized_Object): Fix typos in
2189 2019-07-04 Yannick Moy <moy@adacore.com>
2191 * sem_util.adb (Yields_Synchronized_Object): Adapt to new SPARK
2194 2019-07-04 Yannick Moy <moy@adacore.com>
2196 * sem_spark.adb (Check_Statement): Only check permission of
2197 object in extended return when it is of a deep type.
2199 2019-07-04 Justin Squirek <squirek@adacore.com>
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
2208 2019-07-04 Ed Schonberg <schonberg@adacore.com>
2210 * exp_unst.adb: Handle conditional expressions.
2212 2019-07-04 Yannick Moy <moy@adacore.com>
2214 * sem_spark.adb (Check_Package_Spec, Check_Package_Body): Only
2215 analyze parts of the code marked in SPARK.
2217 2019-07-04 Hristian Kirtchev <kirtchev@adacore.com>
2219 * erroutc.adb, exp_aggr.adb, inline.adb, opt.adb, sem_ch3.adb:
2222 2019-07-04 Yannick Moy <moy@adacore.com>
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
2229 (Set_Perm_Prefixes, Set_Perm_Extensions,
2230 Set_Perm_Extensions_Move): Pass suitable argument for the
2233 2019-07-04 Arnaud Charlet <charlet@adacore.com>
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
2245 2019-07-04 Piotr Trojanek <trojanek@adacore.com>
2247 * opt.adb (Set_Config_Switches): Keep assertions policy as
2248 enabled when analysing internal units in GNATprove mode.
2250 2019-07-04 Arnaud Charlet <charlet@adacore.com>
2252 * exp_ch4.adb (Expand_Short_Circuit_Operator): Strip
2253 N_Variable_Reference_Marker when checking for the presence of
2256 2019-07-04 Arnaud Charlet <charlet@adacore.com>
2258 * exp_aggr.adb (Check_Component): Take into account type
2261 2019-07-04 Dmitriy Anisimkov <anisimko@adacore.com>
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
2270 * libgnat/g-socket.adb (Set_Socket_Option): Refactor to remove
2271 500ms from the requested timeout only on old Windows version.
2273 2019-07-04 Thomas Quinot <quinot@adacore.com>
2275 * get_scos.adb: Remove bogus, dead code.
2277 2019-07-04 Ed Schonberg <schonberg@adacore.com>
2279 * sem_dim.adb (Analyze_Dimension_Array_Aggregate): If the
2280 component is an entity name, its dimensions are those of its
2283 2019-07-03 Bob Duff <duff@adacore.com>
2285 * doc/gnat_ugn/gnat_utility_programs.rst: Document new flags in
2288 2019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
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
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
2316 (Has_Next, Iterate_Forced_Units, Next): New routine.
2317 * namet.adb, namet.ads (Present): New routine.
2319 2019-07-03 Bob Duff <duff@adacore.com>
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.
2326 2019-07-03 Yannick Moy <moy@adacore.com>
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.
2332 2019-07-03 Johannes Kanig <kanig@adacore.com>
2334 * osint.ads, osint.adb (Get_First_Main_File_Name): New routine
2335 to access the first file provided on the command line.
2337 2019-07-03 Ed Schonberg <schonberg@adacore.com>
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
2344 2019-07-03 Justin Squirek <squirek@adacore.com>
2346 * sem_ch8.adb (Analyze_Object_Renaming): Add call to search for
2347 the appropriate actual subtype of the object renaming being
2349 (Check_Constrained_Object): Minor cleanup.
2351 2019-07-03 Yannick Moy <moy@adacore.com>
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.
2360 2019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
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.
2367 2019-07-03 Gary Dismukes <dismukes@adacore.com>
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.
2374 2019-07-03 Bob Duff <duff@adacore.com>
2376 * sem_warn.adb (Check_Infinite_Loop_Warning): Avoid the warning
2377 if an Iterator_Specification is present.
2379 2019-07-03 Bob Duff <duff@adacore.com>
2381 * doc/gnat_ugn/gnat_utility_programs.rst: Document default
2384 2019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
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
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
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
2438 * gnatbind.adb: Add with and use clause for Bindo. Use the new
2439 Bindo elaboration order only when -d_N is in effect.
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
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
2478 * sem_util.adb (Enclosing_Generic_Body, Enclosing_Generic_Unit):
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
2507 (Set_Save_Invocation_Graph_Of_Body): New routine along with
2509 * switch-b.adb (Scan_Binder_Switches): Refactor the scanning of
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):
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
2522 * libgnat/g-graphs.ads: Update the initialization of
2523 No_Component. Add type Component_Vertex_Iterator. Remove type
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
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.
2536 2019-07-03 Yannick Moy <moy@adacore.com>
2538 * sem_spark.adb: Add support for locally borrowing and observing
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.
2546 2019-07-03 Ed Schonberg <schonberg@adacore.com>
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
2557 2019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
2559 * bindgen.adb, inline.adb, layout.adb, sem_ch12.adb,
2560 sem_ch13.adb, sem_ch7.adb, styleg.adb: Minor reformatting.
2562 2019-07-03 Bob Duff <duff@adacore.com>
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.
2575 2019-07-03 Eric Botcazou <ebotcazou@adacore.com>
2577 * doc/gnat_ugn/building_executable_programs_with_gnat.rst
2578 (Warning message control): Document that -gnatw.z/Z apply to
2580 * freeze.adb (Freeze_Entity): Give -gnatw.z warning for array
2581 types as well, but not if the specified alignment is the minimum
2583 * gnat_ugn.texi: Regenerate.
2585 2019-07-03 Bob Duff <duff@adacore.com>
2587 * einfo.ads, exp_util.adb, layout.ads, sinfo.ads: Spell "laid"
2590 2019-07-03 Ed Schonberg <schonberg@adacore.com>
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.
2601 2019-07-03 Eric Botcazou <ebotcazou@adacore.com>
2603 * layout.adb (Layout_Type): Do not set the component size of an
2604 array with a scalar component if the component type is
2607 2019-07-03 Ed Schonberg <schonberg@adacore.com>
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.
2614 2019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
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.
2622 2019-07-03 Arnaud Charlet <charlet@adacore.com>
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
2628 * opt.ads (Generate_C_Code): Update comment.
2629 * switch-b.adb (Scan_Binder_Switches): Add handling for -G.
2631 2019-07-03 Arnaud Charlet <charlet@adacore.com>
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.
2637 2019-07-03 Justin Squirek <squirek@adacore.com>
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.
2644 2019-07-03 Arnaud Charlet <charlet@adacore.com>
2646 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
2647 Clarify wording on No_Multiple_Elaboration.
2648 * gnat_rm.texi: Regenerate.
2650 2019-07-03 Ed Schonberg <schonberg@adacore.com>
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
2657 2019-07-03 Eric Botcazou <ebotcazou@adacore.com>
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.
2663 2019-07-03 Javier Miranda <miranda@adacore.com>
2665 * exp_attr.adb (Expand_Min_Max_Attribute): Code cleanup:
2666 removing code that it is now never executed in the CCG compiler
2669 2019-07-02 Iain Sandoe <iain@sandoe.co.uk>
2671 * libgnat/system-darwin-ppc.ads: Set Stack_Check_Probes True for
2674 2019-07-01 Ed Schonberg <schonberg@adacore.com>
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,
2680 2019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
2682 * checks.adb, exp_ch9.adb, exp_unst.adb, sem_ch4.adb,
2683 sem_prag.adb, sem_spark.adb: Minor reformatting.
2685 2019-07-01 Ed Schonberg <schonberg@adacore.com>
2687 * sem_attr.adb (Analyze_Attribute, case Enum_Rep): Allow prefix
2688 of attribute to be an attribute reference of a discrete type.
2690 2019-07-01 Eric Botcazou <ebotcazou@adacore.com>
2692 * sem_ch12.adb (Analyze_Subprogram_Instantiation): Move up
2693 handling of Has_Pragma_Inline_Always and deal with
2694 Has_Pragma_No_Inline.
2696 2019-07-01 Ed Schonberg <schonberg@adacore.com>
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.
2704 2019-07-01 Yannick Moy <moy@adacore.com>
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.
2710 2019-07-01 Dmitriy Anisimkov <anisimko@adacore.com>
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.
2716 2019-07-01 Ed Schonberg <schonberg@adacore.com>
2718 * sem_prag.adb (Analyze_Pragma, case Weak_External): Pragma only
2719 applies to entities with run-time addresses, not to types.
2721 2019-07-01 Piotr Trojanek <trojanek@adacore.com>
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).
2726 2019-07-01 Piotr Trojanek <trojanek@adacore.com>
2728 * sysdep.c: Cleanup references to LynuxWorks in docs and
2731 2019-07-01 Ed Schonberg <schonberg@adacore.com>
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
2739 2019-07-01 Eric Botcazou <ebotcazou@adacore.com>
2741 * exp_ch9.adb (Check_Inlining): Deal with Has_Pragma_No_Inline.
2743 2019-07-01 Ed Schonberg <schonberg@adacore.com>
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.
2751 2019-07-01 Pat Rogers <rogers@adacore.com>
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.
2757 2019-07-01 Justin Squirek <squirek@adacore.com>
2759 * libgnat/s-win32.ads: Add definition for ULONG, modify
2760 OVERLAPPED type, and add appropriate pragmas.
2762 2019-07-01 Bob Duff <duff@adacore.com>
2764 * gnat1drv.adb (gnat1drv): Call Write_ALI if the main unit is
2767 2019-07-01 Yannick Moy <moy@adacore.com>
2769 * sem_ch4.adb (Operator_Check): Refine error message.
2771 2019-07-01 Piotr Trojanek <trojanek@adacore.com>
2773 * libgnat/a-calend.ads: Revert "Global => null" contracts on
2776 2019-07-01 Piotr Trojanek <trojanek@adacore.com>
2778 * exp_attr.adb, libgnat/g-graphs.ads: Fix typos in comments:
2779 componant -> component.
2781 2019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
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.
2788 2019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
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.
2795 2019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
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
2803 2019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
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
2811 2019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
2813 * exp_attr.adb, exp_ch7.adb, exp_unst.adb, sem_ch3.adb,
2814 sem_util.adb, uintp.adb, uintp.ads: Minor reformatting.
2816 2019-07-01 Javier Miranda <miranda@adacore.com>
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.
2823 2019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
2825 * impunit.adb: Add GNAT.Graphs to list Non_Imp_File_Names_95.
2826 * Makefile.rtl, gcc-interface/Make-lang.in: Register unit
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.
2847 2019-07-01 Dmitriy Anisimkov <anisimko@adacore.com>
2849 * libgnat/g-sothco.adb (Get_Address): Fix the case when AF_INET6
2852 2019-07-01 Ed Schonberg <schonberg@adacore.com>
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.
2858 2019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
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
2865 2019-07-01 Pierre-Marie de Rodat <derodat@adacore.com>
2867 * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix
2868 formatting issues in the -gnatR section.
2869 * gnat_ugn.texi: Regenerate.
2871 2019-06-30 Iain Sandoe <iain@sandoe.co.uk>
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.
2879 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
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.
2890 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
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.
2896 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
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.
2906 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
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.
2912 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
2914 * gcc-interface/trans.c (mark_visited_r): Set TYPE_SIZES_GIMPLIFIED on
2915 the main variant of a type, if any.
2917 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
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.
2923 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
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.
2941 2019-06-25 Eric Botcazou <ebotcazou@adacore.com>
2943 * gcc-interface/decl.c (gnat_to_gnu_entity): Remove superfluous test
2945 * gcc-interface/gigi.h (maybe_character_type): Fix formatting.
2946 (maybe_character_value): Likewise.
2948 2019-06-24 Jan Hubicka <jh@suse.cz>
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.
2955 2019-06-24 Martin Sebor <msebor@redhat.com>
2957 * gcc-interface/utils.c (handle_nonnull_attribute): Quote attribute
2960 2019-06-18 Arnaud Charlet <charlet@adacore.com>
2963 * sem_ch5.adb (Analyze_Loop_Statement): Avoid exception propagation
2964 during normal processing.
2966 2019-06-17 Arnaud Charlet <charlet@adacore.com>
2969 * exp_ch9.adb (Expand_N_Delay_Relative_Statement): Swap the two
2970 conditions to avoid a unnecessary exception propagation in the default
2973 2019-05-28 Eric Botcazou <ebotcazou@adacore.com>
2975 * gcc-interface/utils.c (handle_stack_protect_attribute): Move around.
2977 2019-05-28 Eric Botcazou <ebotcazou@adacore.com>
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.
2999 2019-05-28 Eric Botcazou <ebotcazou@adacore.com>
3001 * gcc-interface/trans.c (lvalue_required_for_attribute_p): Return 0
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.
3008 2019-05-28 Eric Botcazou <ebotcazou@adacore.com>
3010 * gcc-interface/trans.c (gnat_to_gnu): Remove superfluous tests on
3011 Backend_Overflow_Checks_On_Target and rework comments.
3013 2019-05-28 Eric Botcazou <ebotcazou@adacore.com>
3015 * gcc-interface/trans.c (walk_nesting_tree): New static function.
3016 (finalize_nrv): Use it to walk the entire nesting tree.
3018 2019-05-28 Eric Botcazou <ebotcazou@adacore.com>
3020 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Remove
3021 obsolete test on Is_For_Access_Subtype.
3023 2019-05-28 Eric Botcazou <ebotcazou@adacore.com>
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.
3031 2019-05-28 Eric Botcazou <ebotcazou@adacore.com>
3033 * gcc-interface/utils.c (gnat_internal_attribute_table): Add support
3034 for stack_protect attribute.
3035 (handle_stack_protect_attribute): New static function.
3037 2019-05-28 Eric Botcazou <ebotcazou@adacore.com>
3039 * gcc-interface/decl.c (intrin_arglists_compatible_p): Do not return
3040 false if the internal builtin uses a variable list.
3042 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
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.
3048 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
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.
3065 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
3067 * gcc-interface/utils.c (maybe_pad_type): Issue the warning for the
3068 specific case of component types preferably.
3070 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
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
3077 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
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.
3084 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
3086 * gcc-interface/trans.c (Call_to_gnu): Use the unpadded type when
3087 putting back an intermediate conversion the type of the actuals.
3089 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
3091 * gcc-interface/trans.c (gnat_to_gnu) <Shift operations>: Convert the
3092 count to the unsigned version of its base type before proceeding.
3094 2019-05-16 Martin Sebor <msebor@redhat.com>
3096 * gcc-interface/trans.c (check_inlining_for_nested_subprog): Quote
3099 2019-05-08 Arnaud Charlet <charlet@adacore.com>
3101 * standard.ads.h: New file.
3103 2019-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3105 * gcc-interface/Makefile.in (install-gcc-specs): Use foreach.
3108 2019-04-29 Michael K. Darling <darlingm@gmail.com>
3110 * gnatvsn.ads: Bump Library_Version to 10.
3112 2019-04-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3113 Bernd Edlinger <bernd.edlinger@hotmail.de>
3114 Jakub Jelinek <jakub@redhat.com>
3117 * raise-gcc.c (TARGET_ATTRIBUTE): Define.
3118 (continue_unwind, personality_body, PERSONALITY_FUNCTION): Add
3121 2019-04-07 Eric Botcazou <ebotcazou@adacore.com>
3123 * libgnat/i-cexten.ads (CFloat_128): New type.
3125 2019-03-22 Dmitriy Anisimkov <anisimko@adacore.com>
3128 * libgnat/g-socket.adb (Bind_Socket, Connect_Socket,
3129 Send_Socket): Fix the computation of structure lengths passed to
3131 (Is_IPv6_Address): Fix the number of expected colons.
3133 2019-03-11 Martin Liska <mliska@suse.cz>
3135 * gcc-interface/misc.c (gnat_post_options): Wrap option name in string
3136 format message and fix GNU coding style.
3138 2019-02-08 Eric Botcazou <ebotcazou@adacore.com>
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.
3147 2019-02-08 Eric Botcazou <ebotcazou@adacore.com>
3149 * gcc-interface/utils.c (max_size) <tcc_unary>: Be prepared for an
3150 operand with VOID_TYPE.
3152 2019-02-08 Eric Botcazou <ebotcazou@adacore.com>
3154 * gcc-interface/trans.c (elaborate_all_entities): Do not elaborate the
3155 entities of a package renaming another one.
3157 2019-02-08 Eric Botcazou <ebotcazou@adacore.com>
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.
3164 2019-02-07 Eric Botcazou <ebotcazou@adacore.com>
3166 * libgnarl/s-linux__sparc.ads (ETIMEDOUT): Set to correct value.
3168 2019-02-06 Arnaud Charlet <charlet@adacore.com>
3170 * libgnarl/s-linux__x32.ads: Resync list of signals with s-linux.ads
3172 2019-01-27 Eric Botcazou <ebotcazou@adacore.com>
3174 * repinfo.adb (List_Component_Layout): Remove superfluous space for
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
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.
3207 2019-01-27 Eric Botcazou <ebotcazou@adacore.com>
3209 * gcc-interface/decl.c (array_type_has_nonaliased_component): Return
3210 the same value for every dimension of a multidimensional array type.
3212 2019-01-26 Eric Botcazou <ebotcazou@adacore.com>
3214 * gcc-interface/trans.c (Regular_Loop_to_gnu): Use the SLOC of the
3215 iteration scheme, if present, throughout the translation.
3217 2019-01-26 Eric Botcazou <ebotcazou@adacore.com>
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.
3223 2019-01-26 Eric Botcazou <ebotcazou@adacore.com>
3225 * gcc-interface/trans.c (struct loop_info_d): Remove artificial field.
3226 (Loop_Statement_to_gnu): Do not set it.
3228 2019-01-26 Eric Botcazou <ebotcazou@adacore.com>
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.
3242 2019-01-26 Eric Botcazou <ebotcazou@adacore.com>
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.
3250 2019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
3252 * s-oscons-tmplt.c (AF_INET6): Do not undefine for RTEMS.
3254 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
3257 * exp_ch11.adb: Change "can not" to "cannot".
3258 * sem_ch4.adb: Likewise.
3260 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
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.
3269 2019-01-08 Justin Squirek <squirek@adacore.com>
3272 2018-07-31 Justin Squirek <squirek@adacore.com>
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
3282 2018-09-26 Justin Squirek <squirek@adacore.com>
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.
3289 2019-01-04 Eric Botcazou <ebotcazou@adacore.com>
3291 * gnatvsn.ads: Bump copyright year.
3293 2019-01-01 Jakub Jelinek <jakub@redhat.com>
3295 Update copyright years.
3297 * gnat_ugn.texi: Bump @copying's copyright year.
3298 * gnat_rm.texi: Likewise.
3300 Copyright (C) 2019 Free Software Foundation, Inc.
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.