]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ada/ChangeLog
[Ada] Spurious error in discriminated aggregate
[thirdparty/gcc.git] / gcc / ada / ChangeLog
CommitLineData
42e0489b 12019-08-14 Bob Duff <duff@adacore.com>
2
3 * exp_aggr.adb (Init_Hidden_Discriminants): Avoid processing the
4 wrong discriminant, which could be of the wrong type.
5
1dd4e4df 62019-08-14 Eric Botcazou <ebotcazou@adacore.com>
7
8 * sem_ch12.adb (Analyze_Instance_And_Renamings): Do not reset
9 the Is_Generic_Instance flag previously set on the package
10 generated for the instantiation of a generic subprogram.
11
52050469 122019-08-14 Ed Schonberg <schonberg@adacore.com>
13
14 * exp_ch4.adb (Expand_N_Quantified_Expression): Freeze
15 explicitly the type of the loop parameter.
16
0cca4508 172019-08-14 Javier Miranda <miranda@adacore.com>
18
19 * sem_util.adb (New_Copy_Tree.Copy_Node_With_Replacement):
20 Update the Chars attribute of identifiers.
21
7bd7174a 222019-08-14 Yannick Moy <moy@adacore.com>
23
24 * sem_spark.adb, sem_spark.ads (Is_Legal): New function exposed
25 for use in GNATprove, to test legality rules not related to
26 permissions.
27 (Check_Declaration_Legality): Extract the part of
28 Check_Declaration that checks rules not related to permissions.
29 (Check_Declaration): Call the new Check_Declaration_Legality.
30 (Check_Type_Legality): Rename of Check_Type. Introduce
31 parameters to force or not checking, and update a flag detecting
32 illegalities.
33 (Check_Node): Ignore attribute references in statement position.
34
7d2da10f 352019-08-14 Yannick Moy <moy@adacore.com>
36
37 * sem_spark.adb (Check_Old_Loop_Entry): New procedure to check
38 correct use of Old and Loop_Entry.
39 (Check_Node): Check subprogram contracts.
40 (Check_Pragma): Check Loop_Variant.
41 (Check_Safe_Pointers): Apply checking to library-level
42 subprogram declarations as well, in order to check their
43 contract.
44
a62147e6 452019-08-14 Yannick Moy <moy@adacore.com>
46
47 * sem_spark.adb (Is_Subpath_Expression): Take into account
48 conversion and qualification.
49
a9bd384f 502019-08-14 Eric Botcazou <ebotcazou@adacore.com>
51
52 * sem_ch7.adb (Install_Private_Declarations)
53 <Swap_Private_Dependents>: Do not rely solely on the
54 Is_Child_Unit flag on the unit to recurse.
55 (Uninstall_Declarations) <Swap_Private_Dependents>: New
56 function. Use it to recurse on the private dependent entities
57 for child units.
58
e2b5ac32 592019-08-14 Javier Miranda <miranda@adacore.com>
60
61 * exp_aggr.adb (Is_CCG_Supported_Aggregate): Return False for
62 arrays with bounds not known at compile time.
63
8e2a1f8f 642019-08-14 Ed Schonberg <schonberg@adacore.com>
65
66 * sem_util.adb (New_Copy_Tree, Visit_Entity): A quantified
67 expression includes the implicit declaration of the loop
68 parameter. When a quantified expression is copied during
69 expansion, for example when building the precondition code from
70 the generated pragma, a new loop parameter must be created for
71 the new tree, to prevent duplicate declarations for the same
72 symbol.
73
f27aa0dc 742019-08-14 Yannick Moy <moy@adacore.com>
75
76 * sem_disp.adb (Check_Dispatching_Operation): Update assertion
77 for the separate declarations created in GNATprove mode.
78 * sem_disp.ads (Is_Overriding_Subprogram): Update comment.
79 * sem_elab.adb (SPARK_Processor): Fix test for checking of
80 overriding primitives.
81
bd94cd6a 822019-08-14 Eric Botcazou <ebotcazou@adacore.com>
83
84 * inline.adb (Add_Inlined_Body): Tweak comments.
85 (List_Inlining_Info): Also list information about non-main
86 units.
87
ab791a8d 882019-08-14 Gary Dismukes <dismukes@adacore.com>
89
90 * sem_ch4.adb (Analyze_Selected_Component): In the case where
91 the prefix is of a concurrent type, and the selected entity
92 matching the selector is the first private declaration of the
93 type (such as the first local variable in a task's body), set
94 Is_Private_Op.
95
8325ffc0 962019-08-14 Piotr Trojanek <trojanek@adacore.com>
97
98 * einfo.adb (Is_Generic_Actual_Subprogram): Replace repeated
99 calls to Ekind with Ekind_In.
100
d1170f8d 1012019-08-13 Richard Sandiford <richard.sandiford@arm.com>
102
103 PR middle-end/91421
104 * gcc-interface/trans.c (gigi): Call set_decl_buillt_in_function.
105 (Call_to_gnu): Use DECL_FE_FUNCTION_CODE instead of DECL_FUNCTION_CODE.
106
d042fb93 1072019-08-13 Eric Botcazou <ebotcazou@adacore.com>
108
109 * ali.ads (Linker_Option_Record): Remove Original_Pos component.
110 * ali.adb (Scan_ALI): Do not set it.
111
69ddd862 1122019-08-13 Eric Botcazou <ebotcazou@adacore.com>
113
114 * sem_ch3.adb (Build_Derived_Concurrent_Type): Add a couple of
115 local variables and use them. When the derived type fully
116 constrains the parent type, rewrite it as a subtype of an
117 implicit (unconstrained) derived type instead of the other way
118 around.
119 (Copy_And_Build): Deal with concurrent types and use predicates.
120 (Build_Derived_Private_Type): Build the full derivation if
121 needed for concurrent types too.
122 (Build_Derived_Record_Type): Add marker comment.
123 (Complete_Private_Subtype): Use predicates.
124
cfb10d96 1252019-08-13 Ed Schonberg <schonberg@adacore.com>
126
127 * sem_ch3.adb (Check_Generic_Ancestor): New subprogram,
128 aubsidiary to Build_Derived_Record_Type. to enforce the rule
129 that a type extension declared in a generic body cznnot have an
130 ancestor that is a generic formal (RM 3.9.1 (4/2)). The rule
131 applies to all ancestors of the type, including interface
132 progenitors.
133
2fec02ad 1342019-08-13 Eric Botcazou <ebotcazou@adacore.com>
135
136 * sem_ch3.adb (Build_Underlying_Full_View): Delete.
137 (Complete_Private_Subtype): Do not set the full view on the
138 private subtype here. If the full base is itself derived from
139 private, do not re-derive the parent type but instead constrain
140 an existing underlying full view.
141 (Prepare_Private_Subtype_Completion): Do not get to the
142 underlying full view, if any. Set the full view on the private
143 subtype here.
144 (Process_Full_View): Likewise.
145 * sem_ch12.adb (Check_Generic_Actuals): Also set
146 Is_Generic_Actual_Type on the full view if the type of the
147 actual is private.
148 (Restore_Private_Views): Also reset Is_Generic_Actual_Type on
149 the full view if the type of the actual is private.
150 * sem_eval.adb (Subtypes_Statically_Match): Remove bypass for
151 generic actual types.
152
e2cbc305 1532019-08-13 Javier Miranda <miranda@adacore.com>
154
155 * sem_res.adb (Resolve_Selected_Component): When the type of the
156 component is an access to a class-wide type and the type of the
157 context is an access to a tagged type the relevant type is that
158 of the component (since in such case we may need to generate
159 implicit type conversions or dispatching calls).
160
ea791f8e 1612019-08-13 Ed Schonberg <schonberg@adacore.com>
162
163 * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Preanalyze
164 expression, rather do a full analysis, to prevent unwanted
165 removal of side effects which mask the intent of the expression.
166
da8cdc91 1672019-08-13 Eric Botcazou <ebotcazou@adacore.com>
168
169 * impunit.adb (Non_Imp_File_Names_95): Add
170 GNAT.Branch_Prediction.
171
b212de5b 1722019-08-13 Eric Botcazou <ebotcazou@adacore.com>
173
174 * exp_ch6.adb: Remove with and use clauses for Sem_Ch12.
175 (Expand_Call_Helper): Swap the back-end inlining case and the
176 special front-end expansion case. In back-end inlining mode, do
177 not invoke Add_Inlined_Body unless the call may be inlined.
178 * inline.ads (Add_Pending_Instantiation): New function moved
179 from...
180 * inline.adb (Add_Inlined_Body): Simplify comment. Turn test on
181 the enclosing unit into assertion.
182 (Add_Pending_Instantiation): New function moved from...
183 * sem_ch12.ads (Add_Pending_Instantiation): ...here.
184 * sem_ch12.adb (Add_Pending_Instantiation): ...here.
185
2cd122d8 1862019-08-13 Eric Botcazou <ebotcazou@adacore.com>
187
188 * sem.adb (Do_Analyze): Recompute Style_Check_Max_Line_Length
189 after restoring Style_Max_Line_Length.
190
f6bd78dd 1912019-08-13 Arnaud Charlet <charlet@adacore.com>
192
193 * sem_ch13.adb (Check_Iterator_Functions): Protect against
194 cascaded errors.
195
bcc2ed52 1962019-08-13 Ed Schonberg <schonberg@adacore.com>
197
198 * sem_ch8.adb (Analyze_Subprogram_Renaming): Do no suppress mode
199 conformance checks on child unit instance that is a compilation
200 unit.
201
e324731f 2022019-08-13 Gary Dismukes <dismukes@adacore.com>
203
204 * exp_dbug.adb (Fully_Qualify_Name): Add full name qualification
205 for the E_Exception case.
206
fa7ccff5 2072019-08-13 Gary Dismukes <dismukes@adacore.com>
208
209 * exp_aggr.adb (Aggr_Size_OK): Compute the aggregate size using
210 universal arithmetic, to avoid situations where the size
211 computation overflows.
212
4571ad41 2132019-08-13 Justin Squirek <squirek@adacore.com>
214
215 * repinfo.adb (List_Scalar_Storage_Order): Modify conditionals
216 for displaying ordering to always be triggered when -gnatR4 is
217 in effect.
218
da558db0 2192019-08-13 Justin Squirek <squirek@adacore.com>
220
221 * aspects.adb, aspects.ads: Register new aspect.
222 * par-prag.adb (Prag): Register new pragma
223 * sem_ch13.adb (Analyze_Aspect_Specifications): Add processing
224 for new aspect similar to Aspect_Max_Entry_Queue_Length.
225 * sem_prag.adb, sem_prag.ads (Analyze_Pragma): Register new
226 pragma and set it to use the same processing as
227 Pragma_Max_Queue_Length.
228 * snames.ads-tmpl: Move definition of
229 Name_Max_Entry_Queue_Length so that it can be processed as a
230 pragma in addition to a restriction and add an entry for the
231 pragma itself.
232
fb48dcd3 2332019-08-13 Yannick Moy <moy@adacore.com>
234
235 * sem_ch4.adb (Analyze_Allocator): Do not insert subtype
236 declaration for allocator inside a spec expression.
237
5bf51e61 2382019-08-13 Yannick Moy <moy@adacore.com>
239
240 * sem_res.adb (Resolve_Call): Do not inline calls inside record
241 types.
242
db3b1a47 2432019-08-13 Eric Botcazou <ebotcazou@adacore.com>
244
245 * sem_ch4.adb (Analyze_One_Call): Remove bypass for type
246 mismatch in nested instantiations.
247 * sem_ch8.adb (Find_Nearer_Entity): New function.
248 (Find_Renamed_Entity): Use it to disambiguate the candidates for
249 the renaming generated for an instantiation when it is
250 ambiguous.
251
175b42e6 2522019-08-13 Eric Botcazou <ebotcazou@adacore.com>
253
254 * gnat1drv.adb (Adjust_Global_Switches): Do not set
255 Back_End_Inlining in ASIS mode either.
256
1e510b63 2572019-08-13 Olivier Hainque <hainque@adacore.com>
258
259 * libgnat/s-win32.ads: Define size_t and fix the MapViewOfFile
260 binding to use it instead of DWORD for the dwNumberOfBytesToMap
261 argument.
262 * libgnat/g-sercom__mingw.adb (Read): State which definition of
263 size_t to fetch in call to Last_Index.
264
bfde37f8 2652019-08-13 Arnaud Charlet <charlet@adacore.com>
266
267 * gcc-interface/Make-lang.in: Remove unused TRACE variable. Pass
268 LN_S to relevant gnatlib targets.
269 * gcc-interface/Makefile.in: Systematically pass LN_S to
270 relevant gnatlib targets.
271
127fec2d 2722019-08-13 Yannick Moy <moy@adacore.com>
273
274 * sem_dim.adb (Analyze_Dimension,
275 Analyze_Dimension_Array_Aggregate, Analyze_Dimension_Call,
276 Analyze_Dimension_Extension_Or_Record_Aggregate): Return
277 immediately when inside an inlined body.
278 * sem_res.adb (Resolve_Call): Remove special checking now done
279 inside Analyze_Dimension_Call.
280
ae328900 2812019-08-13 Justin Squirek <squirek@adacore.com>
282
283 * exp_ch4.adb (Expand_N_Allocator): Add condition to detect
284 library-level object declarations
285
fecd5d5b 2862019-08-13 Eric Botcazou <ebotcazou@adacore.com>
287
288 * doc/gnat_ugn/building_executable_programs_with_gnat.rst
289 (-gnateT): Document Double_Float_Alignment parameter and fix
290 description of Double_Scalar_Alignment parameter.
291 * gnat_ugn.texi: Regenerate.
292
8105dc37 2932019-08-13 Eric Botcazou <ebotcazou@adacore.com>
294
295 * exp_ch6.adb (Expand_Call_Helper): If back-end inlining is
296 enabled, also instantiate the body of a generic unit containing
297 a subprogram subject to aspect/pragma Inline_Always at
298 optimization level zero.
299 * sem_ch12.adb (Might_Inline_Subp): Minor tweak.
300 (Analyze_Package_Instantiation): Do not instantiate the package
301 body because of inlining considerations if the instantiation is
302 done in a generic unit. Move around similar condition involving
303 the main unit. Add test on Back_End_Inlining to processing for
304 front-end inlining.
305
80a305cd 3062019-08-13 Javier Miranda <miranda@adacore.com>
307
308 * exp_disp.adb (Make_Secondary_DT): Handle record type
309 derivations that have interface components located at fixed
310 positions and interface components located at variable offset.
311 The offset of components located at fixed positions is computed
312 using the dummy object (similar to the case where all the
313 interface components are located at fixed positions).
314 (Make_DT): Build the dummy object for all tagged types that
315 implement interface types (that is, build it also for types with
316 variable size components), and use the dummy object to compute
317 the offset of all tag components located at fixed positions when
318 initializing the Interface_Table object.
319
0fabbf2c 3202019-08-13 Justin Squirek <squirek@adacore.com>
321
322 * gnatcmd.adb (GNATCmd): Add constant for new compiler switch
323 --help-ada, and include usage subprogram. Add line to usage help
324 explaining the new flag.
325 (GNATCmd_Usage): Rename from locally declared Usage so as not to
326 confuse with the newly imported version. Add new argument case
327 for --help-ada and add bug report email to implicit display of
328 help without the --help flag so as to unify output between the
329 two cases.
330
9c811f40 3312019-08-13 Dmitriy Anisimkov <anisimko@adacore.com>
332
333 * libgnat/g-comlin.adb (Getopt): Quote unrecognized switch in
334 Invalid_Switch exception message.
335
04c6a988 3362019-08-13 Yannick Moy <moy@adacore.com>
337
338 * sem_util.adb (Traverse_More_Func): Take into account
339 Loop_Actions inside N_Iterated_Component_Association nodes.
340 * sinfo.ads: Document correctly Loop_Actions as a field of nodes
341 of kind N_Iterated_Component_Association.
342
9c3e12d7 3432019-08-13 Claire Dross <dross@adacore.com>
344
345 * libgnat/a-cfinve.adb, libgnat/a-cofove.adb (Find_Index,
346 Reverse_Find_Index): Use bigger type to avoid range check
347 failure at the last loop iteration.
348
a4ea964c 3492019-08-12 Dmitriy Anisimkov <anisimko@adacore.com>
350
351 * libgnat/g-socket.adb (Is_IPv6_Address): Check that no less
352 then 2 colons in IPv6 numeric address.
353
4b422b29 3542019-08-12 Dmitriy Anisimkov <anisimko@adacore.com>
355
356 * libgnat/g-comlin.ads, libgnat/g-comlin.adb (Getopt): Add
357 parameter Quiet. Need to do not output error messages to
358 console. Invalid_Switch exception generation surrounded by an
359 error message.
360
fec0c7f6 3612019-08-12 Ed Schonberg <schonberg@adacore.com>
362
363 * exp_ch6.adb (Expand_Actuals. Add_Call_By_Copy_Code): Add code
364 to generate proper checks when an actual for an in-out or out
365 parameter has a non-null access type. No constraints are
366 applied to an inbound access parameter, but on exit a not-null
367 check must be performed if the type of the actual requires it.
368
41765355 3692019-08-12 Ed Schonberg <schonberg@adacore.com>
370
371 * sem_util.adb (Is_Expaned_Priority_Attribute): Check whether
372 call comes from a rewritten attribute before comparing name with
373 Get_Ceiling run-time subprogram.
374
99b6268d 3752019-08-12 Eric Botcazou <ebotcazou@adacore.com>
376
377 * exp_util.ads (Component_May_Be_Bit_Aligned): Small comment
378 tweaks.
379 (Possible_Bit_Aligned_Component): Likewise.
380 (Type_May_Have_Bit_Aligned_Components): Likewise.
381 * exp_util.adb (Component_May_Be_Bit_Aligned): Likewise.
382 (Possible_Bit_Aligned_Component): Likewise.
383 (Type_May_Have_Bit_Aligned_Components): Likewise.
384
5d2fb1fa 3852019-08-12 Eric Botcazou <ebotcazou@adacore.com>
386
387 * exp_ch4.adb (Expand_N_Op_Eq): Expand the array equality if
388 either operand is a possibly unaligned slice.
389 * exp_ch6.adb (Expand_Simple_Function_Return): Do not generate a
390 copy for a possibly unaligned object if it is represented as a
391 scalar.
392 * exp_util.adb (Is_Possibly_Unaligned_Slice): Do not always
393 return false if the target doesn't have strict alignment.
394
bb0246a6 3952019-08-12 Bob Duff <duff@adacore.com>
396
397 * sem_ch12.adb (Instantiate_Package_Body): Remove suppression of
398 checks in instances of internal units.
399 * sem_ch6.adb (Analyze_Function_Return): Do not generate a
400 constraint check on an extended_return_statement if the subtype
401 of the return object in the statement is identical to the return
402 subtype of the function.
403
f0bbb55a 4042019-08-12 Bob Duff <duff@adacore.com>
405
406 * libgnat/a-cbmutr.adb (Is_Reachable): Declare Idx to be of the
407 base subtype. Clearly it makes no sense to loop "while Idx >=
408 0", if Idx is of a nonnegative subtype.
409
91f3d9d4 4102019-08-12 Bob Duff <duff@adacore.com>
411
412 * libgnat/a-tifiio.adb (Put_Scaled): Prevent AA from being
413 negative, since Field is range 0 .. something.
414
d8f36b1a 4152019-08-12 Bob Duff <duff@adacore.com>
416
417 * doc/gnat_ugn/gnat_utility_programs.rst (gnatmetric, gnatpp,
418 gnatstub): Remove documentation for Ada language version
419 switches, and note that they are no longer needed.
420
6f663d96 4212019-08-12 Gary Dismukes <dismukes@adacore.com>
422
423 * sem_ch5.adb (Prepare_Param_Spec_Loop): Set the parents of the
424 copied low and high bounds in the case where the loop range is
425 given by a discrete_subtype_indication, to prevent hanging (or
426 Assert_Failure) in Insert_Actions.
427
32b3786f 4282019-08-12 Ed Schonberg <schonberg@adacore.com>
429
430 * sem_ch6.adb (heck_Untagged_Equality): Verify that user-defined
431 equality has the same profile as the predefined equality before
432 applying legality rule in RM 4.5.2 (9.8).
433
759d145f 4342019-08-12 Bob Duff <duff@adacore.com>
435
436 * libgnat/a-except.ads: Update obsolete comment, still making
437 clear that this is a variant. Add explicit default for Id
438 component of Exception_Occurrence, because that value is used.
439 Define Null_Occurrence less redundantly.
440 * libgnat/a-einuoc.adb: Minor simplification of code.
441
cee17a56 4422019-08-12 Justin Squirek <squirek@adacore.com>
443
444 * libgnat/a-dhfina.adb, libgnat/a-dhfina.ads (Is_Simple_Name,
445 Is_Root_Directory, Is_Parent_Directory,
446 Is_Current_Directory_Name, Is_Relative_Name, Initial_Directory,
447 Relative_Name, Compose): Add implementation and documentation.
448 * libgnat/a-direct.adb (Containing_Directory): Modify routine to
449 use routines from Ada.Directories.Hierarchical_File_Names and
450 remove incorrect special case for parent directories.
451 (Fetch_Next_Entry): Add check for current directory and parent
452 directory and ignore them under certain circumstances.
453 (Simple_Nmae): Add check for null result from
454 Simple_Name_Internal and raise Name_Error.
455 (Simple_Name_Internal): Add explicit check for root directories,
456 sanitize trailing directory separators, and modify behavior so
457 that current and parent directories are considered valid
458 results.
459 * Makefile.rtl: Add entry to GNATRTL_NONTASKING_OBJS.
460
cc87412b 4612019-08-12 Eric Botcazou <ebotcazou@adacore.com>
462
463 * freeze.adb (Freeze_Entity): Give the same error for an
464 Object_Size clause on a variable-sized type as for a Size
465 clause.
466
a6b48bfe 4672019-08-12 Gary Dismukes <dismukes@adacore.com>
468
469 * sem_prag.adb (Analyze_Pragma, Pragma_Suppress_Initialization):
470 For private types, set the Suppress_Initialization flag on the
471 Full_View of the entity rather than the entity's base type.
472
adb8ac81 4732019-08-12 Yannick Moy <moy@adacore.com>
474
475 * aspects.adb, aspects.ads (Aspect_No_Caching): New aspect.
476 * contracts.adb, contracts.ads (Add_Contract_Item): Add handling
477 of No_Caching.
478 (Analyze_Object_Contract): Add handling of No_Caching.
479 * einfo.adb, einfo.ads
480 (Get_Pragma): Add handling of No_Caching.
481 * doc/gnat_rm/implementation_defined_aspects.rst,
482 doc/gnat_rm/implementation_defined_pragmas.rst: Document new
483 aspect/pragma.
484 * gnat_rm.texi: Regenerate.
485 * par-prag.adb (Prag): New pragma Pragma_No_Caching.
486 * sem_ch13.adb (Analyze_Aspect_Specifications,
487 Check_Aspect_At_Freeze_Point): Add handling of No_Caching.
488 * sem_prag.adb (Analyze_Pragma): Deal with pragma No_Caching.
489 * sem_prag.ads (Analyze_External_Property_In_Decl_Part): Now
490 applies to No_Caching.
491 * sem_util.adb, sem_util.ads (Is_Effectively_Volatile): Add
492 handling of No_Caching.
493 (No_Caching_Enabled): New query function.
494 * snames.ads-tmpl: New names for pragma.
495
f50cb3de 4962019-08-12 Yannick Moy <moy@adacore.com>
497
498 * sem_util.adb, sem_util.ads (Traverse_More_Func,
499 Traverse_More_Proc): Add formal parameter for Itypes traversal.
500
65566aa4 5012019-08-12 Yannick Moy <moy@adacore.com>
502
503 * exp_attr.adb, exp_attr.ads (Expand_Size_Attribute): New
504 procedure to share part of the attribute expansion with
505 GNATprove mode.
506 (Expand_N_Attribute_Reference): Extract part of the
507 Size/Object_Size expansion in the new procedure
508 Expand_Size_Attribute.
509 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Expand
510 Size/Object_Size attributes using the new procedure
511 Expand_Size_Attribute.
512
f8ca05f5 5132019-08-12 Yannick Moy <moy@adacore.com>
514
515 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Only
516 expand Enum_Rep attribute when its parameter is a literal.
517
0175b8fe 5182019-08-12 Justin Squirek <squirek@adacore.com>
519
520 * sem_eval.adb (Check_Non_Static_Context): Add a condition to
521 determine if a range violation constitues a warning or an error.
522 (Out_Of_Range): Add a condition to determine if a range
523 violation constitues a warning or an error.
524
809a3252 5252019-08-12 Eric Botcazou <ebotcazou@adacore.com>
526
527 * exp_ch4.adb (Real_Range_Check): Do not rewrite the conversion
528 node but its expression instead, after having fetched its
529 current value. Clear the Do_Range_Check flag on entry. Return
530 early for a rewritten float-to-float conversion. Remove
531 redundant local variable. Suppress all checks when inserting
532 the temporary and do not reanalyze the node.
533
86d280c6 5342019-08-12 Eric Botcazou <ebotcazou@adacore.com>
535
536 * sprint.ads: Minor comment tweak.
537
138c6242 5382019-08-12 Eric Botcazou <ebotcazou@adacore.com>
539
540 * checks.adb (Insert_Valid_Check): Do not retrieve the
541 Do_Range_Check flag from the Original_Node but from the
542 Validated_Object. Remove useless bypass for floating-point
543 types.
544
ab16206d 5452019-08-12 Yannick Moy <moy@adacore.com>
546
547 * sem_util.adb, sem_util.ads (Traverse_More_Func,
548 Traverse_More_Proc): New traversal subprograms.
549
1ca535ae 5502019-08-12 Jerome Lambourg <lambourg@adacore.com>
551
552 * libgnarl/s-taprop__vxworks.adb (Abort_Handler): Only call
553 s-tpopsp.Self when actually needed.
554
9f49d9e6 5552019-08-12 Eric Botcazou <ebotcazou@adacore.com>
556
557 * exp_ch4.adb (Discrete_Range_Check): Return if checks are
558 suppressed.
559
a8bcbb37 5602019-08-12 Eric Botcazou <ebotcazou@adacore.com>
561
562 * sem_res.adb: Add with & use clause for Sem_Mech and
563 alphabetize.
564 (Resolve_Actuals): Do not apply a scalar range check for the
565 source of a conversion whose result is passed by reference to a
566 valued procedure.
567
e54cffd1 5682019-08-12 Eric Botcazou <ebotcazou@adacore.com>
569
570 * checks.adb (Insert_Valid_Check): Reset the Do_Range_Check flag
571 on the validated object.
572 * exp_ch6.adb (Add_Call_By_Copy_Code): Reset the Do_Range_Check
573 flag on the actual here, as well as on the Expression if the
574 actual is a N_Type_Conversion node.
575 (Add_Validation_Call_By_Copy_Code): Generate the incoming range
576 check if needed and reset the Do_Range_Check flag on the
577 Expression if the actual is a N_Type_Conversion node.
578 (Expand_Actuals): Do not reset the Do_Range_Check flag here.
579 Generate the incoming range check for In parameters here instead
580 of...
581 (Expand_Call_Helper): ...here. Remove redudant condition.
582 * sem_res.adb (Resolve_Actuals): Use local variable A_Typ and
583 remove obsolete comments.
584 (Resolve_Type_Conversion): Do not force the Do_Range_Check flag
585 on the operand if range checks are suppressed.
586
df1c131a 5872019-08-12 Eric Botcazou <ebotcazou@adacore.com>
588
589 * checks.adb (Activate_Range_Check): Remove redundant argument.
590 (Generate_Range_Check): Likewise.
591 (Apply_Float_Conversion_Check): Reset the Do_Range_Check flag on
592 entry and remove redundant condition.
593
c5c4ce6c 5942019-08-02 Alexandre Oliva <oliva@adacore.com>
87541248 595
596 * libgnat/a-exexpr.adb (Begin_Handler_v1, End_Handler_v1): New.
597 (Claimed_Cleanup): New.
598 (Begin_Handler, End_Handler): Document.
599 * gcc-interface/trans.c (gigi): Switch to exception handler
600 ABI #1.
601 (Exception_Handler_to_gnu_gcc): Save the original cleanup
602 returned by begin handler, pass it to end handler, and use
603 EH_ELSE_EXPR to pass a propagating exception to end handler.
604 (gnat_to_gnu): Leave the exception pointer alone for reraise.
605 (add_cleanup): Handle EH_ELSE_EXPR, require it by itself.
606
dcccb125 6072019-07-23 Ed Schonberg <schonberg@adacore.com>
608
609 * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations,
610 Freeze_Entity_Checks): Include Aspect_CPU with other aspects
611 whose expresssion may depend on a discriminant, and thus require
612 that components of the type be made visible.
613
0275bc70 6142019-07-23 Eric Botcazou <ebotcazou@adacore.com>
615
616 * checks.adb (Convert_And_Check_Range): Add Suppress parameter
617 and pass it in the call to Insert_Actions. Rename local
618 variable.
619 (Generate_Range_Check): Minor comment fixes. Pass Range_Check
620 in the first call to Convert_And_Check_Range and All_Checks in
621 the second call.
622 * exp_ch4.adb (Expand_N_Type_Conversion): Reset the
623 Do_Overflow_Check flag in the float-to-float case too if there
624 is also a range check.
625
79ee9e76 6262019-07-23 Eric Botcazou <ebotcazou@adacore.com>
627
628 * checks.adb (Activate_Overflow_Check): Remove redundant
629 argument.
630 * exp_ch4.adb (Discrete_Range_Check): Reset the overflow flag.
631 (Expand_N_Type_Conversion): Do not reset it here.
632
87b5a4e8 6332019-07-23 Eric Botcazou <ebotcazou@adacore.com>
634
635 * repinfo.adb (List_Component_Layout): Pass Decimal to UI_Write.
636 (Write_Val): Likewise.
637
441fbb64 6382019-07-23 Ed Schonberg <schonberg@adacore.com>
639
640 * aspects.ads: New table Operational_Aspect, used to distinguish
641 between aspects that are view-specific, such as those related to
642 iterators, and representation aspects that apply to all views of
643 a type.
644 * aspects.adb (Find_Aspect): If the aspect being sought is
645 operational, do not ecamine the full view of a private type to
646 retrieve it.
647 * sem_ch5.adb (Analyze_Iterator_Specification): Improve error
648 message when the intended domain of iteration does not implement
649 the required iterator aspects.
650
583f62e9 6512019-07-23 Yannick Moy <moy@adacore.com>
652
653 * sem_spark.ads (Is_Local_Context): New function.
654 * sem_spark.adb (Check_Declaration): Issue errors on violations
655 of SPARK RM 3.10(4)
656 (Process_Path): Do not issue error on borrow/observe during
657 elaboration, as these are caught by the new rule.
658
ec154f5b 6592019-07-23 Yannick Moy <moy@adacore.com>
660
661 * exp_ch7.adb (Create_Finalizer): Force finalizer not to be
662 Ghost enabled.
663 * exp_dbug.adb (Get_External_Name): Explain special case of
664 Ghost finalizer.
665
e1598796 6662019-07-22 Eric Botcazou <ebotcazou@adacore.com>
667
668 * repinfo.adb (List_Entities): Also list compiled-generated
669 types present as Etype of objects.
670
da90894a 6712019-07-22 Eric Botcazou <ebotcazou@adacore.com>
672
673 * sinfo.ads: Update the documentation about the
674 Do_Division_Check, Do_Overflow_Check and Do_Range_Check flags.
675
bb8b9752 6762019-07-22 Eric Botcazou <ebotcazou@adacore.com>
677
678 * exp_ch4.adb (Expand_N_Type_Conversion): Beef up comment.
679 (Fixup_Universal_Fixed_Operation): Set the base type instead of
680 the type of the enclosing type conversion on the operation.
681
aeb4eb17 6822019-07-22 Ed Schonberg <schonberg@adacore.com>
683
684 * exp_ch4.adb (Expand_N_In): Do not suggest the use of attribute
685 'Valid as a replacement for a range check on a discrete type
686 when the bounds of the range are given by type conversions,
687 because in such a case there are distinct types involved and the
688 subbested attribute replacement would be misplaced.
689
30cf324b 6902019-07-22 Yannick Moy <moy@adacore.com>
691
692 * sem_spark.adb (Get_Root_Object, Is_Path_Expression,
693 Is_Subpath_Expression): Add parameter Is_Traversal to adapt
694 these functions to the case of paths returned from a traversal
695 function.
696 (Read_Indexes): Handle the case of an if-expression or
697 case-expression.
698 (Check_Statement): Check Emit_Messages only when issuing an
699 error message. This is important as Emit_Messages may store the
700 information that an error was detected.
701
72c474b5 7022019-07-22 Eric Botcazou <ebotcazou@adacore.com>
703
704 * checks.adb (Apply_Type_Conversion_Checks): Do not set
705 Do_Range_Check flag on conversions from fixed-point types
706 either.
707 * exp_attr.adb: Add use and with clause for Expander.
708 (Expand_N_Attribute_Reference) <Fixed_Value, Integer_Value>: Set
709 the Conversion_OK flag and do not generate overflow/range checks
710 manually.
711 * exp_ch4.adb (Expand_N_Qualified_Expression): Remove
712 superfluous clearing of Do_Range_Check flag.
713 (Discrete_Range_Check): New procedure to generate a range check
714 for discrete types.
715 (Real_Range_Check): Remove redundant local variable and adjust.
716 Remove useless shortcut. Clear Do_Range_Check flag on all
717 paths.
718 (Expand_N_Type_Conversion): Remove redundant test on
719 Conversion_OK. Call Discrete_Range_Check to generate range
720 checks on discrete types. Remove obsolete code for
721 float-to-integer conversions. Add code to generate range checks
722 for conversions involving fixed-point types.
723
39cdd055 7242019-07-22 Eric Botcazou <ebotcazou@adacore.com>
725
726 * sprint.ads: Fix pasto in comment.
727
9af8c78a 7282019-07-22 Javier Miranda <miranda@adacore.com>
729
730 * sem_res.adb (Resolve_Actuals): Replace code that displaces the
731 pointer to an allocated object to reference its secondary
732 dispatch table by a type conversion (which takes care of
733 handling all cases).
734
0ff5a502 7352019-07-22 Eric Botcazou <ebotcazou@adacore.com>
736
737 * sprint.adb (Sprint_Node_Actual)
738 <N_Decimal_Fixed_Point_Definition>: Swap a couple of spaces.
739 (Write_Itype): Minor consistency fixes throughout. Add support
740 for printing ordinary and decimal fixed-point types and
741 subtypes.
742
8c6eab72 7432019-07-22 Eric Botcazou <ebotcazou@adacore.com>
744
745 * exp_attr.adb (Expand_Loop_Entry_Attribute): Beef up comment.
746
76ed386d 7472019-07-22 Ed Schonberg <schonberg@adacore.com>
748
749 * libgnat/s-valboo.ads, libgnat/s-valcha.ads,
750 libgnat/s-valdec.ads, libgnat/s-valenu.ads,
751 libgnat/s-valint.ads, libgnat/s-vallld.ads,
752 libgnat/s-vallli.ads, libgnat/s-valllu.ads,
753 libgnat/s-valrea.ads, libgnat/s-valuns.ads,
754 libgnat/s-valwch.ads: Change categorization of packages that
755 implement attribute 'Value from Pure to Preelaborate, to prevent
756 undesirable optimizations when the evaluation of the attribute
757 raises Constraint_Error, but subsequent use of the result of
758 this evsaluation is removed by a subsequent optimization.
759
e869060d 7602019-07-22 Ed Schonberg <schonberg@adacore.com>
761
762 * sem_warn.adb (Check_References): Do not emit s warning on a
763 referenced entity with no explicit assignment if the type of the
764 entity has Preelaborable_Initialixation, such as
765 Exception_Occurrence.
766
9bf70d94 7672019-07-22 Javier Miranda <miranda@adacore.com>
768
769 * exp_ch4.adb (Size_In_Storage_Elements): Improve the expansion
770 to handle array indexes that are modular type.
771 (Expand_N_Allocator): For 32-bit targets improve the generation
772 of the runtime check associated with large arrays supporting
773 arrays initialized with a qualified expression.
774 * libgnat/s-imenne.adb (Image_Enumeration_8,
775 Image_Enumeration_16, Image_Enumeration_32): Define the index of
776 Index_Table with range Natural'First .. Names'Length since in
777 the worst case all the literals of the enumeration type would be
778 single letter literals and the Table built by the frontend would
779 have as many components as the length of the names string. As a
780 result of this enhancement, the internal tables declared using
781 Index_Table have a length closer to the real needs, thus
782 avoiding the declaration of large arrays on 32-bit CCG targets.
783
b0da310b 7842019-07-22 Yannick Moy <moy@adacore.com>
785
786 * sem_ch3.adb (Constrain_Access): Issue a message about ignored
787 constraint.
788
592e600a 7892019-07-22 Eric Botcazou <ebotcazou@adacore.com>
790
791 * sem_ch8.adb (End_Use_Type): Reset the In_Use flag on the
792 class-wide type if the type is tagged.
793 (Use_One_Type): Add commentary on the handling of the class-wide
794 type.
795
c1eeb1c6 7962019-07-22 Eric Botcazou <ebotcazou@adacore.com>
797
798 * einfo.ads (Is_For_Access_Subtype): Delete.
799 (Set_Is_For_Access_Subtype): Likewise.
800 * einfo.adb (Is_For_Access_Subtype): Likewise.
801 (Set_Is_For_Access_Subtype): Likewise.
802 (Write_Entity_Flags): Do not write Is_For_Access_Subtype.
803 * exp_ch4.adb (Expand_N_Selected_Component): Do not deal with
804 it.
805 * exp_spark.adb (Expand_SPARK_N_Selected_Component): Likewise.
806 * sem_ch4.adb (Analyze_Explicit_Dereference): Likewise.
807 * sem_ch3.adb (Build_Discriminated_Subtype): Do not build a
808 special private subtype for access-to-record subtypes.
809
3eb44c27 8102019-07-22 Eric Botcazou <ebotcazou@adacore.com>
811
812 * sem_ch3.adb (Complete_Private_Subtype): Rework the setting of
813 the Etype of the full view for full base types that cannot
814 contain any discriminant. Remove code and comment about it in
815 the main path.
816
9c6c2b81 8172019-07-22 Ed Schonberg <schonberg@adacore.com>
818
819 * sem_ch3.adb (Convert_Bound): Subsidiary of
820 Floating_Point_Type_Declaration, to handle properly range
821 specifications with bounds that may include static constants of
822 a given type rather than real literals.
823
d5dbc1bb 8242019-07-22 Eric Botcazou <ebotcazou@adacore.com>
825
826 * sem_aggr.adb (Rewrite_Bound): Be prepared for discriminals
827 too.
828 (Rewrite_Range;): Minor tweak.
829 (Resolve_Record_Aggregate): For a component with default
830 initialization whose expression is an array aggregate, also
831 rewrite the bounds of the component associations, if any.
832
37f1cae9 8332019-07-22 Gary Dismukes <dismukes@adacore.com>
834
835 * exp_ch5.adb (Expand_N_Case_Statement): In the case where a
836 case statement is rewritten as an equivalent if statement,
837 inherit the From_Condition_Expression flag from the case
838 statement.
839
e6368760 8402019-07-22 Eric Botcazou <ebotcazou@adacore.com>
841
842 * sem_ch8.adb (Check_Constrained_Object): Further extend the
843 special optimization to all limited types.
844
9b8341e7 8452019-07-22 Eric Botcazou <ebotcazou@adacore.com>
846
847 * exp_attr.adb (Expand_N_Attribute_Reference)
848 <Attribute_Enum_Val>: Set No_Truncation on the
849 N_Unchecked_Type_Conversion built around the argument passed to
850 the attribute.
851
f930ed43 8522019-07-22 Nicolas Roche <roche@adacore.com>
853
854 * libgnat/s-valrea.adb (Scan_Real): Ignore non significative
855 digits to avoid converging to infinity in some cases.
856
3474a75e 8572019-07-22 Eric Botcazou <ebotcazou@adacore.com>
858
859 * libgnat/g-encstr.adb (Encode_Wide_String): Fix oversight.
860 (Encode_Wide_Wide_String): Likewise.
861
a7f20f4b 8622019-07-22 Eric Botcazou <ebotcazou@adacore.com>
863
864 * sem_warn.adb (Find_Var): Bail out for a function call with an
865 Out or In/Out parameter.
866
a51cd2a2 8672019-07-22 Nicolas Roche <roche@adacore.com>
868
869 * terminals.c (__gnat_tty_waitpid): Support both blocking and
870 not blocking mode.
871 * libgnat/g-exptty.ads (Is_Process_Running): New function.
872 * libgnat/g-exptty.adb (Close): Don't try to interrupt/terminate
873 a process if it is already dead.
874
36167f09 8752019-07-22 Ed Schonberg <schonberg@adacore.com>
876
c5c4ce6c 877 * freeze.adb (Freeze_Fixed_Point_Type): When freezing a
36167f09 878 fixed-point subtype, check whether the parent type declarastion
879 includes an aspect specification for the 'Small type attribute,
880 and inherit the specified value.
881
b5293e2d 8822019-07-22 Javier Miranda <miranda@adacore.com>
883
884 * freeze.adb (Freeze_Subprogram): Check that C++ constructors
885 must have external or link name.
886
7c48993c 8872019-07-22 Ed Schonberg <schonberg@adacore.com>
888
889 * sem_res.adb (Resolve_Selected_Component): If the prefix has a
890 deferred reference, generate the correct reference now, to
891 indicate that the previous assignment is used. This prevents
892 spurious warnings on useless assignments when compiling with all
893 warnings enabled. when there is a subsequent call in the same
894 stqtement list, in which the prefix of the selected component is
895 the actual for an out parameter.
896
0b87f8cf 8972019-07-22 Eric Botcazou <ebotcazou@adacore.com>
898
899 * exp_attr.adb (Expand_Loop_Entry_Attribute): Copy the condition
900 of a while loop instead of simply relocating it.
901
0c41e160 9022019-07-18 Arnaud Charlet <charlet@adacore.com>
903
904 * Makefile.rtl, expect.c, env.c, aux-io.c, mkdir.c, initialize.c,
905 cstreams.c, raise.c, tracebak.c, adadecode.c, init.c, raise-gcc.c,
906 argv.c, adaint.c, adaint.h, ctrl_c.c, sysdep.c, rtinit.c, cio.c,
907 seh_init.c, exit.c, targext.c: Introduce a "STANDALONE" mode where C
908 runtime files do not have any dependency on GCC include files.
909 Remove unnecessary includes.
910 Remove remaining references to VMS in runtime C file.
911 * runtime.h: new File.
912
0e972d45 9132019-07-13 Andreas Schwab <schwab@linux-m68k.org>
914
915 * Makefile.rtl: Use g-sercom__linux.adb for all linuxes.
916
77fe13f0 9172019-07-11 Piotr Trojanek <trojanek@adacore.com>
918
919 * lib-writ.adb (Ensure_System_Dependency,
920 Up_To_Date_ALI_File_Exists, Write_ALI): Replace low-level access
921 to table with a high-level query.
922
56903255 9232019-07-11 Piotr Trojanek <trojanek@adacore.com>
924
925 * checks.adb: Fix typo in comment.
926 * sem.adb (Semantics): Avoid repeated calls to
927 In_Extended_Main_Source_Unit by reusing an already-cached
928 result.
929 * sem_util.adb (First_Global): Fix style.
930
85f6c73a 9312019-07-11 Yannick Moy <moy@adacore.com>
932
933 * sem_res.adb (Resolve_Call): Do not perform dimensionality
934 checking on inlined bodies.
935
5083f119 9362019-07-11 Yannick Moy <moy@adacore.com>
937
938 * debug.adb: Flip meaning of debug switch -gnatdF.
939
f237e5eb 9402019-07-11 Yannick Moy <moy@adacore.com>
941
942 * sem_eval.adb (Is_Same_Value): Add special case for rewritten
943 Loop_Entry attribute.
944
1e5359c0 9452019-07-11 Claire Dross <dross@adacore.com>
946
947 * gnat1drv.adb: SPARK checking rules for pointer aliasing are
948 moved to GNATprove backend.
949 * sem_spark.ads, sem_spark.adb (Sem_SPARK): Is now a generic
950 unit. Takes as parameters:
951 - Retysp which is used to query the most underlying type
952 visible in SPARK. We do not introduce aliasing checks for
953 types which are not visibly deep.
954 - Component_Is_Visible_In_SPARK is used to avoid doing pointer
955 aliasing checks on components which are not visible in SPARK.
956 - Emit_Messages returns True in the second phase of SPARK
957 analysis. Error messages for failed aliasing checks are only
958 output in this case.
959 Additionally, errors on constructs not supported in SPARK are
960 removed as duplicates of marking errors. Components are stored
961 in the permission map using their original component to avoid
962 inconsistencies between components of different views of the
963 same type.
964 (Check_Expression): Handle delta constraints.
965 (Is_Deep): Exported so that we can check for SPARK restrictions
966 on deep types inside SPARK semantic checkings.
967 (Is_Traversal_Function): Exported so that we can check for SPARK
968 restrictions on traversal functions inside SPARK semantic
969 checkings.
970 (Check_Call_Statement, Read_Indexes): Check wether we are
971 dealing with a subprogram pointer type before querying called
972 entity.
973 (Is_Subpath_Expression): Image attribute can appear inside a
974 path.
975 (Check_Loop_Statement): Correct order of statements in the loop.
976 (Check_Node): Ignore raise nodes.
977 (Check_Statement): Use Last_Non_Pragma to get the object
978 declaration in an extended return statement.
979
fb7f0b28 9802019-07-11 Patrick Bernardi <bernardi@adacore.com>
981
982 * bindgen.adb (Gen_Main): Do not generate a reference to
983 Ada_Main_Program_Name when the Minimal_Binder flag is set.
984 (Gen_Output_File_Ada): Do not output GNAT_Version and
985 Ada_Main_Program_Name info if Minimal_Binder flag is set.
986 * bindusg.adb: Add documentation for new -minimal switch.
987 * gnatbind.adb (Scan_Bind_Arg): Scan -minimal switch.
988 * opt.ads: Add new global flag Minimal_Binder to indicate if the
989 binder should not produce global variables.
990 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
991 Update documentation with new binder -minimal switch.
992 * gnat_ugn.texi: Regenerate.
993
6e0725a9 9942019-07-11 Eric Botcazou <ebotcazou@adacore.com>
995
996 * Makefile.rtl: Add warning note about compilation flags and
997 capitalize.
998
263dcfe9 9992019-07-11 Ed Schonberg <schonberg@adacore.com>
1000
1001 * exp_ch9.adb (Expand_N_Protected_Type_Declaaration): New
1002 subsidiary routine Replace_Access_Definition, to handle properly
1003 a protected type PT one of whose private components is of type
1004 access PT.
1005
dc001f3e 10062019-07-11 Dmitriy Anisimkov <anisimko@adacore.com>
1007
1008 * libgnat/g-socket.ads (Level_Type): Add enumerators for
1009 IP_Protocol_For_ICMP, IP_Protocol_For_IGMP,
1010 IP_Protocol_For_RAW_Level.
1011 * libgnat/g-socket.adb (Levels): Handle them.
1012 * s-oscons-tmplt.c: Import socket protocols defined in
1013 netinet/in.h.
1014
3bcff314 10152019-07-11 Claire Dross <dross@adacore.com>
1016
1017 * libgnat/a-cfhama.adb, libgnat/a-cfhase.adb (Free): Do not
1018 reset the Has_Element flag if no element is freed.
1019
8e22ede8 10202019-07-11 Arnaud Charlet <charlet@adacore.com>
1021
1022 * errno.c: Remove obsolete support for MaRTE OS.
1023
180bd06b 10242019-07-11 Ed Schonberg <schonberg@adacore.com>
1025
1026 * exp_ch4.adb (Expand_N_Type_Conversion): If a predicate check
1027 is generated, analyze it with range check suppressed, because
1028 that check has been previously applied.
1029 * exp_ch5.adb (Expand_N_Assignment_Statement): If the RHS is a
1030 type conversion to the type of the LHS, do not apply a predicate
1031 check to the RHS because it will have been generated already
1032 during its expansion.
1033 * exp_ch6.adb (Can_Fold_Predicate_Call): Extend processing to
1034 handle a predicate check on a constant entity whose value is
1035 static.
1036
32859955 10372019-07-11 Hristian Kirtchev <kirtchev@adacore.com>
1038
1039 * bindo.adb: Remove the documentation of switch -d_N because it
1040 is no longer in use.
1041 * bindo-graphs.ads, bindo-graphs.adb (Is_Spec_Before_Body_Edge):
1042 New routine.
1043 * bindo-writers.adb (Write_Dependency_Edge): Add the missing
1044 case of a spec-before-body edge.
1045
0595f8ff 10462019-07-11 Dmitriy Anisimkov <anisimko@adacore.com>
1047
1048 * libgnat/g-socket.ads (Mode_Type): Add a Socket_Raw enumerator.
1049 * libgnat/g-socket.adb (Modes): Handle Socket_Raw.
1050
af7bae25 10512019-07-11 Justin Squirek <squirek@adacore.com>
1052
1053 * exp_ch9.adb (Build_Private_Protected_Declaration): Add
1054 exception for the moving of pragmas to internally generated
1055 specs for pragma Unreferenced.
1056
87259588 10572019-07-11 Bob Duff <duff@adacore.com>
1058
1059 * doc/gnat_ugn/gnat_utility_programs.rst: Fix inconsistent
1060 documentation for gnatmetric.
1061 * gnat_ugn.texi: Regenerate.
1062
2d95f0f8 10632019-07-11 Bob Duff <duff@adacore.com>
1064
1065 * doc/gnat_ugn/gnat_utility_programs.rst: Document gnatpp's
1066 --spaces-only switch.
1067
814e7b6e 10682019-07-11 Hristian Kirtchev <kirtchev@adacore.com>
1069
1070 * sem_util.adb (Null_Status): Assume that an erroneous construct
1071 has an undefined null status.
1072
53904d64 10732019-07-11 Hristian Kirtchev <kirtchev@adacore.com>
1074
1075 * checks.adb, exp_ch6.adb, gnat1drv.adb, sem_aux.adb,
1076 sem_ch2.adb, sem_ch8.adb, sem_res.adb: Minor reformatting.
1077
21dccd5f 10782019-07-11 Hristian Kirtchev <kirtchev@adacore.com>
1079
1080 * sem_ch8.adb (Analyze_Object_Renaming): Obtain the object being
1081 renamed using routine Get_Object_Name which takes care of
1082 various name forms.
1083 (Get_Object_Name): New routine.
1084
3da5e0d4 10852019-07-11 Ed Schonberg <schonberg@adacore.com>
1086
1087 * exp_ch6.adb (Can_Fold_Predicate_Call): New function,
1088 subsidiary of Expand_Call_Helper, to compute statically a
1089 predicate check when the argument is a static integer.
1090
3d95efc8 10912019-07-11 Hristian Kirtchev <kirtchev@adacore.com>
1092
1093 * sem_res.adb (Resolve_Op_Not): Do not rewrite an equality
1094 operator into a function call when the operator is intrinsic.
1095
8c93b71c 10962019-07-11 Thomas Quinot <quinot@adacore.com>
1097
1098 * sem_prag.adb (Analyze_Pragma, case pragma Check): Do not call
1099 Set_SCO_Pragma_Enabled for the dynamic predicate case.
1100
001b1b6a 11012019-07-11 Hristian Kirtchev <kirtchev@adacore.com>
1102
1103 * exp_util.ads, exp_util.adb (Needs_Finalization): Move to
1104 Sem_Util.
1105 * sem_ch9.adb (Analyze_Protected_Definition): Code cleanup. Mark
1106 the protected type as having controlled components when it
1107 contains at least one such component.
1108 * sem_util.ads, sem_util.adb (Needs_Finalization): New
1109 function.
1110
5dc190e5 11112019-07-11 Eric Botcazou <ebotcazou@adacore.com>
1112
1113 * alloc.ads (Rep_JSON_Table_Initial): New constant.
1114 (Rep_JSON_Table_Increment): Likewise.
1115 * debug.adb: Document -gnatd_j switch.
1116 * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add
1117 repinfo-input.o.
1118 * gnat1drv.adb: Add with clause for Repinfo.Input.
1119 Add with and use clauses for Sinput.
1120 (Read_JSON_Files_For_Repinfo): New procedure.
1121 (Gnat1drv1): Deal with -gnatd_j switch.
1122 * repinfo-input.ad[sb]: New unit.
1123 * snames.ads-tmpl (Name_Discriminant): New constant.
1124 (Name_Operands): Likewise.
1125
b1118eb8 11262019-07-11 Justin Squirek <squirek@adacore.com>
1127
1128 * checks.adb (Apply_Accessibility_Check): Add check for constant
1129 folded conditions on accessibility checks.
1130
ef0b2206 11312019-07-11 Arnaud Charlet <charlet@adacore.com>
1132
1133 * libgnarl/g-thread.ads, libgnarl/g-thread.adb (Get_Thread):
1134 Update comments. Add new version taking a Task_Id.
1135
12b1c23b 11362019-07-11 Hristian Kirtchev <kirtchev@adacore.com>
1137
1138 * bindo.adb: Update the section of switches and debugging
1139 elaboration issues.
1140 * bindo.ads: Add type Elaboration_Phase.
1141 * bindo-augmentors.adb: Add use clause for
1142 Bindo.Writers.Phase_Writers.
1143 (Augment_Library_Graph): Signal the start and end of the
1144 aubmentation phase.
1145 * bindo-builders.adb: Add with and use clause for Bindo.Writers.
1146 Add use clause for Bindo.Writers.Phase_Writers.
1147 (Build_Invocation_Graph): Signal the start and end of the
1148 invocation graph construction phase.
1149 (Build_Library_Graph): Signal the start and end of the library
1150 graph construction phase.
1151 * bindo-diagnostics.adb: Add use clause for
1152 Bindo.Writers.Phase_Writers.
1153 (Diagnose_Cycle): Signal the start and end of the cycle
1154 diagnostic phase.
1155 * bindo-elaborators.adb: Add use clause for
1156 Bindo.Writers.Phase_Writers.
1157 (Elaborate_Units): Signal the start and end of the unit
1158 elaboration phase.
1159 * bindo-graphs.adb: Add use clause for
1160 Bindo.Writers.Phase_Writers.
1161 (Find_Components): Signal the start and end of the component
1162 discovery phase.
1163 (Find_Cycles): Signal the start and end of the cycle discovery
1164 phase.
1165 * bindo-units.adb: Add with and use clause for Bindo.Writers.
1166 Add use clause for Bindo.Writers.Phase_Writers.
1167 (Collect_Elaborable_Units): Signal the start and end of the unit
1168 collection phase.
1169 * bindo-validators.adb: Add with and use clause for
1170 Bindo.Writers. Add use clause for Bindo.Writers.Phase_Writers.
1171 (Validate_Cycles, Validate_Elaboration_Order,
1172 Validate_Invocation_Graph, Validate_Library_Graph): Signal the
1173 start and end of the libray graph validation phase.
1174 * bindo-writers.ads, bindo-writers.adb: Add new nested package
1175 Phase_Writers.
1176 * debug.adb: Update the documentation of switch d_S.
1177
d7569e04 11782019-07-11 Yannick Moy <moy@adacore.com>
1179
1180 * sem_res.adb (Check_Argument_Order): Special case calls to
1181 operators.
1182
604c5bca 11832019-07-10 Dmitriy Anisimkov <anisimko@adacore.com>
1184
1185 * libgnat/s-ststop.adb: Remove System.Strings.Stream_Ops
1186 dependence on System.Streams.Stream_IO.
1187
ce9565a8 11882019-07-10 Ed Schonberg <schonberg@adacore.com>
1189
1190 * sem_ch2.adb (Analyze_Integer_Literal): Preserve the type of
1191 the literal if prior analysis determined that its type is a
1192 modular integer type.
1193
e97ee616 11942019-07-10 Doug Rupp <rupp@adacore.com>
1195
1196 * init.c: Do not attempt to re-arm guard page on x86_64-vx7(r2).
1197
c0e85bb6 11982019-07-10 Ed Schonberg <schonberg@adacore.com>
1199
1200 * sem_ch8.adb (Check_Constrained_Object): A record that is
1201 limited because of the presence of a limited component is
1202 constrained, and no subtype indiciation needs to be created for
1203 it, just as is the case for declared limited records.
1204
94654315 12052019-07-10 Yannick Moy <moy@adacore.com>
1206
1207 * sem_aux.adb, sem_aux.ads (Is_Protected_Operation): New
1208 function to determine if a subprogram is protected.
1209 * sem_spark.adb (Setup_Protected_Components): New procedure to
1210 add protected components to the environment.
1211 (Check_Callable_Body): Call the new Setup_Protected_Components.
1212 (Check_Package_Spec): Merge local environment with enclosing one
1213 when done.
1214
9ac24568 12152019-07-10 Claire Dross <dross@adacore.com>
1216
1217 * sem_spark.adb (Check_Expression): Allow digits constraints as
1218 input.
1219 (Illegal_Global_Usage): Pass in the entity.
1220 (Is_Subpath_Expression): New function to allow different nodes
1221 as inner parts of a path expression.
1222 (Read_Indexes): Allow concatenation and aggregates with box
1223 expressions. Allow attributes Update and Loop_Entry.
1224 (Check_Expression): Allow richer membership test.
1225 (Check_Node): Ignore bodies of generics.
1226 (Get_Root_Object): Allow concatenation and attributes.
1227
95266217 12282019-07-10 Hristian Kirtchev <kirtchev@adacore.com>
1229
1230 * sem_ch6.adb (Check_Discriminant_Conformance): Use Find_Type to
1231 discover the type of a full view discriminant.
1232
f9d615a1 12332019-07-10 Arnaud Charlet <charlet@adacore.com>
1234
1235 * doc/gnat_ugn/gnat_and_program_execution.rst: Improve gnatmem's
1236 doc for the depth switch.
1237
55d7c660 12382019-07-10 Bob Duff <duff@adacore.com>
1239
1240 * doc/gnat_ugn/gnat_utility_programs.rst: Document gnatpp's
1241 --source-line-breaks switch.
1242
e94f4600 12432019-07-10 Justin Squirek <squirek@adacore.com>
1244
1245 * doc/gnat_rm/implementation_defined_attributes.rst: Add mention
1246 of 'Image attribute with 'Img's entry to mention additional
1247 added 2012 usage of Obj'Image.
1248 * doc/gnat_rm/implementation_defined_pragmas.rst: Correct
1249 mispelling of Async_Writers.
1250 * gnat_rm.texi: Regenerate.
1251 * sem_prag.adb (Analyze_Pragma): Correct mispelling of
1252 Async_Writers.
1253 * sem_util.adb (State_Has_Enabled_Property): Correct mispelling
1254 of Async_Writers.
1255
2bf00b7f 12562019-07-10 Simon Buist <buist@adacore.com>
1257
1258 * sem_util.ads (Child_Prefix): New constant.
1259 * sem_util.adb (Unique_Name): Add a special prefix to child
1260 units that have a nested subprogram or package.
1261
9dda714b 12622019-07-10 Arnaud Charlet <charlet@adacore.com>
1263
1264 * sfn_scan.adb (Scan_SFN_Pragmas): Add pragma Assert.
1265
fd8a528d 12662019-07-10 Hristian Kirtchev <kirtchev@adacore.com>
1267
1268 * sem_ch3.adb (Check_Nonoverridable_Aspects): Correct the
1269 spelling in certain error messages.
1270 (Check_Pragma_Implemented): Correct the spelling in certain
1271 error messages.
1272
97f0aa19 12732019-07-10 Eric Botcazou <ebotcazou@adacore.com>
1274
1275 * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add g-brapre.
1276 * libgnat/g-brapre.ads: New package specification.
1277 * doc/gnat_rm/the_gnat_library.rst: Document it.
1278 * gnat_rm.texi: Regenerate.
1279
d2506f16 12802019-07-10 Yannick Moy <moy@adacore.com>
1281
1282 * osint-c.adb (Set_File_Name): Always add extension for multiple
1283 units per file mode.
1284
c6db401c 12852019-07-10 Corentin Gay <gay@adacore.com>
1286
1287 * sysdep.c: Put include directive for 'vxWorks.h' before any
1288 other VxWorks headers.
1289
344c2639 12902019-07-10 Eric Botcazou <ebotcazou@adacore.com>
1291
1292 * doc/gnat_rm/implementation_defined_attributes.rst
1293 (Scalar_Storage_Order): Minor tweaks. Add note about debuggers.
1294 * gnat_rm.texi: Regenerate.
1295
8a9900a9 12962019-07-10 Hristian Kirtchev <kirtchev@adacore.com>
1297
1298 * exp_ch4.adb (Expand_N_Case_Expression): Mark the generated
1299 assignments to the temporary result as being OK because the
1300 expansion of case expressions is correct by construction.
1301 (Is_Copy_Type): Update the predicate to match the comment
1302 within.
1303
8c21443b 13042019-07-10 Hristian Kirtchev <kirtchev@adacore.com>
1305
1306 * bindo-graphs.adb, bindo.adb, debug.adb, exp_ch6.adb,
1307 sem_ch10.adb, sem_ch13.adb, sem_ch3.adb, sem_ch4.adb,
1308 sem_ch6.adb, sem_ch7.adb, sem_res.adb, sem_spark.adb,
1309 sem_util.adb, warnsw.ads: Minor reformatting.
1310
2e7929f0 13112019-07-10 Joffrey Huguet <huguet@adacore.com>
1312
1313 * libgnat/a-strbou.ads, libgnat/a-strfix.ads,
1314 libgnat/a-strunb.ads, libgnat/a-strunb__shared.ads: Add global
1315 contracts, contract cases, preconditions and postconditions to
1316 procedures and functions.
1317
87d55fe2 13182019-07-10 Doug Rupp <rupp@adacore.com>
1319
1320 * sysdep.c (__gnat_is_file_not_found_error): Reformulate to also
1321 work for vxworks7r2 SR0610.
1322
82d7e1f4 13232019-07-10 Doug Rupp <rupp@adacore.com>
1324
1325 * env.c (__gnat_environ): Reformulate to also work for
1326 vxworks7r2 SR0610.
1327
7f6066e1 13282019-07-10 Patrick Bernardi <bernardi@adacore.com>
1329
1330 * Makefile.rtl: Handle vxworks7r2 ppc target
1331
6523468f 13322019-07-10 Hristian Kirtchev <kirtchev@adacore.com>
1333
1334 * bindo.adb: Update the section on switches.
1335 * bindo-graphs.adb
1336 (Add_Cycle, Add_Vertex_And_Complement): Remove.
1337 (Create): The graph no longer needs a set of recorded cycles
1338 because the cycles are not rediscovered in permuted forms.
1339 (Cycle_End_Vertices): New routine.
1340 (Destroy): The graph no longer needs a set of recorded cycles
1341 because the cycles are not rediscovered in permuted forms.
1342 (Destroy_Library_Graph_Vertex): Move to the library level.
1343 (Find_All_Cycles_Through_Vertex, Find_All_Cycles_With_Edge):
1344 Remove.
1345 (Find_Cycles_From_Successor, Find_Cycles_From_Vertex,
1346 Find_Cycles_In_Component, Has_Elaborate_All_Edge): New routines.
1347 (Insert_And_Sort): Remove.
1348 (Is_Elaborate_Body_Edge): Use predicate
1349 Is_Vertex_With_Elaborate_Body.
1350 (Is_Recorded_Cycle): Remove.
1351 (Is_Vertex_With_Elaborate_Body): New routine.
1352 (Normalize_And_Add_Cycle): Remove.
1353 (Precedence): Rename to xxx_Precedence, where xxx relates to the
1354 input. These versions better reflect the desired input
1355 precedence.
1356 (Record_Cycle): New routine.
1357 (Remove_Vertex_And_Complement, Set_Is_Recorded_Cycle): Remove.
1358 (Trace_xxx): Update all versions to use debug switch -d_t.
1359 (Trace_Component): New routine.
1360 (Trace_Eol): Removed.
1361 (Trace_Vertex): Do not output the component as this information
1362 is already available when the component is traced.
1363 (Unvisit, Visit): New routine.
1364 * bindo-graphs.ads: Add new instance LGV_Lists. Remove instance
1365 RC_Sets. Update the structure of type Library_Graph_Attributes
1366 to remove the set of recorded cycles.
1367 (Destroy_Library_Graph_Vertex): Move to the library level.
1368 * bindo-writers.adb (Write_Component_Vertices): Output
1369 information about the number of vertices.
1370 * debug.adb: Document the use of binder switch -d_t. Update the
1371 use of binder switch -d_T.
1372
9eaacd61 13732019-07-10 Yannick Moy <moy@adacore.com>
1374
1375 * sem_spark.adb (Get_Root_Object): Replace precondition by error
1376 message.
1377 (Read_Indexes): Replace precondition by error message.
1378 (Check_Callable_Body): Check only traversal function returns an
1379 anonymous access type.
1380 (Check_Expression): Issue error on unexpected expression as
1381 path.
1382 * sem_util.adb (First_Global): Fix access to global on
1383 entry/task.
1384
2ac657bd 13852019-07-10 Javier Miranda <miranda@adacore.com>
1386
1387 * exp_ch6.adb (Is_Class_Wide_Interface_Type): New subprogram.
1388 (Expand_Call_Helper): Handle non-limited views when we check if
1389 any formal is a class-wide interface type.
1390 * exp_disp.adb (Expand_Interface_Actuals): Handle non-limited
1391 views when we look for interface type formals to force "this"
1392 displacement.
1393
d3fb378d 13942019-07-10 Ed Schonberg <schonberg@adacore.com>
1395
1396 * sem_res.adb (Resolve_Equality_Op): Do not replace the resolved
1397 operator by its alias if expander is not active, because the
1398 operand type may not be frozen yet and its inherited operations
1399 have not yet been created.
1400
ab8418a3 14012019-07-10 Hristian Kirtchev <kirtchev@adacore.com>
1402
1403 * bindo-elaborators.adb (Elaborate_Units): Set attribute
1404 Elab_Position of all elaborated units.
1405 (Set_Unit_Elaboration_Positions): New routine.
1406
6e618828 14072019-07-10 Gary Dismukes <dismukes@adacore.com>
1408
1409 * exp_util.adb: Reformatting and a typo fix.
1410
97f6f798 14112019-07-10 Yannick Moy <moy@adacore.com>
1412
1413 * exp_util.adb (Remove_Side_Effects): Prefer renamings for
1414 objects of possible owning type in GNATprove mode.
1415
89c67bd9 14162019-07-09 Ed Schonberg <schonberg@adacore.com>
1417
1418 * sem_ch3.adb (Analyze_Object_Declaration): If the object type
1419 is a composite type that has a dynamic predicate and, the
1420 expression in the declaration is an aggregate, the generated
1421 predicate check must appear after the expanded code for the
1422 aggregate, which will appear after the rewritten object
1423 declarastion.
1424
fb739c45 14252019-07-09 Justin Squirek <squirek@adacore.com>
1426
1427 * sem_eval.adb (Expr_Value_E): Add conditional to correctly
1428 handle constant enumerated character types.
1429
54b39f26 14302019-07-09 Eric Botcazou <ebotcazou@adacore.com>
1431
1432 * libgnarl/s-osinte__mingw.ads (CRITICAL_SECTION): Use proper
1433 type for SpinCount component.
1434
9b57fc30 14352019-07-09 Justin Squirek <squirek@adacore.com>
1436
1437 * exp_ch4.adb (Expand_N_Allocator): Add conditional to detect
1438 the presence of anoymous access type allocators and issue a
1439 warning if the appropriate warning flag is enabled.
1440 * warnsw.ads: Add new warning flag for anonymous allocators
1441 * warnsw.adb (All_Warnings, Restore_Warnings, Save_Warnings,
1442 Set_Underscore_Warning_Switch): Register new flags.
1443 (WA_Warnings): Register new flag as an "all warnings" switch
1444 * usage.adb,
1445 doc/gnat_ugn/building_executable_programs_with_gnat.rst:
1446 Document new warning switches -gnatw_a and -gnatw_A.
1447 * gnat_ugn.texi: Regenerate.
1448
2463fa93 14492019-07-09 Ed Schonberg <schonberg@adacore.com>
1450
1451 * sem_ch4.adb (Diagnose_Call): Improve error recovery when a
1452 local subprogram name hides a possible candidate name declared
1453 in a child package in the context of the current unit.
1454 * sem_ch6.adb (Process_Formals): Protect against malformed
1455 formal types when the parameter type does not denote an entity.
1456
7389bee5 14572019-07-09 Hristian Kirtchev <kirtchev@adacore.com>
1458
1459 * bindo-augmentors.adb (Visit_Elaboration_Root): Do not start a
1460 DFS from an elaboration root whose corresponding unit lacks
1461 elaboration code. This behavior mimics that of the old
1462 elaboration order mechanism.
1463 * bindo-graphs.adb (Find_All_Cycles_Through_Vertex): Move the
1464 vertex tracing within the functional branches of the routine.
1465 This prevents spurious trace output.
1466 (Has_No_Elaboration_Code): New routine.
1467 (Trace_Cycle, Trace_Edge): Update the various Ids to use the
1468 "standard" trace format.
1469 * bindo-graphs.ads (Has_No_Elaboration_Code): New routine.
1470 * bindo-units.ads, bindo-units.adb (Has_No_Elaboration_Code):
1471 New routine.
1472
06d78d4c 14732019-07-09 Piotr Trojanek <trojanek@adacore.com>
1474
1475 * ali.ads, bindo-graphs.adb, bindo-validators.adb, clean.adb,
1476 doc/gnat_ugn/elaboration_order_handling_in_gnat.rst, einfo.ads,
1477 exp_aggr.adb, exp_ch13.adb, exp_ch4.adb, exp_ch5.adb,
1478 exp_ch6.adb, exp_ch7.adb, exp_ch9.adb, exp_pakd.adb,
1479 fname-uf.ads, gnatlink.adb, inline.adb, lib.ads, make.adb,
1480 namet.ads, opt.ads, par-ch4.adb, par-ch6.adb, par-labl.adb,
1481 prep.adb, sem_aggr.adb, sem_ch13.adb, sem_ch4.adb, sem_ch5.adb,
1482 sem_ch6.adb, sem_ch6.ads, sem_ch7.adb, sem_ch8.adb, sem_dim.adb,
1483 sem_disp.adb, sem_prag.adb, sem_res.adb, sem_warn.adb,
1484 sinfo.ads: Replace ". " with ". ". Minor reformatting and typo
1485 corrections.
1486 * gnat_ugn.texi: Generate.
1487
7ed20965 14882019-07-09 Hristian Kirtchev <kirtchev@adacore.com>
1489
1490 * bindo.ads: Move type Precedence_Kind from the private to the
1491 visible part of the unit.
1492 * bindo-augmentors.adb: Remove the use of global data as it is
1493 bad practice.
1494 (Augment_Library_Graph): Update the parameter profile.
1495 (Is_Visited, Set_Is_Visited): Remove.
1496 (Visit_Elaboration_Root, Visit_Elaboration_Roots): Update the
1497 parameter profile and comment on usage.
1498 (Visit_Vertex): Likewise. Also keep track of which invocation
1499 edge activates a task.
1500 * bindo-augmentors.ads (Augment_Library_Graph): Update the
1501 parameter profile and comment on usage.
1502 * bindo-builders.adb (Create_Forced_Edge,
1503 Create_Spec_And_Body_Edge, Create_With_Edge): Update the call to
1504 Add_Edge.
1505 * bindo-diagnostics.adb: Add with end use clauses for Restrict
1506 and Rident.
1507 (Output_Dynamic_Model_Suggestions): Remove.
1508 (Output_Invocation_Related_Suggestions): New routine.
1509 (Output_Suggestions): Output all invocation-related suggestions
1510 together.
1511 * bindo-elaborators.adb: Remove types Comparator_Ptr and
1512 Predicate_Ptr.
1513 (Find_Best_Vertex): Update the parameter profile.
1514 * bindo-graphs.adb (Activates_Task): New routine.
1515 (Add_Body_Before_Spec_Edge): Update the call to
1516 Add_Edge_With_Return.
1517 (Add_Edge): Update the parameter profile and the call to
1518 Add_Edge_With_Return.
1519 (Add_Edge_With_Return): Update the parameter profile and comment
1520 on usage.
1521 (At_Least_One_Edge_Satisfies): New routine.
1522 (Contains_Elaborate_All_Edge): Reimplement.
1523 (Contains_Static_Successor_Edge, Contains_Task_Activation): New
1524 routine.
1525 (Contains_Weak_Static_Successor): Remove.
1526 (Is_Static_Successor_Edge): New routine.
1527 * bindo-graphs.ads: Add types LGE_Predicate_Ptr,
1528 LGV_Comparator_Ptr, and LGV_Predicate_Ptr. Update type
1529 Library_Graph_Edge_Attributes to capture whether an invocation
1530 edge activates a task. Update the value of
1531 No_Library_Graph_Edge_Attributes.
1532 (Activates_Task): Update the parameter profile and comment on
1533 usage.
1534 (Contains_Static_Successor_Edge, Contains_Task_Activation): New
1535 routines.
1536 (Contains_Weak_Static_Successor): Remove.
1537 * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst:
1538 Update the documentation to reflect the new task-related advice.
1539 * gnat_ugn.texi: Regenerate.
1540
247527b7 15412019-07-09 Piotr Trojanek <trojanek@adacore.com>
1542
1543 * exp_util.adb (Containing_Package_With_Ext_Axioms): Replace
1544 low-level Ekind test with a high-level wrapper.
1545
1d7a9954 15462019-07-09 Arnaud Charlet <charlet@adacore.com>
1547
1548 * libgnat/s-memory.adb: Disable calls to Abort defer/undefer
1549 when ZCX_By_Default.
1550
7667b40a 15512019-07-09 Javier Miranda <miranda@adacore.com>
1552
1553 * sem_ch13.adb (Rep_Item_Too_Early): Representation clauses are
1554 not allowed for a derivation of a generic type. Extend the
1555 current test to check that none of the parents is a generic
1556 type.
1557
98eb8111 15582019-07-09 Hristian Kirtchev <kirtchev@adacore.com>
1559
1560 * exp_ch9.adb, exp_util.adb, repinfo.adb, sem_ch12.adb,
1561 sem_prag.adb, sem_res.adb, sem_spark.adb, sem_util.adb: Minor
1562 reformatting.
1563
5ffa473a 15642019-07-09 Ed Schonberg <schonberg@adacore.com>
1565
1566 * sem_res.adb (Resolve_Equality_Op): If the node was overloaded,
1567 set properly the entity to which the node has been resolved. The
1568 original entity is the first one found during analysis, and is
1569 not necessarily the resolved one.
1570 (Resolve_Op_Not): If the argument of negation is an overloaded
1571 equality operation, call its resolution directly given that the
1572 context type does not participate in overload resolution.
1573
f7197450 15742019-07-09 Hristian Kirtchev <kirtchev@adacore.com>
1575
1576 * bindo.adb: Remove with and use clauses for Debug. Add with
1577 and use clauses for Opt.
1578 (Find_Elaboration_Order): Enable the v4.0 elaboration order. The
1579 v3.0 mechanism is now available under binder switch -H.
1580 * bindusg.adb (Display): Enable switch -H.
1581 * debug.adb: Free compiler switch -gnatd_G. Free binder switch
1582 -d_N.
1583 * sem_elab.adb: Update the section on switches to remove
1584 -gnatd_G.
1585 (Invocation_Graph_Recording_OK): The invocation graph is now
1586 unconditionally recorded in ALI files.
1587 * switch-b.adb (Scan_Binder_Switches): Scan switch -H.
1588 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
1589 Update the documentation on compiler switches related to
1590 elaboration. Update the documentation on binder switches to
1591 include switch -H.
1592 * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Update
1593 the documentation on elaboration order handling in GNAT.
1594 * gnat_ugn.texi: Regenerate.
1595
a2c6c634 15962019-07-09 Eric Botcazou <ebotcazou@adacore.com>
1597
1598 * repinfo.adb (List_Entities): Disregard formals altogether.
1599 (List_Name): Properly escape the double quote in the JSON
1600 output.
1601
3933efcf 16022019-07-09 Javier Miranda <miranda@adacore.com>
1603
1604 * exp_util.adb (Remove_Side_Effects): Preserve the
1605 Do_Range_Check flag.
1606
2166bdef 16072019-07-09 Yannick Moy <moy@adacore.com>
1608
1609 * sinfo.ads: Refine comment for Do_Range_Check.
1610
dbf9a3d7 16112019-07-09 Yannick Moy <moy@adacore.com>
1612
1613 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Expand
1614 attribute reference on Enum_Rep.
1615
44e00a56 16162019-07-09 Ed Schonberg <schonberg@adacore.com>
1617
1618 * sem_ch12.adb (Instantiate_Formal_Package): Handle properly the
1619 case where the actual for a formal package in an instance is the
1620 current instance of an enclosing generic package.
1621 (Check_Formal_Packages): If the formal package declaration is
1622 box-initialized or lacks associations altogether, no internal
1623 instance was created to verify conformance, and there is no
1624 validating package to remove from tree.
1625
3e4e7139 16262019-07-09 Yannick Moy <moy@adacore.com>
1627
1628 * freeze.adb (Build_Renamed_Body): Do not set body to inline in
1629 GNATprove mode.
1630
8235b943 16312019-07-09 Yannick Moy <moy@adacore.com>
1632
1633 * exp_util.adb (Expand_Subtype_From_Expr): Still expand the type
1634 of static expressions in GNATprove_Mode.
1635 * sem_ch3.adb (Analyze_Object_Declaration): Remove obsolete
1636 special case for GNATprove_Mode.
1637
cf9af2fa 16382019-07-09 Piotr Trojanek <trojanek@adacore.com>
1639
1640 * doc/gnat_rm/the_gnat_library.rst,
1641 doc/gnat_ugn/building_executable_programs_with_gnat.rst,
1642 erroutc.adb, libgnat/g-comlin.adb, libgnat/g-comlin.ads,
1643 libgnat/g-regexp.ads, libgnat/g-regpat.ads,
1644 libgnat/g-spipat.ads, libgnat/s-os_lib.ads,
1645 libgnat/s-regexp.ads: Reword "wild card" to "wildcard".
1646 * gnat_rm.texi, gnat_ugn.texi: Regenerate.
1647
a080baa9 16482019-07-09 Yannick Moy <moy@adacore.com>
1649
1650 * sem_spark.adb (Check_Expression): Handle correctly implicit
1651 assignments as part of allocators and (extension) aggregates.
1652 (Get_Root_Object): Adapt for new path expressions.
1653 (Is_Path_Expression): Return True for (extension) aggregate.
1654
d9b7ae15 16552019-07-09 Piotr Trojanek <trojanek@adacore.com>
1656
1657 * einfo.ads: Fix a typo.
1658
4c24efa6 16592019-07-09 Ed Schonberg <schonberg@adacore.com>
1660
1661 * sem_util.adb (Scope_Within_Or_Same): Handle properly task
1662 bodies and protected bodies, so that local variables within have
1663 their proper scopes after these constructs have been rewritten
1664 during expansion. This patch resembles but is not identical to
1665 the code in Scope_Within.
1666
6c334e66 16672019-07-09 Arnaud Charlet <charlet@adacore.com>
1668
1669 * gnat1drv.adb (Adjust_Global_Switches): Set
1670 Dynamic_Elaboration_Checks to True in CodePeer mode.
1671
82c20af0 16722019-07-09 Yannick Moy <moy@adacore.com>
1673
1674 * sem_spark.adb (Get_Perm_Or_Tree): Issue an error when
1675 encountering unknown global variable.
1676
a42b8e6a 16772019-07-09 Yannick Moy <moy@adacore.com>
1678
1679 * sem_spark.adb (Check_Expression): Change signature to take an
1680 Extended_Checking_Mode, for handling read permission checking of
1681 sub-expressions in an assignment.
1682 (Check_Parameter_Or_Global): Adapt to new behavior of
1683 Check_Expression for mode Assign.
1684 (Check_Safe_Pointers): Do not analyze generic bodies.
1685 (Check_Assignment): Separate checking of the target of an
1686 assignment.
1687
5fb4f6e3 16882019-07-09 Eric Botcazou <ebotcazou@adacore.com>
1689
1690 * repinfo.ads (JSON format): Adjust.
1691 * repinfo.adb (Need_Blank_Line): Rename to...
1692 (Need_Separator): ...this.
1693 (Blank_Line): Rename to...
1694 (Write_Separator): ...this and add JSON specific handling.
1695 (List_Array_Info): Adjust to above renaming.
1696 (List_Object_Info): Likewise.
1697 (List_Record_Info): Likewise.
1698 (List_Subprogram_Info): Likewise.
1699 (List_Type_Info): Likewise.
1700 (List_Entities): Do not set Need_Blank_Line.
1701 (List_Rep_Info): Set Need_Separator and add JSON specific
1702 handling. Output a single JSON stream in the normal case.
1703
b389ec1e 17042019-07-09 Arnaud Charlet <charlet@adacore.com>
1705
1706 * doc/gnat_ugn/the_gnat_compilation_model.rst: Update doc on
1707 -fdump-ada-spec now that we generate Ada 2012.
1708 * gnat_ugn.texi: Regenerate.
1709
5acb3702 17102019-07-08 Eric Botcazou <ebotcazou@adacore.com>
1711
1712 * repinfo.adb (List_Common_Type_Info): New procedure extracted
1713 from...
1714 (List_Type_Info): ...here. Call it for the common information,
1715 start with a blank line and output the linker section at the
1716 end, if any.
1717 (List_Mechanisms): Rename to...
1718 (List_Subprogram_Info): ...this.
1719 (List_Array_Info): Call List_Common_Type_Info.
1720 (List_Entities): Adjust to above change and renaming.
1721 (List_Record_Info): Call List_Common_Type_Info.
1722
6eb57612 17232019-07-08 Dmitriy Anisimkov <anisimko@adacore.com>
1724
1725 * libgnat/g-sercom.ads
1726 (Serial_Port_Descriptor): New type.
1727 (Serial_Port): Add a comment, make it hold a
1728 Serial_Port_Descriptor.
1729 (To_Ada, To_C): New procedures.
1730 (Port_Data, Port_Data_Access): Remove types.
1731 * libgnat/g-sercom.adb (To_Ada): New stub.
1732 * libgnat/g-sercom__linux.adb, libgnat/g-sercom__mingw.adb:
1733 Update implementations accordingly.
1734 * s-oscons-tmplt.c: Bind Serial_Port_Descriptor to
1735 System.Win32.HANDLE on Windows, and to Interfaces.C.int on
1736 Linux. Add "Interfaces.C." prefix for other basic integer type
1737 bindings.
1738 * xoscons.adb (Output_Info): Remove the "Interfaces.C." prefix
1739 for subtypes generation.
1740
08da2ad9 17412019-07-08 Arnaud Charlet <charlet@adacore.com>
1742
1743 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
1744 Update documentation on No_Exceptions restriction.
1745 * gnat_rm.texi: Regenerate.
1746
89b07420 17472019-07-08 Dmitriy Anisimkov <anisimko@adacore.com>
1748
1749 * libgnat/s-os_lib.adb: Do not call __gnat_kill for Invalid_Pid.
1750
0cc34fed 17512019-07-08 Piotr Trojanek <trojanek@adacore.com>
1752
1753 * sem_util.adb (Enclosing_Package_Or_Subprogram): Do not expect
1754 package and subprogram bodies.
1755
46299a06 17562019-07-08 Bob Duff <duff@adacore.com>
1757
1758 * doc/gnat_ugn/gnat_utility_programs.rst: Remove documentation
1759 of ignored GNATpp switch.
1760
4475d2f0 17612019-07-08 Hristian Kirtchev <kirtchev@adacore.com>
1762
1763 * doc/gnat_rm/implementation_defined_pragmas.rst:
1764 Update the documentation of pragma Initialize_Scalars.
1765 * gnat_rm.texi: Regenerate.
1766
b282b25b 17672019-07-08 Javier Miranda <miranda@adacore.com>
1768
1769 * exp_ch4.adb (Tagged_Membership): Fix regression silently
1770 introduced in r260738 that erroneouslusy causes the evaluation
1771 to True of the membership test when the left operand of the
1772 membership test is a class-wide interface object and the right
1773 operand is a type that implements such interface type.
1774
703ee0e0 17752019-07-08 Hristian Kirtchev <kirtchev@adacore.com>
1776
1777 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Do not
1778 register an address clause when its prefix denotes a generic
1779 formal object.
1780
e6b4414e 17812019-07-08 Hristian Kirtchev <kirtchev@adacore.com>
1782
1783 * bindo-diagnostics.adb (Diagnose_Cycle): Capture the presence
1784 of an Elaborate_All edge before iterating over the edges of the
1785 cycle.
1786 (Output_Elaborate_Body_Transition): Update the parameter profile
1787 and the comment on usage. Add a missing case where the edge is
1788 within the context of an Elaborate_All.
1789 (Output_Transition): Update the call to
1790 Output_Elaborate_Body_Transition.
1791 * bindo-graphs.ads, bindo-graphs.adb
1792 (Contains_Elaborate_All_Edge): New routine.
1793
5a4de65a 17942019-07-08 Piotr Trojanek <trojanek@adacore.com>
1795
1796 * lib-xref-spark_specific.adb (Create_Heap): Set dummy Etype for
1797 the fake __HEAP entity.
1798
42253061 17992019-07-08 Daniel Mercier <mercier@adacore.com>
1800
1801 * gnat1drv.adb: Suppress warnings on memory representation in
1802 CodePeer compiler mode.
1803
a7c8fd7e 18042019-07-08 Nicolas Roche <roche@adacore.com>
1805
1806 * rtinit.c (__gnat_runtime_initialize): Remove dependency on
1807 CommandLineToArgvW.
1808
89c9dd55 18092019-07-08 Doug Rupp <rupp@adacore.com>
1810
1811 * Makefile.rtl: Handle vxworks7r2 in x86_64 and x86 vxworks7.
1812
944903c8 18132019-07-08 Dmitriy Anisimkov <anisimko@adacore.com>
1814
1815 * Makefile.rtl: Use g-sercom__linux.adb for all linuxes.
1816
e51a140c 18172019-07-08 Yannick Moy <moy@adacore.com>
1818
1819 * expander.adb (Expand): Do not reset Analyzed flag always.
1820 * sem_eval.adb (Fold_Ureal): Mark node as analyzed.
1821
f117e449 18222019-07-08 Ed Schonberg <schonberg@adacore.com>
1823
1824 * exp_ch9.adb (Expand_N_Timed_Entry_Call): Do not insert twice
1825 the assignment statement that computes the delay value, to
1826 prevent improper tree sharing when the value is a type
1827 conversion and Float_Overflow checks are enabled.
1828
f5cb3a59 18292019-07-08 Hristian Kirtchev <kirtchev@adacore.com>
1830
1831 * bindo.adb: Update the section on terminology to include new
1832 concepts. Update the section on switches to include new
1833 entries.
1834 * bindo.ads: Add type Precedence_Kind.
1835 * bindo-builders.adb: Add with and use clauses for Debug and
1836 Bindo.Validators. Add use clauses for
1837 Bindo.Validators.Invocation_Graph_Validators and
1838 Bindo.Validators.Library_Graph_Validators.
1839 (Build_Invocation_Graph): Validate the graph immediately after
1840 it was built.
1841 (Build_Library_Graph): Update the parameter profile. The
1842 creation of the graph is now elaboration model-agnostic.
1843 Validate the graph immediately after it was built.
1844 (Create_With_Edge): Create regular with edges for Elaborate and
1845 Elaborate_All edges when the appropriate debug switches are in
1846 effect.
1847 * bindo-builders.ads (Build_Library_Graph): Update the parameter
1848 profile.
1849 * bindo-diagnostics.adb (Diagnose_Cycle): Track the presence of
1850 an Elaborate_All edge throughout the inspection of the cycle's
1851 edges.
1852 (Output_Dynamic_Model_Suggestions): Output the suggestion only
1853 when the cycle contains at least one weak edge where the
1854 successor was statically elaborated.
1855 (Output_Elaborate_Body_Transition, Output_Forced_Transition,
1856 Output_With_Transition): Update the assertions.
1857 * bindo-elaborators.adb: Remove use clauses for
1858 Bindo.Validators.Invocation_Graph_Validators and
1859 Bindo.Validators.Library_Graph_Validators. Remove strings
1860 Add_To_All_Candidates_Msg and Add_To_Comp_Candidates_Msg.
1861 Remove type String_Ptr.
1862 (Add_Vertex, Add_Vertex_If_Elaborable, Create_All_Candidates_Set
1863 Create_Component_Candidates_Set): Remove.
1864 (Create_Component_Vertex_Sets, Create_Vertex_Sets): New routine.
1865 (Elaborate_Component): Update the parameter profile and the
1866 comment on usage. Reimplement the elaboration of a component.
1867 The algorithm will now attempt to elaborate as many vertices
1868 possible. If this is not possible, and a weakly elaborable
1869 vertex is available use unit was compiled using the dynamic
1870 model, the algorithm will elaborate it.
1871 (Elaborate_Library_Graph): Reimplement the elaboration of the
1872 graph. The algorithm will now attempt to elaborate as many
1873 vertices along with their components as possible. If this is not
1874 possible, and a weakly elaborable vertex is available use unit
1875 was compiled using the dynamic model, the algorithm will
1876 elaborate it along with its component.
1877 (Elaborate_Units): Merge with the functionality of
1878 Elaborate_Units_Common.
1879 (Elaborate_Units_Common, Elaborate_Units_Dynamic,
1880 Elaborate_Units_Static): Remove.
1881 (Elaborate_Vertex): Update the parameter profile and the comment
1882 on usage. Reimplemented.
1883 (Find_Best_Candidate): Remove.
1884 (Find_Best_Elaborable_Vertex, Find_Best_Vertex,
1885 Find_Best_Weakly_Elaborable_Vertex, Has_Elaborable_Body,
1886 Insert_Elaborable_Successor, Insert_Vertex): New routines.
1887 (Is_Better_Candidate): Remove.
1888 (Is_Better_Elaborable_Vertex,
1889 Is_Better_Weakly_Elaborable_Vertex,
1890 Is_Suitable_Elaborable_Vertex,
1891 Is_Suitable_Weakly_Elaborable_Vertex): New routines.
1892 (Trace_Candidate_Vertices): Remove.
1893 (Trace_Component): Output the number of strong and weak
1894 predecessors.
1895 (Trace_Unelaborated_Vertices): Remove.
1896 (Trace_Vertex): Output the number of strong and weak
1897 predecessors.
1898 (Trace_Vertices): New routine.
1899 (Update_Successor, Update_Successors): Update the parameter
1900 profile and the comment on usage.
1901 * bindo-graphs.adb: Remove type Precedence_Kind.
1902 (Add_Edge_With_Return): Update the increment of pending
1903 predecessors.
1904 (Add_Vertex): Provide default values for strong and weak
1905 predecessors.
1906 (Complementary_Vertex): Move the initial declaration to the
1907 spec. Update the parameter profile and the comment on usage.
1908 (Contains_Weak_Static_Successor): New routine.
1909 (Create): Update the parameter profile. The creation of the
1910 graph is now elaboration model-agnostic.
1911 (Decrement_Pending_Predecessors): Update the parameter profile
1912 and the comment on usage. Reimplemented.
1913 (Delete_Edge): Update the decrement of pending predecesors.
1914 (Has_Elaborate_Body): Do not treat a vertex as being subject to
1915 Elaborate_Body when a debug switch is in effect.
1916 (Increment_Pending_Predecessors): Update the parameter profile
1917 and the comment on usage. Reimplemented.
1918 (Is_Elaborable_Component): Reimplemented.
1919 (Is_Elaborable_Vertex): Move the initial declaration to the
1920 spec. Reimplemented.
1921 (Is_Elaborate_Body_Pair): New routine.
1922 (Is_Dynamically_Elaborated): Update the parameter profile.
1923 Reimplemented.
1924 (Is_Weakly_Elaborable_Vertex): New routine.
1925 (Pending_Predecessors): Removed.
1926 (Pending_Predecessors_For_Elaboration,
1927 Pending_Strong_Predecessors, Pending_Weak_Predecessors,
1928 Update_Pending_Predecessors): New routines.
1929 (Update_Pending_Predecessors_Of_Components): Update the
1930 increment of pending predecessors.
1931 * bindo-graphs.ads: Update the components of type
1932 Component_Attributes. Update the components of type
1933 Library_Graph_Attributes. Update the components of type
1934 Library_Graph_Vertex_Attributes. Update the initialization of
1935 No_Component_Attributes. Update the initialization of
1936 No_Library_Graph_Vertex_Attributes.
1937 (Complementary_Vertex, Contains_Weak_Static_Successor): New
1938 routines.
1939 (Create): Update the parameter profile and the comment on usage.
1940 (Decrement_Pending_Predecessors, Is_Dynamically_Elaborated):
1941 Update the parameter profile and the comment on usage.
1942 (Is_Elaborate_Body_Pair, Is_Weakly_Elaborable_Vertex): New
1943 routines.
1944 (Pending_Predecessors): Removed.
1945 (Pending_Predecessors_For_Elaboration,
1946 Pending_Strong_Predecessors, Pending_Weak_Predecessors): New
1947 routines.
1948 * bindo-writers.adb (Write_Components): Moved from the spec.
1949 (Write_Component): Output the strong and weak predecessors.
1950 (Write_Library_Graph): Output the components as part of the
1951 graph.
1952 (Write_Library_Graph_Vertex): Output the strong and weak
1953 predecessors.
1954 * bindo-writers.ads (Write_Components): Moved to the body.
1955 * debug.adb: Add and document new GNATbind switches -d_a, -d_b,
1956 -d_e.
1957 * bindo-validators.adb: Minor reformattings.
1958
7b8ca6b2 19592019-07-08 Bob Duff <duff@adacore.com>
1960
1961 * libgnat/g-sercom.ads, libgnat/g-sercom__linux.adb (Data_Rate):
1962 Support additional data rates.
1963
364c746f 19642019-07-08 Olivier Hainque <hainque@adacore.com>
1965
1966 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Don't request
1967 DECL_ARTIFICIAL_P on elab proc declarations.
1968
2dbfbbb2 19692019-07-08 Eric Botcazou <ebotcazou@adacore.com>
1970
1971 * repinfo.adb (List_Record_Info): Declare Incomplete_Layout and
1972 Not_In_Extended_Main local exceptions.
1973 (List_Structural_Record_Layout): For an extension, raise the
1974 former if the parent subtype has not been built and the latter
1975 if it is not declared in the main source unit. Fall back to the
1976 flat layout if either exception has been raised.
1977
3e05bbec 19782019-07-08 Ed Schonberg <schonberg@adacore.com>
1979
1980 * libgnat/a-strfix.adb (Delete): The RM describes the semantics
1981 of Delete as equivalent to that of Replace_String with a null
1982 argument. As a result, deleting a null string that starts past
1983 the end of its argument is a noop and must not raise
1984 Index_Error.
1985
c98aac61 19862019-07-08 Javier Miranda <miranda@adacore.com>
1987
1988 * exp_disp.adb (Register_Primitive): When registering a
1989 primitive in the secondary dispatch table, handle primitive
1990 inherited through several levels of type derivation (required to
1991 properly handle inherited 'null' primitive).
1992
221b67b6 19932019-07-08 Bob Duff <duff@adacore.com>
1994
1995 * doc/gnat_ugn/gnat_utility_programs.rst: Document handling of
1996 preprocessor directives in GNATpp.
1997
aed4e06a 19982019-07-08 Javier Miranda <miranda@adacore.com>
1999
2000 * gnat1drv.adb (Post_Compilation_Validation_Checks:
2001 Validate_Compile_Time_Warning_Errors is now located in sem_prag
2002 (instead of sem_ch13).
2003 * sem_ch13.ads (Validate_Compile_Time_Warning_Error,
2004 Validate_Compile_Time_Warning_Errors): Move to sem_prag.
2005 * sem_ch13.adb
2006 (Compile_Time_Warnings_Errors): Move to sem_prag.
2007 (Initialize): Remove initialization of table
2008 Compile_Time_Warning_Errors.
2009 (Validate_Compile_Time_Warning_Error,
2010 Validate_Compile_Time_Warning_Errors): Move to sem_prag.
2011 * sem_prag.ads (Validate_Compile_Time_Warning_Errors): New
2012 procedure.
2013 * sem_prag.adb (Initialize): Initialize table
2014 Compile_Time_Warning_Errors.
2015
b9bd5934 20162019-07-08 Ed Schonberg <schonberg@adacore.com>
2017
2018 * sem_ch13.adb (Analyze_Aspect_Specifications): For a
2019 pre/postcondition of a generic subprogram declaration, do not
2020 use Relocate_Node on the aspect expression to construct the
2021 corresponding attribute specification, to prevent tree anomalies
2022 when the expression is a call with named actual parameters.
2023
63bb17d8 20242019-07-08 Javier Miranda <miranda@adacore.com>
2025
2026 * sem_attr.adb (Analyze_Attribute [Attribute_Size]): For pragmas
2027 used to report user defined compile time warning or errors
2028 handle 'Size for types with known static RM size.
2029
1979cbfe 20302019-07-08 Justin Squirek <squirek@adacore.com>
2031
2032 * exp_imgv.adb (Build_Enumeration_Image_Tables): Default SSO for
2033 the building of image tables.
2034 (Expand_Image_Attribute): Minor cleanup.
2035
bcb0a375 20362019-07-08 Dmitriy Anisimkov <anisimko@adacore.com>
2037
2038 * libgnat/g-socket.ads, libgnat/g-socket.adb: Improve
2039 documentation.
2040 (Get_Socket_Option, Set_Socket_Option): Remove default value for
2041 the Level formal.
2042
429822c1 20432019-07-08 Ed Schonberg <schonberg@adacore.com>
2044
2045 * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): For an
2046 unanalized aspect in a generic context that has not been
2047 analyzed yet, if the aspect applies to a type, place the type on
2048 the scope stack to make its components visible, before checking
2049 conformance with the version of the expression analyzed at the
2050 freeze point.
2051
e1415398 20522019-07-05 Justin Squirek <squirek@adacore.com>
2053
2054 * checks.adb (Apply_Accessibility_Check): Add logic to fetch the
2055 function result accessibility level if one is required within
2056 the generated check.
2057 * exp_ch6.adb (Needs_Result_Accessibility_Level): Modify
2058 controlling elsif block to handle more cases such as anonymous
2059 access results and disable checking for coextensions.
2060
dad9e9f8 20612019-07-05 Ed Schonberg <schonberg@adacore.com>
2062
2063 * sem_ch9.adb (Analyze_Accept_Statement): If this is an illegal
2064 accept statement for an enclosing entry abandon analysis to
2065 prevent scope mismatches and potential infinite loops in
2066 compiler.
2067
627d0751 20682019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
2069
2070 * ali.adb (For_Each_Invocation_Construct,
2071 For_Each_Invocation_Relation): New version.
2072 (Scan_ALI): Initialize field Invocation_Graph_Encoding.
2073 (Set_Invocation_Graph_Encoding): Update the setting of the
2074 invocation graph encoding.
2075 * ali.ads: Move field Invocation_Graph_Encoding from Unit_Record
2076 to ALI_Record because the encoding applies to the whole ALI,
2077 rather than one of the units (spec or body) for which the ALI
2078 file was created.
2079 (For_Each_Invocation_Construct, For_Each_Invocation_Relation):
2080 New version.
2081 * bindo.adb: Update the section on switches. Complete the
2082 section of debugging elaboration order issues.
2083 (Find_Elaboration_Order): Prepare the routine for the switch
2084 from the old to the new elaboration order mechanism.
2085 * bindo-diagnostics.adb (Find_And_Output_Invocation_Paths):
2086 Manage a visited set used by Visit_Vertex.
2087 (Output_All_Cycles_Suggestions,
2088 Output_Dynamic_Model_Suggestions): Clarify the nature of the
2089 suggested switch.
2090 (Output_Elaborate_Body_Transition): Update the diagnostic to
2091 emit a better message.
2092 (Output_Forced_Suggestions, Output_Full_Encoding_Suggestions):
2093 Clarify the nature of the suggested switch.
2094 (Visit_Vertex): Update the parameter profile to add a set of
2095 invokers visited during the transition. This set prevents
2096 infinite exploration of the graph in case the invocations are
2097 recursive.
2098 * bindo-elaborators.adb: Add a use clause for
2099 Bindo.Writers.Dependency_Writers.
2100 (Elaborate_Units_Common): Output the library graph after it has
2101 been augmented with invocation edges. Output just the components
2102 instead of outputting the whole library graph again.
2103 (Elaborate_Units_Dynamic, Elaborate_Units_Static): Output the
2104 dependencies as expressed in the library graph.
2105 * bindo-units.adb (Invocation_Graph_Encoding): Update the
2106 extraction of the invocation graph encoding.
2107 * bindo-writers.adb: Add with and use clauses for Binderr and
2108 Butil.
2109 (palgc, plgc): New debug routine.
2110 (Write_Components): Moved to the spec. Add a header for the
2111 output.
2112 (Write_Dependencies, Write_Dependencies_Of_Vertex,
2113 Write_Dependency_Edge): New routine.
2114 (Write_Elaboration_Order): Update the logic to follow the format
2115 of Binde's order output.
2116 (Write_Library_Graph): Do not output the components every time
2117 the graph is written.
2118 (Write_Unit): Output the invocation graph encoding of the unit.
2119 Output the invocation constructs and relations for the unit
2120 only.
2121 * bindo-writers.ads (Write_Components): Moved from the body.
2122 (Write_Dependencies): New routine.
2123 * bindusg.adb: Prepare the routine for the switch from the old
2124 to the new elaboration order mechanism.
2125 * debug.adb: Binder switch -d_O is now not associated with any
2126 functionality.
2127 * einfo.adb (Is_Elaboration_Target): The attribute applies to
2128 packages, as specified by the comment on the attribute usage.
2129 * opt.ads: Add a global flag which controls the choice between
2130 the new and the legacy elaboration order mechanism.
2131 * sem_elab.adb: Add Package_Target to type Target_Kind.
2132 (Build_Elaborate_Body_Procedure, Build_Elaborate_Procedure,
2133 Build_Elaborate_Spec_Procedure, Check_Elaboration_Scenarios,
2134 Check_SPARK_Model_In_Effect): Use Main_Unit_Entity to obtain the
2135 entity of the main unit.
2136 (Create_Package_Rep): New routine.
2137 (Create_Target_Rep): Add processing for packages.
2138 (Declaration_Placement_Of_Node, Has_Prior_Elaboration): Use
2139 Main_Unit_Entity to obtain the entity of the main
2140 unit.
2141 (Invocation_Graph_Recording_OK): Prepare the routine for the
2142 switch from the old to the new elaboration order mechanism.
2143 (Main_Unit_Entity): New routine.
2144 (Meet_Elaboration_Requirement,
2145 Process_Conditional_ABE_Variable_Reference): Use
2146 Main_Unit_Entity to obtain the entity of the main unit.
2147 (Process_Invocation_Instantiation): New routine.
2148 (Process_Invocation_Scenario): Add processing for
2149 instantiations.
2150 * switch-b.adb (Scan_Binder_Switches): Prepare the routine for
2151 the switch from the old to the new elaboration order mechanism.
2152
30fb27b1 21532019-07-05 Joffrey Huguet <huguet@adacore.com>
2154
2155 * libgnat/a-textio.adb: Add abstract state refinment.
2156 * libgnat/a-textio.ads: Add File_System abstract state. Add
2157 global contracts, contract cases, preconditions and
2158 postconditions to procedures and functions.
2159 (Set_Input, Set_Output, Set_Error, Standard_Input,
2160 Standard_Output, Standard_Error, Current_Input, Current_Output,
2161 Current_Error): Turn SPARK_Mode off.
2162 (Get_Line): Turn SPARK_Mode off on Get_Line functions.
2163 * libgnat/a-tideio.ads, libgnat/a-tienio.ads,
2164 libgnat/a-tifiio.ads, libgnat/a-tiflio.ads,
2165 libgnat/a-tiinio.ads, libgnat/a-timoio.ads: Add global
2166 contracts, contract cases, preconditions and postconditions to
2167 procedures and functions.
2168
ce99fc8a 21692019-07-05 Arnaud Charlet <charlet@adacore.com>
2170
2171 * doc/gnat_ugn/platform_specific_information.rst: Refresh doc on
2172 installing from the command line on Windows. Remove obsolete
2173 part.
2174 * gnat_ugn.texi: Regenerate.
2175
26ea5003 21762019-07-05 Vasiliy Fofanov <fofanov@adacore.com>
2177
2178 * libgnat/a-wichha.ads (Is_Alphanumeric): Replace comment with
2179 the correct one. Also capitalize references to False
2180 throughout.
2181
c9c81835 21822019-07-05 Eric Botcazou <ebotcazou@adacore.com>
2183
2184 * exp_ch4.adb (Expand_N_Indexed_Component): Do not expand actual
2185 parameters of function calls here either.
2186
50948c8a 21872019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
2188
2189 * bindo-units.adb, checks.adb, exp_attr.adb, exp_ch3.adb,
2190 exp_ch4.adb, exp_pakd.adb, lib-writ.adb, libgnat/g-traceb.adb,
2191 libgnat/g-traceb.ads, libgnat/s-stratt.ads, sem_aux.ads,
2192 sem_util.adb: Minor reformatting.
2193
a9fa50ab 21942019-07-05 Ed Schonberg <schonberg@adacore.com>
2195
2196 * sem_ch13.adb (Build_Predicate_Functions): If a subtype that
2197 carries a static predicate aspect is frozen immediately after
2198 its declaration, ensure that the generated function body created
2199 for predicate checking is inserted after the corresponding
2200 subprogram declaration, which is created at the point the
2201 declaration is elaborated.
2202
ee4e1dd7 22032019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
2204
2205 * exp_ch7.adb (Cleanup_Record): Use the underlying type when
2206 checking for components with tasks.
2207
2028580f 22082019-07-05 Arnaud Charlet <charlet@adacore.com>
2209
2210 * libgnarl/s-osinte__linux.ads: Link with -lrt before -lpthread.
2211
ec1e481f 22122019-07-05 Ed Schonberg <schonberg@adacore.com>
2213
2214 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Add explicit
2215 range checks when the index type of the bit-packed array is an
2216 enumeration type with a non-standard representation,
2217
ae60396a 22182019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
2219
2220 * sem_res.adb (Is_Control_Flow_Statement): Delay statements
2221 contain an expression, which in turn may have side effects and
2222 affect the infinite recursion. As a result, delay statements
2223 should not be treated specially.
2224
d33025f2 22252019-07-05 Arnaud Charlet <charlet@adacore.com>
2226
2227 * libgnarl/s-linux.ads, libgnarl/s-linux__alpha.ads,
2228 libgnarl/s-linux__android.ads, libgnarl/s-linux__hppa.ads,
2229 libgnarl/s-linux__mips.ads, libgnarl/s-linux__riscv.ads,
2230 libgnarl/s-linux__sparc.ads: Fix typos in comments.
2231
51f2c7f9 22322019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
2233
2234 * sem_res.adb (Check_Infinite_Recursion): Reimplemented.
2235 (Enclosing_Declaration_Or_Statement,
2236 Invoked_With_Different_Arguments, Is_Conditional_Statement,
2237 Is_Control_Flow_Statement, Is_Immediately_Within_Body,
2238 Is_Raise_Idiom, Is_Raise_Statement, Is_Sole_Statement,
2239 Preceded_By_Control_Flow_Statement,
2240 Within_Conditional_Statement): New routines.
2241
0e6f6ee1 22422019-07-05 Javier Miranda <miranda@adacore.com>
2243
2244 * exp_ch4.adb (Expand_N_Type_Conversion): Do not apply an
2245 accessibility check when the conversion is an access to
2246 class-wide interface type and it is an actual parameter.
2247 * exp_ch6.adb (Expand_Call_Helper): Add documentation on the
2248 accessibility level of an anonymous allocator defining the value
2249 of an access parameter.
2250 * sem_util.ads, sem_util.adb (Dynamic_Accessibility_Level): Add
2251 support for an anonymous allocator whose type is that of a
2252 stand-alone object of an anonymous access to object type.
2253
f28a3d6c 22542019-07-05 Piotr Trojanek <trojanek@adacore.com>
2255
2256 * einfo.ads, sem_res.adb: Typo fixes in comments.
2257
2d8a0eb3 22582019-07-05 Bob Duff <duff@adacore.com>
2259
2260 * exp_ch6.adb (Is_Build_In_Place_Function): Narrow the check for
2261 Has_Foreign_Convention to the imported case only. If a
2262 build-in-place function is exported, and called from Ada code,
2263 build-in-place protocols should be used.
2264
6eddee84 22652019-07-05 Ed Schonberg <schonberg@adacore.com>
2266
2267 * sem_util.adb (Encloing_Subprogram): If Enclosing_Dynamic_Scope
2268 is a loop, continue climbing the scope stack to find the
2269 enclosing subprogram.
2270 (Gather_Components): Handle properly a choice in a record
2271 aggregate that is given by a subtype with a static predicate.
2272
249e38a7 22732019-07-05 Javier Miranda <miranda@adacore.com>
2274
2275 * debug.adb (-gnatd.K): Leave available this switch.
2276 * contracts.adb (Build_And_Analyze_Contract_Only_Subprograms):
2277 Remove.
2278 * scil_ll.ads, scil_ll.adb (Contract_Only_Body_Flag,
2279 Contract_Only_Body_Nodes, Get_Contract_Only_Body,
2280 Is_Contract_Only_Body, Set_Contract_Only_Body): Remove.
2281
33ae0c9f 22822019-07-05 Pierre-Marie de Rodat <derodat@adacore.com>
2283
2284 * libgnat/a-strunb.ads: Import documentation from the RM
2285
70f9c8aa 22862019-07-05 Pierre-Marie de Rodat <derodat@adacore.com>
2287
2288 * libgnat/a-strfix.ads: Import documentation from the RM
2289
1bc68ac2 22902019-07-05 Yannick Moy <moy@adacore.com>
2291
2292 * adabkend.adb (Scan_Back_End_Switches): Accept -Og and -Ofast
2293 switches.
2294
2500be2f 22952019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
2296
2297 * ali.adb: Relocate types Invocation_Construct_Record,
2298 Invocation_Relation_Record, and Invocation_Signature_Record to
2299 the body of ALI. Relocate tables Invocation_Constructs,
2300 Invocation_Relations, and Invocation_Signatures to the body of
2301 ALI. Remove type Body_Placement_Codes. Add new types
2302 Declaration_Placement_Codes, and
2303 Invocation_Graph_Encoding_Codes. Update the literals of type
2304 Invocation_Graph_Line_Codes.
2305 (Add_Invocation_Construct): Update the parameter profile. Add an
2306 invocation construct built from all attributes provided.
2307 (Add_Invocation_Relation): Update the parameter profile. Add an
2308 invocation relation built from all attributes provided.
2309 (Body_Placement): New routine.
2310 (Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind):
2311 Removed.
2312 (Code_To_Declaration_Placement_Kind,
2313 Code_To_Invocation_Graph_Encoding_Kind, Column,
2314 Declaration_Placement_Kind_To_Code, Extra,
2315 For_Each_Invocation_Construct, For_Each_Invocation_Relation,
2316 Invocation_Graph_Encoding,
2317 Invocation_Graph_Encoding_Kind_To_Code, Invoker, Kind, Line,
2318 Locations, Name): New routine.
2319 (Scan_Invocation_Construct_Line): Reimplement the scanning
2320 mechanism.
2321 (Scan_Invocation_Graph_Attributes_Line): New routine.
2322 (Scan_Invocation_Graph_Line): Use a case statement to dispatch.
2323 (Scan_Invocation_Relation_Line): Reimplement the scanning
2324 mechanism.
2325 (Scope): New routine.
2326 (Set_Invocation_Graph_Encoding, Signature, Spec_Placement,
2327 Target): New routine.
2328 * ali.ads: Add new type Invocation_Graph_Encoding_Kind. Add
2329 component Invocation_Graph_Encoding to type Unit_Record.
2330 Relocate various types and data structures to the body of ALI.
2331 (Add_Invocation_Construct, Add_Invocation_Relation): Update the
2332 parameter profile.
2333 (Body_Placement): New routine.
2334 (Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind):
2335 Removed.
2336 (Code_To_Declaration_Placement_Kind,
2337 Code_To_Invocation_Graph_Encoding_Kind, Column,
2338 Declaration_Placement_Kind_To_Code, Extra,
2339 For_Each_Invocation_Construct, For_Each_Invocation_Relation,
2340 Invocation_Graph_Encoding,
2341 Invocation_Graph_Encoding_Kind_To_Code, Invoker, Kind, Line,
2342 Locations, Name, Scope, Set_Invocation_Graph_Encoding,
2343 Signature, Spec_Placement, Target): New routine.
2344 * bindo.adb: Add with clause for Binde. Add with and use
2345 clauses for Debug. Update the documentation. Add new switches.
2346 (Find_Elaboration_Order): Dispatch to the proper elaboration
2347 mechanism.
2348 * bindo-augmentors.adb:
2349 Remove with and use clauses for GNAT and GNAT.Sets. Remove
2350 membership set VS. Update the parameter profiles of most
2351 routines to use better parameter names. Update the
2352 implementation of most routine to use the new parameter names.
2353 Remove various redundant assertions.
2354 * bindo-builders.adb: Use better names for instantiated data
2355 structures. Update all references to these names. Update the
2356 parameter profiles of most routines to use better parameter
2357 names. Update the implementation of most routine to use the new
2358 parameter names.
2359 (Build_Library_Graph): Update the parameter profile. Update the
2360 call to Create.
2361 (Create_Vertex): Reimplemented.
2362 (Declaration_Placement_Vertex): New routine.
2363 * bindo-builders.ads (Build_Library_Graph): Update the parameter
2364 profile and comment on usage.
2365 * bindo-diagnostics.adb: Almost a new unit.
2366 * bindo-diagnostics.ads: Add a use clause for
2367 Bindo.Graphs.Invocation_Graphs. Remove package
2368 Cycle_Diagnostics.
2369 (Diagnose_Circularities): New routine.
2370 * bindo-elaborators.adb: Remove the with and use clauses for
2371 Binderr and GNAT.Sets. Remove the use clause for
2372 Bindo.Diagnostics.Cycle_Diagnostics. Remove membership set VS.
2373 Update the parameter profiles of most routines to use better
2374 parameter names. Update the implementation of most routine to
2375 use the new parameter names. (Elaborate_Units_Common): Update
2376 the parameter profile. Pass an infication to the library graph
2377 builder whether the dynamic model is in effect.
2378 (Elaborate_Units_Dynamic, Elaborate_Units_Static): Use
2379 Diagnose_Circularities to provide diagnostics.
2380 (Update_Successor): Use routine In_Same_Component to determine
2381 whether the predecessor and successor reside in different
2382 components.
2383 * bindo-graphs.adb: Add with and use clauses for Butil, Debug,
2384 Output, and Bindo.Writers. Remove with and use clauses for
2385 GNAT.Lists. Update the parameter profiles of most routines to
2386 use better parameter names. Update the implementation of most
2387 routine to use the new parameter names. Remove various
2388 redundant assertions. Remove doubly linked list EL. Add new
2389 type Precedence_Kind.
2390 (Add_Cycle): New routine.
2391 (Add_Vertex): Update the parameter profile. Update the creation
2392 of vertex attributes.
2393 (Add_Vertex_And_Complement, Body_Vertex, Column,
2394 Complementary_Vertex, Copy_Cycle_Path, Cycle_Kind_Of): New
2395 routines.
2396 (Destroy_Invocation_Graph_Edge, Destroy_Library_Graph_Cycle,
2397 Destroy_Library_Graph_Edge, Extra, File_Name,
2398 Find_All_Cycles_Through_Vertex, Find_All_Cycles_With_Edge,
2399 Find_Cycles, Find_First_Lower_Precedence_Cycle,
2400 Get_LGC_Attributes, Has_Next, Hash_Library_Graph_Cycle,
2401 Hash_Library_Graph_Cycle_Attributes, Highest_Precedence_Cycle,
2402 Highest_Precedence_Edge, In_Same_Component, Insert_And_Sort,
2403 Invocation_Edge_Count, Invocation_Graph_Encoding,
2404 Is_Cycle_Initiating_Edge, Is_Cyclic_Edge,
2405 Is_Cyclic_Elaborate_All_Edge, Is_Cyclic_Elaborate_Body_Edge,
2406 Is_Cyclic_Elaborate_Edge, Is_Cyclic_Forced_Edge,
2407 Is_Cyclic_Invocation_Edge, Is_Cyclic_With_Edge,
2408 Is_Dynamically_Elaborated, Is_Elaborate_All_Edge,
2409 Is_Elaborate_Body_Edge, Is_Elaborate_Edge: New routines.
2410 (Is_Existing_Predecessor_Successor_Relation): Removed.
2411 (Is_Forced_Edge, Is_Invocation_Edge, Is_Recorded_Cycle,
2412 Is_Recorded_Edge, Is_With_Edge, Iterate_Edges_Of_Cycle, Kind,
2413 Length): New routine.
2414 (Lib_Vertex): Removed.
2415 (Line, Links_Vertices_In_Same_Component,
2416 Maximum_Invocation_Edge_Count, Next, Normalize_And_Add_Cycle,
2417 Normalize_Cycle_Path, Number_Of_Cycles, Path, Precedence,
2418 Remove_Vertex_And_Complement, Sequence_Next_Cycle): New routines.
2419 (Sequence_Next_IGE_Id): Renamed to Sequence_Next_Edge.
2420 (Sequence_Next_IGV_Id): Renamed to Sequence_Next_Vertex.
2421 (Sequence_Next_LGE_Id): Renamed to Sequence_Next_Edge.
2422 (Sequence_Next_LGV_Id): Renamed to Sequence_Next_Vertex.
2423 (Set_Is_Existing_Predecessor_Successor_Relation): Removed.
2424 (Set_Is_Recorded_Cycle, Set_Is_Recorded_Edge,
2425 Set_LGC_Attributes, Spec_Vertex, Trace_Cycle, Trace_Edge,
2426 Trace_Eol, Trace_Vertex): New routines.
2427 * bindo-graphs.ads: Add with and use clauses for Types and
2428 GNAT.Lists. Update the parameter profiles of most routines to
2429 use better parameter names. Update the implementation of most
2430 routine to use the new parameter names. Add the new
2431 instantiated data structures IGE_Lists, IGV_Sets, LGC_Lists,
2432 LGE_Lists, LGE_Sets, LGV_Sets, and RC_Sets. Add new type
2433 Library_Graph_Cycle_Id along with an empty and initial value.
2434 Remove component Lib_Vertex and add new components Body_Vertex
2435 and Spec_Vertex to type Invocation_Graph_Vertex_Attributes. Add
2436 new type Library_Graph_Cycle_Kind. Add new iterators
2437 All_Cycle_Iterator and Edges_Of_Cycle_Iterator. Add new type
2438 Library_Graph_Cycle_Attributes. Add new components
2439 Cycle_Attributes, Cycles, and Dynamically_Elaborated to type
2440 Library_Graph_Attributes.
2441 (Body_Vertex, Column, Destroy_Invocation_Graph_Edge,
2442 Destroy_Library_Graph_Cycle_Attributes,
2443 Destroy_Library_Graph_Edge, Extra, File_Name, Find_Cycles,
2444 Has_Elaborate_All_Cycle, Has_Next, Hash_Library_Graph_Cycle,
2445 Hash_Library_Graph_Cycle_Attributes, Highest_Precedence_Cycle,
2446 In_Same_Component, Invocation_Edge_Count,
2447 Invocation_Graph_Encoding, Is_Dynamically_Elaborated,
2448 Is_Elaborate_All_Edge, Is_Elaborate_Body_Edge,
2449 Is_Elaborate_Edge, Is_Forced_Edge, Is_Invocation_Edge,
2450 Is_With_Edge, Iterate_All_Cycles, Iterate_Edges_Of_Cycle, Kind):
2451 New routines.
2452 (Length, Lib_Vertex, (Line, Next, Number_Of_Cycles, Present,
2453 Same_Library_Graph_Cycle_Attributes, Spec_Vertex): New routines.
2454 * bindo-units.adb (File_Name, Invocation_Graph_Encoding): New
2455 routines.
2456 * bindo-units.ads: Add new instantiated data structure
2457 Unit_Sets.
2458 (File_Name, Invocation_Graph_Encoding): New routine.
2459 * bindo-validators.adb: Remove with and use clauses for GNAT and
2460 GNAT.Sets. Remove membership set US. Update the parameter
2461 profiles of most routines to use better parameter names. Update
2462 the implementation of most routine to use the new parameter
2463 names.
2464 (Validate_Cycle, Validate_Cycle_Path, Validate_Cycles,
2465 Validate_Invocation_Graph_Vertex): Remove the validation of
2466 component Lib_Vertex. Add the validation of components
2467 Body_Vertex and Spec_Vertex.
2468 (Write_Error): New routine.
2469 * bindo-validators.ads (Validate_Cycles): New routine.
2470 * bindo-writers.adb: Update the parameter profiles of most
2471 routines to use better parameter names. Update the
2472 implementation of most routine to use the new parameter names.
2473 (Write_Cycle, Write_Cyclic_Edge, Write_Cycles): New routines.
2474 (Write_Invocation_Graph_Vertex): Remove the output of component
2475 Lib_Vertex. Add the output of components Body_Vertex and
2476 Spec_Vertex.
2477 * bindo-writers.ads (Write_Cycles): New routine.
2478 * debug.adb: Use binder switches -d_C and -d_P, add
2479 documentation on their usage.
2480 * gnatbind.adb: Remove with and use clauses for Binde. Delegate
2481 the choice of elaboration mechanism to Bindo.
2482 * lib-writ.adb (Column, Extra, Invoker, Kind, Line, Locations,
2483 Name, Placement, Scope, Signature, Target): Removed.
2484 (Write_Invocation_Graph): Moved at the top level.
2485 (Write_Invocation_Graph_Attributes): New routine.
2486 (Write_Invocation_Relation, Write_Invocation_Signature): Moved
2487 at the top level.
2488 * lib-writ.ads: Add a documentation section on invocation graph
2489 attributes.
2490 * sem_elab.adb (Body_Placement_Of): New routine.
2491 (Declare_Invocation_Construct): Update the call to
2492 Add_Invocation_Construct.
2493 (Declaration_Placement_Of_Node): New routine.
2494 (Get_Invocation_Attributes): Correct the retrieval of the
2495 enclosing subprogram where the postcondition procedure lives.
2496 (Placement_Of, Placement_Of_Node): Removed.
2497 (Record_Invocation_Graph): Record the encoding format used.
2498 (Record_Invocation_Graph_Encoding): New routine.
2499 (Record_Invocation_Relation): Update the call to
2500 Add_Invocation_Relation.
2501 (Spec_Placement_Of): Removed.
2502 * libgnat/g-lists.ads, libgnat/g-lists.adb (Equal): New routine.
2503
164597c5 25042019-07-05 Ed Schonberg <schonberg@adacore.com>
2505
2506 * checks.adb (Apply_Predicate_Check): Except within the
2507 subprogram body that defines the formal, do not apply predicate
2508 check on a formal IN parameter: such a check is redundant and
2509 its expansion can lead to out-of-scope references when it is
2510 originates in a function call in a precondition,
2511
572a4bc5 25122019-07-05 Yannick Moy <moy@adacore.com>
2513
2514 * sem_res.adb (Resolve_Call): Cannot inline in quantified
2515 expressions.
2516 * sem_util.adb, sem_util.ads (In_Quantified_Expression): New
2517 function.
2518
2c3ad474 25192019-07-05 Bob Duff <duff@adacore.com>
2520
2521 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
2522 Fix typo.
2523 * gnat_rm.texi: Regenerate.
2524
2f67af4c 25252019-07-05 Bob Duff <duff@adacore.com>
2526
2527 * exp_attr.adb (Input): Take the No_Stream_Optimizations
2528 restriction into account.
2529
1cb1fd0f 25302019-07-05 Claire Dross <dross@adacore.com>
2531
2532 * libgnat/a-cofove.ads, libgnat/a-cofove.adb: Definite formal
2533 vectors are now always bounded so that they do not need to be
2534 limited anymore.
2535
d2d09f3e 25362019-07-05 Dmitriy Anisimkov <anisimko@adacore.com>
2537
2538 * libgnat/g-traceb.ads, libgnat/g-traceb.adb (Call_Chain): New
2539 function.
2540
c5c4ce6c 25412019-07-04 James Clarke <jrtc27@debian.org>
14e0bfed 2542
2543 * libgnarl/s-osinte__kfreebsd-gnu.ads (clockid_t): Make type
2544 definition public.
2545 (CLOCK_REALTIME): Make value public.
2546
ecd07d3b 25472019-07-04 Javier Miranda <miranda@adacore.com>
2548
2549 * exp_tss.adb (Init_Proc): Adding missing support for access to
2550 subprograms and access to protected subprograms of non-default
2551 C++ constructors.
2552
e0ff1639 25532019-07-04 Eric Botcazou <ebotcazou@adacore.com>
2554
2555 * gnat1drv.adb (Adjust_Global_Switches): Use proper interface to
2556 set the validity settings in CodePeer mode.
2557 * par-load.adb (Load): Remove all code dealing with validity
2558 settings.
2559 * validsw.ads (Validity_Check_Copies): Alphabetize.
2560 * validsw.adb (Reset_Validity_Check_Options): Set all options to
2561 off.
2562 (Save_Validity_Check_Options): Save all options.
2563
40bff3a0 25642019-07-04 Hristian Kirtchev <kirtchev@adacore.com>
2565
2566 * exp_ch3.adb, exp_ch4.adb, exp_ch4.ads, exp_ch5.adb,
2567 exp_ch7.adb, exp_ch9.adb, exp_ch11.adb, exp_unst.adb,
2568 rtsfind.ads, sem_attr.adb, sem_ch10.adb, sem_ch12.adb,
2569 sem_ch13.adb, sem_dim.adb, sem_disp.adb, xref_lib.adb: Minor
2570 reformatting.
2571
0ebaade4 25722019-07-04 Joffrey Huguet <huguet@adacore.com>
2573
2574 * libgnarl/a-taside.ads: Add assertion policy to ignore
2575 preconditions.
2576 (Abort_Task, Is_Terminated, Is_Callable): Add preconditions.
2577
f14a590b 25782019-07-04 Eric Botcazou <ebotcazou@adacore.com>
2579
2580 * doc/gnat_rm/implementation_defined_pragmas.rst: Fix
2581 capitalization and parenthesis glitches.
2582 * gnat_rm.texi: Regenerate.
2583
f5388f99 25842019-07-04 Ed Schonberg <schonberg@adacore.com>
2585
2586 * sem_ch10.adb (Remove_Context_Clauses): Handle properly the
2587 removal of a limited_with_clause which appears in the library
2588 unit oF the main unit, when some other unit in the context has a
2589 regular with_clause on the same unit, to prevent spurious
2590 visibility errors in the subsequent analysis of pending instance
2591 bodies.
2592
c930bc82 25932019-07-04 Hristian Kirtchev <kirtchev@adacore.com>
2594
2595 * sem_elab.adb: Add new type Elaboration_Phase_Status along with
2596 a global to keep track of the elaboration phase status.
2597 Initialize all internal data structures to Nil for services
2598 Elaborated_Units, Internal_Representation, and Scenario_Storage.
2599 (Build_Call_Marker): Do not create a call marker when the
2600 elaboration phase is not active.
2601 (Build_Variable_Reference_Marker): Do not create a call marker
2602 when the elaboration phase is not active.
2603 (Check_Elaboration_Scenarios): Destroy all internal structures
2604 when the elaboration phase does not have to run. Do not execute
2605 when the elaboration phase is not active.
2606 (Elaboration_Phase_Active): New routine.
2607 (Finalize_All_Data_Structures): New routine.
2608 (Initialize): Initialize all internal data structures and signal
2609 that the elaboration phase has started.
2610 (Initialize_All_Data_Structures): New routine.
2611 (Initialize_Elaborated_Units): Initialize all internal data
2612 structures.
2613 (Initialize_Internal_Representation): Initialize all internal
2614 data structures.
2615 (Initialize_Scenario_Storage): Initialize all internal data
2616 structures.
2617 (Kill_Elaboration_Scenario): Do not execute when the elaboration
2618 phase is not active.
2619 (Set_Elaboration_Phase): New routine.
2620 (Update_Elaboration_Scenario): Do not execute when the
2621 elaboration phase is not active.
2622
39dec7f4 26232019-07-04 Gary Dismukes <dismukes@adacore.com>
2624
2625 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): The special
2626 treatment of calling Mask_Unfrozen_Types must also be done in
2627 the case of an Ignored_Ghost_Entity, because Expander_Active is
2628 False in that case.
2629
92b004be 26302019-07-04 Yannick Moy <moy@adacore.com>
2631
2632 * sem_prag.adb (Check_Library_Level_Entity): Update for new rule
2633 on SPARK_Mode.
2634
12795e1c 26352019-07-04 Justin Squirek <squirek@adacore.com>
2636
2637 * sem_disp.adb (Check_Controlling_Formals): Obtain the full view
2638 before type comparison.
2639
63fe3141 26402019-07-04 Ed Schonberg <schonberg@adacore.com>
2641
2642 * exp_ch4.ads, exp_ch4.adb (Build_Eq_Call): New visible
2643 subprogram, extracted from Expand_Composite_Equality, to handle
2644 properly the composition of equality for variant record types.
2645 * exp_ch3.adb (MAke_Eq_If): Use Build_Eq_Call for each
2646 component, to handle properly the case of a component with a
2647 user-defined equality. Revert to predefined equality if the
2648 user-defined operation is abstract, to maintain compatibility
2649 with older versions,
2650
17fa952a 26512019-07-04 Justin Squirek <squirek@adacore.com>
2652
2653 * exp_ch3.adb (Build_Initialization_Call): Fixup
2654 *_skip_null_excluding_check argument to handle new default.
2655 (Init_Formals): Make *_skip_null_excluding_check formal default
2656 to False
2657 * exp_ch4.adb (Expand_N_Allocator): Add comment to note heavy
2658 code duplication
2659
cf32543d 26602019-07-04 Bob Duff <duff@adacore.com>
2661
2662 * sem_ch3.adb (Access_Definition): Do not create a master unless
2663 Tasking_Allowed. Otherwise, this fails on restricted runtimes.
2664
eb4dbf20 26652019-07-04 Hristian Kirtchev <kirtchev@adacore.com>
2666
2667 * sem_util.adb (Propagate_DIC_Attributes): Do not propagate the
2668 Default_Initial_Condition attributes to an incomplete type.
2669
25ddc6ba 26702019-07-04 Ed Schonberg <schonberg@adacore.com>
2671
2672 * sem_attr.adb (Check_Array_Type): An array type attribute such
2673 as 'First can be applied to an unconstrained array tyope when
2674 the attribute reference appears within an aspect specification
2675 and the prefix is a current instance, given that the prefix of
2676 the attribute will become a formal of the subprogram that
2677 implements the aspect (typically a predicate check).
2678
74a5962a 26792019-07-04 Piotr Trojanek <trojanek@adacore.com>
2680
2681 * sem_util.adb (Yields_Synchronized_Object): Fix typos in
2682 comments.
2683
c65d33a8 26842019-07-04 Yannick Moy <moy@adacore.com>
2685
2686 * sem_util.adb (Yields_Synchronized_Object): Adapt to new SPARK
2687 rule.
2688
afd77d39 26892019-07-04 Yannick Moy <moy@adacore.com>
2690
2691 * sem_spark.adb (Check_Statement): Only check permission of
2692 object in extended return when it is of a deep type.
2693
2281b807 26942019-07-04 Justin Squirek <squirek@adacore.com>
2695
2696 * sem_ch12.adb (Perform_Appropriate_Analysis): Added for
2697 selecting which type of analysis based on wheither the
2698 instantiation is a generic at the library-level. In which case
2699 expansion during analysis.
2700 (Preanalyze_Actuals): Modify calls to Analyze to use the new
2701 routine.
2702
542b3e26 27032019-07-04 Ed Schonberg <schonberg@adacore.com>
2704
2705 * exp_unst.adb: Handle conditional expressions.
2706
7754aad4 27072019-07-04 Yannick Moy <moy@adacore.com>
2708
2709 * sem_spark.adb (Check_Package_Spec, Check_Package_Body): Only
2710 analyze parts of the code marked in SPARK.
2711
3843c1bd 27122019-07-04 Hristian Kirtchev <kirtchev@adacore.com>
2713
2714 * erroutc.adb, exp_aggr.adb, inline.adb, opt.adb, sem_ch3.adb:
2715 Minor reformatting.
2716
5bc0f990 27172019-07-04 Yannick Moy <moy@adacore.com>
2718
2719 * sem_spark.adb (Explanation, Get_Expl): New functions to get
2720 the explanation for a permission mismatch.
2721 (Perm_Error, Perm_Mismatch, Perm_Error_Loop_Exit): Take
2722 explanation into account for issuing a more precise error
2723 message.
2724 (Set_Perm_Prefixes, Set_Perm_Extensions,
2725 Set_Perm_Extensions_Move): Pass suitable argument for the
2726 explanation node.
2727
11903e68 27282019-07-04 Arnaud Charlet <charlet@adacore.com>
2729
2730 * exp_aggr.adb (In_Place_Assign_OK): Moved to top level and add
2731 support for record aggregates.
2732 (Component_Check): Use Is_CCG_Supported_Aggregate instead of a
2733 similar local predicate.
2734 (Convert_To_Assignments): Take advantage of In_Place_Assign_OK
2735 predicate when possible.
2736 (Is_CCG_Supported_Aggregate): Return False for records with
2737 representation clauses and fix the logic for dealing with nested
2738 aggregates.
2739
b0c19ea3 27402019-07-04 Piotr Trojanek <trojanek@adacore.com>
2741
2742 * opt.adb (Set_Config_Switches): Keep assertions policy as
2743 enabled when analysing internal units in GNATprove mode.
2744
90f2b146 27452019-07-04 Arnaud Charlet <charlet@adacore.com>
2746
2747 * exp_ch4.adb (Expand_Short_Circuit_Operator): Strip
2748 N_Variable_Reference_Marker when checking for the presence of
2749 actions.
2750
39ecad34 27512019-07-04 Arnaud Charlet <charlet@adacore.com>
2752
2753 * exp_aggr.adb (Check_Component): Take into account type
2754 conversions.
2755
c0e899f1 27562019-07-04 Dmitriy Anisimkov <anisimko@adacore.com>
2757
2758 * doc/gnat_ugn/platform_specific_information.rst: Document
2759 Windows socket timeout particularity.
2760 * gnat_ugn.texi: Regenerate.
2761 * gsocket.h: Include versionhelpers.h.
2762 * socket.c (__gnat_minus_500ms): New function.
2763 * libgnat/g-sothco.ads (Minus_500ms_Windows_Timeout): New
2764 imported function.
2765 * libgnat/g-socket.adb (Set_Socket_Option): Refactor to remove
2766 500ms from the requested timeout only on old Windows version.
2767
363b1a8e 27682019-07-04 Thomas Quinot <quinot@adacore.com>
2769
2770 * get_scos.adb: Remove bogus, dead code.
2771
4ae0a9ce 27722019-07-04 Ed Schonberg <schonberg@adacore.com>
2773
2774 * sem_dim.adb (Analyze_Dimension_Array_Aggregate): If the
2775 component is an entity name, its dimensions are those of its
2776 type.
2777
d60fa3c9 27782019-07-03 Bob Duff <duff@adacore.com>
2779
2780 * doc/gnat_ugn/gnat_utility_programs.rst: Document new flags in
2781 GNATpp.
2782
877ad320 27832019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
2784
2785 * binde.adb: Remove with clause for System.OS_Lib.
2786 (Force_Elab_Order): Refactor the majority of the code in Butil.
2787 Use the new forced units iterator to obtain unit names.
2788 * bindo-builders.adb: Add with and use clauses for Binderr,
2789 Butil, Opt, Output, Types, GNAT, and GNAT.Dynamic_HTables. Add
2790 a hash table which maps units to line number in the forced
2791 elaboration order file.
2792 (Add_Unit): New routine.
2793 (Build_Library_Graph): Create forced edges between pairs of
2794 units listed in the forced elaboration order file.
2795 (Create_Forced_Edge, Create_Forced_Edges, Destroy_Line_Number,
2796 Duplicate_Unit_Error, Hash_Unit, Internal_Unit_Info,
2797 Is_Duplicate_Unit, Missing_Unit_Info): New routines.
2798 * bindo-graphs.adb (Is_Internal_Unit, Is_Predefined_Unit):
2799 Refactor some of the behavior to Bindo-Units.
2800 * bindo-graphs.ads: Enable the enumeration literal for forced
2801 edges.
2802 * bindo-units.adb, bindo-units.ads (Is_Internal_Unit,
2803 Is_Predefined_Unit): New routines.
2804 * butil.adb: Add with and use clauses for Opt, GNAT, and
2805 System.OS_Lib. Add with clause for Unchecked_Deallocation.
2806 (Has_Next, Iterate_Forced_Units, Next, Parse_Next_Unit_Name,
2807 Read_Forced_Elab_Order_File): New routines.
2808 * butil.ads: Add with and use clauses for Types. Add new
2809 iterator over the units listed in the forced elaboration order
2810 file.
2811 (Has_Next, Iterate_Forced_Units, Next): New routine.
2812 * namet.adb, namet.ads (Present): New routine.
2813
01e6eb2f 28142019-07-03 Bob Duff <duff@adacore.com>
2815
2816 * sem_ch3.adb (Access_Definition): The code was creating a
2817 master in the case where the designated type is a class-wide
2818 interface type. Create a master in the noninterface case as
2819 well. That is, create a master for all limited class-wide types.
2820
9ad42832 28212019-07-03 Yannick Moy <moy@adacore.com>
2822
2823 * erroutc.adb (Sloc_In_Range): New function to determine whether
2824 the range of a pragma Warnings covers a location, taking
2825 instantiations into account.
2826
f2a8d64e 28272019-07-03 Johannes Kanig <kanig@adacore.com>
2828
2829 * osint.ads, osint.adb (Get_First_Main_File_Name): New routine
2830 to access the first file provided on the command line.
2831
d4f28933 28322019-07-03 Ed Schonberg <schonberg@adacore.com>
2833
2834 * inline.adb (Process_Formals_In_Aspects): New procedure within
2835 Expand_Inlined_Call, to perform a replacement of references to
2836 formals that appear in aspect specifications within the body
2837 being inlined.
2838
23e7fc9b 28392019-07-03 Justin Squirek <squirek@adacore.com>
2840
2841 * sem_ch8.adb (Analyze_Object_Renaming): Add call to search for
2842 the appropriate actual subtype of the object renaming being
2843 analyzed.
2844 (Check_Constrained_Object): Minor cleanup.
2845
f8e6d133 28462019-07-03 Yannick Moy <moy@adacore.com>
2847
2848 * sem_spark.adb (Get_Observed_Or_Borrowed_Expr): New function to
2849 return go through traversal function call.
2850 (Check_Type): Consistently use underlying type.
2851 (Get_Perm): Adapt for case of elaboration code where variables
2852 are not declared in the environment. Remove incorrect handling
2853 of borrow and observe.
2854
d044ba5c 28552019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
2856
2857 * inline.adb (Build_Return_Object_Formal): New routine.
2858 (Can_Split_Unconstrained_Function): Code clean up.
2859 (Copy_Formals,Copy_Return_Object): New routines.
2860 (Split_Unconstrained_Function): Code clean up and refactoring.
2861
8699de72 28622019-07-03 Gary Dismukes <dismukes@adacore.com>
2863
2864 * bindo-augmentors.adb, bindo-augmentors.ads,
2865 bindo-builders.ads, bindo-elaborators.adb, sem_ch12.adb,
2866 sem_ch13.adb, sem_spark.adb, sinfo.ads: Minor editorial
2867 corrections and reformatting.
2868
2ccf6539 28692019-07-03 Bob Duff <duff@adacore.com>
2870
2871 * sem_warn.adb (Check_Infinite_Loop_Warning): Avoid the warning
2872 if an Iterator_Specification is present.
2873
17b5260d 28742019-07-03 Bob Duff <duff@adacore.com>
2875
2876 * doc/gnat_ugn/gnat_utility_programs.rst: Document default
2877 new-line behavior.
2878
5f71d12c 28792019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
2880
2881 * ali.adb: Add with and use clauses for GNAT,
2882 GNAT.Dynamic_HTables, and Snames. Add a map from invocation
2883 signature records to invocation signature ids. Add various
2884 encodings of invocation-related attributes. Sort and update
2885 table Known_ALI_Lines.
2886 (Add_Invocation_Construct, Add_Invocation_Relation,
2887 Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind,
2888 Code_To_Invocation_Construct_Kind, Code_To_Invocation_Kind,
2889 Code_To_Invocation_Graph_Line_Kind, Destroy, Hash): New
2890 routines.
2891 (Initialize_ALI): Sort the initialization sequence. Add
2892 initialization for all invocation-related tables.
2893 (Invocation_Construct_Kind_To_Code,
2894 Invocation_Graph_Line_Kind_To_Code, Invocation_Kind_To_Code,
2895 Invocation_Signature_Of, Present): New routines.
2896 (Scan_ALI): Add the default values for invocation-related ids.
2897 Scan invocation graph lines.
2898 (Scan_Invocation_Graph_Line): New routine.
2899 * ali.ads: Add with clause for GNAT.Dynamic_Tables. Add types
2900 for invocation constructs, relations, and signatures. Add
2901 tables for invocation constructs, relations, and signatures.
2902 Update Unit_Record to capture invocation-related ids. Relocate
2903 table Unit_Id_Tables and subtypes Unit_Id_Table, Unit_Id_Array
2904 from Binde.
2905 (Add_Invocation_Construct, Add_Invocation_Relation,
2906 Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind,
2907 Code_To_Invocation_Construct_Kind, Code_To_Invocation_Kind,
2908 Code_To_Invocation_Graph_Line_Kind,
2909 Invocation_Construct_Kind_To_Code,
2910 Invocation_Graph_Line_Kind_To_Code, Invocation_Kind_To_Code,
2911 Invocation_Signature_Of, Present): New routines.
2912 * binde.adb: Add with and use clause for Types. Add use clause
2913 for ALI.Unit_Id_Tables;
2914 * binde.ads: Relocate table Unit_Id_Tables and subtypes
2915 Unit_Id_Table, Unit_Id_Array to ALI.
2916 * bindgen.adb: Remove with and use clause for ALI.
2917 * bindgen.ads: Remove with and use clause for Binde. Add with
2918 and use clause for ALI.
2919 * bindo.adb, bindo.ads, bindo-augmentors.adb,
2920 bindo-augmentors.ads, bindo-builders.adb, bindo-builders.ads,
2921 bindo-diagnostics.adb, bindo-diagnostics.ads,
2922 bindo-elaborators.adb, bindo-elaborators.ads, bindo-graphs.adb,
2923 bindo-graphs.ads, bindo-units.adb, bindo-units.ads,
2924 bindo-validators.adb, bindo-validators.ads, bindo-writers.adb,
2925 bindo-writers.ads: New units.
2926 * debug.adb: Use and describe GNAT debug switches -gnatd_F and
2927 -gnatd_G. Add GNATbind debug switches in the ranges dA .. dZ,
2928 d.a .. d.z, d.A .. d.Z, d.1 .. d.9, d_a .. d_z, d_A .. d_Z, and
2929 d_1 .. d_9. Use and describe GNATbind debug switches -d_A,
2930 -d_I, -d_L, -d_N, -d_O, -d_T, and -d_V.
2931 * exp_util.adb, exp_util.ads (Exceptions_OK): Relocate to
2932 Sem_Util.
2933 * gnatbind.adb: Add with and use clause for Bindo. Use the new
2934 Bindo elaboration order only when -d_N is in effect.
2935 * lib-writ.adb
2936 (Column, Extra, Invoker, Kind, Line, Locations, Name, Placement,
2937 Scope, Signature, Target): New routines.
2938 (Write_ALI): Output all invocation-related data.
2939 (Write_Invocation_Graph): New routine.
2940 * lib-writ.ads: Document the invocation graph ALI line.
2941 * namet.adb, namet.ads (Present): New routines.
2942 * sem_ch8.adb (Find_Direct_Name): Capture the status of
2943 elaboration checks and warnings of an identifier.
2944 (Find_Expanded_Name): Capture the status of elaboration checks
2945 and warnings of an expanded name.
2946 * sem_ch12.adb (Analyze_Generic_Package_Declaration): Ensure
2947 that invocation graph-related data within the body of the main
2948 unit is encoded in the ALI file.
2949 (Analyze_Generic_Subprogram_Declaration): Ensure that invocation
2950 graph-related data within the body of the main unit is encoded
2951 in the ALI file.
2952 (Analyze_Package_Instantiation): Perform minimal decoration of
2953 the instance entity.
2954 (Analyze_Subprogram_Instantiation): Perform minimal decoration
2955 of the instance entity.
2956 * sem_elab.adb: Perform heavy refactoring of all code. The unit
2957 is now split into "services" which specialize in one area of ABE
2958 checks. Add processing in order to capture invocation-graph
2959 related attributes of the main unit, and encode them in the ALI
2960 file. The Processing phase can now operate in multiple modes,
2961 all described by type Processing_Kind. Scenarios and targets
2962 are now distinct at the higher level, and carry their own
2963 representations. This eliminates the need to constantly
2964 recompute their attributes, and offers the various processors a
2965 uniform interface. The various initial states of the Processing
2966 phase are now encoded using type Processing_In_State, and
2967 xxx_State constants.
2968 * sem_elab.ads: Update the literals of type
2969 Enclosing_Level_Kind. Add Inline pragmas on several routines.
2970 * sem_prag.adb (Process_Inline): Ensure that invocation
2971 graph-related data within the body of the main unit is encoded
2972 in the ALI file.
2973 * sem_util.adb (Enclosing_Generic_Body, Enclosing_Generic_Unit):
2974 Code clean up.
2975 (Exceptions_OK): Relocated from Sem_Util.
2976 (Mark_Save_Invocation_Graph_Of_Body): New routine.
2977 * sem_util.ads (Exceptions_OK): Relocated from Sem_Util.
2978 (Mark_Save_Invocation_Graph_Of_Body): New routine.
2979 * sinfo.adb (Is_Elaboration_Checks_OK_Node): Now applicable to
2980 N_Variable_Reference_Marker.
2981 (Is_Elaboration_Warnings_OK_Node): Now applicable to
2982 N_Expanded_Name, N_Identifier, N_Variable_Reference_Marker.
2983 (Is_Read): Use Flag4.
2984 (Is_SPARK_Mode_On_Node): New applicable to
2985 N_Variable_Reference_Marker.
2986 (Is_Write): Use Flag5.
2987 (Save_Invocation_Graph_Of_Body): New routine.
2988 (Set_Is_Elaboration_Checks_OK_Node): Now applicable to
2989 N_Variable_Reference_Marker.
2990 (Set_Is_Elaboration_Warnings_OK_Node): Now applicable to
2991 N_Expanded_Name, N_Identifier, N_Variable_Reference_Marker.
2992 (Set_Is_SPARK_Mode_On_Node): New applicable to
2993 N_Variable_Reference_Marker.
2994 (Set_Save_Invocation_Graph_Of_Body): New routine.
2995 * sinfo.ads: Update the documentation of attributes
2996 Is_Elaboration_Checks_OK_Node, Is_Elaboration_Warnings_OK_Node,
2997 Is_SPARK_Mode_On_Node. Update the flag usage of attributes
2998 Is_Read, Is_Write. Add attribute Save_Invocation_Graph_Of_Body
2999 and update its occurrence in nodes.
3000 (Save_Invocation_Graph_Of_Body): New routine along with pragma
3001 Inline.
3002 (Set_Save_Invocation_Graph_Of_Body): New routine along with
3003 pragma Inline.
3004 * switch-b.adb (Scan_Binder_Switches): Refactor the scanning of
3005 debug switches.
3006 (Scan_Debug_Switches): New routine.
3007 * libgnat/g-dynhta.adb, libgnat/g-dynhta.ads (Contains): New routine.
3008 * libgnat/g-graphs.adb (Associate_Vertices): Update the use of
3009 Component_Vertex_Iterator.
3010 (Contains_Component, Contains_Edge, Contains_Vertex, Has_Next):
3011 Reimplemented.
3012 (Iterate_Component_Vertices): New routine.
3013 (Iterate_Vertices): Removed.
3014 (Next): Update the parameter profile.
3015 (Number_Of_Component_Vertices, Number_Of_Outgoing_Edges): New
3016 routines.
3017 * libgnat/g-graphs.ads: Update the initialization of
3018 No_Component. Add type Component_Vertex_Iterator. Remove type
3019 Vertex_Iterator.
3020 (Has_Next): Add new versions and remove old ones.
3021 (Iterate_Component_Vertices): New routine.
3022 (Iterate_Vertices): Removed.
3023 (Next): Add new versions and remove old ones.
3024 (Number_Of_Component_Vertices, Number_Of_Outgoing_Edges): New
3025 routines.
3026 * libgnat/g-sets.adb (Contains): Reimplemented.
3027 * gcc-interface/Make-lang.in (GNATBIND_OBJS): Add
3028 GNAT.Dynamic_HTables, GNAT.Graphs and Bindo units.
3029 * rtsfind.ads: Remove extra space.
3030
df177848 30312019-07-03 Yannick Moy <moy@adacore.com>
3032
3033 * sem_spark.adb: Add support for locally borrowing and observing
3034 a path.
3035 (Get_Root_Object): Add parameter Through_Traversal to denote
3036 when we are interesting in getting to the traversed parameter.
3037 (Is_Prefix_Or_Almost): New function to support detection of
3038 illegal access to borrowed or observed paths.
3039 (Check_Pragma): Add analysis of assertion pragmas.
3040
f3f142ac 30412019-07-03 Ed Schonberg <schonberg@adacore.com>
3042
3043 * sem_ch13.adb (Build_Predicate_Functions): In a generic context
3044 we do not build the bodies of predicate fuctions, but the
3045 expression in a static predicate must be elaborated to allow
3046 case coverage checking within the generic unit.
3047 (Build_Discrete_Static_Predicate): In a generic context, return
3048 without building function body once the
3049 Static_Discrete_Predicate expression for the type has been
3050 constructed.
3051
99d90c85 30522019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
3053
3054 * bindgen.adb, inline.adb, layout.adb, sem_ch12.adb,
3055 sem_ch13.adb, sem_ch7.adb, styleg.adb: Minor reformatting.
3056
800597f6 30572019-07-03 Bob Duff <duff@adacore.com>
3058
3059 * par-ch3.adb (P_Defining_Identifier): Call
3060 Check_Defining_Identifier_Casing.
3061 * style.ads, styleg.ads, styleg.adb
3062 (Check_Defining_Identifier_Casing): New procedure to check for
3063 mixed-case defining identifiers.
3064 * stylesw.ads, stylesw.adb (Style_Check_Mixed_Case_Decls): New
3065 flag for checking for mixed-case defining identifiers.
3066 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
3067 Document new feature.
3068 * gnat_ugn.texi: Regenerate.
3069
2c75027a 30702019-07-03 Eric Botcazou <ebotcazou@adacore.com>
3071
3072 * doc/gnat_ugn/building_executable_programs_with_gnat.rst
3073 (Warning message control): Document that -gnatw.z/Z apply to
3074 array types.
3075 * freeze.adb (Freeze_Entity): Give -gnatw.z warning for array
3076 types as well, but not if the specified alignment is the minimum
3077 one.
3078 * gnat_ugn.texi: Regenerate.
3079
08237d0d 30802019-07-03 Bob Duff <duff@adacore.com>
3081
3082 * einfo.ads, exp_util.adb, layout.ads, sinfo.ads: Spell "laid"
3083 correctly.
3084
0396441f 30852019-07-03 Ed Schonberg <schonberg@adacore.com>
3086
3087 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): No error
3088 message on attribute applied to a renaming when the renamed
3089 object is an aggregate (from code reading).
3090 (Check_Aspect_At_End_Of_Declarations): In a generic context
3091 where freeze nodes are not generated, the original expression
3092 for an aspect may need to be analyzed to precent spurious
3093 conformance errors when compared with the expression that is
3094 anakyzed at the end of the current declarative list.
3095
c8406f30 30962019-07-03 Eric Botcazou <ebotcazou@adacore.com>
3097
3098 * layout.adb (Layout_Type): Do not set the component size of an
3099 array with a scalar component if the component type is
3100 overaligned.
3101
c38b32ea 31022019-07-03 Ed Schonberg <schonberg@adacore.com>
3103
c5c4ce6c 3104 * inline.adb (Make_Loop_Labels_Unique): New procedure to modify
c38b32ea 3105 the source code of subprograms that are inlined by the
3106 front-end, to prevent accidental duplication between loop labels
3107 in the inlined code and the code surrounding the inlined call.
3108
6d6f134e 31092019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
3110
3111 * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Update
3112 the section on resolving elaboration circularities to eliminate
3113 certain combinations of switches which together do not produce
3114 the desired effect and confuse users.
3115 * gnat_ugn.texi: Regenerate.
3116
f3e16ef4 31172019-07-03 Arnaud Charlet <charlet@adacore.com>
3118
3119 * bindgen.adb (Gen_Main): Disable generation of reference to
3120 Ada_Main_Program_Name for CCG.
3121 * bindusg.adb (Display): Add -G to the command-line usage for
3122 gnatbind.
3123 * opt.ads (Generate_C_Code): Update comment.
3124 * switch-b.adb (Scan_Binder_Switches): Add handling for -G.
3125
f4a31b16 31262019-07-03 Arnaud Charlet <charlet@adacore.com>
3127
3128 * sem_ch7.adb (Has_Referencer): Do not consider inlined
3129 subprograms when generating C code, which allows us to generate
3130 static inline subprograms.
3131
2f65e9f7 31322019-07-03 Justin Squirek <squirek@adacore.com>
3133
3134 * sem_ch6.adb (Check_Conformance): Add expression checking for
3135 constant modifiers in anonymous access types (in addition to
3136 "non-null" types) so that they are considered "matching" for
3137 subsequent conformance tests.
3138
c336ed70 31392019-07-03 Arnaud Charlet <charlet@adacore.com>
3140
3141 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
3142 Clarify wording on No_Multiple_Elaboration.
3143 * gnat_rm.texi: Regenerate.
3144
78611c86 31452019-07-03 Ed Schonberg <schonberg@adacore.com>
3146
3147 * sem_ch8.adb (Find_Selected_Component): If the prefix is the
3148 current instance of a type or subtype, complete the resolution
3149 of the name by finding the component of the type denoted by the
3150 selector name.
3151
5a87a4d9 31522019-07-03 Eric Botcazou <ebotcazou@adacore.com>
3153
3154 * doc/gnat_rm/interfacing_to_other_languages.rst (Interfacing to C):
3155 Document that boolean types with convention C now map to C99 bool.
3156 * gnat_rm.texi: Regenerate.
3157
371c539c 31582019-07-03 Javier Miranda <miranda@adacore.com>
3159
3160 * exp_attr.adb (Expand_Min_Max_Attribute): Code cleanup:
3161 removing code that it is now never executed in the CCG compiler
3162 (dead code).
3163
89d2d652 31642019-07-02 Iain Sandoe <iain@sandoe.co.uk>
3165
3166 * libgnat/system-darwin-ppc.ads: Set Stack_Check_Probes True for
3167 PPC Darwin.
3168
d21e66fb 31692019-07-01 Ed Schonberg <schonberg@adacore.com>
3170
3171 * sem_ch12.adb (Is_Defaulted): New predicate in
3172 Check_Formal_Package_Intance, to skip the conformance of checks
3173 on parameters of a formal package that are defaulted,
3174
7a42b778 31752019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
3176
3177 * checks.adb, exp_ch9.adb, exp_unst.adb, sem_ch4.adb,
3178 sem_prag.adb, sem_spark.adb: Minor reformatting.
3179
fc8ae496 31802019-07-01 Ed Schonberg <schonberg@adacore.com>
3181
3182 * sem_attr.adb (Analyze_Attribute, case Enum_Rep): Allow prefix
3183 of attribute to be an attribute reference of a discrete type.
3184
9d27ea41 31852019-07-01 Eric Botcazou <ebotcazou@adacore.com>
3186
3187 * sem_ch12.adb (Analyze_Subprogram_Instantiation): Move up
3188 handling of Has_Pragma_Inline_Always and deal with
3189 Has_Pragma_No_Inline.
3190
bcb8dcf3 31912019-07-01 Ed Schonberg <schonberg@adacore.com>
3192
3193 * sem_ch3.adb (Build_Derived_Record_Type): If the parent type is
3194 declared as a subtype of a private type with an inherited
3195 discriminant constraint, its generated full base appears as a
3196 record subtype, so we need to retrieve its oen base type so that
3197 the inherited constraint can be applied to it.
3198
d087b9ca 31992019-07-01 Yannick Moy <moy@adacore.com>
3200
3201 * sem_spark.adb: Completely rework the algorithm for ownership
3202 checking, as the rules in SPARK RM have changed a lot.
3203 * sem_spark.ads: Update comments.
3204
fe48ee0a 32052019-07-01 Dmitriy Anisimkov <anisimko@adacore.com>
3206
3207 * gsocket.h (Has_Sockaddr_Len): Use the offset of sin_family offset in
3208 the sockaddr_in structure to determine the existence of length field
3209 before the sin_family.
3210
b20f7e2c 32112019-07-01 Ed Schonberg <schonberg@adacore.com>
3212
3213 * sem_prag.adb (Analyze_Pragma, case Weak_External): Pragma only
3214 applies to entities with run-time addresses, not to types.
3215
374fdf94 32162019-07-01 Piotr Trojanek <trojanek@adacore.com>
3217
3218 * einfo.adb, sem_ch7.adb, sem_prag.adb, sem_util.adb: Update
3219 references to the SPARK RM after the removal of Rule 7.1.4(5).
3220
bf13a79d 32212019-07-01 Piotr Trojanek <trojanek@adacore.com>
3222
3223 * sysdep.c: Cleanup references to LynuxWorks in docs and
3224 comments.
3225
866fa2d0 32262019-07-01 Ed Schonberg <schonberg@adacore.com>
3227
3228 * checks.adb (Insert_Valid_Check): Do not apply validity check
3229 to variable declared within a protected object that uses the
3230 Lock_Free implementation, to prevent unwarranted constant
3231 folding, because entities within such an object msut be treated
3232 as volatile.
3233
bcb5ab83 32342019-07-01 Eric Botcazou <ebotcazou@adacore.com>
3235
3236 * exp_ch9.adb (Check_Inlining): Deal with Has_Pragma_No_Inline.
3237
2db33bd6 32382019-07-01 Ed Schonberg <schonberg@adacore.com>
3239
3240 * exp_unst.adb (Visit_Node, Check_Static_Type): Improve the
3241 handling of private and incomplete types whose full view is an
3242 access type, to detect additional uplevel references in dynamic
3243 bounds. This is relevant to N_Free_Statement among others that
3244 manipulate types whose full viww may be an access type.
3245
6b4f0b7d 32462019-07-01 Pat Rogers <rogers@adacore.com>
3247
3248 * doc/gnat_rm/representation_clauses_and_pragmas.rst: Correct
3249 size indicated for R as a component of an array.
3250 * gnat_rm.texi: Regenerate.
3251
cdee70d7 32522019-07-01 Justin Squirek <squirek@adacore.com>
3253
3254 * libgnat/s-win32.ads: Add definition for ULONG, modify
3255 OVERLAPPED type, and add appropriate pragmas.
3256
2cf822b7 32572019-07-01 Bob Duff <duff@adacore.com>
3258
3259 * gnat1drv.adb (gnat1drv): Call Write_ALI if the main unit is
3260 ignored-ghost.
3261
0a1ece97 32622019-07-01 Yannick Moy <moy@adacore.com>
3263
3264 * sem_ch4.adb (Operator_Check): Refine error message.
3265
ee4279ef 32662019-07-01 Piotr Trojanek <trojanek@adacore.com>
3267
3268 * libgnat/a-calend.ads: Revert "Global => null" contracts on
3269 non-pure routines.
3270
2c6b4ada 32712019-07-01 Piotr Trojanek <trojanek@adacore.com>
3272
3273 * exp_attr.adb, libgnat/g-graphs.ads: Fix typos in comments:
3274 componant -> component.
3275
175c4526 32762019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
3277
3278 * libgnat/g-graphs.adb: Use type Directed_Graph rather than
3279 Instance in various routines.
3280 * libgnat/g-graphs.ads: Change type Instance to Directed_Graph.
3281 Update various routines that mention the type.
3282
a0d15509 32832019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
3284
3285 * libgnat/g-sets.adb: Use type Membership_Set rathern than
3286 Instance in various routines.
3287 * libgnat/g-sets.ads: Change type Instance to Membership_Set.
3288 Update various routines that mention the type.
3289
205a23a3 32902019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
3291
3292 * libgnat/g-lists.adb: Use type Doubly_Linked_List rather than
3293 Instance in various routines.
3294 * libgnat/g-lists.ads: Change type Instance to
3295 Doubly_Linked_List. Update various routines that mention the
3296 type.
3297
17fdf8c2 32982019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
3299
3300 * libgnat/g-dynhta.adb: Use type Dynamic_Hash_Table rather than
3301 Instance in various routines.
3302 * libgnat/g-dynhta.ads: Change type Instance to
3303 Dynamic_Hash_Table. Update various routines that mention the
3304 type.
3305
216ffc64 33062019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
3307
3308 * exp_attr.adb, exp_ch7.adb, exp_unst.adb, sem_ch3.adb,
3309 sem_util.adb, uintp.adb, uintp.ads: Minor reformatting.
3310
5051fe35 33112019-07-01 Javier Miranda <miranda@adacore.com>
3312
3313 * exp_attr.adb (Expand_Min_Max_Attribute): Disable expansion of
3314 'Min/'Max on integer, enumeration, fixed point and floating
3315 point types since the CCG backend now provides in file
3316 standard.h routines to support it.
3317
830a2a71 33182019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
3319
3320 * impunit.adb: Add GNAT.Graphs to list Non_Imp_File_Names_95.
3321 * Makefile.rtl, gcc-interface/Make-lang.in: Register unit
3322 GNAT.Graphs.
3323 * libgnat/g-dynhta.adb: Various minor cleanups (use Present
3324 rather than direct comparisons).
3325 (Delete): Reimplement to use Delete_Node.
3326 (Delete_Node): New routine.
3327 (Destroy_Bucket): Invoke the provided destructor.
3328 (Present): New routines.
3329 * libgnat/g-dynhta.ads: Add new generic formal Destroy_Value.
3330 Use better names for the components of iterators.
3331 * libgnat/g-graphs.adb, libgnat/g-graphs.ads: New unit.
3332 * libgnat/g-lists.adb: Various minor cleanups (use Present
3333 rather than direct comparisons).
3334 (Delete_Node): Invoke the provided destructor.
3335 (Present): New routine.
3336 * libgnat/g-lists.ads: Add new generic formal Destroy_Element.
3337 Use better names for the components of iterators.
3338 (Present): New routine.
3339 * libgnat/g-sets.adb, libgnat/g-sets.ads (Destroy, Preset,
3340 Reset): New routines.
3341
b0111d94 33422019-07-01 Dmitriy Anisimkov <anisimko@adacore.com>
3343
3344 * libgnat/g-sothco.adb (Get_Address): Fix the case when AF_INET6
3345 is not defined.
3346
7362896b 33472019-07-01 Ed Schonberg <schonberg@adacore.com>
3348
3349 * exp_attr.adb (Expand_Attribute_Reference, case Invalid_Value):
3350 Resolve result of call to Get_Simple_Init_Val, which may be a
3351 conversion of a literal.
3352
0dae8dc2 33532019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
3354
3355 * freeze.adb (Freeze_Expression): Remove the horrible useless
3356 name hiding of N. Insert the freeze nodes generated by the
3357 expression prior to the expression when the nearest enclosing
3358 scope is transient.
3359
487da8ff 33602019-07-01 Pierre-Marie de Rodat <derodat@adacore.com>
3361
3362 * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix
3363 formatting issues in the -gnatR section.
3364 * gnat_ugn.texi: Regenerate.
3365
1d79fa18 33662019-06-30 Iain Sandoe <iain@sandoe.co.uk>
3367
3368 * gnatlink.adb (Link_Step): Remove duplicate -static-libgcc switches.
3369 Push -shared-libgcc explicitly, when it is the target default (unless
3370 overidden by the static flag).
3371 When the user has put an instance of shared/static-libgcc do not push
3372 a duplicate of this.
3373
a850edcd 33742019-06-29 Eric Botcazou <ebotcazou@adacore.com>
3375
3376 * gcc-interface/decl.c (gnat_to_gnu_entity): Beep up comment on SAVED,
3377 and tweak comment on the assertion about the scopes of Itypes. Do not
3378 skip the regular processing for Itypes that are E_Record_Subtype with
3379 a Cloned_Subtype. Get the Cloned_Subtype for every E_Record_Subtype
3380 if the type is dummy and hasn't got its own freeze node.
3381 <E_Record_Subtype>: Save again the DECL of the Cloned_Subtype, if any.
3382 <E_Access_Subtype>: Save again the DECL of the equivalent type.
3383 (Gigi_Equivalent_Type) <E_Access_Subtype>: New case.
3384
b1e46fb1 33852019-06-29 Eric Botcazou <ebotcazou@adacore.com>
3386
3387 * gcc-interface/utils.c (unchecked_convert): Tweak comment. Only skip
3388 dereferences when padding to have the same size on both sides. Do it
3389 for destination types with self-referential size too.
3390
07e38949 33912019-06-29 Eric Botcazou <ebotcazou@adacore.com>
3392
3393 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the
3394 type requires strict alignment, then set the RM size to the type size.
3395 Rework handling of alignment and sizes of tagged types in ASIS mode.
3396 (validate_size): Rename local variable and remove special handling for
3397 strict-alignment types.
3398 * gcc-interface/utils.c (finish_record_type): Constify local variables
3399 and use properly typed constants.
3400
f4409741 34012019-06-29 Eric Botcazou <ebotcazou@adacore.com>
3402
3403 * gcc-interface/decl.c (gnat_to_gnu_field): Rework error messages for
3404 fields requiring strict alignment, add explicit test on Storage_Unit
3405 for position and size, and mention type alignment for position.
3406
5882c515 34072019-06-29 Eric Botcazou <ebotcazou@adacore.com>
3408
3409 * gcc-interface/trans.c (mark_visited_r): Set TYPE_SIZES_GIMPLIFIED on
3410 the main variant of a type, if any.
3411
d0de0a27 34122019-06-29 Eric Botcazou <ebotcazou@adacore.com>
3413
3414 * gcc-interface/decl.c (set_nonaliased_component_on_array_type): Add
3415 missing guard for the presence of TYPE_CANONICAL.
3416 (set_reverse_storage_order_on_array_type): Likewise.
3417
2074c859 34182019-06-29 Eric Botcazou <ebotcazou@adacore.com>
3419
3420 * gcc-interface/gigi.h (make_packable_type): Remove default value.
3421 (value_factor_p): Tweak prototype.
3422 * gcc-interface/decl.c (gnat_to_gnu_entity): Add comment.
3423 (gnat_to_gnu_component_type): Likewise.
3424 (gnat_to_gnu_field): Likewise. Fetch the position of the field earlier
3425 and simplify the condition under which the type is packed. Declare
3426 local variable is_bitfield. Pass 1 as max_align to make_packable_type
3427 if it is set to true.
3428 (copy_and_substitute_in_layout): Pass 0 to make_packable_type.
3429 * gcc-interface/utils.c (make_packable_array_type): New function.
3430 (make_packable_type): Use it to rewrite the type of array field.
3431 (maybe_pad_type): Pass align parameter to make_packable_type.
3432 (create_field_decl): Minor tweaks.
3433 (value_factor_p): Assert that FACTOR is a power of 2 and replace the
3434 modulo computation by a masking operation.
3435
83c6da22 34362019-06-25 Eric Botcazou <ebotcazou@adacore.com>
3437
3438 * gcc-interface/decl.c (gnat_to_gnu_entity): Remove superfluous test
3439 in previous change.
3440 * gcc-interface/gigi.h (maybe_character_type): Fix formatting.
3441 (maybe_character_value): Likewise.
3442
aaabc7bc 34432019-06-24 Jan Hubicka <jh@suse.cz>
3444
3445 * gcc-interface/decl.c (gnat_to_gnu_entity): Check that
3446 type is array or integer prior checking string flag.
83c6da22 3447 * gcc-interface/gigi.h (maybe_character_type): Likewise.
3448 (maybe_character_value): Likewise.
aaabc7bc 3449
5fe09a56 34502019-06-24 Martin Sebor <msebor@redhat.com>
3451
3452 * gcc-interface/utils.c (handle_nonnull_attribute): Quote attribute
3453 name.
3454
bd9331d6 34552019-06-18 Arnaud Charlet <charlet@adacore.com>
3456
83c6da22 3457 PR ada/80590
bd9331d6 3458 * sem_ch5.adb (Analyze_Loop_Statement): Avoid exception propagation
3459 during normal processing.
3460
8a5a7d1c 34612019-06-17 Arnaud Charlet <charlet@adacore.com>
3462
83c6da22 3463 PR ada/80590
8a5a7d1c 3464 * exp_ch9.adb (Expand_N_Delay_Relative_Statement): Swap the two
3465 conditions to avoid a unnecessary exception propagation in the default
3466 case.
3467
580934f6 34682019-05-28 Eric Botcazou <ebotcazou@adacore.com>
3469
3470 * gcc-interface/utils.c (handle_stack_protect_attribute): Move around.
3471
c8956236 34722019-05-28 Eric Botcazou <ebotcazou@adacore.com>
3473
3474 * doc/gnat_rm/implementation_defined_pragmas.rst (Machine_Attribute):
3475 Document additional optional parameters.
3476 * sem_prag.adb (Analyze_Pragma) <Pragma_Machine_Attribute>: Accept
3477 more than one optional parameter.
3478 * gcc-interface/decl.c (prepend_one_attribute_pragma): Alphabetize
3479 the list of supported pragmas. Simplify the handling of parameters
3480 and add support for more than one optional parameter.
3481 * gcc-interface/utils.c (attr_cold_hot_exclusions): New constant.
3482 (gnat_internal_attribute_table): Add entry for no_icf, noipa, flatten,
3483 used, cold, hot, target and target_clones.
3484 (begin_subprog_body): Do not create the RTL for the subprogram here.
3485 (handle_noicf_attribute): New static function.
3486 (handle_noipa_attribute): Likewise.
3487 (handle_flatten_attribute): Likewise.
3488 (handle_used_attribute): Likewise.
3489 (handle_cold_attribute): Likewise.
3490 (handle_hot_attribute): Likewise.
3491 (handle_target_attribute): Likewise.
3492 (handle_target_clones_attribute): Likewise.
3493
62b762c2 34942019-05-28 Eric Botcazou <ebotcazou@adacore.com>
3495
3496 * gcc-interface/trans.c (lvalue_required_for_attribute_p): Return 0
3497 for 'Size too.
3498 (Identifier_to_gnu): Use the actual subtype for a reference to a
3499 packed array in a return statement.
3500 (Attribute_to_gnu) <Attr_Size>: Do not strip VIEW_CONVERT_EXPRs from
3501 the prefix in every case.
3502
336a61a3 35032019-05-28 Eric Botcazou <ebotcazou@adacore.com>
3504
3505 * gcc-interface/trans.c (gnat_to_gnu): Remove superfluous tests on
3506 Backend_Overflow_Checks_On_Target and rework comments.
3507
983c5b5e 35082019-05-28 Eric Botcazou <ebotcazou@adacore.com>
3509
3510 * gcc-interface/trans.c (walk_nesting_tree): New static function.
3511 (finalize_nrv): Use it to walk the entire nesting tree.
3512
96b4b84e 35132019-05-28 Eric Botcazou <ebotcazou@adacore.com>
3514
3515 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Remove
3516 obsolete test on Is_For_Access_Subtype.
3517
0b74284e 35182019-05-28 Eric Botcazou <ebotcazou@adacore.com>
3519
3520 * gcc-interface/decl.c (components_to_record): Set a name on the type
3521 created for the REP part, if any.
3522 * gcc-interface/utils.c (finish_record_type): Only take the maximum
3523 when merging sizes for a variant part at offset 0.
3524 (merge_sizes): Rename has_rep parameter into max.
3525
689dab9d 35262019-05-28 Eric Botcazou <ebotcazou@adacore.com>
3527
3528 * gcc-interface/utils.c (gnat_internal_attribute_table): Add support
3529 for stack_protect attribute.
3530 (handle_stack_protect_attribute): New static function.
3531
804f7d39 35322019-05-28 Eric Botcazou <ebotcazou@adacore.com>
3533
3534 * gcc-interface/decl.c (intrin_arglists_compatible_p): Do not return
3535 false if the internal builtin uses a variable list.
3536
f07f94cc 35372019-05-27 Eric Botcazou <ebotcazou@adacore.com>
3538
3539 * gcc-interface/trans.c (Call_to_gnu): Do not initialize the temporary
3540 created out of addressability concerns if it's for the _Init parameter
3541 of an initialization procedure.
3542
abfd658b 35432019-05-27 Eric Botcazou <ebotcazou@adacore.com>
3544
3545 * gcc-interface/ada-builtin-types.def: New file.
3546 * gcc-interface/ada-builtins.def: Likewise.
3547 * gcc-interface/ada-tree.h (BUILT_IN_LIKELY): New macro.
3548 (BUILT_IN_UNLIKELY): Likewise.
3549 * gcc-interface/trans.c (independent_iterations_p): Initialize the
3550 auto-vector to 16 elements.
3551 (Call_to_gnu): Remove local variable and change the vector of actual
3552 parameters to an auto-vector. Do not convert actual parameters to
3553 the argument type for front-end built-in functions. Add support for
3554 front-end built-in functions.
3555 (build_noreturn_cond): Use internal instead of built-in function.
3556 * gcc-interface/utils.c (c_builtin_type): Include ada-builtin-types.def
3557 (install_builtin_function_types): Likewise.
3558 (install_builtin_functions): Include ada-builtins.def first.
3559
caab73a2 35602019-05-27 Eric Botcazou <ebotcazou@adacore.com>
3561
3562 * gcc-interface/utils.c (maybe_pad_type): Issue the warning for the
3563 specific case of component types preferably.
3564
f1ca2388 35652019-05-27 Eric Botcazou <ebotcazou@adacore.com>
3566
3567 * gcc-interface/trans.c (Identifier_to_gnu): Minor tweaks.
3568 (gnat_to_gnu): Do not convert the result if it is a reference to an
3569 unconstrained array used as the prefix of an attribute reference that
3570 requires an lvalue.
3571
e3f3573c 35722019-05-27 Eric Botcazou <ebotcazou@adacore.com>
3573
3574 * gcc-interface/trans.c (Gigi_Types_Compatible): New predicate.
3575 (Identifier_to_gnu): Use it to assert that the type of the identifier
3576 and that of its entity are compatible for gigi. Rename a couple of
3577 local variables and separate the processing of the result type.
3578
2306cd17 35792019-05-27 Eric Botcazou <ebotcazou@adacore.com>
3580
3581 * gcc-interface/trans.c (Call_to_gnu): Use the unpadded type when
3582 putting back an intermediate conversion the type of the actuals.
3583
6e4e9378 35842019-05-27 Eric Botcazou <ebotcazou@adacore.com>
3585
3586 * gcc-interface/trans.c (gnat_to_gnu) <Shift operations>: Convert the
3587 count to the unsigned version of its base type before proceeding.
3588
85b9be9b 35892019-05-16 Martin Sebor <msebor@redhat.com>
3590
3d6be0d5 3591 * gcc-interface/trans.c (check_inlining_for_nested_subprog): Quote
3592 reserved names.
85b9be9b 3593
65d973ca 35942019-05-08 Arnaud Charlet <charlet@adacore.com>
3595
3596 * standard.ads.h: New file.
3597
ff628b99 35982019-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3599
3600 * gcc-interface/Makefile.in (install-gcc-specs): Use foreach.
3601 Honor DESTDIR.
3602
ebd761d4 36032019-04-29 Michael K. Darling <darlingm@gmail.com>
3604
3605 * gnatvsn.ads: Bump Library_Version to 10.
3606
5f260823 36072019-04-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3608 Bernd Edlinger <bernd.edlinger@hotmail.de>
3609 Jakub Jelinek <jakub@redhat.com>
3610
3611 PR target/89093
3612 * raise-gcc.c (TARGET_ATTRIBUTE): Define.
3613 (continue_unwind, personality_body, PERSONALITY_FUNCTION): Add
3614 TARGET_ATTRIBUTE.
3615
d7ca95c0 36162019-04-07 Eric Botcazou <ebotcazou@adacore.com>
3617
3618 * libgnat/i-cexten.ads (CFloat_128): New type.
3619
26b21081 36202019-03-22 Dmitriy Anisimkov <anisimko@adacore.com>
3621
3622 PR ada/89583
3623 * libgnat/g-socket.adb (Bind_Socket, Connect_Socket,
3624 Send_Socket): Fix the computation of structure lengths passed to
3625 low level routines.
3626 (Is_IPv6_Address): Fix the number of expected colons.
3627
2f6d557f 36282019-03-11 Martin Liska <mliska@suse.cz>
3629
d325ee67 3630 * gcc-interface/misc.c (gnat_post_options): Wrap option name in string
3631 format message and fix GNU coding style.
2f6d557f 3632
c1ad6672 36332019-02-08 Eric Botcazou <ebotcazou@adacore.com>
3634
3635 * gcc-interface/trans.c (gnat_to_gnu) <N_Aggregate>: Minor tweak.
3636 * gcc-interface/utils.c (convert): Do not pad when doing an unchecked
3637 conversion here. Use TREE_CONSTANT throughout the function.
3638 (unchecked_convert): Also pad if the source is a CONSTRUCTOR and the
3639 destination is a more aligned array type or a larger aggregate type,
3640 but not between original and packable versions of a type.
3641
62a6ebbd 36422019-02-08 Eric Botcazou <ebotcazou@adacore.com>
3643
3644 * gcc-interface/utils.c (max_size) <tcc_unary>: Be prepared for an
3645 operand with VOID_TYPE.
3646
da383d19 36472019-02-08 Eric Botcazou <ebotcazou@adacore.com>
3648
3649 * gcc-interface/trans.c (elaborate_all_entities): Do not elaborate the
3650 entities of a package renaming another one.
3651
09c123a0 36522019-02-08 Eric Botcazou <ebotcazou@adacore.com>
3653
3654 * gcc-interface/trans.c (Regular_Loop_to_gnu): Replace tests on
3655 individual flag_unswitch_loops and flag_tree_loop_vectorize switches
3656 with test on global optimize switch.
3657 (Raise_Error_to_gnu): Likewise.
3658
a9dd7273 36592019-02-07 Eric Botcazou <ebotcazou@adacore.com>
3660
3661 * libgnarl/s-linux__sparc.ads (ETIMEDOUT): Set to correct value.
3662
4836c4f1 36632019-02-06 Arnaud Charlet <charlet@adacore.com>
3664
3665 * libgnarl/s-linux__x32.ads: Resync list of signals with s-linux.ads
3666
6b56937c 36672019-01-27 Eric Botcazou <ebotcazou@adacore.com>
3668
3669 * repinfo.adb (List_Component_Layout): Remove superfluous space for
3670 zero-sized field.
3671 * gcc-interface/ada-tree.h (TYPE_IS_EXTRA_SUBTYPE_P): New macro.
3672 * gcc-interface/gigi.h (create_extra_subtype): Declare.
3673 * gcc-interface/decl.c (TYPE_ARRAY_SIZE_LIMIT): Likewise.
3674 (update_n_elem): New function.
3675 (gnat_to_gnu_entity): Use create_extra_subtype to create extra subtypes
3676 instead of doing it manually.
3677 <E_Array_Type>: Use update_n_elem to compute the maximum size. Use the
3678 index type instead of base type for the bounds. Set TYPE_ARRAY_MAX_SIZE
3679 of the array to the maximum size.
3680 <E_Array_Subtype>: Create an extra subtype using the index type of the
3681 base array type for self-referential bounds. Use update_n_elem to
3682 compute the maximum size. Set TYPE_ARRAY_MAX_SIZE of the array to the
3683 maximum size.
3684 (gnat_to_gnu_field): Clear DECL_NONADDRESSABLE_P on discriminants.
3685 * gcc-interface/misc.c (gnat_get_alias_set): Return the alias set of
3686 the base type for an extra subtype.
3687 (gnat_type_max_size): Remove obsolete code.
3688 * gcc-interface/trans.c (Attribute_to_gnu): Minor tweak.
3689 (can_be_lower_p): Deal with pathological types.
3690 * gcc-interface/utils.c (create_extra_subtype): New function.
3691 (create_field_decl): Minor tweak.
3692 (max_size) <tcc_reference>: Compute a better value by using the extra
3693 subtypes on the self-referential bounds.
3694 <tcc_binary>: Rewrite. Deal with "negative value" in unsigned types.
3695 <tcc_expression>: Likewise.
3696 * gcc-interface/utils2.c (compare_arrays): Retrieve the original bounds
3697 of the arrays upfront. Swap only if the second length is not constant.
3698 Use comparisons on the original bounds consistently for the null tests.
3699 (build_binary_op): Use TYPE_IS_EXTRA_SUBTYPE_P macro.
3700 (build_allocator): Minor tweak.
3701
ecb2c722 37022019-01-27 Eric Botcazou <ebotcazou@adacore.com>
3703
3704 * gcc-interface/decl.c (array_type_has_nonaliased_component): Return
3705 the same value for every dimension of a multidimensional array type.
3706
10f25579 37072019-01-26 Eric Botcazou <ebotcazou@adacore.com>
3708
3709 * gcc-interface/trans.c (Regular_Loop_to_gnu): Use the SLOC of the
3710 iteration scheme, if present, throughout the translation.
3711
aced6683 37122019-01-26 Eric Botcazou <ebotcazou@adacore.com>
3713
3714 * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Use
3715 DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT for the size to be assigned
3716 by a call to memset if the LHS is a DECL.
3717
18b4b30e 37182019-01-26 Eric Botcazou <ebotcazou@adacore.com>
3719
3720 * gcc-interface/trans.c (struct loop_info_d): Remove artificial field.
3721 (Loop_Statement_to_gnu): Do not set it.
3722
6dce35b7 37232019-01-26 Eric Botcazou <ebotcazou@adacore.com>
3724
3725 * gcc-interface/trans.c (Iterate_Acc_Clause_Arg): Fix formatting.
3726 (Acc_gnat_to_gnu): Likewise.
3727 (Acc_Data_to_gnu): Likewise.
3728 (Acc_Var_to_gnu): Likewise.
3729 (Acc_Reduc_to_gnu): Likewise.
3730 (Acc_Size_List_to_gnu): Likewise.
3731 (Pragma_to_gnu) <Pragma_Acc_Loop>: Likewise.
3732 <Pragma_Acc_Data>): Likewise.
3733 (find_loop_for): Remove default value for parameters.
3734 * gcc-interface/trans.c (gnat_to_gnu) <N_Op_And>: Merge into...
3735 <N_Op_Eq>): ...this.
3736
f8cd11ee 37372019-01-26 Eric Botcazou <ebotcazou@adacore.com>
3738
3739 * gcc-interface/decl.c (annotate_value) <INTEGER_CST>: Use test on
3740 the sign bit instead of on the sign of the value.
3741 <PLUS_EXPR>: Turn addition of negative constant into subtraction.
3742 <MULT_EXPR>: Add test for degenerate case.
3743 <BIT_AND_EXPR>: Simplify.
3744
9a3c51d9 37452019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
3746
3747 * s-oscons-tmplt.c (AF_INET6): Do not undefine for RTEMS.
3748
07c11f2b 37492019-01-09 Sandra Loosemore <sandra@codesourcery.com>
3750
3751 PR other/16615
07c11f2b 3752 * exp_ch11.adb: Change "can not" to "cannot".
3753 * sem_ch4.adb: Likewise.
3754
f4d3c071 37552019-01-09 Sandra Loosemore <sandra@codesourcery.com>
3756
3757 PR other/16615
f4d3c071 3758 * exp_ch9.adb: Mechanically replace "can not" with "cannot".
3759 * libgnat/s-regpat.ads: Likewise.
3760 * par-ch4.adb: Likewise.
3761 * set_targ.adb: Likewise.
3762 * types.ads: Likewise.
3763
902071d1 37642019-01-08 Justin Squirek <squirek@adacore.com>
3765
3766 Revert:
902071d1 3767 2018-07-31 Justin Squirek <squirek@adacore.com>
3768
76fb0465 3769 * lib-writ.adb (Write_With_Lines): Modfiy the generation
3770 of dependencies within ali files so that source unit
3771 bodies are properly listed even if said bodies are
3772 missing. Perform legacy behavior in GNATprove mode.
3773 * lib-writ.ads: Modify documentation to reflect current
3774 behavior.
902071d1 3775
3776 and:
902071d1 3777 2018-09-26 Justin Squirek <squirek@adacore.com>
3778
76fb0465 3779 * lib-writ.adb, lib-writ.ads (Write_With_Lines): Add
3780 documentation and an extra conditional check for RCI
3781 units so that generated ali files will list the spec
3782 only instead of a body when a body is not found.
902071d1 3783
65a33d4a 37842019-01-04 Eric Botcazou <ebotcazou@adacore.com>
3785
3786 * gnatvsn.ads: Bump copyright year.
3787
3d8932fd 37882019-01-01 Jakub Jelinek <jakub@redhat.com>
8e8f6434 3789
fbd26352 3790 Update copyright years.
3791
277184bc 3792 * gnat_ugn.texi: Bump @copying's copyright year.
3793 * gnat_rm.texi: Likewise.
7dfbd804 3794\f
3d8932fd 3795Copyright (C) 2019 Free Software Foundation, Inc.
7dfbd804 3796
3797Copying and distribution of this file, with or without modification,
3798are permitted in any medium without royalty provided the copyright
3799notice and this notice are preserved.