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