]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ada/ChangeLog
[Ada] Show Bit_Order and Scalar_Storage_Order in -gnatR4 output
[thirdparty/gcc.git] / gcc / ada / ChangeLog
CommitLineData
4571ad41 12019-08-13 Justin Squirek <squirek@adacore.com>
2
3 * repinfo.adb (List_Scalar_Storage_Order): Modify conditionals
4 for displaying ordering to always be triggered when -gnatR4 is
5 in effect.
6
da558db0 72019-08-13 Justin Squirek <squirek@adacore.com>
8
9 * aspects.adb, aspects.ads: Register new aspect.
10 * par-prag.adb (Prag): Register new pragma
11 * sem_ch13.adb (Analyze_Aspect_Specifications): Add processing
12 for new aspect similar to Aspect_Max_Entry_Queue_Length.
13 * sem_prag.adb, sem_prag.ads (Analyze_Pragma): Register new
14 pragma and set it to use the same processing as
15 Pragma_Max_Queue_Length.
16 * snames.ads-tmpl: Move definition of
17 Name_Max_Entry_Queue_Length so that it can be processed as a
18 pragma in addition to a restriction and add an entry for the
19 pragma itself.
20
fb48dcd3 212019-08-13 Yannick Moy <moy@adacore.com>
22
23 * sem_ch4.adb (Analyze_Allocator): Do not insert subtype
24 declaration for allocator inside a spec expression.
25
5bf51e61 262019-08-13 Yannick Moy <moy@adacore.com>
27
28 * sem_res.adb (Resolve_Call): Do not inline calls inside record
29 types.
30
db3b1a47 312019-08-13 Eric Botcazou <ebotcazou@adacore.com>
32
33 * sem_ch4.adb (Analyze_One_Call): Remove bypass for type
34 mismatch in nested instantiations.
35 * sem_ch8.adb (Find_Nearer_Entity): New function.
36 (Find_Renamed_Entity): Use it to disambiguate the candidates for
37 the renaming generated for an instantiation when it is
38 ambiguous.
39
175b42e6 402019-08-13 Eric Botcazou <ebotcazou@adacore.com>
41
42 * gnat1drv.adb (Adjust_Global_Switches): Do not set
43 Back_End_Inlining in ASIS mode either.
44
1e510b63 452019-08-13 Olivier Hainque <hainque@adacore.com>
46
47 * libgnat/s-win32.ads: Define size_t and fix the MapViewOfFile
48 binding to use it instead of DWORD for the dwNumberOfBytesToMap
49 argument.
50 * libgnat/g-sercom__mingw.adb (Read): State which definition of
51 size_t to fetch in call to Last_Index.
52
bfde37f8 532019-08-13 Arnaud Charlet <charlet@adacore.com>
54
55 * gcc-interface/Make-lang.in: Remove unused TRACE variable. Pass
56 LN_S to relevant gnatlib targets.
57 * gcc-interface/Makefile.in: Systematically pass LN_S to
58 relevant gnatlib targets.
59
127fec2d 602019-08-13 Yannick Moy <moy@adacore.com>
61
62 * sem_dim.adb (Analyze_Dimension,
63 Analyze_Dimension_Array_Aggregate, Analyze_Dimension_Call,
64 Analyze_Dimension_Extension_Or_Record_Aggregate): Return
65 immediately when inside an inlined body.
66 * sem_res.adb (Resolve_Call): Remove special checking now done
67 inside Analyze_Dimension_Call.
68
ae328900 692019-08-13 Justin Squirek <squirek@adacore.com>
70
71 * exp_ch4.adb (Expand_N_Allocator): Add condition to detect
72 library-level object declarations
73
fecd5d5b 742019-08-13 Eric Botcazou <ebotcazou@adacore.com>
75
76 * doc/gnat_ugn/building_executable_programs_with_gnat.rst
77 (-gnateT): Document Double_Float_Alignment parameter and fix
78 description of Double_Scalar_Alignment parameter.
79 * gnat_ugn.texi: Regenerate.
80
8105dc37 812019-08-13 Eric Botcazou <ebotcazou@adacore.com>
82
83 * exp_ch6.adb (Expand_Call_Helper): If back-end inlining is
84 enabled, also instantiate the body of a generic unit containing
85 a subprogram subject to aspect/pragma Inline_Always at
86 optimization level zero.
87 * sem_ch12.adb (Might_Inline_Subp): Minor tweak.
88 (Analyze_Package_Instantiation): Do not instantiate the package
89 body because of inlining considerations if the instantiation is
90 done in a generic unit. Move around similar condition involving
91 the main unit. Add test on Back_End_Inlining to processing for
92 front-end inlining.
93
80a305cd 942019-08-13 Javier Miranda <miranda@adacore.com>
95
96 * exp_disp.adb (Make_Secondary_DT): Handle record type
97 derivations that have interface components located at fixed
98 positions and interface components located at variable offset.
99 The offset of components located at fixed positions is computed
100 using the dummy object (similar to the case where all the
101 interface components are located at fixed positions).
102 (Make_DT): Build the dummy object for all tagged types that
103 implement interface types (that is, build it also for types with
104 variable size components), and use the dummy object to compute
105 the offset of all tag components located at fixed positions when
106 initializing the Interface_Table object.
107
0fabbf2c 1082019-08-13 Justin Squirek <squirek@adacore.com>
109
110 * gnatcmd.adb (GNATCmd): Add constant for new compiler switch
111 --help-ada, and include usage subprogram. Add line to usage help
112 explaining the new flag.
113 (GNATCmd_Usage): Rename from locally declared Usage so as not to
114 confuse with the newly imported version. Add new argument case
115 for --help-ada and add bug report email to implicit display of
116 help without the --help flag so as to unify output between the
117 two cases.
118
9c811f40 1192019-08-13 Dmitriy Anisimkov <anisimko@adacore.com>
120
121 * libgnat/g-comlin.adb (Getopt): Quote unrecognized switch in
122 Invalid_Switch exception message.
123
04c6a988 1242019-08-13 Yannick Moy <moy@adacore.com>
125
126 * sem_util.adb (Traverse_More_Func): Take into account
127 Loop_Actions inside N_Iterated_Component_Association nodes.
128 * sinfo.ads: Document correctly Loop_Actions as a field of nodes
129 of kind N_Iterated_Component_Association.
130
9c3e12d7 1312019-08-13 Claire Dross <dross@adacore.com>
132
133 * libgnat/a-cfinve.adb, libgnat/a-cofove.adb (Find_Index,
134 Reverse_Find_Index): Use bigger type to avoid range check
135 failure at the last loop iteration.
136
a4ea964c 1372019-08-12 Dmitriy Anisimkov <anisimko@adacore.com>
138
139 * libgnat/g-socket.adb (Is_IPv6_Address): Check that no less
140 then 2 colons in IPv6 numeric address.
141
4b422b29 1422019-08-12 Dmitriy Anisimkov <anisimko@adacore.com>
143
144 * libgnat/g-comlin.ads, libgnat/g-comlin.adb (Getopt): Add
145 parameter Quiet. Need to do not output error messages to
146 console. Invalid_Switch exception generation surrounded by an
147 error message.
148
fec0c7f6 1492019-08-12 Ed Schonberg <schonberg@adacore.com>
150
151 * exp_ch6.adb (Expand_Actuals. Add_Call_By_Copy_Code): Add code
152 to generate proper checks when an actual for an in-out or out
153 parameter has a non-null access type. No constraints are
154 applied to an inbound access parameter, but on exit a not-null
155 check must be performed if the type of the actual requires it.
156
41765355 1572019-08-12 Ed Schonberg <schonberg@adacore.com>
158
159 * sem_util.adb (Is_Expaned_Priority_Attribute): Check whether
160 call comes from a rewritten attribute before comparing name with
161 Get_Ceiling run-time subprogram.
162
99b6268d 1632019-08-12 Eric Botcazou <ebotcazou@adacore.com>
164
165 * exp_util.ads (Component_May_Be_Bit_Aligned): Small comment
166 tweaks.
167 (Possible_Bit_Aligned_Component): Likewise.
168 (Type_May_Have_Bit_Aligned_Components): Likewise.
169 * exp_util.adb (Component_May_Be_Bit_Aligned): Likewise.
170 (Possible_Bit_Aligned_Component): Likewise.
171 (Type_May_Have_Bit_Aligned_Components): Likewise.
172
5d2fb1fa 1732019-08-12 Eric Botcazou <ebotcazou@adacore.com>
174
175 * exp_ch4.adb (Expand_N_Op_Eq): Expand the array equality if
176 either operand is a possibly unaligned slice.
177 * exp_ch6.adb (Expand_Simple_Function_Return): Do not generate a
178 copy for a possibly unaligned object if it is represented as a
179 scalar.
180 * exp_util.adb (Is_Possibly_Unaligned_Slice): Do not always
181 return false if the target doesn't have strict alignment.
182
bb0246a6 1832019-08-12 Bob Duff <duff@adacore.com>
184
185 * sem_ch12.adb (Instantiate_Package_Body): Remove suppression of
186 checks in instances of internal units.
187 * sem_ch6.adb (Analyze_Function_Return): Do not generate a
188 constraint check on an extended_return_statement if the subtype
189 of the return object in the statement is identical to the return
190 subtype of the function.
191
f0bbb55a 1922019-08-12 Bob Duff <duff@adacore.com>
193
194 * libgnat/a-cbmutr.adb (Is_Reachable): Declare Idx to be of the
195 base subtype. Clearly it makes no sense to loop "while Idx >=
196 0", if Idx is of a nonnegative subtype.
197
91f3d9d4 1982019-08-12 Bob Duff <duff@adacore.com>
199
200 * libgnat/a-tifiio.adb (Put_Scaled): Prevent AA from being
201 negative, since Field is range 0 .. something.
202
d8f36b1a 2032019-08-12 Bob Duff <duff@adacore.com>
204
205 * doc/gnat_ugn/gnat_utility_programs.rst (gnatmetric, gnatpp,
206 gnatstub): Remove documentation for Ada language version
207 switches, and note that they are no longer needed.
208
6f663d96 2092019-08-12 Gary Dismukes <dismukes@adacore.com>
210
211 * sem_ch5.adb (Prepare_Param_Spec_Loop): Set the parents of the
212 copied low and high bounds in the case where the loop range is
213 given by a discrete_subtype_indication, to prevent hanging (or
214 Assert_Failure) in Insert_Actions.
215
32b3786f 2162019-08-12 Ed Schonberg <schonberg@adacore.com>
217
218 * sem_ch6.adb (heck_Untagged_Equality): Verify that user-defined
219 equality has the same profile as the predefined equality before
220 applying legality rule in RM 4.5.2 (9.8).
221
759d145f 2222019-08-12 Bob Duff <duff@adacore.com>
223
224 * libgnat/a-except.ads: Update obsolete comment, still making
225 clear that this is a variant. Add explicit default for Id
226 component of Exception_Occurrence, because that value is used.
227 Define Null_Occurrence less redundantly.
228 * libgnat/a-einuoc.adb: Minor simplification of code.
229
cee17a56 2302019-08-12 Justin Squirek <squirek@adacore.com>
231
232 * libgnat/a-dhfina.adb, libgnat/a-dhfina.ads (Is_Simple_Name,
233 Is_Root_Directory, Is_Parent_Directory,
234 Is_Current_Directory_Name, Is_Relative_Name, Initial_Directory,
235 Relative_Name, Compose): Add implementation and documentation.
236 * libgnat/a-direct.adb (Containing_Directory): Modify routine to
237 use routines from Ada.Directories.Hierarchical_File_Names and
238 remove incorrect special case for parent directories.
239 (Fetch_Next_Entry): Add check for current directory and parent
240 directory and ignore them under certain circumstances.
241 (Simple_Nmae): Add check for null result from
242 Simple_Name_Internal and raise Name_Error.
243 (Simple_Name_Internal): Add explicit check for root directories,
244 sanitize trailing directory separators, and modify behavior so
245 that current and parent directories are considered valid
246 results.
247 * Makefile.rtl: Add entry to GNATRTL_NONTASKING_OBJS.
248
cc87412b 2492019-08-12 Eric Botcazou <ebotcazou@adacore.com>
250
251 * freeze.adb (Freeze_Entity): Give the same error for an
252 Object_Size clause on a variable-sized type as for a Size
253 clause.
254
a6b48bfe 2552019-08-12 Gary Dismukes <dismukes@adacore.com>
256
257 * sem_prag.adb (Analyze_Pragma, Pragma_Suppress_Initialization):
258 For private types, set the Suppress_Initialization flag on the
259 Full_View of the entity rather than the entity's base type.
260
adb8ac81 2612019-08-12 Yannick Moy <moy@adacore.com>
262
263 * aspects.adb, aspects.ads (Aspect_No_Caching): New aspect.
264 * contracts.adb, contracts.ads (Add_Contract_Item): Add handling
265 of No_Caching.
266 (Analyze_Object_Contract): Add handling of No_Caching.
267 * einfo.adb, einfo.ads
268 (Get_Pragma): Add handling of No_Caching.
269 * doc/gnat_rm/implementation_defined_aspects.rst,
270 doc/gnat_rm/implementation_defined_pragmas.rst: Document new
271 aspect/pragma.
272 * gnat_rm.texi: Regenerate.
273 * par-prag.adb (Prag): New pragma Pragma_No_Caching.
274 * sem_ch13.adb (Analyze_Aspect_Specifications,
275 Check_Aspect_At_Freeze_Point): Add handling of No_Caching.
276 * sem_prag.adb (Analyze_Pragma): Deal with pragma No_Caching.
277 * sem_prag.ads (Analyze_External_Property_In_Decl_Part): Now
278 applies to No_Caching.
279 * sem_util.adb, sem_util.ads (Is_Effectively_Volatile): Add
280 handling of No_Caching.
281 (No_Caching_Enabled): New query function.
282 * snames.ads-tmpl: New names for pragma.
283
f50cb3de 2842019-08-12 Yannick Moy <moy@adacore.com>
285
286 * sem_util.adb, sem_util.ads (Traverse_More_Func,
287 Traverse_More_Proc): Add formal parameter for Itypes traversal.
288
65566aa4 2892019-08-12 Yannick Moy <moy@adacore.com>
290
291 * exp_attr.adb, exp_attr.ads (Expand_Size_Attribute): New
292 procedure to share part of the attribute expansion with
293 GNATprove mode.
294 (Expand_N_Attribute_Reference): Extract part of the
295 Size/Object_Size expansion in the new procedure
296 Expand_Size_Attribute.
297 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Expand
298 Size/Object_Size attributes using the new procedure
299 Expand_Size_Attribute.
300
f8ca05f5 3012019-08-12 Yannick Moy <moy@adacore.com>
302
303 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Only
304 expand Enum_Rep attribute when its parameter is a literal.
305
0175b8fe 3062019-08-12 Justin Squirek <squirek@adacore.com>
307
308 * sem_eval.adb (Check_Non_Static_Context): Add a condition to
309 determine if a range violation constitues a warning or an error.
310 (Out_Of_Range): Add a condition to determine if a range
311 violation constitues a warning or an error.
312
809a3252 3132019-08-12 Eric Botcazou <ebotcazou@adacore.com>
314
315 * exp_ch4.adb (Real_Range_Check): Do not rewrite the conversion
316 node but its expression instead, after having fetched its
317 current value. Clear the Do_Range_Check flag on entry. Return
318 early for a rewritten float-to-float conversion. Remove
319 redundant local variable. Suppress all checks when inserting
320 the temporary and do not reanalyze the node.
321
86d280c6 3222019-08-12 Eric Botcazou <ebotcazou@adacore.com>
323
324 * sprint.ads: Minor comment tweak.
325
138c6242 3262019-08-12 Eric Botcazou <ebotcazou@adacore.com>
327
328 * checks.adb (Insert_Valid_Check): Do not retrieve the
329 Do_Range_Check flag from the Original_Node but from the
330 Validated_Object. Remove useless bypass for floating-point
331 types.
332
ab16206d 3332019-08-12 Yannick Moy <moy@adacore.com>
334
335 * sem_util.adb, sem_util.ads (Traverse_More_Func,
336 Traverse_More_Proc): New traversal subprograms.
337
1ca535ae 3382019-08-12 Jerome Lambourg <lambourg@adacore.com>
339
340 * libgnarl/s-taprop__vxworks.adb (Abort_Handler): Only call
341 s-tpopsp.Self when actually needed.
342
9f49d9e6 3432019-08-12 Eric Botcazou <ebotcazou@adacore.com>
344
345 * exp_ch4.adb (Discrete_Range_Check): Return if checks are
346 suppressed.
347
a8bcbb37 3482019-08-12 Eric Botcazou <ebotcazou@adacore.com>
349
350 * sem_res.adb: Add with & use clause for Sem_Mech and
351 alphabetize.
352 (Resolve_Actuals): Do not apply a scalar range check for the
353 source of a conversion whose result is passed by reference to a
354 valued procedure.
355
e54cffd1 3562019-08-12 Eric Botcazou <ebotcazou@adacore.com>
357
358 * checks.adb (Insert_Valid_Check): Reset the Do_Range_Check flag
359 on the validated object.
360 * exp_ch6.adb (Add_Call_By_Copy_Code): Reset the Do_Range_Check
361 flag on the actual here, as well as on the Expression if the
362 actual is a N_Type_Conversion node.
363 (Add_Validation_Call_By_Copy_Code): Generate the incoming range
364 check if needed and reset the Do_Range_Check flag on the
365 Expression if the actual is a N_Type_Conversion node.
366 (Expand_Actuals): Do not reset the Do_Range_Check flag here.
367 Generate the incoming range check for In parameters here instead
368 of...
369 (Expand_Call_Helper): ...here. Remove redudant condition.
370 * sem_res.adb (Resolve_Actuals): Use local variable A_Typ and
371 remove obsolete comments.
372 (Resolve_Type_Conversion): Do not force the Do_Range_Check flag
373 on the operand if range checks are suppressed.
374
df1c131a 3752019-08-12 Eric Botcazou <ebotcazou@adacore.com>
376
377 * checks.adb (Activate_Range_Check): Remove redundant argument.
378 (Generate_Range_Check): Likewise.
379 (Apply_Float_Conversion_Check): Reset the Do_Range_Check flag on
380 entry and remove redundant condition.
381
c5c4ce6c 3822019-08-02 Alexandre Oliva <oliva@adacore.com>
87541248 383
384 * libgnat/a-exexpr.adb (Begin_Handler_v1, End_Handler_v1): New.
385 (Claimed_Cleanup): New.
386 (Begin_Handler, End_Handler): Document.
387 * gcc-interface/trans.c (gigi): Switch to exception handler
388 ABI #1.
389 (Exception_Handler_to_gnu_gcc): Save the original cleanup
390 returned by begin handler, pass it to end handler, and use
391 EH_ELSE_EXPR to pass a propagating exception to end handler.
392 (gnat_to_gnu): Leave the exception pointer alone for reraise.
393 (add_cleanup): Handle EH_ELSE_EXPR, require it by itself.
394
dcccb125 3952019-07-23 Ed Schonberg <schonberg@adacore.com>
396
397 * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations,
398 Freeze_Entity_Checks): Include Aspect_CPU with other aspects
399 whose expresssion may depend on a discriminant, and thus require
400 that components of the type be made visible.
401
0275bc70 4022019-07-23 Eric Botcazou <ebotcazou@adacore.com>
403
404 * checks.adb (Convert_And_Check_Range): Add Suppress parameter
405 and pass it in the call to Insert_Actions. Rename local
406 variable.
407 (Generate_Range_Check): Minor comment fixes. Pass Range_Check
408 in the first call to Convert_And_Check_Range and All_Checks in
409 the second call.
410 * exp_ch4.adb (Expand_N_Type_Conversion): Reset the
411 Do_Overflow_Check flag in the float-to-float case too if there
412 is also a range check.
413
79ee9e76 4142019-07-23 Eric Botcazou <ebotcazou@adacore.com>
415
416 * checks.adb (Activate_Overflow_Check): Remove redundant
417 argument.
418 * exp_ch4.adb (Discrete_Range_Check): Reset the overflow flag.
419 (Expand_N_Type_Conversion): Do not reset it here.
420
87b5a4e8 4212019-07-23 Eric Botcazou <ebotcazou@adacore.com>
422
423 * repinfo.adb (List_Component_Layout): Pass Decimal to UI_Write.
424 (Write_Val): Likewise.
425
441fbb64 4262019-07-23 Ed Schonberg <schonberg@adacore.com>
427
428 * aspects.ads: New table Operational_Aspect, used to distinguish
429 between aspects that are view-specific, such as those related to
430 iterators, and representation aspects that apply to all views of
431 a type.
432 * aspects.adb (Find_Aspect): If the aspect being sought is
433 operational, do not ecamine the full view of a private type to
434 retrieve it.
435 * sem_ch5.adb (Analyze_Iterator_Specification): Improve error
436 message when the intended domain of iteration does not implement
437 the required iterator aspects.
438
583f62e9 4392019-07-23 Yannick Moy <moy@adacore.com>
440
441 * sem_spark.ads (Is_Local_Context): New function.
442 * sem_spark.adb (Check_Declaration): Issue errors on violations
443 of SPARK RM 3.10(4)
444 (Process_Path): Do not issue error on borrow/observe during
445 elaboration, as these are caught by the new rule.
446
ec154f5b 4472019-07-23 Yannick Moy <moy@adacore.com>
448
449 * exp_ch7.adb (Create_Finalizer): Force finalizer not to be
450 Ghost enabled.
451 * exp_dbug.adb (Get_External_Name): Explain special case of
452 Ghost finalizer.
453
e1598796 4542019-07-22 Eric Botcazou <ebotcazou@adacore.com>
455
456 * repinfo.adb (List_Entities): Also list compiled-generated
457 types present as Etype of objects.
458
da90894a 4592019-07-22 Eric Botcazou <ebotcazou@adacore.com>
460
461 * sinfo.ads: Update the documentation about the
462 Do_Division_Check, Do_Overflow_Check and Do_Range_Check flags.
463
bb8b9752 4642019-07-22 Eric Botcazou <ebotcazou@adacore.com>
465
466 * exp_ch4.adb (Expand_N_Type_Conversion): Beef up comment.
467 (Fixup_Universal_Fixed_Operation): Set the base type instead of
468 the type of the enclosing type conversion on the operation.
469
aeb4eb17 4702019-07-22 Ed Schonberg <schonberg@adacore.com>
471
472 * exp_ch4.adb (Expand_N_In): Do not suggest the use of attribute
473 'Valid as a replacement for a range check on a discrete type
474 when the bounds of the range are given by type conversions,
475 because in such a case there are distinct types involved and the
476 subbested attribute replacement would be misplaced.
477
30cf324b 4782019-07-22 Yannick Moy <moy@adacore.com>
479
480 * sem_spark.adb (Get_Root_Object, Is_Path_Expression,
481 Is_Subpath_Expression): Add parameter Is_Traversal to adapt
482 these functions to the case of paths returned from a traversal
483 function.
484 (Read_Indexes): Handle the case of an if-expression or
485 case-expression.
486 (Check_Statement): Check Emit_Messages only when issuing an
487 error message. This is important as Emit_Messages may store the
488 information that an error was detected.
489
72c474b5 4902019-07-22 Eric Botcazou <ebotcazou@adacore.com>
491
492 * checks.adb (Apply_Type_Conversion_Checks): Do not set
493 Do_Range_Check flag on conversions from fixed-point types
494 either.
495 * exp_attr.adb: Add use and with clause for Expander.
496 (Expand_N_Attribute_Reference) <Fixed_Value, Integer_Value>: Set
497 the Conversion_OK flag and do not generate overflow/range checks
498 manually.
499 * exp_ch4.adb (Expand_N_Qualified_Expression): Remove
500 superfluous clearing of Do_Range_Check flag.
501 (Discrete_Range_Check): New procedure to generate a range check
502 for discrete types.
503 (Real_Range_Check): Remove redundant local variable and adjust.
504 Remove useless shortcut. Clear Do_Range_Check flag on all
505 paths.
506 (Expand_N_Type_Conversion): Remove redundant test on
507 Conversion_OK. Call Discrete_Range_Check to generate range
508 checks on discrete types. Remove obsolete code for
509 float-to-integer conversions. Add code to generate range checks
510 for conversions involving fixed-point types.
511
39cdd055 5122019-07-22 Eric Botcazou <ebotcazou@adacore.com>
513
514 * sprint.ads: Fix pasto in comment.
515
9af8c78a 5162019-07-22 Javier Miranda <miranda@adacore.com>
517
518 * sem_res.adb (Resolve_Actuals): Replace code that displaces the
519 pointer to an allocated object to reference its secondary
520 dispatch table by a type conversion (which takes care of
521 handling all cases).
522
0ff5a502 5232019-07-22 Eric Botcazou <ebotcazou@adacore.com>
524
525 * sprint.adb (Sprint_Node_Actual)
526 <N_Decimal_Fixed_Point_Definition>: Swap a couple of spaces.
527 (Write_Itype): Minor consistency fixes throughout. Add support
528 for printing ordinary and decimal fixed-point types and
529 subtypes.
530
8c6eab72 5312019-07-22 Eric Botcazou <ebotcazou@adacore.com>
532
533 * exp_attr.adb (Expand_Loop_Entry_Attribute): Beef up comment.
534
76ed386d 5352019-07-22 Ed Schonberg <schonberg@adacore.com>
536
537 * libgnat/s-valboo.ads, libgnat/s-valcha.ads,
538 libgnat/s-valdec.ads, libgnat/s-valenu.ads,
539 libgnat/s-valint.ads, libgnat/s-vallld.ads,
540 libgnat/s-vallli.ads, libgnat/s-valllu.ads,
541 libgnat/s-valrea.ads, libgnat/s-valuns.ads,
542 libgnat/s-valwch.ads: Change categorization of packages that
543 implement attribute 'Value from Pure to Preelaborate, to prevent
544 undesirable optimizations when the evaluation of the attribute
545 raises Constraint_Error, but subsequent use of the result of
546 this evsaluation is removed by a subsequent optimization.
547
e869060d 5482019-07-22 Ed Schonberg <schonberg@adacore.com>
549
550 * sem_warn.adb (Check_References): Do not emit s warning on a
551 referenced entity with no explicit assignment if the type of the
552 entity has Preelaborable_Initialixation, such as
553 Exception_Occurrence.
554
9bf70d94 5552019-07-22 Javier Miranda <miranda@adacore.com>
556
557 * exp_ch4.adb (Size_In_Storage_Elements): Improve the expansion
558 to handle array indexes that are modular type.
559 (Expand_N_Allocator): For 32-bit targets improve the generation
560 of the runtime check associated with large arrays supporting
561 arrays initialized with a qualified expression.
562 * libgnat/s-imenne.adb (Image_Enumeration_8,
563 Image_Enumeration_16, Image_Enumeration_32): Define the index of
564 Index_Table with range Natural'First .. Names'Length since in
565 the worst case all the literals of the enumeration type would be
566 single letter literals and the Table built by the frontend would
567 have as many components as the length of the names string. As a
568 result of this enhancement, the internal tables declared using
569 Index_Table have a length closer to the real needs, thus
570 avoiding the declaration of large arrays on 32-bit CCG targets.
571
b0da310b 5722019-07-22 Yannick Moy <moy@adacore.com>
573
574 * sem_ch3.adb (Constrain_Access): Issue a message about ignored
575 constraint.
576
592e600a 5772019-07-22 Eric Botcazou <ebotcazou@adacore.com>
578
579 * sem_ch8.adb (End_Use_Type): Reset the In_Use flag on the
580 class-wide type if the type is tagged.
581 (Use_One_Type): Add commentary on the handling of the class-wide
582 type.
583
c1eeb1c6 5842019-07-22 Eric Botcazou <ebotcazou@adacore.com>
585
586 * einfo.ads (Is_For_Access_Subtype): Delete.
587 (Set_Is_For_Access_Subtype): Likewise.
588 * einfo.adb (Is_For_Access_Subtype): Likewise.
589 (Set_Is_For_Access_Subtype): Likewise.
590 (Write_Entity_Flags): Do not write Is_For_Access_Subtype.
591 * exp_ch4.adb (Expand_N_Selected_Component): Do not deal with
592 it.
593 * exp_spark.adb (Expand_SPARK_N_Selected_Component): Likewise.
594 * sem_ch4.adb (Analyze_Explicit_Dereference): Likewise.
595 * sem_ch3.adb (Build_Discriminated_Subtype): Do not build a
596 special private subtype for access-to-record subtypes.
597
3eb44c27 5982019-07-22 Eric Botcazou <ebotcazou@adacore.com>
599
600 * sem_ch3.adb (Complete_Private_Subtype): Rework the setting of
601 the Etype of the full view for full base types that cannot
602 contain any discriminant. Remove code and comment about it in
603 the main path.
604
9c6c2b81 6052019-07-22 Ed Schonberg <schonberg@adacore.com>
606
607 * sem_ch3.adb (Convert_Bound): Subsidiary of
608 Floating_Point_Type_Declaration, to handle properly range
609 specifications with bounds that may include static constants of
610 a given type rather than real literals.
611
d5dbc1bb 6122019-07-22 Eric Botcazou <ebotcazou@adacore.com>
613
614 * sem_aggr.adb (Rewrite_Bound): Be prepared for discriminals
615 too.
616 (Rewrite_Range;): Minor tweak.
617 (Resolve_Record_Aggregate): For a component with default
618 initialization whose expression is an array aggregate, also
619 rewrite the bounds of the component associations, if any.
620
37f1cae9 6212019-07-22 Gary Dismukes <dismukes@adacore.com>
622
623 * exp_ch5.adb (Expand_N_Case_Statement): In the case where a
624 case statement is rewritten as an equivalent if statement,
625 inherit the From_Condition_Expression flag from the case
626 statement.
627
e6368760 6282019-07-22 Eric Botcazou <ebotcazou@adacore.com>
629
630 * sem_ch8.adb (Check_Constrained_Object): Further extend the
631 special optimization to all limited types.
632
9b8341e7 6332019-07-22 Eric Botcazou <ebotcazou@adacore.com>
634
635 * exp_attr.adb (Expand_N_Attribute_Reference)
636 <Attribute_Enum_Val>: Set No_Truncation on the
637 N_Unchecked_Type_Conversion built around the argument passed to
638 the attribute.
639
f930ed43 6402019-07-22 Nicolas Roche <roche@adacore.com>
641
642 * libgnat/s-valrea.adb (Scan_Real): Ignore non significative
643 digits to avoid converging to infinity in some cases.
644
3474a75e 6452019-07-22 Eric Botcazou <ebotcazou@adacore.com>
646
647 * libgnat/g-encstr.adb (Encode_Wide_String): Fix oversight.
648 (Encode_Wide_Wide_String): Likewise.
649
a7f20f4b 6502019-07-22 Eric Botcazou <ebotcazou@adacore.com>
651
652 * sem_warn.adb (Find_Var): Bail out for a function call with an
653 Out or In/Out parameter.
654
a51cd2a2 6552019-07-22 Nicolas Roche <roche@adacore.com>
656
657 * terminals.c (__gnat_tty_waitpid): Support both blocking and
658 not blocking mode.
659 * libgnat/g-exptty.ads (Is_Process_Running): New function.
660 * libgnat/g-exptty.adb (Close): Don't try to interrupt/terminate
661 a process if it is already dead.
662
36167f09 6632019-07-22 Ed Schonberg <schonberg@adacore.com>
664
c5c4ce6c 665 * freeze.adb (Freeze_Fixed_Point_Type): When freezing a
36167f09 666 fixed-point subtype, check whether the parent type declarastion
667 includes an aspect specification for the 'Small type attribute,
668 and inherit the specified value.
669
b5293e2d 6702019-07-22 Javier Miranda <miranda@adacore.com>
671
672 * freeze.adb (Freeze_Subprogram): Check that C++ constructors
673 must have external or link name.
674
7c48993c 6752019-07-22 Ed Schonberg <schonberg@adacore.com>
676
677 * sem_res.adb (Resolve_Selected_Component): If the prefix has a
678 deferred reference, generate the correct reference now, to
679 indicate that the previous assignment is used. This prevents
680 spurious warnings on useless assignments when compiling with all
681 warnings enabled. when there is a subsequent call in the same
682 stqtement list, in which the prefix of the selected component is
683 the actual for an out parameter.
684
0b87f8cf 6852019-07-22 Eric Botcazou <ebotcazou@adacore.com>
686
687 * exp_attr.adb (Expand_Loop_Entry_Attribute): Copy the condition
688 of a while loop instead of simply relocating it.
689
0c41e160 6902019-07-18 Arnaud Charlet <charlet@adacore.com>
691
692 * Makefile.rtl, expect.c, env.c, aux-io.c, mkdir.c, initialize.c,
693 cstreams.c, raise.c, tracebak.c, adadecode.c, init.c, raise-gcc.c,
694 argv.c, adaint.c, adaint.h, ctrl_c.c, sysdep.c, rtinit.c, cio.c,
695 seh_init.c, exit.c, targext.c: Introduce a "STANDALONE" mode where C
696 runtime files do not have any dependency on GCC include files.
697 Remove unnecessary includes.
698 Remove remaining references to VMS in runtime C file.
699 * runtime.h: new File.
700
0e972d45 7012019-07-13 Andreas Schwab <schwab@linux-m68k.org>
702
703 * Makefile.rtl: Use g-sercom__linux.adb for all linuxes.
704
77fe13f0 7052019-07-11 Piotr Trojanek <trojanek@adacore.com>
706
707 * lib-writ.adb (Ensure_System_Dependency,
708 Up_To_Date_ALI_File_Exists, Write_ALI): Replace low-level access
709 to table with a high-level query.
710
56903255 7112019-07-11 Piotr Trojanek <trojanek@adacore.com>
712
713 * checks.adb: Fix typo in comment.
714 * sem.adb (Semantics): Avoid repeated calls to
715 In_Extended_Main_Source_Unit by reusing an already-cached
716 result.
717 * sem_util.adb (First_Global): Fix style.
718
85f6c73a 7192019-07-11 Yannick Moy <moy@adacore.com>
720
721 * sem_res.adb (Resolve_Call): Do not perform dimensionality
722 checking on inlined bodies.
723
5083f119 7242019-07-11 Yannick Moy <moy@adacore.com>
725
726 * debug.adb: Flip meaning of debug switch -gnatdF.
727
f237e5eb 7282019-07-11 Yannick Moy <moy@adacore.com>
729
730 * sem_eval.adb (Is_Same_Value): Add special case for rewritten
731 Loop_Entry attribute.
732
1e5359c0 7332019-07-11 Claire Dross <dross@adacore.com>
734
735 * gnat1drv.adb: SPARK checking rules for pointer aliasing are
736 moved to GNATprove backend.
737 * sem_spark.ads, sem_spark.adb (Sem_SPARK): Is now a generic
738 unit. Takes as parameters:
739 - Retysp which is used to query the most underlying type
740 visible in SPARK. We do not introduce aliasing checks for
741 types which are not visibly deep.
742 - Component_Is_Visible_In_SPARK is used to avoid doing pointer
743 aliasing checks on components which are not visible in SPARK.
744 - Emit_Messages returns True in the second phase of SPARK
745 analysis. Error messages for failed aliasing checks are only
746 output in this case.
747 Additionally, errors on constructs not supported in SPARK are
748 removed as duplicates of marking errors. Components are stored
749 in the permission map using their original component to avoid
750 inconsistencies between components of different views of the
751 same type.
752 (Check_Expression): Handle delta constraints.
753 (Is_Deep): Exported so that we can check for SPARK restrictions
754 on deep types inside SPARK semantic checkings.
755 (Is_Traversal_Function): Exported so that we can check for SPARK
756 restrictions on traversal functions inside SPARK semantic
757 checkings.
758 (Check_Call_Statement, Read_Indexes): Check wether we are
759 dealing with a subprogram pointer type before querying called
760 entity.
761 (Is_Subpath_Expression): Image attribute can appear inside a
762 path.
763 (Check_Loop_Statement): Correct order of statements in the loop.
764 (Check_Node): Ignore raise nodes.
765 (Check_Statement): Use Last_Non_Pragma to get the object
766 declaration in an extended return statement.
767
fb7f0b28 7682019-07-11 Patrick Bernardi <bernardi@adacore.com>
769
770 * bindgen.adb (Gen_Main): Do not generate a reference to
771 Ada_Main_Program_Name when the Minimal_Binder flag is set.
772 (Gen_Output_File_Ada): Do not output GNAT_Version and
773 Ada_Main_Program_Name info if Minimal_Binder flag is set.
774 * bindusg.adb: Add documentation for new -minimal switch.
775 * gnatbind.adb (Scan_Bind_Arg): Scan -minimal switch.
776 * opt.ads: Add new global flag Minimal_Binder to indicate if the
777 binder should not produce global variables.
778 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
779 Update documentation with new binder -minimal switch.
780 * gnat_ugn.texi: Regenerate.
781
6e0725a9 7822019-07-11 Eric Botcazou <ebotcazou@adacore.com>
783
784 * Makefile.rtl: Add warning note about compilation flags and
785 capitalize.
786
263dcfe9 7872019-07-11 Ed Schonberg <schonberg@adacore.com>
788
789 * exp_ch9.adb (Expand_N_Protected_Type_Declaaration): New
790 subsidiary routine Replace_Access_Definition, to handle properly
791 a protected type PT one of whose private components is of type
792 access PT.
793
dc001f3e 7942019-07-11 Dmitriy Anisimkov <anisimko@adacore.com>
795
796 * libgnat/g-socket.ads (Level_Type): Add enumerators for
797 IP_Protocol_For_ICMP, IP_Protocol_For_IGMP,
798 IP_Protocol_For_RAW_Level.
799 * libgnat/g-socket.adb (Levels): Handle them.
800 * s-oscons-tmplt.c: Import socket protocols defined in
801 netinet/in.h.
802
3bcff314 8032019-07-11 Claire Dross <dross@adacore.com>
804
805 * libgnat/a-cfhama.adb, libgnat/a-cfhase.adb (Free): Do not
806 reset the Has_Element flag if no element is freed.
807
8e22ede8 8082019-07-11 Arnaud Charlet <charlet@adacore.com>
809
810 * errno.c: Remove obsolete support for MaRTE OS.
811
180bd06b 8122019-07-11 Ed Schonberg <schonberg@adacore.com>
813
814 * exp_ch4.adb (Expand_N_Type_Conversion): If a predicate check
815 is generated, analyze it with range check suppressed, because
816 that check has been previously applied.
817 * exp_ch5.adb (Expand_N_Assignment_Statement): If the RHS is a
818 type conversion to the type of the LHS, do not apply a predicate
819 check to the RHS because it will have been generated already
820 during its expansion.
821 * exp_ch6.adb (Can_Fold_Predicate_Call): Extend processing to
822 handle a predicate check on a constant entity whose value is
823 static.
824
32859955 8252019-07-11 Hristian Kirtchev <kirtchev@adacore.com>
826
827 * bindo.adb: Remove the documentation of switch -d_N because it
828 is no longer in use.
829 * bindo-graphs.ads, bindo-graphs.adb (Is_Spec_Before_Body_Edge):
830 New routine.
831 * bindo-writers.adb (Write_Dependency_Edge): Add the missing
832 case of a spec-before-body edge.
833
0595f8ff 8342019-07-11 Dmitriy Anisimkov <anisimko@adacore.com>
835
836 * libgnat/g-socket.ads (Mode_Type): Add a Socket_Raw enumerator.
837 * libgnat/g-socket.adb (Modes): Handle Socket_Raw.
838
af7bae25 8392019-07-11 Justin Squirek <squirek@adacore.com>
840
841 * exp_ch9.adb (Build_Private_Protected_Declaration): Add
842 exception for the moving of pragmas to internally generated
843 specs for pragma Unreferenced.
844
87259588 8452019-07-11 Bob Duff <duff@adacore.com>
846
847 * doc/gnat_ugn/gnat_utility_programs.rst: Fix inconsistent
848 documentation for gnatmetric.
849 * gnat_ugn.texi: Regenerate.
850
2d95f0f8 8512019-07-11 Bob Duff <duff@adacore.com>
852
853 * doc/gnat_ugn/gnat_utility_programs.rst: Document gnatpp's
854 --spaces-only switch.
855
814e7b6e 8562019-07-11 Hristian Kirtchev <kirtchev@adacore.com>
857
858 * sem_util.adb (Null_Status): Assume that an erroneous construct
859 has an undefined null status.
860
53904d64 8612019-07-11 Hristian Kirtchev <kirtchev@adacore.com>
862
863 * checks.adb, exp_ch6.adb, gnat1drv.adb, sem_aux.adb,
864 sem_ch2.adb, sem_ch8.adb, sem_res.adb: Minor reformatting.
865
21dccd5f 8662019-07-11 Hristian Kirtchev <kirtchev@adacore.com>
867
868 * sem_ch8.adb (Analyze_Object_Renaming): Obtain the object being
869 renamed using routine Get_Object_Name which takes care of
870 various name forms.
871 (Get_Object_Name): New routine.
872
3da5e0d4 8732019-07-11 Ed Schonberg <schonberg@adacore.com>
874
875 * exp_ch6.adb (Can_Fold_Predicate_Call): New function,
876 subsidiary of Expand_Call_Helper, to compute statically a
877 predicate check when the argument is a static integer.
878
3d95efc8 8792019-07-11 Hristian Kirtchev <kirtchev@adacore.com>
880
881 * sem_res.adb (Resolve_Op_Not): Do not rewrite an equality
882 operator into a function call when the operator is intrinsic.
883
8c93b71c 8842019-07-11 Thomas Quinot <quinot@adacore.com>
885
886 * sem_prag.adb (Analyze_Pragma, case pragma Check): Do not call
887 Set_SCO_Pragma_Enabled for the dynamic predicate case.
888
001b1b6a 8892019-07-11 Hristian Kirtchev <kirtchev@adacore.com>
890
891 * exp_util.ads, exp_util.adb (Needs_Finalization): Move to
892 Sem_Util.
893 * sem_ch9.adb (Analyze_Protected_Definition): Code cleanup. Mark
894 the protected type as having controlled components when it
895 contains at least one such component.
896 * sem_util.ads, sem_util.adb (Needs_Finalization): New
897 function.
898
5dc190e5 8992019-07-11 Eric Botcazou <ebotcazou@adacore.com>
900
901 * alloc.ads (Rep_JSON_Table_Initial): New constant.
902 (Rep_JSON_Table_Increment): Likewise.
903 * debug.adb: Document -gnatd_j switch.
904 * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add
905 repinfo-input.o.
906 * gnat1drv.adb: Add with clause for Repinfo.Input.
907 Add with and use clauses for Sinput.
908 (Read_JSON_Files_For_Repinfo): New procedure.
909 (Gnat1drv1): Deal with -gnatd_j switch.
910 * repinfo-input.ad[sb]: New unit.
911 * snames.ads-tmpl (Name_Discriminant): New constant.
912 (Name_Operands): Likewise.
913
b1118eb8 9142019-07-11 Justin Squirek <squirek@adacore.com>
915
916 * checks.adb (Apply_Accessibility_Check): Add check for constant
917 folded conditions on accessibility checks.
918
ef0b2206 9192019-07-11 Arnaud Charlet <charlet@adacore.com>
920
921 * libgnarl/g-thread.ads, libgnarl/g-thread.adb (Get_Thread):
922 Update comments. Add new version taking a Task_Id.
923
12b1c23b 9242019-07-11 Hristian Kirtchev <kirtchev@adacore.com>
925
926 * bindo.adb: Update the section of switches and debugging
927 elaboration issues.
928 * bindo.ads: Add type Elaboration_Phase.
929 * bindo-augmentors.adb: Add use clause for
930 Bindo.Writers.Phase_Writers.
931 (Augment_Library_Graph): Signal the start and end of the
932 aubmentation phase.
933 * bindo-builders.adb: Add with and use clause for Bindo.Writers.
934 Add use clause for Bindo.Writers.Phase_Writers.
935 (Build_Invocation_Graph): Signal the start and end of the
936 invocation graph construction phase.
937 (Build_Library_Graph): Signal the start and end of the library
938 graph construction phase.
939 * bindo-diagnostics.adb: Add use clause for
940 Bindo.Writers.Phase_Writers.
941 (Diagnose_Cycle): Signal the start and end of the cycle
942 diagnostic phase.
943 * bindo-elaborators.adb: Add use clause for
944 Bindo.Writers.Phase_Writers.
945 (Elaborate_Units): Signal the start and end of the unit
946 elaboration phase.
947 * bindo-graphs.adb: Add use clause for
948 Bindo.Writers.Phase_Writers.
949 (Find_Components): Signal the start and end of the component
950 discovery phase.
951 (Find_Cycles): Signal the start and end of the cycle discovery
952 phase.
953 * bindo-units.adb: Add with and use clause for Bindo.Writers.
954 Add use clause for Bindo.Writers.Phase_Writers.
955 (Collect_Elaborable_Units): Signal the start and end of the unit
956 collection phase.
957 * bindo-validators.adb: Add with and use clause for
958 Bindo.Writers. Add use clause for Bindo.Writers.Phase_Writers.
959 (Validate_Cycles, Validate_Elaboration_Order,
960 Validate_Invocation_Graph, Validate_Library_Graph): Signal the
961 start and end of the libray graph validation phase.
962 * bindo-writers.ads, bindo-writers.adb: Add new nested package
963 Phase_Writers.
964 * debug.adb: Update the documentation of switch d_S.
965
d7569e04 9662019-07-11 Yannick Moy <moy@adacore.com>
967
968 * sem_res.adb (Check_Argument_Order): Special case calls to
969 operators.
970
604c5bca 9712019-07-10 Dmitriy Anisimkov <anisimko@adacore.com>
972
973 * libgnat/s-ststop.adb: Remove System.Strings.Stream_Ops
974 dependence on System.Streams.Stream_IO.
975
ce9565a8 9762019-07-10 Ed Schonberg <schonberg@adacore.com>
977
978 * sem_ch2.adb (Analyze_Integer_Literal): Preserve the type of
979 the literal if prior analysis determined that its type is a
980 modular integer type.
981
e97ee616 9822019-07-10 Doug Rupp <rupp@adacore.com>
983
984 * init.c: Do not attempt to re-arm guard page on x86_64-vx7(r2).
985
c0e85bb6 9862019-07-10 Ed Schonberg <schonberg@adacore.com>
987
988 * sem_ch8.adb (Check_Constrained_Object): A record that is
989 limited because of the presence of a limited component is
990 constrained, and no subtype indiciation needs to be created for
991 it, just as is the case for declared limited records.
992
94654315 9932019-07-10 Yannick Moy <moy@adacore.com>
994
995 * sem_aux.adb, sem_aux.ads (Is_Protected_Operation): New
996 function to determine if a subprogram is protected.
997 * sem_spark.adb (Setup_Protected_Components): New procedure to
998 add protected components to the environment.
999 (Check_Callable_Body): Call the new Setup_Protected_Components.
1000 (Check_Package_Spec): Merge local environment with enclosing one
1001 when done.
1002
9ac24568 10032019-07-10 Claire Dross <dross@adacore.com>
1004
1005 * sem_spark.adb (Check_Expression): Allow digits constraints as
1006 input.
1007 (Illegal_Global_Usage): Pass in the entity.
1008 (Is_Subpath_Expression): New function to allow different nodes
1009 as inner parts of a path expression.
1010 (Read_Indexes): Allow concatenation and aggregates with box
1011 expressions. Allow attributes Update and Loop_Entry.
1012 (Check_Expression): Allow richer membership test.
1013 (Check_Node): Ignore bodies of generics.
1014 (Get_Root_Object): Allow concatenation and attributes.
1015
95266217 10162019-07-10 Hristian Kirtchev <kirtchev@adacore.com>
1017
1018 * sem_ch6.adb (Check_Discriminant_Conformance): Use Find_Type to
1019 discover the type of a full view discriminant.
1020
f9d615a1 10212019-07-10 Arnaud Charlet <charlet@adacore.com>
1022
1023 * doc/gnat_ugn/gnat_and_program_execution.rst: Improve gnatmem's
1024 doc for the depth switch.
1025
55d7c660 10262019-07-10 Bob Duff <duff@adacore.com>
1027
1028 * doc/gnat_ugn/gnat_utility_programs.rst: Document gnatpp's
1029 --source-line-breaks switch.
1030
e94f4600 10312019-07-10 Justin Squirek <squirek@adacore.com>
1032
1033 * doc/gnat_rm/implementation_defined_attributes.rst: Add mention
1034 of 'Image attribute with 'Img's entry to mention additional
1035 added 2012 usage of Obj'Image.
1036 * doc/gnat_rm/implementation_defined_pragmas.rst: Correct
1037 mispelling of Async_Writers.
1038 * gnat_rm.texi: Regenerate.
1039 * sem_prag.adb (Analyze_Pragma): Correct mispelling of
1040 Async_Writers.
1041 * sem_util.adb (State_Has_Enabled_Property): Correct mispelling
1042 of Async_Writers.
1043
2bf00b7f 10442019-07-10 Simon Buist <buist@adacore.com>
1045
1046 * sem_util.ads (Child_Prefix): New constant.
1047 * sem_util.adb (Unique_Name): Add a special prefix to child
1048 units that have a nested subprogram or package.
1049
9dda714b 10502019-07-10 Arnaud Charlet <charlet@adacore.com>
1051
1052 * sfn_scan.adb (Scan_SFN_Pragmas): Add pragma Assert.
1053
fd8a528d 10542019-07-10 Hristian Kirtchev <kirtchev@adacore.com>
1055
1056 * sem_ch3.adb (Check_Nonoverridable_Aspects): Correct the
1057 spelling in certain error messages.
1058 (Check_Pragma_Implemented): Correct the spelling in certain
1059 error messages.
1060
97f0aa19 10612019-07-10 Eric Botcazou <ebotcazou@adacore.com>
1062
1063 * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add g-brapre.
1064 * libgnat/g-brapre.ads: New package specification.
1065 * doc/gnat_rm/the_gnat_library.rst: Document it.
1066 * gnat_rm.texi: Regenerate.
1067
d2506f16 10682019-07-10 Yannick Moy <moy@adacore.com>
1069
1070 * osint-c.adb (Set_File_Name): Always add extension for multiple
1071 units per file mode.
1072
c6db401c 10732019-07-10 Corentin Gay <gay@adacore.com>
1074
1075 * sysdep.c: Put include directive for 'vxWorks.h' before any
1076 other VxWorks headers.
1077
344c2639 10782019-07-10 Eric Botcazou <ebotcazou@adacore.com>
1079
1080 * doc/gnat_rm/implementation_defined_attributes.rst
1081 (Scalar_Storage_Order): Minor tweaks. Add note about debuggers.
1082 * gnat_rm.texi: Regenerate.
1083
8a9900a9 10842019-07-10 Hristian Kirtchev <kirtchev@adacore.com>
1085
1086 * exp_ch4.adb (Expand_N_Case_Expression): Mark the generated
1087 assignments to the temporary result as being OK because the
1088 expansion of case expressions is correct by construction.
1089 (Is_Copy_Type): Update the predicate to match the comment
1090 within.
1091
8c21443b 10922019-07-10 Hristian Kirtchev <kirtchev@adacore.com>
1093
1094 * bindo-graphs.adb, bindo.adb, debug.adb, exp_ch6.adb,
1095 sem_ch10.adb, sem_ch13.adb, sem_ch3.adb, sem_ch4.adb,
1096 sem_ch6.adb, sem_ch7.adb, sem_res.adb, sem_spark.adb,
1097 sem_util.adb, warnsw.ads: Minor reformatting.
1098
2e7929f0 10992019-07-10 Joffrey Huguet <huguet@adacore.com>
1100
1101 * libgnat/a-strbou.ads, libgnat/a-strfix.ads,
1102 libgnat/a-strunb.ads, libgnat/a-strunb__shared.ads: Add global
1103 contracts, contract cases, preconditions and postconditions to
1104 procedures and functions.
1105
87d55fe2 11062019-07-10 Doug Rupp <rupp@adacore.com>
1107
1108 * sysdep.c (__gnat_is_file_not_found_error): Reformulate to also
1109 work for vxworks7r2 SR0610.
1110
82d7e1f4 11112019-07-10 Doug Rupp <rupp@adacore.com>
1112
1113 * env.c (__gnat_environ): Reformulate to also work for
1114 vxworks7r2 SR0610.
1115
7f6066e1 11162019-07-10 Patrick Bernardi <bernardi@adacore.com>
1117
1118 * Makefile.rtl: Handle vxworks7r2 ppc target
1119
6523468f 11202019-07-10 Hristian Kirtchev <kirtchev@adacore.com>
1121
1122 * bindo.adb: Update the section on switches.
1123 * bindo-graphs.adb
1124 (Add_Cycle, Add_Vertex_And_Complement): Remove.
1125 (Create): The graph no longer needs a set of recorded cycles
1126 because the cycles are not rediscovered in permuted forms.
1127 (Cycle_End_Vertices): New routine.
1128 (Destroy): The graph no longer needs a set of recorded cycles
1129 because the cycles are not rediscovered in permuted forms.
1130 (Destroy_Library_Graph_Vertex): Move to the library level.
1131 (Find_All_Cycles_Through_Vertex, Find_All_Cycles_With_Edge):
1132 Remove.
1133 (Find_Cycles_From_Successor, Find_Cycles_From_Vertex,
1134 Find_Cycles_In_Component, Has_Elaborate_All_Edge): New routines.
1135 (Insert_And_Sort): Remove.
1136 (Is_Elaborate_Body_Edge): Use predicate
1137 Is_Vertex_With_Elaborate_Body.
1138 (Is_Recorded_Cycle): Remove.
1139 (Is_Vertex_With_Elaborate_Body): New routine.
1140 (Normalize_And_Add_Cycle): Remove.
1141 (Precedence): Rename to xxx_Precedence, where xxx relates to the
1142 input. These versions better reflect the desired input
1143 precedence.
1144 (Record_Cycle): New routine.
1145 (Remove_Vertex_And_Complement, Set_Is_Recorded_Cycle): Remove.
1146 (Trace_xxx): Update all versions to use debug switch -d_t.
1147 (Trace_Component): New routine.
1148 (Trace_Eol): Removed.
1149 (Trace_Vertex): Do not output the component as this information
1150 is already available when the component is traced.
1151 (Unvisit, Visit): New routine.
1152 * bindo-graphs.ads: Add new instance LGV_Lists. Remove instance
1153 RC_Sets. Update the structure of type Library_Graph_Attributes
1154 to remove the set of recorded cycles.
1155 (Destroy_Library_Graph_Vertex): Move to the library level.
1156 * bindo-writers.adb (Write_Component_Vertices): Output
1157 information about the number of vertices.
1158 * debug.adb: Document the use of binder switch -d_t. Update the
1159 use of binder switch -d_T.
1160
9eaacd61 11612019-07-10 Yannick Moy <moy@adacore.com>
1162
1163 * sem_spark.adb (Get_Root_Object): Replace precondition by error
1164 message.
1165 (Read_Indexes): Replace precondition by error message.
1166 (Check_Callable_Body): Check only traversal function returns an
1167 anonymous access type.
1168 (Check_Expression): Issue error on unexpected expression as
1169 path.
1170 * sem_util.adb (First_Global): Fix access to global on
1171 entry/task.
1172
2ac657bd 11732019-07-10 Javier Miranda <miranda@adacore.com>
1174
1175 * exp_ch6.adb (Is_Class_Wide_Interface_Type): New subprogram.
1176 (Expand_Call_Helper): Handle non-limited views when we check if
1177 any formal is a class-wide interface type.
1178 * exp_disp.adb (Expand_Interface_Actuals): Handle non-limited
1179 views when we look for interface type formals to force "this"
1180 displacement.
1181
d3fb378d 11822019-07-10 Ed Schonberg <schonberg@adacore.com>
1183
1184 * sem_res.adb (Resolve_Equality_Op): Do not replace the resolved
1185 operator by its alias if expander is not active, because the
1186 operand type may not be frozen yet and its inherited operations
1187 have not yet been created.
1188
ab8418a3 11892019-07-10 Hristian Kirtchev <kirtchev@adacore.com>
1190
1191 * bindo-elaborators.adb (Elaborate_Units): Set attribute
1192 Elab_Position of all elaborated units.
1193 (Set_Unit_Elaboration_Positions): New routine.
1194
6e618828 11952019-07-10 Gary Dismukes <dismukes@adacore.com>
1196
1197 * exp_util.adb: Reformatting and a typo fix.
1198
97f6f798 11992019-07-10 Yannick Moy <moy@adacore.com>
1200
1201 * exp_util.adb (Remove_Side_Effects): Prefer renamings for
1202 objects of possible owning type in GNATprove mode.
1203
89c67bd9 12042019-07-09 Ed Schonberg <schonberg@adacore.com>
1205
1206 * sem_ch3.adb (Analyze_Object_Declaration): If the object type
1207 is a composite type that has a dynamic predicate and, the
1208 expression in the declaration is an aggregate, the generated
1209 predicate check must appear after the expanded code for the
1210 aggregate, which will appear after the rewritten object
1211 declarastion.
1212
fb739c45 12132019-07-09 Justin Squirek <squirek@adacore.com>
1214
1215 * sem_eval.adb (Expr_Value_E): Add conditional to correctly
1216 handle constant enumerated character types.
1217
54b39f26 12182019-07-09 Eric Botcazou <ebotcazou@adacore.com>
1219
1220 * libgnarl/s-osinte__mingw.ads (CRITICAL_SECTION): Use proper
1221 type for SpinCount component.
1222
9b57fc30 12232019-07-09 Justin Squirek <squirek@adacore.com>
1224
1225 * exp_ch4.adb (Expand_N_Allocator): Add conditional to detect
1226 the presence of anoymous access type allocators and issue a
1227 warning if the appropriate warning flag is enabled.
1228 * warnsw.ads: Add new warning flag for anonymous allocators
1229 * warnsw.adb (All_Warnings, Restore_Warnings, Save_Warnings,
1230 Set_Underscore_Warning_Switch): Register new flags.
1231 (WA_Warnings): Register new flag as an "all warnings" switch
1232 * usage.adb,
1233 doc/gnat_ugn/building_executable_programs_with_gnat.rst:
1234 Document new warning switches -gnatw_a and -gnatw_A.
1235 * gnat_ugn.texi: Regenerate.
1236
2463fa93 12372019-07-09 Ed Schonberg <schonberg@adacore.com>
1238
1239 * sem_ch4.adb (Diagnose_Call): Improve error recovery when a
1240 local subprogram name hides a possible candidate name declared
1241 in a child package in the context of the current unit.
1242 * sem_ch6.adb (Process_Formals): Protect against malformed
1243 formal types when the parameter type does not denote an entity.
1244
7389bee5 12452019-07-09 Hristian Kirtchev <kirtchev@adacore.com>
1246
1247 * bindo-augmentors.adb (Visit_Elaboration_Root): Do not start a
1248 DFS from an elaboration root whose corresponding unit lacks
1249 elaboration code. This behavior mimics that of the old
1250 elaboration order mechanism.
1251 * bindo-graphs.adb (Find_All_Cycles_Through_Vertex): Move the
1252 vertex tracing within the functional branches of the routine.
1253 This prevents spurious trace output.
1254 (Has_No_Elaboration_Code): New routine.
1255 (Trace_Cycle, Trace_Edge): Update the various Ids to use the
1256 "standard" trace format.
1257 * bindo-graphs.ads (Has_No_Elaboration_Code): New routine.
1258 * bindo-units.ads, bindo-units.adb (Has_No_Elaboration_Code):
1259 New routine.
1260
06d78d4c 12612019-07-09 Piotr Trojanek <trojanek@adacore.com>
1262
1263 * ali.ads, bindo-graphs.adb, bindo-validators.adb, clean.adb,
1264 doc/gnat_ugn/elaboration_order_handling_in_gnat.rst, einfo.ads,
1265 exp_aggr.adb, exp_ch13.adb, exp_ch4.adb, exp_ch5.adb,
1266 exp_ch6.adb, exp_ch7.adb, exp_ch9.adb, exp_pakd.adb,
1267 fname-uf.ads, gnatlink.adb, inline.adb, lib.ads, make.adb,
1268 namet.ads, opt.ads, par-ch4.adb, par-ch6.adb, par-labl.adb,
1269 prep.adb, sem_aggr.adb, sem_ch13.adb, sem_ch4.adb, sem_ch5.adb,
1270 sem_ch6.adb, sem_ch6.ads, sem_ch7.adb, sem_ch8.adb, sem_dim.adb,
1271 sem_disp.adb, sem_prag.adb, sem_res.adb, sem_warn.adb,
1272 sinfo.ads: Replace ". " with ". ". Minor reformatting and typo
1273 corrections.
1274 * gnat_ugn.texi: Generate.
1275
7ed20965 12762019-07-09 Hristian Kirtchev <kirtchev@adacore.com>
1277
1278 * bindo.ads: Move type Precedence_Kind from the private to the
1279 visible part of the unit.
1280 * bindo-augmentors.adb: Remove the use of global data as it is
1281 bad practice.
1282 (Augment_Library_Graph): Update the parameter profile.
1283 (Is_Visited, Set_Is_Visited): Remove.
1284 (Visit_Elaboration_Root, Visit_Elaboration_Roots): Update the
1285 parameter profile and comment on usage.
1286 (Visit_Vertex): Likewise. Also keep track of which invocation
1287 edge activates a task.
1288 * bindo-augmentors.ads (Augment_Library_Graph): Update the
1289 parameter profile and comment on usage.
1290 * bindo-builders.adb (Create_Forced_Edge,
1291 Create_Spec_And_Body_Edge, Create_With_Edge): Update the call to
1292 Add_Edge.
1293 * bindo-diagnostics.adb: Add with end use clauses for Restrict
1294 and Rident.
1295 (Output_Dynamic_Model_Suggestions): Remove.
1296 (Output_Invocation_Related_Suggestions): New routine.
1297 (Output_Suggestions): Output all invocation-related suggestions
1298 together.
1299 * bindo-elaborators.adb: Remove types Comparator_Ptr and
1300 Predicate_Ptr.
1301 (Find_Best_Vertex): Update the parameter profile.
1302 * bindo-graphs.adb (Activates_Task): New routine.
1303 (Add_Body_Before_Spec_Edge): Update the call to
1304 Add_Edge_With_Return.
1305 (Add_Edge): Update the parameter profile and the call to
1306 Add_Edge_With_Return.
1307 (Add_Edge_With_Return): Update the parameter profile and comment
1308 on usage.
1309 (At_Least_One_Edge_Satisfies): New routine.
1310 (Contains_Elaborate_All_Edge): Reimplement.
1311 (Contains_Static_Successor_Edge, Contains_Task_Activation): New
1312 routine.
1313 (Contains_Weak_Static_Successor): Remove.
1314 (Is_Static_Successor_Edge): New routine.
1315 * bindo-graphs.ads: Add types LGE_Predicate_Ptr,
1316 LGV_Comparator_Ptr, and LGV_Predicate_Ptr. Update type
1317 Library_Graph_Edge_Attributes to capture whether an invocation
1318 edge activates a task. Update the value of
1319 No_Library_Graph_Edge_Attributes.
1320 (Activates_Task): Update the parameter profile and comment on
1321 usage.
1322 (Contains_Static_Successor_Edge, Contains_Task_Activation): New
1323 routines.
1324 (Contains_Weak_Static_Successor): Remove.
1325 * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst:
1326 Update the documentation to reflect the new task-related advice.
1327 * gnat_ugn.texi: Regenerate.
1328
247527b7 13292019-07-09 Piotr Trojanek <trojanek@adacore.com>
1330
1331 * exp_util.adb (Containing_Package_With_Ext_Axioms): Replace
1332 low-level Ekind test with a high-level wrapper.
1333
1d7a9954 13342019-07-09 Arnaud Charlet <charlet@adacore.com>
1335
1336 * libgnat/s-memory.adb: Disable calls to Abort defer/undefer
1337 when ZCX_By_Default.
1338
7667b40a 13392019-07-09 Javier Miranda <miranda@adacore.com>
1340
1341 * sem_ch13.adb (Rep_Item_Too_Early): Representation clauses are
1342 not allowed for a derivation of a generic type. Extend the
1343 current test to check that none of the parents is a generic
1344 type.
1345
98eb8111 13462019-07-09 Hristian Kirtchev <kirtchev@adacore.com>
1347
1348 * exp_ch9.adb, exp_util.adb, repinfo.adb, sem_ch12.adb,
1349 sem_prag.adb, sem_res.adb, sem_spark.adb, sem_util.adb: Minor
1350 reformatting.
1351
5ffa473a 13522019-07-09 Ed Schonberg <schonberg@adacore.com>
1353
1354 * sem_res.adb (Resolve_Equality_Op): If the node was overloaded,
1355 set properly the entity to which the node has been resolved. The
1356 original entity is the first one found during analysis, and is
1357 not necessarily the resolved one.
1358 (Resolve_Op_Not): If the argument of negation is an overloaded
1359 equality operation, call its resolution directly given that the
1360 context type does not participate in overload resolution.
1361
f7197450 13622019-07-09 Hristian Kirtchev <kirtchev@adacore.com>
1363
1364 * bindo.adb: Remove with and use clauses for Debug. Add with
1365 and use clauses for Opt.
1366 (Find_Elaboration_Order): Enable the v4.0 elaboration order. The
1367 v3.0 mechanism is now available under binder switch -H.
1368 * bindusg.adb (Display): Enable switch -H.
1369 * debug.adb: Free compiler switch -gnatd_G. Free binder switch
1370 -d_N.
1371 * sem_elab.adb: Update the section on switches to remove
1372 -gnatd_G.
1373 (Invocation_Graph_Recording_OK): The invocation graph is now
1374 unconditionally recorded in ALI files.
1375 * switch-b.adb (Scan_Binder_Switches): Scan switch -H.
1376 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
1377 Update the documentation on compiler switches related to
1378 elaboration. Update the documentation on binder switches to
1379 include switch -H.
1380 * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Update
1381 the documentation on elaboration order handling in GNAT.
1382 * gnat_ugn.texi: Regenerate.
1383
a2c6c634 13842019-07-09 Eric Botcazou <ebotcazou@adacore.com>
1385
1386 * repinfo.adb (List_Entities): Disregard formals altogether.
1387 (List_Name): Properly escape the double quote in the JSON
1388 output.
1389
3933efcf 13902019-07-09 Javier Miranda <miranda@adacore.com>
1391
1392 * exp_util.adb (Remove_Side_Effects): Preserve the
1393 Do_Range_Check flag.
1394
2166bdef 13952019-07-09 Yannick Moy <moy@adacore.com>
1396
1397 * sinfo.ads: Refine comment for Do_Range_Check.
1398
dbf9a3d7 13992019-07-09 Yannick Moy <moy@adacore.com>
1400
1401 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Expand
1402 attribute reference on Enum_Rep.
1403
44e00a56 14042019-07-09 Ed Schonberg <schonberg@adacore.com>
1405
1406 * sem_ch12.adb (Instantiate_Formal_Package): Handle properly the
1407 case where the actual for a formal package in an instance is the
1408 current instance of an enclosing generic package.
1409 (Check_Formal_Packages): If the formal package declaration is
1410 box-initialized or lacks associations altogether, no internal
1411 instance was created to verify conformance, and there is no
1412 validating package to remove from tree.
1413
3e4e7139 14142019-07-09 Yannick Moy <moy@adacore.com>
1415
1416 * freeze.adb (Build_Renamed_Body): Do not set body to inline in
1417 GNATprove mode.
1418
8235b943 14192019-07-09 Yannick Moy <moy@adacore.com>
1420
1421 * exp_util.adb (Expand_Subtype_From_Expr): Still expand the type
1422 of static expressions in GNATprove_Mode.
1423 * sem_ch3.adb (Analyze_Object_Declaration): Remove obsolete
1424 special case for GNATprove_Mode.
1425
cf9af2fa 14262019-07-09 Piotr Trojanek <trojanek@adacore.com>
1427
1428 * doc/gnat_rm/the_gnat_library.rst,
1429 doc/gnat_ugn/building_executable_programs_with_gnat.rst,
1430 erroutc.adb, libgnat/g-comlin.adb, libgnat/g-comlin.ads,
1431 libgnat/g-regexp.ads, libgnat/g-regpat.ads,
1432 libgnat/g-spipat.ads, libgnat/s-os_lib.ads,
1433 libgnat/s-regexp.ads: Reword "wild card" to "wildcard".
1434 * gnat_rm.texi, gnat_ugn.texi: Regenerate.
1435
a080baa9 14362019-07-09 Yannick Moy <moy@adacore.com>
1437
1438 * sem_spark.adb (Check_Expression): Handle correctly implicit
1439 assignments as part of allocators and (extension) aggregates.
1440 (Get_Root_Object): Adapt for new path expressions.
1441 (Is_Path_Expression): Return True for (extension) aggregate.
1442
d9b7ae15 14432019-07-09 Piotr Trojanek <trojanek@adacore.com>
1444
1445 * einfo.ads: Fix a typo.
1446
4c24efa6 14472019-07-09 Ed Schonberg <schonberg@adacore.com>
1448
1449 * sem_util.adb (Scope_Within_Or_Same): Handle properly task
1450 bodies and protected bodies, so that local variables within have
1451 their proper scopes after these constructs have been rewritten
1452 during expansion. This patch resembles but is not identical to
1453 the code in Scope_Within.
1454
6c334e66 14552019-07-09 Arnaud Charlet <charlet@adacore.com>
1456
1457 * gnat1drv.adb (Adjust_Global_Switches): Set
1458 Dynamic_Elaboration_Checks to True in CodePeer mode.
1459
82c20af0 14602019-07-09 Yannick Moy <moy@adacore.com>
1461
1462 * sem_spark.adb (Get_Perm_Or_Tree): Issue an error when
1463 encountering unknown global variable.
1464
a42b8e6a 14652019-07-09 Yannick Moy <moy@adacore.com>
1466
1467 * sem_spark.adb (Check_Expression): Change signature to take an
1468 Extended_Checking_Mode, for handling read permission checking of
1469 sub-expressions in an assignment.
1470 (Check_Parameter_Or_Global): Adapt to new behavior of
1471 Check_Expression for mode Assign.
1472 (Check_Safe_Pointers): Do not analyze generic bodies.
1473 (Check_Assignment): Separate checking of the target of an
1474 assignment.
1475
5fb4f6e3 14762019-07-09 Eric Botcazou <ebotcazou@adacore.com>
1477
1478 * repinfo.ads (JSON format): Adjust.
1479 * repinfo.adb (Need_Blank_Line): Rename to...
1480 (Need_Separator): ...this.
1481 (Blank_Line): Rename to...
1482 (Write_Separator): ...this and add JSON specific handling.
1483 (List_Array_Info): Adjust to above renaming.
1484 (List_Object_Info): Likewise.
1485 (List_Record_Info): Likewise.
1486 (List_Subprogram_Info): Likewise.
1487 (List_Type_Info): Likewise.
1488 (List_Entities): Do not set Need_Blank_Line.
1489 (List_Rep_Info): Set Need_Separator and add JSON specific
1490 handling. Output a single JSON stream in the normal case.
1491
b389ec1e 14922019-07-09 Arnaud Charlet <charlet@adacore.com>
1493
1494 * doc/gnat_ugn/the_gnat_compilation_model.rst: Update doc on
1495 -fdump-ada-spec now that we generate Ada 2012.
1496 * gnat_ugn.texi: Regenerate.
1497
5acb3702 14982019-07-08 Eric Botcazou <ebotcazou@adacore.com>
1499
1500 * repinfo.adb (List_Common_Type_Info): New procedure extracted
1501 from...
1502 (List_Type_Info): ...here. Call it for the common information,
1503 start with a blank line and output the linker section at the
1504 end, if any.
1505 (List_Mechanisms): Rename to...
1506 (List_Subprogram_Info): ...this.
1507 (List_Array_Info): Call List_Common_Type_Info.
1508 (List_Entities): Adjust to above change and renaming.
1509 (List_Record_Info): Call List_Common_Type_Info.
1510
6eb57612 15112019-07-08 Dmitriy Anisimkov <anisimko@adacore.com>
1512
1513 * libgnat/g-sercom.ads
1514 (Serial_Port_Descriptor): New type.
1515 (Serial_Port): Add a comment, make it hold a
1516 Serial_Port_Descriptor.
1517 (To_Ada, To_C): New procedures.
1518 (Port_Data, Port_Data_Access): Remove types.
1519 * libgnat/g-sercom.adb (To_Ada): New stub.
1520 * libgnat/g-sercom__linux.adb, libgnat/g-sercom__mingw.adb:
1521 Update implementations accordingly.
1522 * s-oscons-tmplt.c: Bind Serial_Port_Descriptor to
1523 System.Win32.HANDLE on Windows, and to Interfaces.C.int on
1524 Linux. Add "Interfaces.C." prefix for other basic integer type
1525 bindings.
1526 * xoscons.adb (Output_Info): Remove the "Interfaces.C." prefix
1527 for subtypes generation.
1528
08da2ad9 15292019-07-08 Arnaud Charlet <charlet@adacore.com>
1530
1531 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
1532 Update documentation on No_Exceptions restriction.
1533 * gnat_rm.texi: Regenerate.
1534
89b07420 15352019-07-08 Dmitriy Anisimkov <anisimko@adacore.com>
1536
1537 * libgnat/s-os_lib.adb: Do not call __gnat_kill for Invalid_Pid.
1538
0cc34fed 15392019-07-08 Piotr Trojanek <trojanek@adacore.com>
1540
1541 * sem_util.adb (Enclosing_Package_Or_Subprogram): Do not expect
1542 package and subprogram bodies.
1543
46299a06 15442019-07-08 Bob Duff <duff@adacore.com>
1545
1546 * doc/gnat_ugn/gnat_utility_programs.rst: Remove documentation
1547 of ignored GNATpp switch.
1548
4475d2f0 15492019-07-08 Hristian Kirtchev <kirtchev@adacore.com>
1550
1551 * doc/gnat_rm/implementation_defined_pragmas.rst:
1552 Update the documentation of pragma Initialize_Scalars.
1553 * gnat_rm.texi: Regenerate.
1554
b282b25b 15552019-07-08 Javier Miranda <miranda@adacore.com>
1556
1557 * exp_ch4.adb (Tagged_Membership): Fix regression silently
1558 introduced in r260738 that erroneouslusy causes the evaluation
1559 to True of the membership test when the left operand of the
1560 membership test is a class-wide interface object and the right
1561 operand is a type that implements such interface type.
1562
703ee0e0 15632019-07-08 Hristian Kirtchev <kirtchev@adacore.com>
1564
1565 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Do not
1566 register an address clause when its prefix denotes a generic
1567 formal object.
1568
e6b4414e 15692019-07-08 Hristian Kirtchev <kirtchev@adacore.com>
1570
1571 * bindo-diagnostics.adb (Diagnose_Cycle): Capture the presence
1572 of an Elaborate_All edge before iterating over the edges of the
1573 cycle.
1574 (Output_Elaborate_Body_Transition): Update the parameter profile
1575 and the comment on usage. Add a missing case where the edge is
1576 within the context of an Elaborate_All.
1577 (Output_Transition): Update the call to
1578 Output_Elaborate_Body_Transition.
1579 * bindo-graphs.ads, bindo-graphs.adb
1580 (Contains_Elaborate_All_Edge): New routine.
1581
5a4de65a 15822019-07-08 Piotr Trojanek <trojanek@adacore.com>
1583
1584 * lib-xref-spark_specific.adb (Create_Heap): Set dummy Etype for
1585 the fake __HEAP entity.
1586
42253061 15872019-07-08 Daniel Mercier <mercier@adacore.com>
1588
1589 * gnat1drv.adb: Suppress warnings on memory representation in
1590 CodePeer compiler mode.
1591
a7c8fd7e 15922019-07-08 Nicolas Roche <roche@adacore.com>
1593
1594 * rtinit.c (__gnat_runtime_initialize): Remove dependency on
1595 CommandLineToArgvW.
1596
89c9dd55 15972019-07-08 Doug Rupp <rupp@adacore.com>
1598
1599 * Makefile.rtl: Handle vxworks7r2 in x86_64 and x86 vxworks7.
1600
944903c8 16012019-07-08 Dmitriy Anisimkov <anisimko@adacore.com>
1602
1603 * Makefile.rtl: Use g-sercom__linux.adb for all linuxes.
1604
e51a140c 16052019-07-08 Yannick Moy <moy@adacore.com>
1606
1607 * expander.adb (Expand): Do not reset Analyzed flag always.
1608 * sem_eval.adb (Fold_Ureal): Mark node as analyzed.
1609
f117e449 16102019-07-08 Ed Schonberg <schonberg@adacore.com>
1611
1612 * exp_ch9.adb (Expand_N_Timed_Entry_Call): Do not insert twice
1613 the assignment statement that computes the delay value, to
1614 prevent improper tree sharing when the value is a type
1615 conversion and Float_Overflow checks are enabled.
1616
f5cb3a59 16172019-07-08 Hristian Kirtchev <kirtchev@adacore.com>
1618
1619 * bindo.adb: Update the section on terminology to include new
1620 concepts. Update the section on switches to include new
1621 entries.
1622 * bindo.ads: Add type Precedence_Kind.
1623 * bindo-builders.adb: Add with and use clauses for Debug and
1624 Bindo.Validators. Add use clauses for
1625 Bindo.Validators.Invocation_Graph_Validators and
1626 Bindo.Validators.Library_Graph_Validators.
1627 (Build_Invocation_Graph): Validate the graph immediately after
1628 it was built.
1629 (Build_Library_Graph): Update the parameter profile. The
1630 creation of the graph is now elaboration model-agnostic.
1631 Validate the graph immediately after it was built.
1632 (Create_With_Edge): Create regular with edges for Elaborate and
1633 Elaborate_All edges when the appropriate debug switches are in
1634 effect.
1635 * bindo-builders.ads (Build_Library_Graph): Update the parameter
1636 profile.
1637 * bindo-diagnostics.adb (Diagnose_Cycle): Track the presence of
1638 an Elaborate_All edge throughout the inspection of the cycle's
1639 edges.
1640 (Output_Dynamic_Model_Suggestions): Output the suggestion only
1641 when the cycle contains at least one weak edge where the
1642 successor was statically elaborated.
1643 (Output_Elaborate_Body_Transition, Output_Forced_Transition,
1644 Output_With_Transition): Update the assertions.
1645 * bindo-elaborators.adb: Remove use clauses for
1646 Bindo.Validators.Invocation_Graph_Validators and
1647 Bindo.Validators.Library_Graph_Validators. Remove strings
1648 Add_To_All_Candidates_Msg and Add_To_Comp_Candidates_Msg.
1649 Remove type String_Ptr.
1650 (Add_Vertex, Add_Vertex_If_Elaborable, Create_All_Candidates_Set
1651 Create_Component_Candidates_Set): Remove.
1652 (Create_Component_Vertex_Sets, Create_Vertex_Sets): New routine.
1653 (Elaborate_Component): Update the parameter profile and the
1654 comment on usage. Reimplement the elaboration of a component.
1655 The algorithm will now attempt to elaborate as many vertices
1656 possible. If this is not possible, and a weakly elaborable
1657 vertex is available use unit was compiled using the dynamic
1658 model, the algorithm will elaborate it.
1659 (Elaborate_Library_Graph): Reimplement the elaboration of the
1660 graph. The algorithm will now attempt to elaborate as many
1661 vertices along with their components as possible. If this is not
1662 possible, and a weakly elaborable vertex is available use unit
1663 was compiled using the dynamic model, the algorithm will
1664 elaborate it along with its component.
1665 (Elaborate_Units): Merge with the functionality of
1666 Elaborate_Units_Common.
1667 (Elaborate_Units_Common, Elaborate_Units_Dynamic,
1668 Elaborate_Units_Static): Remove.
1669 (Elaborate_Vertex): Update the parameter profile and the comment
1670 on usage. Reimplemented.
1671 (Find_Best_Candidate): Remove.
1672 (Find_Best_Elaborable_Vertex, Find_Best_Vertex,
1673 Find_Best_Weakly_Elaborable_Vertex, Has_Elaborable_Body,
1674 Insert_Elaborable_Successor, Insert_Vertex): New routines.
1675 (Is_Better_Candidate): Remove.
1676 (Is_Better_Elaborable_Vertex,
1677 Is_Better_Weakly_Elaborable_Vertex,
1678 Is_Suitable_Elaborable_Vertex,
1679 Is_Suitable_Weakly_Elaborable_Vertex): New routines.
1680 (Trace_Candidate_Vertices): Remove.
1681 (Trace_Component): Output the number of strong and weak
1682 predecessors.
1683 (Trace_Unelaborated_Vertices): Remove.
1684 (Trace_Vertex): Output the number of strong and weak
1685 predecessors.
1686 (Trace_Vertices): New routine.
1687 (Update_Successor, Update_Successors): Update the parameter
1688 profile and the comment on usage.
1689 * bindo-graphs.adb: Remove type Precedence_Kind.
1690 (Add_Edge_With_Return): Update the increment of pending
1691 predecessors.
1692 (Add_Vertex): Provide default values for strong and weak
1693 predecessors.
1694 (Complementary_Vertex): Move the initial declaration to the
1695 spec. Update the parameter profile and the comment on usage.
1696 (Contains_Weak_Static_Successor): New routine.
1697 (Create): Update the parameter profile. The creation of the
1698 graph is now elaboration model-agnostic.
1699 (Decrement_Pending_Predecessors): Update the parameter profile
1700 and the comment on usage. Reimplemented.
1701 (Delete_Edge): Update the decrement of pending predecesors.
1702 (Has_Elaborate_Body): Do not treat a vertex as being subject to
1703 Elaborate_Body when a debug switch is in effect.
1704 (Increment_Pending_Predecessors): Update the parameter profile
1705 and the comment on usage. Reimplemented.
1706 (Is_Elaborable_Component): Reimplemented.
1707 (Is_Elaborable_Vertex): Move the initial declaration to the
1708 spec. Reimplemented.
1709 (Is_Elaborate_Body_Pair): New routine.
1710 (Is_Dynamically_Elaborated): Update the parameter profile.
1711 Reimplemented.
1712 (Is_Weakly_Elaborable_Vertex): New routine.
1713 (Pending_Predecessors): Removed.
1714 (Pending_Predecessors_For_Elaboration,
1715 Pending_Strong_Predecessors, Pending_Weak_Predecessors,
1716 Update_Pending_Predecessors): New routines.
1717 (Update_Pending_Predecessors_Of_Components): Update the
1718 increment of pending predecessors.
1719 * bindo-graphs.ads: Update the components of type
1720 Component_Attributes. Update the components of type
1721 Library_Graph_Attributes. Update the components of type
1722 Library_Graph_Vertex_Attributes. Update the initialization of
1723 No_Component_Attributes. Update the initialization of
1724 No_Library_Graph_Vertex_Attributes.
1725 (Complementary_Vertex, Contains_Weak_Static_Successor): New
1726 routines.
1727 (Create): Update the parameter profile and the comment on usage.
1728 (Decrement_Pending_Predecessors, Is_Dynamically_Elaborated):
1729 Update the parameter profile and the comment on usage.
1730 (Is_Elaborate_Body_Pair, Is_Weakly_Elaborable_Vertex): New
1731 routines.
1732 (Pending_Predecessors): Removed.
1733 (Pending_Predecessors_For_Elaboration,
1734 Pending_Strong_Predecessors, Pending_Weak_Predecessors): New
1735 routines.
1736 * bindo-writers.adb (Write_Components): Moved from the spec.
1737 (Write_Component): Output the strong and weak predecessors.
1738 (Write_Library_Graph): Output the components as part of the
1739 graph.
1740 (Write_Library_Graph_Vertex): Output the strong and weak
1741 predecessors.
1742 * bindo-writers.ads (Write_Components): Moved to the body.
1743 * debug.adb: Add and document new GNATbind switches -d_a, -d_b,
1744 -d_e.
1745 * bindo-validators.adb: Minor reformattings.
1746
7b8ca6b2 17472019-07-08 Bob Duff <duff@adacore.com>
1748
1749 * libgnat/g-sercom.ads, libgnat/g-sercom__linux.adb (Data_Rate):
1750 Support additional data rates.
1751
364c746f 17522019-07-08 Olivier Hainque <hainque@adacore.com>
1753
1754 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Don't request
1755 DECL_ARTIFICIAL_P on elab proc declarations.
1756
2dbfbbb2 17572019-07-08 Eric Botcazou <ebotcazou@adacore.com>
1758
1759 * repinfo.adb (List_Record_Info): Declare Incomplete_Layout and
1760 Not_In_Extended_Main local exceptions.
1761 (List_Structural_Record_Layout): For an extension, raise the
1762 former if the parent subtype has not been built and the latter
1763 if it is not declared in the main source unit. Fall back to the
1764 flat layout if either exception has been raised.
1765
3e05bbec 17662019-07-08 Ed Schonberg <schonberg@adacore.com>
1767
1768 * libgnat/a-strfix.adb (Delete): The RM describes the semantics
1769 of Delete as equivalent to that of Replace_String with a null
1770 argument. As a result, deleting a null string that starts past
1771 the end of its argument is a noop and must not raise
1772 Index_Error.
1773
c98aac61 17742019-07-08 Javier Miranda <miranda@adacore.com>
1775
1776 * exp_disp.adb (Register_Primitive): When registering a
1777 primitive in the secondary dispatch table, handle primitive
1778 inherited through several levels of type derivation (required to
1779 properly handle inherited 'null' primitive).
1780
221b67b6 17812019-07-08 Bob Duff <duff@adacore.com>
1782
1783 * doc/gnat_ugn/gnat_utility_programs.rst: Document handling of
1784 preprocessor directives in GNATpp.
1785
aed4e06a 17862019-07-08 Javier Miranda <miranda@adacore.com>
1787
1788 * gnat1drv.adb (Post_Compilation_Validation_Checks:
1789 Validate_Compile_Time_Warning_Errors is now located in sem_prag
1790 (instead of sem_ch13).
1791 * sem_ch13.ads (Validate_Compile_Time_Warning_Error,
1792 Validate_Compile_Time_Warning_Errors): Move to sem_prag.
1793 * sem_ch13.adb
1794 (Compile_Time_Warnings_Errors): Move to sem_prag.
1795 (Initialize): Remove initialization of table
1796 Compile_Time_Warning_Errors.
1797 (Validate_Compile_Time_Warning_Error,
1798 Validate_Compile_Time_Warning_Errors): Move to sem_prag.
1799 * sem_prag.ads (Validate_Compile_Time_Warning_Errors): New
1800 procedure.
1801 * sem_prag.adb (Initialize): Initialize table
1802 Compile_Time_Warning_Errors.
1803
b9bd5934 18042019-07-08 Ed Schonberg <schonberg@adacore.com>
1805
1806 * sem_ch13.adb (Analyze_Aspect_Specifications): For a
1807 pre/postcondition of a generic subprogram declaration, do not
1808 use Relocate_Node on the aspect expression to construct the
1809 corresponding attribute specification, to prevent tree anomalies
1810 when the expression is a call with named actual parameters.
1811
63bb17d8 18122019-07-08 Javier Miranda <miranda@adacore.com>
1813
1814 * sem_attr.adb (Analyze_Attribute [Attribute_Size]): For pragmas
1815 used to report user defined compile time warning or errors
1816 handle 'Size for types with known static RM size.
1817
1979cbfe 18182019-07-08 Justin Squirek <squirek@adacore.com>
1819
1820 * exp_imgv.adb (Build_Enumeration_Image_Tables): Default SSO for
1821 the building of image tables.
1822 (Expand_Image_Attribute): Minor cleanup.
1823
bcb0a375 18242019-07-08 Dmitriy Anisimkov <anisimko@adacore.com>
1825
1826 * libgnat/g-socket.ads, libgnat/g-socket.adb: Improve
1827 documentation.
1828 (Get_Socket_Option, Set_Socket_Option): Remove default value for
1829 the Level formal.
1830
429822c1 18312019-07-08 Ed Schonberg <schonberg@adacore.com>
1832
1833 * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): For an
1834 unanalized aspect in a generic context that has not been
1835 analyzed yet, if the aspect applies to a type, place the type on
1836 the scope stack to make its components visible, before checking
1837 conformance with the version of the expression analyzed at the
1838 freeze point.
1839
e1415398 18402019-07-05 Justin Squirek <squirek@adacore.com>
1841
1842 * checks.adb (Apply_Accessibility_Check): Add logic to fetch the
1843 function result accessibility level if one is required within
1844 the generated check.
1845 * exp_ch6.adb (Needs_Result_Accessibility_Level): Modify
1846 controlling elsif block to handle more cases such as anonymous
1847 access results and disable checking for coextensions.
1848
dad9e9f8 18492019-07-05 Ed Schonberg <schonberg@adacore.com>
1850
1851 * sem_ch9.adb (Analyze_Accept_Statement): If this is an illegal
1852 accept statement for an enclosing entry abandon analysis to
1853 prevent scope mismatches and potential infinite loops in
1854 compiler.
1855
627d0751 18562019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
1857
1858 * ali.adb (For_Each_Invocation_Construct,
1859 For_Each_Invocation_Relation): New version.
1860 (Scan_ALI): Initialize field Invocation_Graph_Encoding.
1861 (Set_Invocation_Graph_Encoding): Update the setting of the
1862 invocation graph encoding.
1863 * ali.ads: Move field Invocation_Graph_Encoding from Unit_Record
1864 to ALI_Record because the encoding applies to the whole ALI,
1865 rather than one of the units (spec or body) for which the ALI
1866 file was created.
1867 (For_Each_Invocation_Construct, For_Each_Invocation_Relation):
1868 New version.
1869 * bindo.adb: Update the section on switches. Complete the
1870 section of debugging elaboration order issues.
1871 (Find_Elaboration_Order): Prepare the routine for the switch
1872 from the old to the new elaboration order mechanism.
1873 * bindo-diagnostics.adb (Find_And_Output_Invocation_Paths):
1874 Manage a visited set used by Visit_Vertex.
1875 (Output_All_Cycles_Suggestions,
1876 Output_Dynamic_Model_Suggestions): Clarify the nature of the
1877 suggested switch.
1878 (Output_Elaborate_Body_Transition): Update the diagnostic to
1879 emit a better message.
1880 (Output_Forced_Suggestions, Output_Full_Encoding_Suggestions):
1881 Clarify the nature of the suggested switch.
1882 (Visit_Vertex): Update the parameter profile to add a set of
1883 invokers visited during the transition. This set prevents
1884 infinite exploration of the graph in case the invocations are
1885 recursive.
1886 * bindo-elaborators.adb: Add a use clause for
1887 Bindo.Writers.Dependency_Writers.
1888 (Elaborate_Units_Common): Output the library graph after it has
1889 been augmented with invocation edges. Output just the components
1890 instead of outputting the whole library graph again.
1891 (Elaborate_Units_Dynamic, Elaborate_Units_Static): Output the
1892 dependencies as expressed in the library graph.
1893 * bindo-units.adb (Invocation_Graph_Encoding): Update the
1894 extraction of the invocation graph encoding.
1895 * bindo-writers.adb: Add with and use clauses for Binderr and
1896 Butil.
1897 (palgc, plgc): New debug routine.
1898 (Write_Components): Moved to the spec. Add a header for the
1899 output.
1900 (Write_Dependencies, Write_Dependencies_Of_Vertex,
1901 Write_Dependency_Edge): New routine.
1902 (Write_Elaboration_Order): Update the logic to follow the format
1903 of Binde's order output.
1904 (Write_Library_Graph): Do not output the components every time
1905 the graph is written.
1906 (Write_Unit): Output the invocation graph encoding of the unit.
1907 Output the invocation constructs and relations for the unit
1908 only.
1909 * bindo-writers.ads (Write_Components): Moved from the body.
1910 (Write_Dependencies): New routine.
1911 * bindusg.adb: Prepare the routine for the switch from the old
1912 to the new elaboration order mechanism.
1913 * debug.adb: Binder switch -d_O is now not associated with any
1914 functionality.
1915 * einfo.adb (Is_Elaboration_Target): The attribute applies to
1916 packages, as specified by the comment on the attribute usage.
1917 * opt.ads: Add a global flag which controls the choice between
1918 the new and the legacy elaboration order mechanism.
1919 * sem_elab.adb: Add Package_Target to type Target_Kind.
1920 (Build_Elaborate_Body_Procedure, Build_Elaborate_Procedure,
1921 Build_Elaborate_Spec_Procedure, Check_Elaboration_Scenarios,
1922 Check_SPARK_Model_In_Effect): Use Main_Unit_Entity to obtain the
1923 entity of the main unit.
1924 (Create_Package_Rep): New routine.
1925 (Create_Target_Rep): Add processing for packages.
1926 (Declaration_Placement_Of_Node, Has_Prior_Elaboration): Use
1927 Main_Unit_Entity to obtain the entity of the main
1928 unit.
1929 (Invocation_Graph_Recording_OK): Prepare the routine for the
1930 switch from the old to the new elaboration order mechanism.
1931 (Main_Unit_Entity): New routine.
1932 (Meet_Elaboration_Requirement,
1933 Process_Conditional_ABE_Variable_Reference): Use
1934 Main_Unit_Entity to obtain the entity of the main unit.
1935 (Process_Invocation_Instantiation): New routine.
1936 (Process_Invocation_Scenario): Add processing for
1937 instantiations.
1938 * switch-b.adb (Scan_Binder_Switches): Prepare the routine for
1939 the switch from the old to the new elaboration order mechanism.
1940
30fb27b1 19412019-07-05 Joffrey Huguet <huguet@adacore.com>
1942
1943 * libgnat/a-textio.adb: Add abstract state refinment.
1944 * libgnat/a-textio.ads: Add File_System abstract state. Add
1945 global contracts, contract cases, preconditions and
1946 postconditions to procedures and functions.
1947 (Set_Input, Set_Output, Set_Error, Standard_Input,
1948 Standard_Output, Standard_Error, Current_Input, Current_Output,
1949 Current_Error): Turn SPARK_Mode off.
1950 (Get_Line): Turn SPARK_Mode off on Get_Line functions.
1951 * libgnat/a-tideio.ads, libgnat/a-tienio.ads,
1952 libgnat/a-tifiio.ads, libgnat/a-tiflio.ads,
1953 libgnat/a-tiinio.ads, libgnat/a-timoio.ads: Add global
1954 contracts, contract cases, preconditions and postconditions to
1955 procedures and functions.
1956
ce99fc8a 19572019-07-05 Arnaud Charlet <charlet@adacore.com>
1958
1959 * doc/gnat_ugn/platform_specific_information.rst: Refresh doc on
1960 installing from the command line on Windows. Remove obsolete
1961 part.
1962 * gnat_ugn.texi: Regenerate.
1963
26ea5003 19642019-07-05 Vasiliy Fofanov <fofanov@adacore.com>
1965
1966 * libgnat/a-wichha.ads (Is_Alphanumeric): Replace comment with
1967 the correct one. Also capitalize references to False
1968 throughout.
1969
c9c81835 19702019-07-05 Eric Botcazou <ebotcazou@adacore.com>
1971
1972 * exp_ch4.adb (Expand_N_Indexed_Component): Do not expand actual
1973 parameters of function calls here either.
1974
50948c8a 19752019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
1976
1977 * bindo-units.adb, checks.adb, exp_attr.adb, exp_ch3.adb,
1978 exp_ch4.adb, exp_pakd.adb, lib-writ.adb, libgnat/g-traceb.adb,
1979 libgnat/g-traceb.ads, libgnat/s-stratt.ads, sem_aux.ads,
1980 sem_util.adb: Minor reformatting.
1981
a9fa50ab 19822019-07-05 Ed Schonberg <schonberg@adacore.com>
1983
1984 * sem_ch13.adb (Build_Predicate_Functions): If a subtype that
1985 carries a static predicate aspect is frozen immediately after
1986 its declaration, ensure that the generated function body created
1987 for predicate checking is inserted after the corresponding
1988 subprogram declaration, which is created at the point the
1989 declaration is elaborated.
1990
ee4e1dd7 19912019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
1992
1993 * exp_ch7.adb (Cleanup_Record): Use the underlying type when
1994 checking for components with tasks.
1995
2028580f 19962019-07-05 Arnaud Charlet <charlet@adacore.com>
1997
1998 * libgnarl/s-osinte__linux.ads: Link with -lrt before -lpthread.
1999
ec1e481f 20002019-07-05 Ed Schonberg <schonberg@adacore.com>
2001
2002 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Add explicit
2003 range checks when the index type of the bit-packed array is an
2004 enumeration type with a non-standard representation,
2005
ae60396a 20062019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
2007
2008 * sem_res.adb (Is_Control_Flow_Statement): Delay statements
2009 contain an expression, which in turn may have side effects and
2010 affect the infinite recursion. As a result, delay statements
2011 should not be treated specially.
2012
d33025f2 20132019-07-05 Arnaud Charlet <charlet@adacore.com>
2014
2015 * libgnarl/s-linux.ads, libgnarl/s-linux__alpha.ads,
2016 libgnarl/s-linux__android.ads, libgnarl/s-linux__hppa.ads,
2017 libgnarl/s-linux__mips.ads, libgnarl/s-linux__riscv.ads,
2018 libgnarl/s-linux__sparc.ads: Fix typos in comments.
2019
51f2c7f9 20202019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
2021
2022 * sem_res.adb (Check_Infinite_Recursion): Reimplemented.
2023 (Enclosing_Declaration_Or_Statement,
2024 Invoked_With_Different_Arguments, Is_Conditional_Statement,
2025 Is_Control_Flow_Statement, Is_Immediately_Within_Body,
2026 Is_Raise_Idiom, Is_Raise_Statement, Is_Sole_Statement,
2027 Preceded_By_Control_Flow_Statement,
2028 Within_Conditional_Statement): New routines.
2029
0e6f6ee1 20302019-07-05 Javier Miranda <miranda@adacore.com>
2031
2032 * exp_ch4.adb (Expand_N_Type_Conversion): Do not apply an
2033 accessibility check when the conversion is an access to
2034 class-wide interface type and it is an actual parameter.
2035 * exp_ch6.adb (Expand_Call_Helper): Add documentation on the
2036 accessibility level of an anonymous allocator defining the value
2037 of an access parameter.
2038 * sem_util.ads, sem_util.adb (Dynamic_Accessibility_Level): Add
2039 support for an anonymous allocator whose type is that of a
2040 stand-alone object of an anonymous access to object type.
2041
f28a3d6c 20422019-07-05 Piotr Trojanek <trojanek@adacore.com>
2043
2044 * einfo.ads, sem_res.adb: Typo fixes in comments.
2045
2d8a0eb3 20462019-07-05 Bob Duff <duff@adacore.com>
2047
2048 * exp_ch6.adb (Is_Build_In_Place_Function): Narrow the check for
2049 Has_Foreign_Convention to the imported case only. If a
2050 build-in-place function is exported, and called from Ada code,
2051 build-in-place protocols should be used.
2052
6eddee84 20532019-07-05 Ed Schonberg <schonberg@adacore.com>
2054
2055 * sem_util.adb (Encloing_Subprogram): If Enclosing_Dynamic_Scope
2056 is a loop, continue climbing the scope stack to find the
2057 enclosing subprogram.
2058 (Gather_Components): Handle properly a choice in a record
2059 aggregate that is given by a subtype with a static predicate.
2060
249e38a7 20612019-07-05 Javier Miranda <miranda@adacore.com>
2062
2063 * debug.adb (-gnatd.K): Leave available this switch.
2064 * contracts.adb (Build_And_Analyze_Contract_Only_Subprograms):
2065 Remove.
2066 * scil_ll.ads, scil_ll.adb (Contract_Only_Body_Flag,
2067 Contract_Only_Body_Nodes, Get_Contract_Only_Body,
2068 Is_Contract_Only_Body, Set_Contract_Only_Body): Remove.
2069
33ae0c9f 20702019-07-05 Pierre-Marie de Rodat <derodat@adacore.com>
2071
2072 * libgnat/a-strunb.ads: Import documentation from the RM
2073
70f9c8aa 20742019-07-05 Pierre-Marie de Rodat <derodat@adacore.com>
2075
2076 * libgnat/a-strfix.ads: Import documentation from the RM
2077
1bc68ac2 20782019-07-05 Yannick Moy <moy@adacore.com>
2079
2080 * adabkend.adb (Scan_Back_End_Switches): Accept -Og and -Ofast
2081 switches.
2082
2500be2f 20832019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
2084
2085 * ali.adb: Relocate types Invocation_Construct_Record,
2086 Invocation_Relation_Record, and Invocation_Signature_Record to
2087 the body of ALI. Relocate tables Invocation_Constructs,
2088 Invocation_Relations, and Invocation_Signatures to the body of
2089 ALI. Remove type Body_Placement_Codes. Add new types
2090 Declaration_Placement_Codes, and
2091 Invocation_Graph_Encoding_Codes. Update the literals of type
2092 Invocation_Graph_Line_Codes.
2093 (Add_Invocation_Construct): Update the parameter profile. Add an
2094 invocation construct built from all attributes provided.
2095 (Add_Invocation_Relation): Update the parameter profile. Add an
2096 invocation relation built from all attributes provided.
2097 (Body_Placement): New routine.
2098 (Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind):
2099 Removed.
2100 (Code_To_Declaration_Placement_Kind,
2101 Code_To_Invocation_Graph_Encoding_Kind, Column,
2102 Declaration_Placement_Kind_To_Code, Extra,
2103 For_Each_Invocation_Construct, For_Each_Invocation_Relation,
2104 Invocation_Graph_Encoding,
2105 Invocation_Graph_Encoding_Kind_To_Code, Invoker, Kind, Line,
2106 Locations, Name): New routine.
2107 (Scan_Invocation_Construct_Line): Reimplement the scanning
2108 mechanism.
2109 (Scan_Invocation_Graph_Attributes_Line): New routine.
2110 (Scan_Invocation_Graph_Line): Use a case statement to dispatch.
2111 (Scan_Invocation_Relation_Line): Reimplement the scanning
2112 mechanism.
2113 (Scope): New routine.
2114 (Set_Invocation_Graph_Encoding, Signature, Spec_Placement,
2115 Target): New routine.
2116 * ali.ads: Add new type Invocation_Graph_Encoding_Kind. Add
2117 component Invocation_Graph_Encoding to type Unit_Record.
2118 Relocate various types and data structures to the body of ALI.
2119 (Add_Invocation_Construct, Add_Invocation_Relation): Update the
2120 parameter profile.
2121 (Body_Placement): New routine.
2122 (Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind):
2123 Removed.
2124 (Code_To_Declaration_Placement_Kind,
2125 Code_To_Invocation_Graph_Encoding_Kind, Column,
2126 Declaration_Placement_Kind_To_Code, Extra,
2127 For_Each_Invocation_Construct, For_Each_Invocation_Relation,
2128 Invocation_Graph_Encoding,
2129 Invocation_Graph_Encoding_Kind_To_Code, Invoker, Kind, Line,
2130 Locations, Name, Scope, Set_Invocation_Graph_Encoding,
2131 Signature, Spec_Placement, Target): New routine.
2132 * bindo.adb: Add with clause for Binde. Add with and use
2133 clauses for Debug. Update the documentation. Add new switches.
2134 (Find_Elaboration_Order): Dispatch to the proper elaboration
2135 mechanism.
2136 * bindo-augmentors.adb:
2137 Remove with and use clauses for GNAT and GNAT.Sets. Remove
2138 membership set VS. Update the parameter profiles of most
2139 routines to use better parameter names. Update the
2140 implementation of most routine to use the new parameter names.
2141 Remove various redundant assertions.
2142 * bindo-builders.adb: Use better names for instantiated data
2143 structures. Update all references to these names. Update the
2144 parameter profiles of most routines to use better parameter
2145 names. Update the implementation of most routine to use the new
2146 parameter names.
2147 (Build_Library_Graph): Update the parameter profile. Update the
2148 call to Create.
2149 (Create_Vertex): Reimplemented.
2150 (Declaration_Placement_Vertex): New routine.
2151 * bindo-builders.ads (Build_Library_Graph): Update the parameter
2152 profile and comment on usage.
2153 * bindo-diagnostics.adb: Almost a new unit.
2154 * bindo-diagnostics.ads: Add a use clause for
2155 Bindo.Graphs.Invocation_Graphs. Remove package
2156 Cycle_Diagnostics.
2157 (Diagnose_Circularities): New routine.
2158 * bindo-elaborators.adb: Remove the with and use clauses for
2159 Binderr and GNAT.Sets. Remove the use clause for
2160 Bindo.Diagnostics.Cycle_Diagnostics. Remove membership set VS.
2161 Update the parameter profiles of most routines to use better
2162 parameter names. Update the implementation of most routine to
2163 use the new parameter names. (Elaborate_Units_Common): Update
2164 the parameter profile. Pass an infication to the library graph
2165 builder whether the dynamic model is in effect.
2166 (Elaborate_Units_Dynamic, Elaborate_Units_Static): Use
2167 Diagnose_Circularities to provide diagnostics.
2168 (Update_Successor): Use routine In_Same_Component to determine
2169 whether the predecessor and successor reside in different
2170 components.
2171 * bindo-graphs.adb: Add with and use clauses for Butil, Debug,
2172 Output, and Bindo.Writers. Remove with and use clauses for
2173 GNAT.Lists. Update the parameter profiles of most routines to
2174 use better parameter names. Update the implementation of most
2175 routine to use the new parameter names. Remove various
2176 redundant assertions. Remove doubly linked list EL. Add new
2177 type Precedence_Kind.
2178 (Add_Cycle): New routine.
2179 (Add_Vertex): Update the parameter profile. Update the creation
2180 of vertex attributes.
2181 (Add_Vertex_And_Complement, Body_Vertex, Column,
2182 Complementary_Vertex, Copy_Cycle_Path, Cycle_Kind_Of): New
2183 routines.
2184 (Destroy_Invocation_Graph_Edge, Destroy_Library_Graph_Cycle,
2185 Destroy_Library_Graph_Edge, Extra, File_Name,
2186 Find_All_Cycles_Through_Vertex, Find_All_Cycles_With_Edge,
2187 Find_Cycles, Find_First_Lower_Precedence_Cycle,
2188 Get_LGC_Attributes, Has_Next, Hash_Library_Graph_Cycle,
2189 Hash_Library_Graph_Cycle_Attributes, Highest_Precedence_Cycle,
2190 Highest_Precedence_Edge, In_Same_Component, Insert_And_Sort,
2191 Invocation_Edge_Count, Invocation_Graph_Encoding,
2192 Is_Cycle_Initiating_Edge, Is_Cyclic_Edge,
2193 Is_Cyclic_Elaborate_All_Edge, Is_Cyclic_Elaborate_Body_Edge,
2194 Is_Cyclic_Elaborate_Edge, Is_Cyclic_Forced_Edge,
2195 Is_Cyclic_Invocation_Edge, Is_Cyclic_With_Edge,
2196 Is_Dynamically_Elaborated, Is_Elaborate_All_Edge,
2197 Is_Elaborate_Body_Edge, Is_Elaborate_Edge: New routines.
2198 (Is_Existing_Predecessor_Successor_Relation): Removed.
2199 (Is_Forced_Edge, Is_Invocation_Edge, Is_Recorded_Cycle,
2200 Is_Recorded_Edge, Is_With_Edge, Iterate_Edges_Of_Cycle, Kind,
2201 Length): New routine.
2202 (Lib_Vertex): Removed.
2203 (Line, Links_Vertices_In_Same_Component,
2204 Maximum_Invocation_Edge_Count, Next, Normalize_And_Add_Cycle,
2205 Normalize_Cycle_Path, Number_Of_Cycles, Path, Precedence,
2206 Remove_Vertex_And_Complement, Sequence_Next_Cycle): New routines.
2207 (Sequence_Next_IGE_Id): Renamed to Sequence_Next_Edge.
2208 (Sequence_Next_IGV_Id): Renamed to Sequence_Next_Vertex.
2209 (Sequence_Next_LGE_Id): Renamed to Sequence_Next_Edge.
2210 (Sequence_Next_LGV_Id): Renamed to Sequence_Next_Vertex.
2211 (Set_Is_Existing_Predecessor_Successor_Relation): Removed.
2212 (Set_Is_Recorded_Cycle, Set_Is_Recorded_Edge,
2213 Set_LGC_Attributes, Spec_Vertex, Trace_Cycle, Trace_Edge,
2214 Trace_Eol, Trace_Vertex): New routines.
2215 * bindo-graphs.ads: Add with and use clauses for Types and
2216 GNAT.Lists. Update the parameter profiles of most routines to
2217 use better parameter names. Update the implementation of most
2218 routine to use the new parameter names. Add the new
2219 instantiated data structures IGE_Lists, IGV_Sets, LGC_Lists,
2220 LGE_Lists, LGE_Sets, LGV_Sets, and RC_Sets. Add new type
2221 Library_Graph_Cycle_Id along with an empty and initial value.
2222 Remove component Lib_Vertex and add new components Body_Vertex
2223 and Spec_Vertex to type Invocation_Graph_Vertex_Attributes. Add
2224 new type Library_Graph_Cycle_Kind. Add new iterators
2225 All_Cycle_Iterator and Edges_Of_Cycle_Iterator. Add new type
2226 Library_Graph_Cycle_Attributes. Add new components
2227 Cycle_Attributes, Cycles, and Dynamically_Elaborated to type
2228 Library_Graph_Attributes.
2229 (Body_Vertex, Column, Destroy_Invocation_Graph_Edge,
2230 Destroy_Library_Graph_Cycle_Attributes,
2231 Destroy_Library_Graph_Edge, Extra, File_Name, Find_Cycles,
2232 Has_Elaborate_All_Cycle, Has_Next, Hash_Library_Graph_Cycle,
2233 Hash_Library_Graph_Cycle_Attributes, Highest_Precedence_Cycle,
2234 In_Same_Component, Invocation_Edge_Count,
2235 Invocation_Graph_Encoding, Is_Dynamically_Elaborated,
2236 Is_Elaborate_All_Edge, Is_Elaborate_Body_Edge,
2237 Is_Elaborate_Edge, Is_Forced_Edge, Is_Invocation_Edge,
2238 Is_With_Edge, Iterate_All_Cycles, Iterate_Edges_Of_Cycle, Kind):
2239 New routines.
2240 (Length, Lib_Vertex, (Line, Next, Number_Of_Cycles, Present,
2241 Same_Library_Graph_Cycle_Attributes, Spec_Vertex): New routines.
2242 * bindo-units.adb (File_Name, Invocation_Graph_Encoding): New
2243 routines.
2244 * bindo-units.ads: Add new instantiated data structure
2245 Unit_Sets.
2246 (File_Name, Invocation_Graph_Encoding): New routine.
2247 * bindo-validators.adb: Remove with and use clauses for GNAT and
2248 GNAT.Sets. Remove membership set US. Update the parameter
2249 profiles of most routines to use better parameter names. Update
2250 the implementation of most routine to use the new parameter
2251 names.
2252 (Validate_Cycle, Validate_Cycle_Path, Validate_Cycles,
2253 Validate_Invocation_Graph_Vertex): Remove the validation of
2254 component Lib_Vertex. Add the validation of components
2255 Body_Vertex and Spec_Vertex.
2256 (Write_Error): New routine.
2257 * bindo-validators.ads (Validate_Cycles): New routine.
2258 * bindo-writers.adb: Update the parameter profiles of most
2259 routines to use better parameter names. Update the
2260 implementation of most routine to use the new parameter names.
2261 (Write_Cycle, Write_Cyclic_Edge, Write_Cycles): New routines.
2262 (Write_Invocation_Graph_Vertex): Remove the output of component
2263 Lib_Vertex. Add the output of components Body_Vertex and
2264 Spec_Vertex.
2265 * bindo-writers.ads (Write_Cycles): New routine.
2266 * debug.adb: Use binder switches -d_C and -d_P, add
2267 documentation on their usage.
2268 * gnatbind.adb: Remove with and use clauses for Binde. Delegate
2269 the choice of elaboration mechanism to Bindo.
2270 * lib-writ.adb (Column, Extra, Invoker, Kind, Line, Locations,
2271 Name, Placement, Scope, Signature, Target): Removed.
2272 (Write_Invocation_Graph): Moved at the top level.
2273 (Write_Invocation_Graph_Attributes): New routine.
2274 (Write_Invocation_Relation, Write_Invocation_Signature): Moved
2275 at the top level.
2276 * lib-writ.ads: Add a documentation section on invocation graph
2277 attributes.
2278 * sem_elab.adb (Body_Placement_Of): New routine.
2279 (Declare_Invocation_Construct): Update the call to
2280 Add_Invocation_Construct.
2281 (Declaration_Placement_Of_Node): New routine.
2282 (Get_Invocation_Attributes): Correct the retrieval of the
2283 enclosing subprogram where the postcondition procedure lives.
2284 (Placement_Of, Placement_Of_Node): Removed.
2285 (Record_Invocation_Graph): Record the encoding format used.
2286 (Record_Invocation_Graph_Encoding): New routine.
2287 (Record_Invocation_Relation): Update the call to
2288 Add_Invocation_Relation.
2289 (Spec_Placement_Of): Removed.
2290 * libgnat/g-lists.ads, libgnat/g-lists.adb (Equal): New routine.
2291
164597c5 22922019-07-05 Ed Schonberg <schonberg@adacore.com>
2293
2294 * checks.adb (Apply_Predicate_Check): Except within the
2295 subprogram body that defines the formal, do not apply predicate
2296 check on a formal IN parameter: such a check is redundant and
2297 its expansion can lead to out-of-scope references when it is
2298 originates in a function call in a precondition,
2299
572a4bc5 23002019-07-05 Yannick Moy <moy@adacore.com>
2301
2302 * sem_res.adb (Resolve_Call): Cannot inline in quantified
2303 expressions.
2304 * sem_util.adb, sem_util.ads (In_Quantified_Expression): New
2305 function.
2306
2c3ad474 23072019-07-05 Bob Duff <duff@adacore.com>
2308
2309 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
2310 Fix typo.
2311 * gnat_rm.texi: Regenerate.
2312
2f67af4c 23132019-07-05 Bob Duff <duff@adacore.com>
2314
2315 * exp_attr.adb (Input): Take the No_Stream_Optimizations
2316 restriction into account.
2317
1cb1fd0f 23182019-07-05 Claire Dross <dross@adacore.com>
2319
2320 * libgnat/a-cofove.ads, libgnat/a-cofove.adb: Definite formal
2321 vectors are now always bounded so that they do not need to be
2322 limited anymore.
2323
d2d09f3e 23242019-07-05 Dmitriy Anisimkov <anisimko@adacore.com>
2325
2326 * libgnat/g-traceb.ads, libgnat/g-traceb.adb (Call_Chain): New
2327 function.
2328
c5c4ce6c 23292019-07-04 James Clarke <jrtc27@debian.org>
14e0bfed 2330
2331 * libgnarl/s-osinte__kfreebsd-gnu.ads (clockid_t): Make type
2332 definition public.
2333 (CLOCK_REALTIME): Make value public.
2334
ecd07d3b 23352019-07-04 Javier Miranda <miranda@adacore.com>
2336
2337 * exp_tss.adb (Init_Proc): Adding missing support for access to
2338 subprograms and access to protected subprograms of non-default
2339 C++ constructors.
2340
e0ff1639 23412019-07-04 Eric Botcazou <ebotcazou@adacore.com>
2342
2343 * gnat1drv.adb (Adjust_Global_Switches): Use proper interface to
2344 set the validity settings in CodePeer mode.
2345 * par-load.adb (Load): Remove all code dealing with validity
2346 settings.
2347 * validsw.ads (Validity_Check_Copies): Alphabetize.
2348 * validsw.adb (Reset_Validity_Check_Options): Set all options to
2349 off.
2350 (Save_Validity_Check_Options): Save all options.
2351
40bff3a0 23522019-07-04 Hristian Kirtchev <kirtchev@adacore.com>
2353
2354 * exp_ch3.adb, exp_ch4.adb, exp_ch4.ads, exp_ch5.adb,
2355 exp_ch7.adb, exp_ch9.adb, exp_ch11.adb, exp_unst.adb,
2356 rtsfind.ads, sem_attr.adb, sem_ch10.adb, sem_ch12.adb,
2357 sem_ch13.adb, sem_dim.adb, sem_disp.adb, xref_lib.adb: Minor
2358 reformatting.
2359
0ebaade4 23602019-07-04 Joffrey Huguet <huguet@adacore.com>
2361
2362 * libgnarl/a-taside.ads: Add assertion policy to ignore
2363 preconditions.
2364 (Abort_Task, Is_Terminated, Is_Callable): Add preconditions.
2365
f14a590b 23662019-07-04 Eric Botcazou <ebotcazou@adacore.com>
2367
2368 * doc/gnat_rm/implementation_defined_pragmas.rst: Fix
2369 capitalization and parenthesis glitches.
2370 * gnat_rm.texi: Regenerate.
2371
f5388f99 23722019-07-04 Ed Schonberg <schonberg@adacore.com>
2373
2374 * sem_ch10.adb (Remove_Context_Clauses): Handle properly the
2375 removal of a limited_with_clause which appears in the library
2376 unit oF the main unit, when some other unit in the context has a
2377 regular with_clause on the same unit, to prevent spurious
2378 visibility errors in the subsequent analysis of pending instance
2379 bodies.
2380
c930bc82 23812019-07-04 Hristian Kirtchev <kirtchev@adacore.com>
2382
2383 * sem_elab.adb: Add new type Elaboration_Phase_Status along with
2384 a global to keep track of the elaboration phase status.
2385 Initialize all internal data structures to Nil for services
2386 Elaborated_Units, Internal_Representation, and Scenario_Storage.
2387 (Build_Call_Marker): Do not create a call marker when the
2388 elaboration phase is not active.
2389 (Build_Variable_Reference_Marker): Do not create a call marker
2390 when the elaboration phase is not active.
2391 (Check_Elaboration_Scenarios): Destroy all internal structures
2392 when the elaboration phase does not have to run. Do not execute
2393 when the elaboration phase is not active.
2394 (Elaboration_Phase_Active): New routine.
2395 (Finalize_All_Data_Structures): New routine.
2396 (Initialize): Initialize all internal data structures and signal
2397 that the elaboration phase has started.
2398 (Initialize_All_Data_Structures): New routine.
2399 (Initialize_Elaborated_Units): Initialize all internal data
2400 structures.
2401 (Initialize_Internal_Representation): Initialize all internal
2402 data structures.
2403 (Initialize_Scenario_Storage): Initialize all internal data
2404 structures.
2405 (Kill_Elaboration_Scenario): Do not execute when the elaboration
2406 phase is not active.
2407 (Set_Elaboration_Phase): New routine.
2408 (Update_Elaboration_Scenario): Do not execute when the
2409 elaboration phase is not active.
2410
39dec7f4 24112019-07-04 Gary Dismukes <dismukes@adacore.com>
2412
2413 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): The special
2414 treatment of calling Mask_Unfrozen_Types must also be done in
2415 the case of an Ignored_Ghost_Entity, because Expander_Active is
2416 False in that case.
2417
92b004be 24182019-07-04 Yannick Moy <moy@adacore.com>
2419
2420 * sem_prag.adb (Check_Library_Level_Entity): Update for new rule
2421 on SPARK_Mode.
2422
12795e1c 24232019-07-04 Justin Squirek <squirek@adacore.com>
2424
2425 * sem_disp.adb (Check_Controlling_Formals): Obtain the full view
2426 before type comparison.
2427
63fe3141 24282019-07-04 Ed Schonberg <schonberg@adacore.com>
2429
2430 * exp_ch4.ads, exp_ch4.adb (Build_Eq_Call): New visible
2431 subprogram, extracted from Expand_Composite_Equality, to handle
2432 properly the composition of equality for variant record types.
2433 * exp_ch3.adb (MAke_Eq_If): Use Build_Eq_Call for each
2434 component, to handle properly the case of a component with a
2435 user-defined equality. Revert to predefined equality if the
2436 user-defined operation is abstract, to maintain compatibility
2437 with older versions,
2438
17fa952a 24392019-07-04 Justin Squirek <squirek@adacore.com>
2440
2441 * exp_ch3.adb (Build_Initialization_Call): Fixup
2442 *_skip_null_excluding_check argument to handle new default.
2443 (Init_Formals): Make *_skip_null_excluding_check formal default
2444 to False
2445 * exp_ch4.adb (Expand_N_Allocator): Add comment to note heavy
2446 code duplication
2447
cf32543d 24482019-07-04 Bob Duff <duff@adacore.com>
2449
2450 * sem_ch3.adb (Access_Definition): Do not create a master unless
2451 Tasking_Allowed. Otherwise, this fails on restricted runtimes.
2452
eb4dbf20 24532019-07-04 Hristian Kirtchev <kirtchev@adacore.com>
2454
2455 * sem_util.adb (Propagate_DIC_Attributes): Do not propagate the
2456 Default_Initial_Condition attributes to an incomplete type.
2457
25ddc6ba 24582019-07-04 Ed Schonberg <schonberg@adacore.com>
2459
2460 * sem_attr.adb (Check_Array_Type): An array type attribute such
2461 as 'First can be applied to an unconstrained array tyope when
2462 the attribute reference appears within an aspect specification
2463 and the prefix is a current instance, given that the prefix of
2464 the attribute will become a formal of the subprogram that
2465 implements the aspect (typically a predicate check).
2466
74a5962a 24672019-07-04 Piotr Trojanek <trojanek@adacore.com>
2468
2469 * sem_util.adb (Yields_Synchronized_Object): Fix typos in
2470 comments.
2471
c65d33a8 24722019-07-04 Yannick Moy <moy@adacore.com>
2473
2474 * sem_util.adb (Yields_Synchronized_Object): Adapt to new SPARK
2475 rule.
2476
afd77d39 24772019-07-04 Yannick Moy <moy@adacore.com>
2478
2479 * sem_spark.adb (Check_Statement): Only check permission of
2480 object in extended return when it is of a deep type.
2481
2281b807 24822019-07-04 Justin Squirek <squirek@adacore.com>
2483
2484 * sem_ch12.adb (Perform_Appropriate_Analysis): Added for
2485 selecting which type of analysis based on wheither the
2486 instantiation is a generic at the library-level. In which case
2487 expansion during analysis.
2488 (Preanalyze_Actuals): Modify calls to Analyze to use the new
2489 routine.
2490
542b3e26 24912019-07-04 Ed Schonberg <schonberg@adacore.com>
2492
2493 * exp_unst.adb: Handle conditional expressions.
2494
7754aad4 24952019-07-04 Yannick Moy <moy@adacore.com>
2496
2497 * sem_spark.adb (Check_Package_Spec, Check_Package_Body): Only
2498 analyze parts of the code marked in SPARK.
2499
3843c1bd 25002019-07-04 Hristian Kirtchev <kirtchev@adacore.com>
2501
2502 * erroutc.adb, exp_aggr.adb, inline.adb, opt.adb, sem_ch3.adb:
2503 Minor reformatting.
2504
5bc0f990 25052019-07-04 Yannick Moy <moy@adacore.com>
2506
2507 * sem_spark.adb (Explanation, Get_Expl): New functions to get
2508 the explanation for a permission mismatch.
2509 (Perm_Error, Perm_Mismatch, Perm_Error_Loop_Exit): Take
2510 explanation into account for issuing a more precise error
2511 message.
2512 (Set_Perm_Prefixes, Set_Perm_Extensions,
2513 Set_Perm_Extensions_Move): Pass suitable argument for the
2514 explanation node.
2515
11903e68 25162019-07-04 Arnaud Charlet <charlet@adacore.com>
2517
2518 * exp_aggr.adb (In_Place_Assign_OK): Moved to top level and add
2519 support for record aggregates.
2520 (Component_Check): Use Is_CCG_Supported_Aggregate instead of a
2521 similar local predicate.
2522 (Convert_To_Assignments): Take advantage of In_Place_Assign_OK
2523 predicate when possible.
2524 (Is_CCG_Supported_Aggregate): Return False for records with
2525 representation clauses and fix the logic for dealing with nested
2526 aggregates.
2527
b0c19ea3 25282019-07-04 Piotr Trojanek <trojanek@adacore.com>
2529
2530 * opt.adb (Set_Config_Switches): Keep assertions policy as
2531 enabled when analysing internal units in GNATprove mode.
2532
90f2b146 25332019-07-04 Arnaud Charlet <charlet@adacore.com>
2534
2535 * exp_ch4.adb (Expand_Short_Circuit_Operator): Strip
2536 N_Variable_Reference_Marker when checking for the presence of
2537 actions.
2538
39ecad34 25392019-07-04 Arnaud Charlet <charlet@adacore.com>
2540
2541 * exp_aggr.adb (Check_Component): Take into account type
2542 conversions.
2543
c0e899f1 25442019-07-04 Dmitriy Anisimkov <anisimko@adacore.com>
2545
2546 * doc/gnat_ugn/platform_specific_information.rst: Document
2547 Windows socket timeout particularity.
2548 * gnat_ugn.texi: Regenerate.
2549 * gsocket.h: Include versionhelpers.h.
2550 * socket.c (__gnat_minus_500ms): New function.
2551 * libgnat/g-sothco.ads (Minus_500ms_Windows_Timeout): New
2552 imported function.
2553 * libgnat/g-socket.adb (Set_Socket_Option): Refactor to remove
2554 500ms from the requested timeout only on old Windows version.
2555
363b1a8e 25562019-07-04 Thomas Quinot <quinot@adacore.com>
2557
2558 * get_scos.adb: Remove bogus, dead code.
2559
4ae0a9ce 25602019-07-04 Ed Schonberg <schonberg@adacore.com>
2561
2562 * sem_dim.adb (Analyze_Dimension_Array_Aggregate): If the
2563 component is an entity name, its dimensions are those of its
2564 type.
2565
d60fa3c9 25662019-07-03 Bob Duff <duff@adacore.com>
2567
2568 * doc/gnat_ugn/gnat_utility_programs.rst: Document new flags in
2569 GNATpp.
2570
877ad320 25712019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
2572
2573 * binde.adb: Remove with clause for System.OS_Lib.
2574 (Force_Elab_Order): Refactor the majority of the code in Butil.
2575 Use the new forced units iterator to obtain unit names.
2576 * bindo-builders.adb: Add with and use clauses for Binderr,
2577 Butil, Opt, Output, Types, GNAT, and GNAT.Dynamic_HTables. Add
2578 a hash table which maps units to line number in the forced
2579 elaboration order file.
2580 (Add_Unit): New routine.
2581 (Build_Library_Graph): Create forced edges between pairs of
2582 units listed in the forced elaboration order file.
2583 (Create_Forced_Edge, Create_Forced_Edges, Destroy_Line_Number,
2584 Duplicate_Unit_Error, Hash_Unit, Internal_Unit_Info,
2585 Is_Duplicate_Unit, Missing_Unit_Info): New routines.
2586 * bindo-graphs.adb (Is_Internal_Unit, Is_Predefined_Unit):
2587 Refactor some of the behavior to Bindo-Units.
2588 * bindo-graphs.ads: Enable the enumeration literal for forced
2589 edges.
2590 * bindo-units.adb, bindo-units.ads (Is_Internal_Unit,
2591 Is_Predefined_Unit): New routines.
2592 * butil.adb: Add with and use clauses for Opt, GNAT, and
2593 System.OS_Lib. Add with clause for Unchecked_Deallocation.
2594 (Has_Next, Iterate_Forced_Units, Next, Parse_Next_Unit_Name,
2595 Read_Forced_Elab_Order_File): New routines.
2596 * butil.ads: Add with and use clauses for Types. Add new
2597 iterator over the units listed in the forced elaboration order
2598 file.
2599 (Has_Next, Iterate_Forced_Units, Next): New routine.
2600 * namet.adb, namet.ads (Present): New routine.
2601
01e6eb2f 26022019-07-03 Bob Duff <duff@adacore.com>
2603
2604 * sem_ch3.adb (Access_Definition): The code was creating a
2605 master in the case where the designated type is a class-wide
2606 interface type. Create a master in the noninterface case as
2607 well. That is, create a master for all limited class-wide types.
2608
9ad42832 26092019-07-03 Yannick Moy <moy@adacore.com>
2610
2611 * erroutc.adb (Sloc_In_Range): New function to determine whether
2612 the range of a pragma Warnings covers a location, taking
2613 instantiations into account.
2614
f2a8d64e 26152019-07-03 Johannes Kanig <kanig@adacore.com>
2616
2617 * osint.ads, osint.adb (Get_First_Main_File_Name): New routine
2618 to access the first file provided on the command line.
2619
d4f28933 26202019-07-03 Ed Schonberg <schonberg@adacore.com>
2621
2622 * inline.adb (Process_Formals_In_Aspects): New procedure within
2623 Expand_Inlined_Call, to perform a replacement of references to
2624 formals that appear in aspect specifications within the body
2625 being inlined.
2626
23e7fc9b 26272019-07-03 Justin Squirek <squirek@adacore.com>
2628
2629 * sem_ch8.adb (Analyze_Object_Renaming): Add call to search for
2630 the appropriate actual subtype of the object renaming being
2631 analyzed.
2632 (Check_Constrained_Object): Minor cleanup.
2633
f8e6d133 26342019-07-03 Yannick Moy <moy@adacore.com>
2635
2636 * sem_spark.adb (Get_Observed_Or_Borrowed_Expr): New function to
2637 return go through traversal function call.
2638 (Check_Type): Consistently use underlying type.
2639 (Get_Perm): Adapt for case of elaboration code where variables
2640 are not declared in the environment. Remove incorrect handling
2641 of borrow and observe.
2642
d044ba5c 26432019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
2644
2645 * inline.adb (Build_Return_Object_Formal): New routine.
2646 (Can_Split_Unconstrained_Function): Code clean up.
2647 (Copy_Formals,Copy_Return_Object): New routines.
2648 (Split_Unconstrained_Function): Code clean up and refactoring.
2649
8699de72 26502019-07-03 Gary Dismukes <dismukes@adacore.com>
2651
2652 * bindo-augmentors.adb, bindo-augmentors.ads,
2653 bindo-builders.ads, bindo-elaborators.adb, sem_ch12.adb,
2654 sem_ch13.adb, sem_spark.adb, sinfo.ads: Minor editorial
2655 corrections and reformatting.
2656
2ccf6539 26572019-07-03 Bob Duff <duff@adacore.com>
2658
2659 * sem_warn.adb (Check_Infinite_Loop_Warning): Avoid the warning
2660 if an Iterator_Specification is present.
2661
17b5260d 26622019-07-03 Bob Duff <duff@adacore.com>
2663
2664 * doc/gnat_ugn/gnat_utility_programs.rst: Document default
2665 new-line behavior.
2666
5f71d12c 26672019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
2668
2669 * ali.adb: Add with and use clauses for GNAT,
2670 GNAT.Dynamic_HTables, and Snames. Add a map from invocation
2671 signature records to invocation signature ids. Add various
2672 encodings of invocation-related attributes. Sort and update
2673 table Known_ALI_Lines.
2674 (Add_Invocation_Construct, Add_Invocation_Relation,
2675 Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind,
2676 Code_To_Invocation_Construct_Kind, Code_To_Invocation_Kind,
2677 Code_To_Invocation_Graph_Line_Kind, Destroy, Hash): New
2678 routines.
2679 (Initialize_ALI): Sort the initialization sequence. Add
2680 initialization for all invocation-related tables.
2681 (Invocation_Construct_Kind_To_Code,
2682 Invocation_Graph_Line_Kind_To_Code, Invocation_Kind_To_Code,
2683 Invocation_Signature_Of, Present): New routines.
2684 (Scan_ALI): Add the default values for invocation-related ids.
2685 Scan invocation graph lines.
2686 (Scan_Invocation_Graph_Line): New routine.
2687 * ali.ads: Add with clause for GNAT.Dynamic_Tables. Add types
2688 for invocation constructs, relations, and signatures. Add
2689 tables for invocation constructs, relations, and signatures.
2690 Update Unit_Record to capture invocation-related ids. Relocate
2691 table Unit_Id_Tables and subtypes Unit_Id_Table, Unit_Id_Array
2692 from Binde.
2693 (Add_Invocation_Construct, Add_Invocation_Relation,
2694 Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind,
2695 Code_To_Invocation_Construct_Kind, Code_To_Invocation_Kind,
2696 Code_To_Invocation_Graph_Line_Kind,
2697 Invocation_Construct_Kind_To_Code,
2698 Invocation_Graph_Line_Kind_To_Code, Invocation_Kind_To_Code,
2699 Invocation_Signature_Of, Present): New routines.
2700 * binde.adb: Add with and use clause for Types. Add use clause
2701 for ALI.Unit_Id_Tables;
2702 * binde.ads: Relocate table Unit_Id_Tables and subtypes
2703 Unit_Id_Table, Unit_Id_Array to ALI.
2704 * bindgen.adb: Remove with and use clause for ALI.
2705 * bindgen.ads: Remove with and use clause for Binde. Add with
2706 and use clause for ALI.
2707 * bindo.adb, bindo.ads, bindo-augmentors.adb,
2708 bindo-augmentors.ads, bindo-builders.adb, bindo-builders.ads,
2709 bindo-diagnostics.adb, bindo-diagnostics.ads,
2710 bindo-elaborators.adb, bindo-elaborators.ads, bindo-graphs.adb,
2711 bindo-graphs.ads, bindo-units.adb, bindo-units.ads,
2712 bindo-validators.adb, bindo-validators.ads, bindo-writers.adb,
2713 bindo-writers.ads: New units.
2714 * debug.adb: Use and describe GNAT debug switches -gnatd_F and
2715 -gnatd_G. Add GNATbind debug switches in the ranges dA .. dZ,
2716 d.a .. d.z, d.A .. d.Z, d.1 .. d.9, d_a .. d_z, d_A .. d_Z, and
2717 d_1 .. d_9. Use and describe GNATbind debug switches -d_A,
2718 -d_I, -d_L, -d_N, -d_O, -d_T, and -d_V.
2719 * exp_util.adb, exp_util.ads (Exceptions_OK): Relocate to
2720 Sem_Util.
2721 * gnatbind.adb: Add with and use clause for Bindo. Use the new
2722 Bindo elaboration order only when -d_N is in effect.
2723 * lib-writ.adb
2724 (Column, Extra, Invoker, Kind, Line, Locations, Name, Placement,
2725 Scope, Signature, Target): New routines.
2726 (Write_ALI): Output all invocation-related data.
2727 (Write_Invocation_Graph): New routine.
2728 * lib-writ.ads: Document the invocation graph ALI line.
2729 * namet.adb, namet.ads (Present): New routines.
2730 * sem_ch8.adb (Find_Direct_Name): Capture the status of
2731 elaboration checks and warnings of an identifier.
2732 (Find_Expanded_Name): Capture the status of elaboration checks
2733 and warnings of an expanded name.
2734 * sem_ch12.adb (Analyze_Generic_Package_Declaration): Ensure
2735 that invocation graph-related data within the body of the main
2736 unit is encoded in the ALI file.
2737 (Analyze_Generic_Subprogram_Declaration): Ensure that invocation
2738 graph-related data within the body of the main unit is encoded
2739 in the ALI file.
2740 (Analyze_Package_Instantiation): Perform minimal decoration of
2741 the instance entity.
2742 (Analyze_Subprogram_Instantiation): Perform minimal decoration
2743 of the instance entity.
2744 * sem_elab.adb: Perform heavy refactoring of all code. The unit
2745 is now split into "services" which specialize in one area of ABE
2746 checks. Add processing in order to capture invocation-graph
2747 related attributes of the main unit, and encode them in the ALI
2748 file. The Processing phase can now operate in multiple modes,
2749 all described by type Processing_Kind. Scenarios and targets
2750 are now distinct at the higher level, and carry their own
2751 representations. This eliminates the need to constantly
2752 recompute their attributes, and offers the various processors a
2753 uniform interface. The various initial states of the Processing
2754 phase are now encoded using type Processing_In_State, and
2755 xxx_State constants.
2756 * sem_elab.ads: Update the literals of type
2757 Enclosing_Level_Kind. Add Inline pragmas on several routines.
2758 * sem_prag.adb (Process_Inline): Ensure that invocation
2759 graph-related data within the body of the main unit is encoded
2760 in the ALI file.
2761 * sem_util.adb (Enclosing_Generic_Body, Enclosing_Generic_Unit):
2762 Code clean up.
2763 (Exceptions_OK): Relocated from Sem_Util.
2764 (Mark_Save_Invocation_Graph_Of_Body): New routine.
2765 * sem_util.ads (Exceptions_OK): Relocated from Sem_Util.
2766 (Mark_Save_Invocation_Graph_Of_Body): New routine.
2767 * sinfo.adb (Is_Elaboration_Checks_OK_Node): Now applicable to
2768 N_Variable_Reference_Marker.
2769 (Is_Elaboration_Warnings_OK_Node): Now applicable to
2770 N_Expanded_Name, N_Identifier, N_Variable_Reference_Marker.
2771 (Is_Read): Use Flag4.
2772 (Is_SPARK_Mode_On_Node): New applicable to
2773 N_Variable_Reference_Marker.
2774 (Is_Write): Use Flag5.
2775 (Save_Invocation_Graph_Of_Body): New routine.
2776 (Set_Is_Elaboration_Checks_OK_Node): Now applicable to
2777 N_Variable_Reference_Marker.
2778 (Set_Is_Elaboration_Warnings_OK_Node): Now applicable to
2779 N_Expanded_Name, N_Identifier, N_Variable_Reference_Marker.
2780 (Set_Is_SPARK_Mode_On_Node): New applicable to
2781 N_Variable_Reference_Marker.
2782 (Set_Save_Invocation_Graph_Of_Body): New routine.
2783 * sinfo.ads: Update the documentation of attributes
2784 Is_Elaboration_Checks_OK_Node, Is_Elaboration_Warnings_OK_Node,
2785 Is_SPARK_Mode_On_Node. Update the flag usage of attributes
2786 Is_Read, Is_Write. Add attribute Save_Invocation_Graph_Of_Body
2787 and update its occurrence in nodes.
2788 (Save_Invocation_Graph_Of_Body): New routine along with pragma
2789 Inline.
2790 (Set_Save_Invocation_Graph_Of_Body): New routine along with
2791 pragma Inline.
2792 * switch-b.adb (Scan_Binder_Switches): Refactor the scanning of
2793 debug switches.
2794 (Scan_Debug_Switches): New routine.
2795 * libgnat/g-dynhta.adb, libgnat/g-dynhta.ads (Contains): New routine.
2796 * libgnat/g-graphs.adb (Associate_Vertices): Update the use of
2797 Component_Vertex_Iterator.
2798 (Contains_Component, Contains_Edge, Contains_Vertex, Has_Next):
2799 Reimplemented.
2800 (Iterate_Component_Vertices): New routine.
2801 (Iterate_Vertices): Removed.
2802 (Next): Update the parameter profile.
2803 (Number_Of_Component_Vertices, Number_Of_Outgoing_Edges): New
2804 routines.
2805 * libgnat/g-graphs.ads: Update the initialization of
2806 No_Component. Add type Component_Vertex_Iterator. Remove type
2807 Vertex_Iterator.
2808 (Has_Next): Add new versions and remove old ones.
2809 (Iterate_Component_Vertices): New routine.
2810 (Iterate_Vertices): Removed.
2811 (Next): Add new versions and remove old ones.
2812 (Number_Of_Component_Vertices, Number_Of_Outgoing_Edges): New
2813 routines.
2814 * libgnat/g-sets.adb (Contains): Reimplemented.
2815 * gcc-interface/Make-lang.in (GNATBIND_OBJS): Add
2816 GNAT.Dynamic_HTables, GNAT.Graphs and Bindo units.
2817 * rtsfind.ads: Remove extra space.
2818
df177848 28192019-07-03 Yannick Moy <moy@adacore.com>
2820
2821 * sem_spark.adb: Add support for locally borrowing and observing
2822 a path.
2823 (Get_Root_Object): Add parameter Through_Traversal to denote
2824 when we are interesting in getting to the traversed parameter.
2825 (Is_Prefix_Or_Almost): New function to support detection of
2826 illegal access to borrowed or observed paths.
2827 (Check_Pragma): Add analysis of assertion pragmas.
2828
f3f142ac 28292019-07-03 Ed Schonberg <schonberg@adacore.com>
2830
2831 * sem_ch13.adb (Build_Predicate_Functions): In a generic context
2832 we do not build the bodies of predicate fuctions, but the
2833 expression in a static predicate must be elaborated to allow
2834 case coverage checking within the generic unit.
2835 (Build_Discrete_Static_Predicate): In a generic context, return
2836 without building function body once the
2837 Static_Discrete_Predicate expression for the type has been
2838 constructed.
2839
99d90c85 28402019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
2841
2842 * bindgen.adb, inline.adb, layout.adb, sem_ch12.adb,
2843 sem_ch13.adb, sem_ch7.adb, styleg.adb: Minor reformatting.
2844
800597f6 28452019-07-03 Bob Duff <duff@adacore.com>
2846
2847 * par-ch3.adb (P_Defining_Identifier): Call
2848 Check_Defining_Identifier_Casing.
2849 * style.ads, styleg.ads, styleg.adb
2850 (Check_Defining_Identifier_Casing): New procedure to check for
2851 mixed-case defining identifiers.
2852 * stylesw.ads, stylesw.adb (Style_Check_Mixed_Case_Decls): New
2853 flag for checking for mixed-case defining identifiers.
2854 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
2855 Document new feature.
2856 * gnat_ugn.texi: Regenerate.
2857
2c75027a 28582019-07-03 Eric Botcazou <ebotcazou@adacore.com>
2859
2860 * doc/gnat_ugn/building_executable_programs_with_gnat.rst
2861 (Warning message control): Document that -gnatw.z/Z apply to
2862 array types.
2863 * freeze.adb (Freeze_Entity): Give -gnatw.z warning for array
2864 types as well, but not if the specified alignment is the minimum
2865 one.
2866 * gnat_ugn.texi: Regenerate.
2867
08237d0d 28682019-07-03 Bob Duff <duff@adacore.com>
2869
2870 * einfo.ads, exp_util.adb, layout.ads, sinfo.ads: Spell "laid"
2871 correctly.
2872
0396441f 28732019-07-03 Ed Schonberg <schonberg@adacore.com>
2874
2875 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): No error
2876 message on attribute applied to a renaming when the renamed
2877 object is an aggregate (from code reading).
2878 (Check_Aspect_At_End_Of_Declarations): In a generic context
2879 where freeze nodes are not generated, the original expression
2880 for an aspect may need to be analyzed to precent spurious
2881 conformance errors when compared with the expression that is
2882 anakyzed at the end of the current declarative list.
2883
c8406f30 28842019-07-03 Eric Botcazou <ebotcazou@adacore.com>
2885
2886 * layout.adb (Layout_Type): Do not set the component size of an
2887 array with a scalar component if the component type is
2888 overaligned.
2889
c38b32ea 28902019-07-03 Ed Schonberg <schonberg@adacore.com>
2891
c5c4ce6c 2892 * inline.adb (Make_Loop_Labels_Unique): New procedure to modify
c38b32ea 2893 the source code of subprograms that are inlined by the
2894 front-end, to prevent accidental duplication between loop labels
2895 in the inlined code and the code surrounding the inlined call.
2896
6d6f134e 28972019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
2898
2899 * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Update
2900 the section on resolving elaboration circularities to eliminate
2901 certain combinations of switches which together do not produce
2902 the desired effect and confuse users.
2903 * gnat_ugn.texi: Regenerate.
2904
f3e16ef4 29052019-07-03 Arnaud Charlet <charlet@adacore.com>
2906
2907 * bindgen.adb (Gen_Main): Disable generation of reference to
2908 Ada_Main_Program_Name for CCG.
2909 * bindusg.adb (Display): Add -G to the command-line usage for
2910 gnatbind.
2911 * opt.ads (Generate_C_Code): Update comment.
2912 * switch-b.adb (Scan_Binder_Switches): Add handling for -G.
2913
f4a31b16 29142019-07-03 Arnaud Charlet <charlet@adacore.com>
2915
2916 * sem_ch7.adb (Has_Referencer): Do not consider inlined
2917 subprograms when generating C code, which allows us to generate
2918 static inline subprograms.
2919
2f65e9f7 29202019-07-03 Justin Squirek <squirek@adacore.com>
2921
2922 * sem_ch6.adb (Check_Conformance): Add expression checking for
2923 constant modifiers in anonymous access types (in addition to
2924 "non-null" types) so that they are considered "matching" for
2925 subsequent conformance tests.
2926
c336ed70 29272019-07-03 Arnaud Charlet <charlet@adacore.com>
2928
2929 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
2930 Clarify wording on No_Multiple_Elaboration.
2931 * gnat_rm.texi: Regenerate.
2932
78611c86 29332019-07-03 Ed Schonberg <schonberg@adacore.com>
2934
2935 * sem_ch8.adb (Find_Selected_Component): If the prefix is the
2936 current instance of a type or subtype, complete the resolution
2937 of the name by finding the component of the type denoted by the
2938 selector name.
2939
5a87a4d9 29402019-07-03 Eric Botcazou <ebotcazou@adacore.com>
2941
2942 * doc/gnat_rm/interfacing_to_other_languages.rst (Interfacing to C):
2943 Document that boolean types with convention C now map to C99 bool.
2944 * gnat_rm.texi: Regenerate.
2945
371c539c 29462019-07-03 Javier Miranda <miranda@adacore.com>
2947
2948 * exp_attr.adb (Expand_Min_Max_Attribute): Code cleanup:
2949 removing code that it is now never executed in the CCG compiler
2950 (dead code).
2951
89d2d652 29522019-07-02 Iain Sandoe <iain@sandoe.co.uk>
2953
2954 * libgnat/system-darwin-ppc.ads: Set Stack_Check_Probes True for
2955 PPC Darwin.
2956
d21e66fb 29572019-07-01 Ed Schonberg <schonberg@adacore.com>
2958
2959 * sem_ch12.adb (Is_Defaulted): New predicate in
2960 Check_Formal_Package_Intance, to skip the conformance of checks
2961 on parameters of a formal package that are defaulted,
2962
7a42b778 29632019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
2964
2965 * checks.adb, exp_ch9.adb, exp_unst.adb, sem_ch4.adb,
2966 sem_prag.adb, sem_spark.adb: Minor reformatting.
2967
fc8ae496 29682019-07-01 Ed Schonberg <schonberg@adacore.com>
2969
2970 * sem_attr.adb (Analyze_Attribute, case Enum_Rep): Allow prefix
2971 of attribute to be an attribute reference of a discrete type.
2972
9d27ea41 29732019-07-01 Eric Botcazou <ebotcazou@adacore.com>
2974
2975 * sem_ch12.adb (Analyze_Subprogram_Instantiation): Move up
2976 handling of Has_Pragma_Inline_Always and deal with
2977 Has_Pragma_No_Inline.
2978
bcb8dcf3 29792019-07-01 Ed Schonberg <schonberg@adacore.com>
2980
2981 * sem_ch3.adb (Build_Derived_Record_Type): If the parent type is
2982 declared as a subtype of a private type with an inherited
2983 discriminant constraint, its generated full base appears as a
2984 record subtype, so we need to retrieve its oen base type so that
2985 the inherited constraint can be applied to it.
2986
d087b9ca 29872019-07-01 Yannick Moy <moy@adacore.com>
2988
2989 * sem_spark.adb: Completely rework the algorithm for ownership
2990 checking, as the rules in SPARK RM have changed a lot.
2991 * sem_spark.ads: Update comments.
2992
fe48ee0a 29932019-07-01 Dmitriy Anisimkov <anisimko@adacore.com>
2994
2995 * gsocket.h (Has_Sockaddr_Len): Use the offset of sin_family offset in
2996 the sockaddr_in structure to determine the existence of length field
2997 before the sin_family.
2998
b20f7e2c 29992019-07-01 Ed Schonberg <schonberg@adacore.com>
3000
3001 * sem_prag.adb (Analyze_Pragma, case Weak_External): Pragma only
3002 applies to entities with run-time addresses, not to types.
3003
374fdf94 30042019-07-01 Piotr Trojanek <trojanek@adacore.com>
3005
3006 * einfo.adb, sem_ch7.adb, sem_prag.adb, sem_util.adb: Update
3007 references to the SPARK RM after the removal of Rule 7.1.4(5).
3008
bf13a79d 30092019-07-01 Piotr Trojanek <trojanek@adacore.com>
3010
3011 * sysdep.c: Cleanup references to LynuxWorks in docs and
3012 comments.
3013
866fa2d0 30142019-07-01 Ed Schonberg <schonberg@adacore.com>
3015
3016 * checks.adb (Insert_Valid_Check): Do not apply validity check
3017 to variable declared within a protected object that uses the
3018 Lock_Free implementation, to prevent unwarranted constant
3019 folding, because entities within such an object msut be treated
3020 as volatile.
3021
bcb5ab83 30222019-07-01 Eric Botcazou <ebotcazou@adacore.com>
3023
3024 * exp_ch9.adb (Check_Inlining): Deal with Has_Pragma_No_Inline.
3025
2db33bd6 30262019-07-01 Ed Schonberg <schonberg@adacore.com>
3027
3028 * exp_unst.adb (Visit_Node, Check_Static_Type): Improve the
3029 handling of private and incomplete types whose full view is an
3030 access type, to detect additional uplevel references in dynamic
3031 bounds. This is relevant to N_Free_Statement among others that
3032 manipulate types whose full viww may be an access type.
3033
6b4f0b7d 30342019-07-01 Pat Rogers <rogers@adacore.com>
3035
3036 * doc/gnat_rm/representation_clauses_and_pragmas.rst: Correct
3037 size indicated for R as a component of an array.
3038 * gnat_rm.texi: Regenerate.
3039
cdee70d7 30402019-07-01 Justin Squirek <squirek@adacore.com>
3041
3042 * libgnat/s-win32.ads: Add definition for ULONG, modify
3043 OVERLAPPED type, and add appropriate pragmas.
3044
2cf822b7 30452019-07-01 Bob Duff <duff@adacore.com>
3046
3047 * gnat1drv.adb (gnat1drv): Call Write_ALI if the main unit is
3048 ignored-ghost.
3049
0a1ece97 30502019-07-01 Yannick Moy <moy@adacore.com>
3051
3052 * sem_ch4.adb (Operator_Check): Refine error message.
3053
ee4279ef 30542019-07-01 Piotr Trojanek <trojanek@adacore.com>
3055
3056 * libgnat/a-calend.ads: Revert "Global => null" contracts on
3057 non-pure routines.
3058
2c6b4ada 30592019-07-01 Piotr Trojanek <trojanek@adacore.com>
3060
3061 * exp_attr.adb, libgnat/g-graphs.ads: Fix typos in comments:
3062 componant -> component.
3063
175c4526 30642019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
3065
3066 * libgnat/g-graphs.adb: Use type Directed_Graph rather than
3067 Instance in various routines.
3068 * libgnat/g-graphs.ads: Change type Instance to Directed_Graph.
3069 Update various routines that mention the type.
3070
a0d15509 30712019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
3072
3073 * libgnat/g-sets.adb: Use type Membership_Set rathern than
3074 Instance in various routines.
3075 * libgnat/g-sets.ads: Change type Instance to Membership_Set.
3076 Update various routines that mention the type.
3077
205a23a3 30782019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
3079
3080 * libgnat/g-lists.adb: Use type Doubly_Linked_List rather than
3081 Instance in various routines.
3082 * libgnat/g-lists.ads: Change type Instance to
3083 Doubly_Linked_List. Update various routines that mention the
3084 type.
3085
17fdf8c2 30862019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
3087
3088 * libgnat/g-dynhta.adb: Use type Dynamic_Hash_Table rather than
3089 Instance in various routines.
3090 * libgnat/g-dynhta.ads: Change type Instance to
3091 Dynamic_Hash_Table. Update various routines that mention the
3092 type.
3093
216ffc64 30942019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
3095
3096 * exp_attr.adb, exp_ch7.adb, exp_unst.adb, sem_ch3.adb,
3097 sem_util.adb, uintp.adb, uintp.ads: Minor reformatting.
3098
5051fe35 30992019-07-01 Javier Miranda <miranda@adacore.com>
3100
3101 * exp_attr.adb (Expand_Min_Max_Attribute): Disable expansion of
3102 'Min/'Max on integer, enumeration, fixed point and floating
3103 point types since the CCG backend now provides in file
3104 standard.h routines to support it.
3105
830a2a71 31062019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
3107
3108 * impunit.adb: Add GNAT.Graphs to list Non_Imp_File_Names_95.
3109 * Makefile.rtl, gcc-interface/Make-lang.in: Register unit
3110 GNAT.Graphs.
3111 * libgnat/g-dynhta.adb: Various minor cleanups (use Present
3112 rather than direct comparisons).
3113 (Delete): Reimplement to use Delete_Node.
3114 (Delete_Node): New routine.
3115 (Destroy_Bucket): Invoke the provided destructor.
3116 (Present): New routines.
3117 * libgnat/g-dynhta.ads: Add new generic formal Destroy_Value.
3118 Use better names for the components of iterators.
3119 * libgnat/g-graphs.adb, libgnat/g-graphs.ads: New unit.
3120 * libgnat/g-lists.adb: Various minor cleanups (use Present
3121 rather than direct comparisons).
3122 (Delete_Node): Invoke the provided destructor.
3123 (Present): New routine.
3124 * libgnat/g-lists.ads: Add new generic formal Destroy_Element.
3125 Use better names for the components of iterators.
3126 (Present): New routine.
3127 * libgnat/g-sets.adb, libgnat/g-sets.ads (Destroy, Preset,
3128 Reset): New routines.
3129
b0111d94 31302019-07-01 Dmitriy Anisimkov <anisimko@adacore.com>
3131
3132 * libgnat/g-sothco.adb (Get_Address): Fix the case when AF_INET6
3133 is not defined.
3134
7362896b 31352019-07-01 Ed Schonberg <schonberg@adacore.com>
3136
3137 * exp_attr.adb (Expand_Attribute_Reference, case Invalid_Value):
3138 Resolve result of call to Get_Simple_Init_Val, which may be a
3139 conversion of a literal.
3140
0dae8dc2 31412019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
3142
3143 * freeze.adb (Freeze_Expression): Remove the horrible useless
3144 name hiding of N. Insert the freeze nodes generated by the
3145 expression prior to the expression when the nearest enclosing
3146 scope is transient.
3147
487da8ff 31482019-07-01 Pierre-Marie de Rodat <derodat@adacore.com>
3149
3150 * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix
3151 formatting issues in the -gnatR section.
3152 * gnat_ugn.texi: Regenerate.
3153
1d79fa18 31542019-06-30 Iain Sandoe <iain@sandoe.co.uk>
3155
3156 * gnatlink.adb (Link_Step): Remove duplicate -static-libgcc switches.
3157 Push -shared-libgcc explicitly, when it is the target default (unless
3158 overidden by the static flag).
3159 When the user has put an instance of shared/static-libgcc do not push
3160 a duplicate of this.
3161
a850edcd 31622019-06-29 Eric Botcazou <ebotcazou@adacore.com>
3163
3164 * gcc-interface/decl.c (gnat_to_gnu_entity): Beep up comment on SAVED,
3165 and tweak comment on the assertion about the scopes of Itypes. Do not
3166 skip the regular processing for Itypes that are E_Record_Subtype with
3167 a Cloned_Subtype. Get the Cloned_Subtype for every E_Record_Subtype
3168 if the type is dummy and hasn't got its own freeze node.
3169 <E_Record_Subtype>: Save again the DECL of the Cloned_Subtype, if any.
3170 <E_Access_Subtype>: Save again the DECL of the equivalent type.
3171 (Gigi_Equivalent_Type) <E_Access_Subtype>: New case.
3172
b1e46fb1 31732019-06-29 Eric Botcazou <ebotcazou@adacore.com>
3174
3175 * gcc-interface/utils.c (unchecked_convert): Tweak comment. Only skip
3176 dereferences when padding to have the same size on both sides. Do it
3177 for destination types with self-referential size too.
3178
07e38949 31792019-06-29 Eric Botcazou <ebotcazou@adacore.com>
3180
3181 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the
3182 type requires strict alignment, then set the RM size to the type size.
3183 Rework handling of alignment and sizes of tagged types in ASIS mode.
3184 (validate_size): Rename local variable and remove special handling for
3185 strict-alignment types.
3186 * gcc-interface/utils.c (finish_record_type): Constify local variables
3187 and use properly typed constants.
3188
f4409741 31892019-06-29 Eric Botcazou <ebotcazou@adacore.com>
3190
3191 * gcc-interface/decl.c (gnat_to_gnu_field): Rework error messages for
3192 fields requiring strict alignment, add explicit test on Storage_Unit
3193 for position and size, and mention type alignment for position.
3194
5882c515 31952019-06-29 Eric Botcazou <ebotcazou@adacore.com>
3196
3197 * gcc-interface/trans.c (mark_visited_r): Set TYPE_SIZES_GIMPLIFIED on
3198 the main variant of a type, if any.
3199
d0de0a27 32002019-06-29 Eric Botcazou <ebotcazou@adacore.com>
3201
3202 * gcc-interface/decl.c (set_nonaliased_component_on_array_type): Add
3203 missing guard for the presence of TYPE_CANONICAL.
3204 (set_reverse_storage_order_on_array_type): Likewise.
3205
2074c859 32062019-06-29 Eric Botcazou <ebotcazou@adacore.com>
3207
3208 * gcc-interface/gigi.h (make_packable_type): Remove default value.
3209 (value_factor_p): Tweak prototype.
3210 * gcc-interface/decl.c (gnat_to_gnu_entity): Add comment.
3211 (gnat_to_gnu_component_type): Likewise.
3212 (gnat_to_gnu_field): Likewise. Fetch the position of the field earlier
3213 and simplify the condition under which the type is packed. Declare
3214 local variable is_bitfield. Pass 1 as max_align to make_packable_type
3215 if it is set to true.
3216 (copy_and_substitute_in_layout): Pass 0 to make_packable_type.
3217 * gcc-interface/utils.c (make_packable_array_type): New function.
3218 (make_packable_type): Use it to rewrite the type of array field.
3219 (maybe_pad_type): Pass align parameter to make_packable_type.
3220 (create_field_decl): Minor tweaks.
3221 (value_factor_p): Assert that FACTOR is a power of 2 and replace the
3222 modulo computation by a masking operation.
3223
83c6da22 32242019-06-25 Eric Botcazou <ebotcazou@adacore.com>
3225
3226 * gcc-interface/decl.c (gnat_to_gnu_entity): Remove superfluous test
3227 in previous change.
3228 * gcc-interface/gigi.h (maybe_character_type): Fix formatting.
3229 (maybe_character_value): Likewise.
3230
aaabc7bc 32312019-06-24 Jan Hubicka <jh@suse.cz>
3232
3233 * gcc-interface/decl.c (gnat_to_gnu_entity): Check that
3234 type is array or integer prior checking string flag.
83c6da22 3235 * gcc-interface/gigi.h (maybe_character_type): Likewise.
3236 (maybe_character_value): Likewise.
aaabc7bc 3237
5fe09a56 32382019-06-24 Martin Sebor <msebor@redhat.com>
3239
3240 * gcc-interface/utils.c (handle_nonnull_attribute): Quote attribute
3241 name.
3242
bd9331d6 32432019-06-18 Arnaud Charlet <charlet@adacore.com>
3244
83c6da22 3245 PR ada/80590
bd9331d6 3246 * sem_ch5.adb (Analyze_Loop_Statement): Avoid exception propagation
3247 during normal processing.
3248
8a5a7d1c 32492019-06-17 Arnaud Charlet <charlet@adacore.com>
3250
83c6da22 3251 PR ada/80590
8a5a7d1c 3252 * exp_ch9.adb (Expand_N_Delay_Relative_Statement): Swap the two
3253 conditions to avoid a unnecessary exception propagation in the default
3254 case.
3255
580934f6 32562019-05-28 Eric Botcazou <ebotcazou@adacore.com>
3257
3258 * gcc-interface/utils.c (handle_stack_protect_attribute): Move around.
3259
c8956236 32602019-05-28 Eric Botcazou <ebotcazou@adacore.com>
3261
3262 * doc/gnat_rm/implementation_defined_pragmas.rst (Machine_Attribute):
3263 Document additional optional parameters.
3264 * sem_prag.adb (Analyze_Pragma) <Pragma_Machine_Attribute>: Accept
3265 more than one optional parameter.
3266 * gcc-interface/decl.c (prepend_one_attribute_pragma): Alphabetize
3267 the list of supported pragmas. Simplify the handling of parameters
3268 and add support for more than one optional parameter.
3269 * gcc-interface/utils.c (attr_cold_hot_exclusions): New constant.
3270 (gnat_internal_attribute_table): Add entry for no_icf, noipa, flatten,
3271 used, cold, hot, target and target_clones.
3272 (begin_subprog_body): Do not create the RTL for the subprogram here.
3273 (handle_noicf_attribute): New static function.
3274 (handle_noipa_attribute): Likewise.
3275 (handle_flatten_attribute): Likewise.
3276 (handle_used_attribute): Likewise.
3277 (handle_cold_attribute): Likewise.
3278 (handle_hot_attribute): Likewise.
3279 (handle_target_attribute): Likewise.
3280 (handle_target_clones_attribute): Likewise.
3281
62b762c2 32822019-05-28 Eric Botcazou <ebotcazou@adacore.com>
3283
3284 * gcc-interface/trans.c (lvalue_required_for_attribute_p): Return 0
3285 for 'Size too.
3286 (Identifier_to_gnu): Use the actual subtype for a reference to a
3287 packed array in a return statement.
3288 (Attribute_to_gnu) <Attr_Size>: Do not strip VIEW_CONVERT_EXPRs from
3289 the prefix in every case.
3290
336a61a3 32912019-05-28 Eric Botcazou <ebotcazou@adacore.com>
3292
3293 * gcc-interface/trans.c (gnat_to_gnu): Remove superfluous tests on
3294 Backend_Overflow_Checks_On_Target and rework comments.
3295
983c5b5e 32962019-05-28 Eric Botcazou <ebotcazou@adacore.com>
3297
3298 * gcc-interface/trans.c (walk_nesting_tree): New static function.
3299 (finalize_nrv): Use it to walk the entire nesting tree.
3300
96b4b84e 33012019-05-28 Eric Botcazou <ebotcazou@adacore.com>
3302
3303 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Remove
3304 obsolete test on Is_For_Access_Subtype.
3305
0b74284e 33062019-05-28 Eric Botcazou <ebotcazou@adacore.com>
3307
3308 * gcc-interface/decl.c (components_to_record): Set a name on the type
3309 created for the REP part, if any.
3310 * gcc-interface/utils.c (finish_record_type): Only take the maximum
3311 when merging sizes for a variant part at offset 0.
3312 (merge_sizes): Rename has_rep parameter into max.
3313
689dab9d 33142019-05-28 Eric Botcazou <ebotcazou@adacore.com>
3315
3316 * gcc-interface/utils.c (gnat_internal_attribute_table): Add support
3317 for stack_protect attribute.
3318 (handle_stack_protect_attribute): New static function.
3319
804f7d39 33202019-05-28 Eric Botcazou <ebotcazou@adacore.com>
3321
3322 * gcc-interface/decl.c (intrin_arglists_compatible_p): Do not return
3323 false if the internal builtin uses a variable list.
3324
f07f94cc 33252019-05-27 Eric Botcazou <ebotcazou@adacore.com>
3326
3327 * gcc-interface/trans.c (Call_to_gnu): Do not initialize the temporary
3328 created out of addressability concerns if it's for the _Init parameter
3329 of an initialization procedure.
3330
abfd658b 33312019-05-27 Eric Botcazou <ebotcazou@adacore.com>
3332
3333 * gcc-interface/ada-builtin-types.def: New file.
3334 * gcc-interface/ada-builtins.def: Likewise.
3335 * gcc-interface/ada-tree.h (BUILT_IN_LIKELY): New macro.
3336 (BUILT_IN_UNLIKELY): Likewise.
3337 * gcc-interface/trans.c (independent_iterations_p): Initialize the
3338 auto-vector to 16 elements.
3339 (Call_to_gnu): Remove local variable and change the vector of actual
3340 parameters to an auto-vector. Do not convert actual parameters to
3341 the argument type for front-end built-in functions. Add support for
3342 front-end built-in functions.
3343 (build_noreturn_cond): Use internal instead of built-in function.
3344 * gcc-interface/utils.c (c_builtin_type): Include ada-builtin-types.def
3345 (install_builtin_function_types): Likewise.
3346 (install_builtin_functions): Include ada-builtins.def first.
3347
caab73a2 33482019-05-27 Eric Botcazou <ebotcazou@adacore.com>
3349
3350 * gcc-interface/utils.c (maybe_pad_type): Issue the warning for the
3351 specific case of component types preferably.
3352
f1ca2388 33532019-05-27 Eric Botcazou <ebotcazou@adacore.com>
3354
3355 * gcc-interface/trans.c (Identifier_to_gnu): Minor tweaks.
3356 (gnat_to_gnu): Do not convert the result if it is a reference to an
3357 unconstrained array used as the prefix of an attribute reference that
3358 requires an lvalue.
3359
e3f3573c 33602019-05-27 Eric Botcazou <ebotcazou@adacore.com>
3361
3362 * gcc-interface/trans.c (Gigi_Types_Compatible): New predicate.
3363 (Identifier_to_gnu): Use it to assert that the type of the identifier
3364 and that of its entity are compatible for gigi. Rename a couple of
3365 local variables and separate the processing of the result type.
3366
2306cd17 33672019-05-27 Eric Botcazou <ebotcazou@adacore.com>
3368
3369 * gcc-interface/trans.c (Call_to_gnu): Use the unpadded type when
3370 putting back an intermediate conversion the type of the actuals.
3371
6e4e9378 33722019-05-27 Eric Botcazou <ebotcazou@adacore.com>
3373
3374 * gcc-interface/trans.c (gnat_to_gnu) <Shift operations>: Convert the
3375 count to the unsigned version of its base type before proceeding.
3376
85b9be9b 33772019-05-16 Martin Sebor <msebor@redhat.com>
3378
3d6be0d5 3379 * gcc-interface/trans.c (check_inlining_for_nested_subprog): Quote
3380 reserved names.
85b9be9b 3381
65d973ca 33822019-05-08 Arnaud Charlet <charlet@adacore.com>
3383
3384 * standard.ads.h: New file.
3385
ff628b99 33862019-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3387
3388 * gcc-interface/Makefile.in (install-gcc-specs): Use foreach.
3389 Honor DESTDIR.
3390
ebd761d4 33912019-04-29 Michael K. Darling <darlingm@gmail.com>
3392
3393 * gnatvsn.ads: Bump Library_Version to 10.
3394
5f260823 33952019-04-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3396 Bernd Edlinger <bernd.edlinger@hotmail.de>
3397 Jakub Jelinek <jakub@redhat.com>
3398
3399 PR target/89093
3400 * raise-gcc.c (TARGET_ATTRIBUTE): Define.
3401 (continue_unwind, personality_body, PERSONALITY_FUNCTION): Add
3402 TARGET_ATTRIBUTE.
3403
d7ca95c0 34042019-04-07 Eric Botcazou <ebotcazou@adacore.com>
3405
3406 * libgnat/i-cexten.ads (CFloat_128): New type.
3407
26b21081 34082019-03-22 Dmitriy Anisimkov <anisimko@adacore.com>
3409
3410 PR ada/89583
3411 * libgnat/g-socket.adb (Bind_Socket, Connect_Socket,
3412 Send_Socket): Fix the computation of structure lengths passed to
3413 low level routines.
3414 (Is_IPv6_Address): Fix the number of expected colons.
3415
2f6d557f 34162019-03-11 Martin Liska <mliska@suse.cz>
3417
d325ee67 3418 * gcc-interface/misc.c (gnat_post_options): Wrap option name in string
3419 format message and fix GNU coding style.
2f6d557f 3420
c1ad6672 34212019-02-08 Eric Botcazou <ebotcazou@adacore.com>
3422
3423 * gcc-interface/trans.c (gnat_to_gnu) <N_Aggregate>: Minor tweak.
3424 * gcc-interface/utils.c (convert): Do not pad when doing an unchecked
3425 conversion here. Use TREE_CONSTANT throughout the function.
3426 (unchecked_convert): Also pad if the source is a CONSTRUCTOR and the
3427 destination is a more aligned array type or a larger aggregate type,
3428 but not between original and packable versions of a type.
3429
62a6ebbd 34302019-02-08 Eric Botcazou <ebotcazou@adacore.com>
3431
3432 * gcc-interface/utils.c (max_size) <tcc_unary>: Be prepared for an
3433 operand with VOID_TYPE.
3434
da383d19 34352019-02-08 Eric Botcazou <ebotcazou@adacore.com>
3436
3437 * gcc-interface/trans.c (elaborate_all_entities): Do not elaborate the
3438 entities of a package renaming another one.
3439
09c123a0 34402019-02-08 Eric Botcazou <ebotcazou@adacore.com>
3441
3442 * gcc-interface/trans.c (Regular_Loop_to_gnu): Replace tests on
3443 individual flag_unswitch_loops and flag_tree_loop_vectorize switches
3444 with test on global optimize switch.
3445 (Raise_Error_to_gnu): Likewise.
3446
a9dd7273 34472019-02-07 Eric Botcazou <ebotcazou@adacore.com>
3448
3449 * libgnarl/s-linux__sparc.ads (ETIMEDOUT): Set to correct value.
3450
4836c4f1 34512019-02-06 Arnaud Charlet <charlet@adacore.com>
3452
3453 * libgnarl/s-linux__x32.ads: Resync list of signals with s-linux.ads
3454
6b56937c 34552019-01-27 Eric Botcazou <ebotcazou@adacore.com>
3456
3457 * repinfo.adb (List_Component_Layout): Remove superfluous space for
3458 zero-sized field.
3459 * gcc-interface/ada-tree.h (TYPE_IS_EXTRA_SUBTYPE_P): New macro.
3460 * gcc-interface/gigi.h (create_extra_subtype): Declare.
3461 * gcc-interface/decl.c (TYPE_ARRAY_SIZE_LIMIT): Likewise.
3462 (update_n_elem): New function.
3463 (gnat_to_gnu_entity): Use create_extra_subtype to create extra subtypes
3464 instead of doing it manually.
3465 <E_Array_Type>: Use update_n_elem to compute the maximum size. Use the
3466 index type instead of base type for the bounds. Set TYPE_ARRAY_MAX_SIZE
3467 of the array to the maximum size.
3468 <E_Array_Subtype>: Create an extra subtype using the index type of the
3469 base array type for self-referential bounds. Use update_n_elem to
3470 compute the maximum size. Set TYPE_ARRAY_MAX_SIZE of the array to the
3471 maximum size.
3472 (gnat_to_gnu_field): Clear DECL_NONADDRESSABLE_P on discriminants.
3473 * gcc-interface/misc.c (gnat_get_alias_set): Return the alias set of
3474 the base type for an extra subtype.
3475 (gnat_type_max_size): Remove obsolete code.
3476 * gcc-interface/trans.c (Attribute_to_gnu): Minor tweak.
3477 (can_be_lower_p): Deal with pathological types.
3478 * gcc-interface/utils.c (create_extra_subtype): New function.
3479 (create_field_decl): Minor tweak.
3480 (max_size) <tcc_reference>: Compute a better value by using the extra
3481 subtypes on the self-referential bounds.
3482 <tcc_binary>: Rewrite. Deal with "negative value" in unsigned types.
3483 <tcc_expression>: Likewise.
3484 * gcc-interface/utils2.c (compare_arrays): Retrieve the original bounds
3485 of the arrays upfront. Swap only if the second length is not constant.
3486 Use comparisons on the original bounds consistently for the null tests.
3487 (build_binary_op): Use TYPE_IS_EXTRA_SUBTYPE_P macro.
3488 (build_allocator): Minor tweak.
3489
ecb2c722 34902019-01-27 Eric Botcazou <ebotcazou@adacore.com>
3491
3492 * gcc-interface/decl.c (array_type_has_nonaliased_component): Return
3493 the same value for every dimension of a multidimensional array type.
3494
10f25579 34952019-01-26 Eric Botcazou <ebotcazou@adacore.com>
3496
3497 * gcc-interface/trans.c (Regular_Loop_to_gnu): Use the SLOC of the
3498 iteration scheme, if present, throughout the translation.
3499
aced6683 35002019-01-26 Eric Botcazou <ebotcazou@adacore.com>
3501
3502 * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Use
3503 DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT for the size to be assigned
3504 by a call to memset if the LHS is a DECL.
3505
18b4b30e 35062019-01-26 Eric Botcazou <ebotcazou@adacore.com>
3507
3508 * gcc-interface/trans.c (struct loop_info_d): Remove artificial field.
3509 (Loop_Statement_to_gnu): Do not set it.
3510
6dce35b7 35112019-01-26 Eric Botcazou <ebotcazou@adacore.com>
3512
3513 * gcc-interface/trans.c (Iterate_Acc_Clause_Arg): Fix formatting.
3514 (Acc_gnat_to_gnu): Likewise.
3515 (Acc_Data_to_gnu): Likewise.
3516 (Acc_Var_to_gnu): Likewise.
3517 (Acc_Reduc_to_gnu): Likewise.
3518 (Acc_Size_List_to_gnu): Likewise.
3519 (Pragma_to_gnu) <Pragma_Acc_Loop>: Likewise.
3520 <Pragma_Acc_Data>): Likewise.
3521 (find_loop_for): Remove default value for parameters.
3522 * gcc-interface/trans.c (gnat_to_gnu) <N_Op_And>: Merge into...
3523 <N_Op_Eq>): ...this.
3524
f8cd11ee 35252019-01-26 Eric Botcazou <ebotcazou@adacore.com>
3526
3527 * gcc-interface/decl.c (annotate_value) <INTEGER_CST>: Use test on
3528 the sign bit instead of on the sign of the value.
3529 <PLUS_EXPR>: Turn addition of negative constant into subtraction.
3530 <MULT_EXPR>: Add test for degenerate case.
3531 <BIT_AND_EXPR>: Simplify.
3532
9a3c51d9 35332019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
3534
3535 * s-oscons-tmplt.c (AF_INET6): Do not undefine for RTEMS.
3536
07c11f2b 35372019-01-09 Sandra Loosemore <sandra@codesourcery.com>
3538
3539 PR other/16615
07c11f2b 3540 * exp_ch11.adb: Change "can not" to "cannot".
3541 * sem_ch4.adb: Likewise.
3542
f4d3c071 35432019-01-09 Sandra Loosemore <sandra@codesourcery.com>
3544
3545 PR other/16615
f4d3c071 3546 * exp_ch9.adb: Mechanically replace "can not" with "cannot".
3547 * libgnat/s-regpat.ads: Likewise.
3548 * par-ch4.adb: Likewise.
3549 * set_targ.adb: Likewise.
3550 * types.ads: Likewise.
3551
902071d1 35522019-01-08 Justin Squirek <squirek@adacore.com>
3553
3554 Revert:
902071d1 3555 2018-07-31 Justin Squirek <squirek@adacore.com>
3556
76fb0465 3557 * lib-writ.adb (Write_With_Lines): Modfiy the generation
3558 of dependencies within ali files so that source unit
3559 bodies are properly listed even if said bodies are
3560 missing. Perform legacy behavior in GNATprove mode.
3561 * lib-writ.ads: Modify documentation to reflect current
3562 behavior.
902071d1 3563
3564 and:
902071d1 3565 2018-09-26 Justin Squirek <squirek@adacore.com>
3566
76fb0465 3567 * lib-writ.adb, lib-writ.ads (Write_With_Lines): Add
3568 documentation and an extra conditional check for RCI
3569 units so that generated ali files will list the spec
3570 only instead of a body when a body is not found.
902071d1 3571
65a33d4a 35722019-01-04 Eric Botcazou <ebotcazou@adacore.com>
3573
3574 * gnatvsn.ads: Bump copyright year.
3575
3d8932fd 35762019-01-01 Jakub Jelinek <jakub@redhat.com>
8e8f6434 3577
fbd26352 3578 Update copyright years.
3579
277184bc 3580 * gnat_ugn.texi: Bump @copying's copyright year.
3581 * gnat_rm.texi: Likewise.
7dfbd804 3582\f
3d8932fd 3583Copyright (C) 2019 Free Software Foundation, Inc.
7dfbd804 3584
3585Copying and distribution of this file, with or without modification,
3586are permitted in any medium without royalty provided the copyright
3587notice and this notice are preserved.