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