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