]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ada/ChangeLog
[Ada] Expand type of static expressions in GNATprove mode
[thirdparty/gcc.git] / gcc / ada / ChangeLog
CommitLineData
8235b943 12019-07-09 Yannick Moy <moy@adacore.com>
2
3 * exp_util.adb (Expand_Subtype_From_Expr): Still expand the type
4 of static expressions in GNATprove_Mode.
5 * sem_ch3.adb (Analyze_Object_Declaration): Remove obsolete
6 special case for GNATprove_Mode.
7
cf9af2fa 82019-07-09 Piotr Trojanek <trojanek@adacore.com>
9
10 * doc/gnat_rm/the_gnat_library.rst,
11 doc/gnat_ugn/building_executable_programs_with_gnat.rst,
12 erroutc.adb, libgnat/g-comlin.adb, libgnat/g-comlin.ads,
13 libgnat/g-regexp.ads, libgnat/g-regpat.ads,
14 libgnat/g-spipat.ads, libgnat/s-os_lib.ads,
15 libgnat/s-regexp.ads: Reword "wild card" to "wildcard".
16 * gnat_rm.texi, gnat_ugn.texi: Regenerate.
17
a080baa9 182019-07-09 Yannick Moy <moy@adacore.com>
19
20 * sem_spark.adb (Check_Expression): Handle correctly implicit
21 assignments as part of allocators and (extension) aggregates.
22 (Get_Root_Object): Adapt for new path expressions.
23 (Is_Path_Expression): Return True for (extension) aggregate.
24
d9b7ae15 252019-07-09 Piotr Trojanek <trojanek@adacore.com>
26
27 * einfo.ads: Fix a typo.
28
4c24efa6 292019-07-09 Ed Schonberg <schonberg@adacore.com>
30
31 * sem_util.adb (Scope_Within_Or_Same): Handle properly task
32 bodies and protected bodies, so that local variables within have
33 their proper scopes after these constructs have been rewritten
34 during expansion. This patch resembles but is not identical to
35 the code in Scope_Within.
36
6c334e66 372019-07-09 Arnaud Charlet <charlet@adacore.com>
38
39 * gnat1drv.adb (Adjust_Global_Switches): Set
40 Dynamic_Elaboration_Checks to True in CodePeer mode.
41
82c20af0 422019-07-09 Yannick Moy <moy@adacore.com>
43
44 * sem_spark.adb (Get_Perm_Or_Tree): Issue an error when
45 encountering unknown global variable.
46
a42b8e6a 472019-07-09 Yannick Moy <moy@adacore.com>
48
49 * sem_spark.adb (Check_Expression): Change signature to take an
50 Extended_Checking_Mode, for handling read permission checking of
51 sub-expressions in an assignment.
52 (Check_Parameter_Or_Global): Adapt to new behavior of
53 Check_Expression for mode Assign.
54 (Check_Safe_Pointers): Do not analyze generic bodies.
55 (Check_Assignment): Separate checking of the target of an
56 assignment.
57
5fb4f6e3 582019-07-09 Eric Botcazou <ebotcazou@adacore.com>
59
60 * repinfo.ads (JSON format): Adjust.
61 * repinfo.adb (Need_Blank_Line): Rename to...
62 (Need_Separator): ...this.
63 (Blank_Line): Rename to...
64 (Write_Separator): ...this and add JSON specific handling.
65 (List_Array_Info): Adjust to above renaming.
66 (List_Object_Info): Likewise.
67 (List_Record_Info): Likewise.
68 (List_Subprogram_Info): Likewise.
69 (List_Type_Info): Likewise.
70 (List_Entities): Do not set Need_Blank_Line.
71 (List_Rep_Info): Set Need_Separator and add JSON specific
72 handling. Output a single JSON stream in the normal case.
73
b389ec1e 742019-07-09 Arnaud Charlet <charlet@adacore.com>
75
76 * doc/gnat_ugn/the_gnat_compilation_model.rst: Update doc on
77 -fdump-ada-spec now that we generate Ada 2012.
78 * gnat_ugn.texi: Regenerate.
79
5acb3702 802019-07-08 Eric Botcazou <ebotcazou@adacore.com>
81
82 * repinfo.adb (List_Common_Type_Info): New procedure extracted
83 from...
84 (List_Type_Info): ...here. Call it for the common information,
85 start with a blank line and output the linker section at the
86 end, if any.
87 (List_Mechanisms): Rename to...
88 (List_Subprogram_Info): ...this.
89 (List_Array_Info): Call List_Common_Type_Info.
90 (List_Entities): Adjust to above change and renaming.
91 (List_Record_Info): Call List_Common_Type_Info.
92
6eb57612 932019-07-08 Dmitriy Anisimkov <anisimko@adacore.com>
94
95 * libgnat/g-sercom.ads
96 (Serial_Port_Descriptor): New type.
97 (Serial_Port): Add a comment, make it hold a
98 Serial_Port_Descriptor.
99 (To_Ada, To_C): New procedures.
100 (Port_Data, Port_Data_Access): Remove types.
101 * libgnat/g-sercom.adb (To_Ada): New stub.
102 * libgnat/g-sercom__linux.adb, libgnat/g-sercom__mingw.adb:
103 Update implementations accordingly.
104 * s-oscons-tmplt.c: Bind Serial_Port_Descriptor to
105 System.Win32.HANDLE on Windows, and to Interfaces.C.int on
106 Linux. Add "Interfaces.C." prefix for other basic integer type
107 bindings.
108 * xoscons.adb (Output_Info): Remove the "Interfaces.C." prefix
109 for subtypes generation.
110
08da2ad9 1112019-07-08 Arnaud Charlet <charlet@adacore.com>
112
113 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
114 Update documentation on No_Exceptions restriction.
115 * gnat_rm.texi: Regenerate.
116
89b07420 1172019-07-08 Dmitriy Anisimkov <anisimko@adacore.com>
118
119 * libgnat/s-os_lib.adb: Do not call __gnat_kill for Invalid_Pid.
120
0cc34fed 1212019-07-08 Piotr Trojanek <trojanek@adacore.com>
122
123 * sem_util.adb (Enclosing_Package_Or_Subprogram): Do not expect
124 package and subprogram bodies.
125
46299a06 1262019-07-08 Bob Duff <duff@adacore.com>
127
128 * doc/gnat_ugn/gnat_utility_programs.rst: Remove documentation
129 of ignored GNATpp switch.
130
4475d2f0 1312019-07-08 Hristian Kirtchev <kirtchev@adacore.com>
132
133 * doc/gnat_rm/implementation_defined_pragmas.rst:
134 Update the documentation of pragma Initialize_Scalars.
135 * gnat_rm.texi: Regenerate.
136
b282b25b 1372019-07-08 Javier Miranda <miranda@adacore.com>
138
139 * exp_ch4.adb (Tagged_Membership): Fix regression silently
140 introduced in r260738 that erroneouslusy causes the evaluation
141 to True of the membership test when the left operand of the
142 membership test is a class-wide interface object and the right
143 operand is a type that implements such interface type.
144
703ee0e0 1452019-07-08 Hristian Kirtchev <kirtchev@adacore.com>
146
147 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Do not
148 register an address clause when its prefix denotes a generic
149 formal object.
150
e6b4414e 1512019-07-08 Hristian Kirtchev <kirtchev@adacore.com>
152
153 * bindo-diagnostics.adb (Diagnose_Cycle): Capture the presence
154 of an Elaborate_All edge before iterating over the edges of the
155 cycle.
156 (Output_Elaborate_Body_Transition): Update the parameter profile
157 and the comment on usage. Add a missing case where the edge is
158 within the context of an Elaborate_All.
159 (Output_Transition): Update the call to
160 Output_Elaborate_Body_Transition.
161 * bindo-graphs.ads, bindo-graphs.adb
162 (Contains_Elaborate_All_Edge): New routine.
163
5a4de65a 1642019-07-08 Piotr Trojanek <trojanek@adacore.com>
165
166 * lib-xref-spark_specific.adb (Create_Heap): Set dummy Etype for
167 the fake __HEAP entity.
168
42253061 1692019-07-08 Daniel Mercier <mercier@adacore.com>
170
171 * gnat1drv.adb: Suppress warnings on memory representation in
172 CodePeer compiler mode.
173
a7c8fd7e 1742019-07-08 Nicolas Roche <roche@adacore.com>
175
176 * rtinit.c (__gnat_runtime_initialize): Remove dependency on
177 CommandLineToArgvW.
178
89c9dd55 1792019-07-08 Doug Rupp <rupp@adacore.com>
180
181 * Makefile.rtl: Handle vxworks7r2 in x86_64 and x86 vxworks7.
182
944903c8 1832019-07-08 Dmitriy Anisimkov <anisimko@adacore.com>
184
185 * Makefile.rtl: Use g-sercom__linux.adb for all linuxes.
186
e51a140c 1872019-07-08 Yannick Moy <moy@adacore.com>
188
189 * expander.adb (Expand): Do not reset Analyzed flag always.
190 * sem_eval.adb (Fold_Ureal): Mark node as analyzed.
191
f117e449 1922019-07-08 Ed Schonberg <schonberg@adacore.com>
193
194 * exp_ch9.adb (Expand_N_Timed_Entry_Call): Do not insert twice
195 the assignment statement that computes the delay value, to
196 prevent improper tree sharing when the value is a type
197 conversion and Float_Overflow checks are enabled.
198
f5cb3a59 1992019-07-08 Hristian Kirtchev <kirtchev@adacore.com>
200
201 * bindo.adb: Update the section on terminology to include new
202 concepts. Update the section on switches to include new
203 entries.
204 * bindo.ads: Add type Precedence_Kind.
205 * bindo-builders.adb: Add with and use clauses for Debug and
206 Bindo.Validators. Add use clauses for
207 Bindo.Validators.Invocation_Graph_Validators and
208 Bindo.Validators.Library_Graph_Validators.
209 (Build_Invocation_Graph): Validate the graph immediately after
210 it was built.
211 (Build_Library_Graph): Update the parameter profile. The
212 creation of the graph is now elaboration model-agnostic.
213 Validate the graph immediately after it was built.
214 (Create_With_Edge): Create regular with edges for Elaborate and
215 Elaborate_All edges when the appropriate debug switches are in
216 effect.
217 * bindo-builders.ads (Build_Library_Graph): Update the parameter
218 profile.
219 * bindo-diagnostics.adb (Diagnose_Cycle): Track the presence of
220 an Elaborate_All edge throughout the inspection of the cycle's
221 edges.
222 (Output_Dynamic_Model_Suggestions): Output the suggestion only
223 when the cycle contains at least one weak edge where the
224 successor was statically elaborated.
225 (Output_Elaborate_Body_Transition, Output_Forced_Transition,
226 Output_With_Transition): Update the assertions.
227 * bindo-elaborators.adb: Remove use clauses for
228 Bindo.Validators.Invocation_Graph_Validators and
229 Bindo.Validators.Library_Graph_Validators. Remove strings
230 Add_To_All_Candidates_Msg and Add_To_Comp_Candidates_Msg.
231 Remove type String_Ptr.
232 (Add_Vertex, Add_Vertex_If_Elaborable, Create_All_Candidates_Set
233 Create_Component_Candidates_Set): Remove.
234 (Create_Component_Vertex_Sets, Create_Vertex_Sets): New routine.
235 (Elaborate_Component): Update the parameter profile and the
236 comment on usage. Reimplement the elaboration of a component.
237 The algorithm will now attempt to elaborate as many vertices
238 possible. If this is not possible, and a weakly elaborable
239 vertex is available use unit was compiled using the dynamic
240 model, the algorithm will elaborate it.
241 (Elaborate_Library_Graph): Reimplement the elaboration of the
242 graph. The algorithm will now attempt to elaborate as many
243 vertices along with their components as possible. If this is not
244 possible, and a weakly elaborable vertex is available use unit
245 was compiled using the dynamic model, the algorithm will
246 elaborate it along with its component.
247 (Elaborate_Units): Merge with the functionality of
248 Elaborate_Units_Common.
249 (Elaborate_Units_Common, Elaborate_Units_Dynamic,
250 Elaborate_Units_Static): Remove.
251 (Elaborate_Vertex): Update the parameter profile and the comment
252 on usage. Reimplemented.
253 (Find_Best_Candidate): Remove.
254 (Find_Best_Elaborable_Vertex, Find_Best_Vertex,
255 Find_Best_Weakly_Elaborable_Vertex, Has_Elaborable_Body,
256 Insert_Elaborable_Successor, Insert_Vertex): New routines.
257 (Is_Better_Candidate): Remove.
258 (Is_Better_Elaborable_Vertex,
259 Is_Better_Weakly_Elaborable_Vertex,
260 Is_Suitable_Elaborable_Vertex,
261 Is_Suitable_Weakly_Elaborable_Vertex): New routines.
262 (Trace_Candidate_Vertices): Remove.
263 (Trace_Component): Output the number of strong and weak
264 predecessors.
265 (Trace_Unelaborated_Vertices): Remove.
266 (Trace_Vertex): Output the number of strong and weak
267 predecessors.
268 (Trace_Vertices): New routine.
269 (Update_Successor, Update_Successors): Update the parameter
270 profile and the comment on usage.
271 * bindo-graphs.adb: Remove type Precedence_Kind.
272 (Add_Edge_With_Return): Update the increment of pending
273 predecessors.
274 (Add_Vertex): Provide default values for strong and weak
275 predecessors.
276 (Complementary_Vertex): Move the initial declaration to the
277 spec. Update the parameter profile and the comment on usage.
278 (Contains_Weak_Static_Successor): New routine.
279 (Create): Update the parameter profile. The creation of the
280 graph is now elaboration model-agnostic.
281 (Decrement_Pending_Predecessors): Update the parameter profile
282 and the comment on usage. Reimplemented.
283 (Delete_Edge): Update the decrement of pending predecesors.
284 (Has_Elaborate_Body): Do not treat a vertex as being subject to
285 Elaborate_Body when a debug switch is in effect.
286 (Increment_Pending_Predecessors): Update the parameter profile
287 and the comment on usage. Reimplemented.
288 (Is_Elaborable_Component): Reimplemented.
289 (Is_Elaborable_Vertex): Move the initial declaration to the
290 spec. Reimplemented.
291 (Is_Elaborate_Body_Pair): New routine.
292 (Is_Dynamically_Elaborated): Update the parameter profile.
293 Reimplemented.
294 (Is_Weakly_Elaborable_Vertex): New routine.
295 (Pending_Predecessors): Removed.
296 (Pending_Predecessors_For_Elaboration,
297 Pending_Strong_Predecessors, Pending_Weak_Predecessors,
298 Update_Pending_Predecessors): New routines.
299 (Update_Pending_Predecessors_Of_Components): Update the
300 increment of pending predecessors.
301 * bindo-graphs.ads: Update the components of type
302 Component_Attributes. Update the components of type
303 Library_Graph_Attributes. Update the components of type
304 Library_Graph_Vertex_Attributes. Update the initialization of
305 No_Component_Attributes. Update the initialization of
306 No_Library_Graph_Vertex_Attributes.
307 (Complementary_Vertex, Contains_Weak_Static_Successor): New
308 routines.
309 (Create): Update the parameter profile and the comment on usage.
310 (Decrement_Pending_Predecessors, Is_Dynamically_Elaborated):
311 Update the parameter profile and the comment on usage.
312 (Is_Elaborate_Body_Pair, Is_Weakly_Elaborable_Vertex): New
313 routines.
314 (Pending_Predecessors): Removed.
315 (Pending_Predecessors_For_Elaboration,
316 Pending_Strong_Predecessors, Pending_Weak_Predecessors): New
317 routines.
318 * bindo-writers.adb (Write_Components): Moved from the spec.
319 (Write_Component): Output the strong and weak predecessors.
320 (Write_Library_Graph): Output the components as part of the
321 graph.
322 (Write_Library_Graph_Vertex): Output the strong and weak
323 predecessors.
324 * bindo-writers.ads (Write_Components): Moved to the body.
325 * debug.adb: Add and document new GNATbind switches -d_a, -d_b,
326 -d_e.
327 * bindo-validators.adb: Minor reformattings.
328
7b8ca6b2 3292019-07-08 Bob Duff <duff@adacore.com>
330
331 * libgnat/g-sercom.ads, libgnat/g-sercom__linux.adb (Data_Rate):
332 Support additional data rates.
333
364c746f 3342019-07-08 Olivier Hainque <hainque@adacore.com>
335
336 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Don't request
337 DECL_ARTIFICIAL_P on elab proc declarations.
338
2dbfbbb2 3392019-07-08 Eric Botcazou <ebotcazou@adacore.com>
340
341 * repinfo.adb (List_Record_Info): Declare Incomplete_Layout and
342 Not_In_Extended_Main local exceptions.
343 (List_Structural_Record_Layout): For an extension, raise the
344 former if the parent subtype has not been built and the latter
345 if it is not declared in the main source unit. Fall back to the
346 flat layout if either exception has been raised.
347
3e05bbec 3482019-07-08 Ed Schonberg <schonberg@adacore.com>
349
350 * libgnat/a-strfix.adb (Delete): The RM describes the semantics
351 of Delete as equivalent to that of Replace_String with a null
352 argument. As a result, deleting a null string that starts past
353 the end of its argument is a noop and must not raise
354 Index_Error.
355
c98aac61 3562019-07-08 Javier Miranda <miranda@adacore.com>
357
358 * exp_disp.adb (Register_Primitive): When registering a
359 primitive in the secondary dispatch table, handle primitive
360 inherited through several levels of type derivation (required to
361 properly handle inherited 'null' primitive).
362
221b67b6 3632019-07-08 Bob Duff <duff@adacore.com>
364
365 * doc/gnat_ugn/gnat_utility_programs.rst: Document handling of
366 preprocessor directives in GNATpp.
367
aed4e06a 3682019-07-08 Javier Miranda <miranda@adacore.com>
369
370 * gnat1drv.adb (Post_Compilation_Validation_Checks:
371 Validate_Compile_Time_Warning_Errors is now located in sem_prag
372 (instead of sem_ch13).
373 * sem_ch13.ads (Validate_Compile_Time_Warning_Error,
374 Validate_Compile_Time_Warning_Errors): Move to sem_prag.
375 * sem_ch13.adb
376 (Compile_Time_Warnings_Errors): Move to sem_prag.
377 (Initialize): Remove initialization of table
378 Compile_Time_Warning_Errors.
379 (Validate_Compile_Time_Warning_Error,
380 Validate_Compile_Time_Warning_Errors): Move to sem_prag.
381 * sem_prag.ads (Validate_Compile_Time_Warning_Errors): New
382 procedure.
383 * sem_prag.adb (Initialize): Initialize table
384 Compile_Time_Warning_Errors.
385
b9bd5934 3862019-07-08 Ed Schonberg <schonberg@adacore.com>
387
388 * sem_ch13.adb (Analyze_Aspect_Specifications): For a
389 pre/postcondition of a generic subprogram declaration, do not
390 use Relocate_Node on the aspect expression to construct the
391 corresponding attribute specification, to prevent tree anomalies
392 when the expression is a call with named actual parameters.
393
63bb17d8 3942019-07-08 Javier Miranda <miranda@adacore.com>
395
396 * sem_attr.adb (Analyze_Attribute [Attribute_Size]): For pragmas
397 used to report user defined compile time warning or errors
398 handle 'Size for types with known static RM size.
399
1979cbfe 4002019-07-08 Justin Squirek <squirek@adacore.com>
401
402 * exp_imgv.adb (Build_Enumeration_Image_Tables): Default SSO for
403 the building of image tables.
404 (Expand_Image_Attribute): Minor cleanup.
405
bcb0a375 4062019-07-08 Dmitriy Anisimkov <anisimko@adacore.com>
407
408 * libgnat/g-socket.ads, libgnat/g-socket.adb: Improve
409 documentation.
410 (Get_Socket_Option, Set_Socket_Option): Remove default value for
411 the Level formal.
412
429822c1 4132019-07-08 Ed Schonberg <schonberg@adacore.com>
414
415 * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): For an
416 unanalized aspect in a generic context that has not been
417 analyzed yet, if the aspect applies to a type, place the type on
418 the scope stack to make its components visible, before checking
419 conformance with the version of the expression analyzed at the
420 freeze point.
421
e1415398 4222019-07-05 Justin Squirek <squirek@adacore.com>
423
424 * checks.adb (Apply_Accessibility_Check): Add logic to fetch the
425 function result accessibility level if one is required within
426 the generated check.
427 * exp_ch6.adb (Needs_Result_Accessibility_Level): Modify
428 controlling elsif block to handle more cases such as anonymous
429 access results and disable checking for coextensions.
430
dad9e9f8 4312019-07-05 Ed Schonberg <schonberg@adacore.com>
432
433 * sem_ch9.adb (Analyze_Accept_Statement): If this is an illegal
434 accept statement for an enclosing entry abandon analysis to
435 prevent scope mismatches and potential infinite loops in
436 compiler.
437
627d0751 4382019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
439
440 * ali.adb (For_Each_Invocation_Construct,
441 For_Each_Invocation_Relation): New version.
442 (Scan_ALI): Initialize field Invocation_Graph_Encoding.
443 (Set_Invocation_Graph_Encoding): Update the setting of the
444 invocation graph encoding.
445 * ali.ads: Move field Invocation_Graph_Encoding from Unit_Record
446 to ALI_Record because the encoding applies to the whole ALI,
447 rather than one of the units (spec or body) for which the ALI
448 file was created.
449 (For_Each_Invocation_Construct, For_Each_Invocation_Relation):
450 New version.
451 * bindo.adb: Update the section on switches. Complete the
452 section of debugging elaboration order issues.
453 (Find_Elaboration_Order): Prepare the routine for the switch
454 from the old to the new elaboration order mechanism.
455 * bindo-diagnostics.adb (Find_And_Output_Invocation_Paths):
456 Manage a visited set used by Visit_Vertex.
457 (Output_All_Cycles_Suggestions,
458 Output_Dynamic_Model_Suggestions): Clarify the nature of the
459 suggested switch.
460 (Output_Elaborate_Body_Transition): Update the diagnostic to
461 emit a better message.
462 (Output_Forced_Suggestions, Output_Full_Encoding_Suggestions):
463 Clarify the nature of the suggested switch.
464 (Visit_Vertex): Update the parameter profile to add a set of
465 invokers visited during the transition. This set prevents
466 infinite exploration of the graph in case the invocations are
467 recursive.
468 * bindo-elaborators.adb: Add a use clause for
469 Bindo.Writers.Dependency_Writers.
470 (Elaborate_Units_Common): Output the library graph after it has
471 been augmented with invocation edges. Output just the components
472 instead of outputting the whole library graph again.
473 (Elaborate_Units_Dynamic, Elaborate_Units_Static): Output the
474 dependencies as expressed in the library graph.
475 * bindo-units.adb (Invocation_Graph_Encoding): Update the
476 extraction of the invocation graph encoding.
477 * bindo-writers.adb: Add with and use clauses for Binderr and
478 Butil.
479 (palgc, plgc): New debug routine.
480 (Write_Components): Moved to the spec. Add a header for the
481 output.
482 (Write_Dependencies, Write_Dependencies_Of_Vertex,
483 Write_Dependency_Edge): New routine.
484 (Write_Elaboration_Order): Update the logic to follow the format
485 of Binde's order output.
486 (Write_Library_Graph): Do not output the components every time
487 the graph is written.
488 (Write_Unit): Output the invocation graph encoding of the unit.
489 Output the invocation constructs and relations for the unit
490 only.
491 * bindo-writers.ads (Write_Components): Moved from the body.
492 (Write_Dependencies): New routine.
493 * bindusg.adb: Prepare the routine for the switch from the old
494 to the new elaboration order mechanism.
495 * debug.adb: Binder switch -d_O is now not associated with any
496 functionality.
497 * einfo.adb (Is_Elaboration_Target): The attribute applies to
498 packages, as specified by the comment on the attribute usage.
499 * opt.ads: Add a global flag which controls the choice between
500 the new and the legacy elaboration order mechanism.
501 * sem_elab.adb: Add Package_Target to type Target_Kind.
502 (Build_Elaborate_Body_Procedure, Build_Elaborate_Procedure,
503 Build_Elaborate_Spec_Procedure, Check_Elaboration_Scenarios,
504 Check_SPARK_Model_In_Effect): Use Main_Unit_Entity to obtain the
505 entity of the main unit.
506 (Create_Package_Rep): New routine.
507 (Create_Target_Rep): Add processing for packages.
508 (Declaration_Placement_Of_Node, Has_Prior_Elaboration): Use
509 Main_Unit_Entity to obtain the entity of the main
510 unit.
511 (Invocation_Graph_Recording_OK): Prepare the routine for the
512 switch from the old to the new elaboration order mechanism.
513 (Main_Unit_Entity): New routine.
514 (Meet_Elaboration_Requirement,
515 Process_Conditional_ABE_Variable_Reference): Use
516 Main_Unit_Entity to obtain the entity of the main unit.
517 (Process_Invocation_Instantiation): New routine.
518 (Process_Invocation_Scenario): Add processing for
519 instantiations.
520 * switch-b.adb (Scan_Binder_Switches): Prepare the routine for
521 the switch from the old to the new elaboration order mechanism.
522
30fb27b1 5232019-07-05 Joffrey Huguet <huguet@adacore.com>
524
525 * libgnat/a-textio.adb: Add abstract state refinment.
526 * libgnat/a-textio.ads: Add File_System abstract state. Add
527 global contracts, contract cases, preconditions and
528 postconditions to procedures and functions.
529 (Set_Input, Set_Output, Set_Error, Standard_Input,
530 Standard_Output, Standard_Error, Current_Input, Current_Output,
531 Current_Error): Turn SPARK_Mode off.
532 (Get_Line): Turn SPARK_Mode off on Get_Line functions.
533 * libgnat/a-tideio.ads, libgnat/a-tienio.ads,
534 libgnat/a-tifiio.ads, libgnat/a-tiflio.ads,
535 libgnat/a-tiinio.ads, libgnat/a-timoio.ads: Add global
536 contracts, contract cases, preconditions and postconditions to
537 procedures and functions.
538
ce99fc8a 5392019-07-05 Arnaud Charlet <charlet@adacore.com>
540
541 * doc/gnat_ugn/platform_specific_information.rst: Refresh doc on
542 installing from the command line on Windows. Remove obsolete
543 part.
544 * gnat_ugn.texi: Regenerate.
545
26ea5003 5462019-07-05 Vasiliy Fofanov <fofanov@adacore.com>
547
548 * libgnat/a-wichha.ads (Is_Alphanumeric): Replace comment with
549 the correct one. Also capitalize references to False
550 throughout.
551
c9c81835 5522019-07-05 Eric Botcazou <ebotcazou@adacore.com>
553
554 * exp_ch4.adb (Expand_N_Indexed_Component): Do not expand actual
555 parameters of function calls here either.
556
50948c8a 5572019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
558
559 * bindo-units.adb, checks.adb, exp_attr.adb, exp_ch3.adb,
560 exp_ch4.adb, exp_pakd.adb, lib-writ.adb, libgnat/g-traceb.adb,
561 libgnat/g-traceb.ads, libgnat/s-stratt.ads, sem_aux.ads,
562 sem_util.adb: Minor reformatting.
563
a9fa50ab 5642019-07-05 Ed Schonberg <schonberg@adacore.com>
565
566 * sem_ch13.adb (Build_Predicate_Functions): If a subtype that
567 carries a static predicate aspect is frozen immediately after
568 its declaration, ensure that the generated function body created
569 for predicate checking is inserted after the corresponding
570 subprogram declaration, which is created at the point the
571 declaration is elaborated.
572
ee4e1dd7 5732019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
574
575 * exp_ch7.adb (Cleanup_Record): Use the underlying type when
576 checking for components with tasks.
577
2028580f 5782019-07-05 Arnaud Charlet <charlet@adacore.com>
579
580 * libgnarl/s-osinte__linux.ads: Link with -lrt before -lpthread.
581
ec1e481f 5822019-07-05 Ed Schonberg <schonberg@adacore.com>
583
584 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Add explicit
585 range checks when the index type of the bit-packed array is an
586 enumeration type with a non-standard representation,
587
ae60396a 5882019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
589
590 * sem_res.adb (Is_Control_Flow_Statement): Delay statements
591 contain an expression, which in turn may have side effects and
592 affect the infinite recursion. As a result, delay statements
593 should not be treated specially.
594
d33025f2 5952019-07-05 Arnaud Charlet <charlet@adacore.com>
596
597 * libgnarl/s-linux.ads, libgnarl/s-linux__alpha.ads,
598 libgnarl/s-linux__android.ads, libgnarl/s-linux__hppa.ads,
599 libgnarl/s-linux__mips.ads, libgnarl/s-linux__riscv.ads,
600 libgnarl/s-linux__sparc.ads: Fix typos in comments.
601
51f2c7f9 6022019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
603
604 * sem_res.adb (Check_Infinite_Recursion): Reimplemented.
605 (Enclosing_Declaration_Or_Statement,
606 Invoked_With_Different_Arguments, Is_Conditional_Statement,
607 Is_Control_Flow_Statement, Is_Immediately_Within_Body,
608 Is_Raise_Idiom, Is_Raise_Statement, Is_Sole_Statement,
609 Preceded_By_Control_Flow_Statement,
610 Within_Conditional_Statement): New routines.
611
0e6f6ee1 6122019-07-05 Javier Miranda <miranda@adacore.com>
613
614 * exp_ch4.adb (Expand_N_Type_Conversion): Do not apply an
615 accessibility check when the conversion is an access to
616 class-wide interface type and it is an actual parameter.
617 * exp_ch6.adb (Expand_Call_Helper): Add documentation on the
618 accessibility level of an anonymous allocator defining the value
619 of an access parameter.
620 * sem_util.ads, sem_util.adb (Dynamic_Accessibility_Level): Add
621 support for an anonymous allocator whose type is that of a
622 stand-alone object of an anonymous access to object type.
623
f28a3d6c 6242019-07-05 Piotr Trojanek <trojanek@adacore.com>
625
626 * einfo.ads, sem_res.adb: Typo fixes in comments.
627
2d8a0eb3 6282019-07-05 Bob Duff <duff@adacore.com>
629
630 * exp_ch6.adb (Is_Build_In_Place_Function): Narrow the check for
631 Has_Foreign_Convention to the imported case only. If a
632 build-in-place function is exported, and called from Ada code,
633 build-in-place protocols should be used.
634
6eddee84 6352019-07-05 Ed Schonberg <schonberg@adacore.com>
636
637 * sem_util.adb (Encloing_Subprogram): If Enclosing_Dynamic_Scope
638 is a loop, continue climbing the scope stack to find the
639 enclosing subprogram.
640 (Gather_Components): Handle properly a choice in a record
641 aggregate that is given by a subtype with a static predicate.
642
249e38a7 6432019-07-05 Javier Miranda <miranda@adacore.com>
644
645 * debug.adb (-gnatd.K): Leave available this switch.
646 * contracts.adb (Build_And_Analyze_Contract_Only_Subprograms):
647 Remove.
648 * scil_ll.ads, scil_ll.adb (Contract_Only_Body_Flag,
649 Contract_Only_Body_Nodes, Get_Contract_Only_Body,
650 Is_Contract_Only_Body, Set_Contract_Only_Body): Remove.
651
33ae0c9f 6522019-07-05 Pierre-Marie de Rodat <derodat@adacore.com>
653
654 * libgnat/a-strunb.ads: Import documentation from the RM
655
70f9c8aa 6562019-07-05 Pierre-Marie de Rodat <derodat@adacore.com>
657
658 * libgnat/a-strfix.ads: Import documentation from the RM
659
1bc68ac2 6602019-07-05 Yannick Moy <moy@adacore.com>
661
662 * adabkend.adb (Scan_Back_End_Switches): Accept -Og and -Ofast
663 switches.
664
2500be2f 6652019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
666
667 * ali.adb: Relocate types Invocation_Construct_Record,
668 Invocation_Relation_Record, and Invocation_Signature_Record to
669 the body of ALI. Relocate tables Invocation_Constructs,
670 Invocation_Relations, and Invocation_Signatures to the body of
671 ALI. Remove type Body_Placement_Codes. Add new types
672 Declaration_Placement_Codes, and
673 Invocation_Graph_Encoding_Codes. Update the literals of type
674 Invocation_Graph_Line_Codes.
675 (Add_Invocation_Construct): Update the parameter profile. Add an
676 invocation construct built from all attributes provided.
677 (Add_Invocation_Relation): Update the parameter profile. Add an
678 invocation relation built from all attributes provided.
679 (Body_Placement): New routine.
680 (Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind):
681 Removed.
682 (Code_To_Declaration_Placement_Kind,
683 Code_To_Invocation_Graph_Encoding_Kind, Column,
684 Declaration_Placement_Kind_To_Code, Extra,
685 For_Each_Invocation_Construct, For_Each_Invocation_Relation,
686 Invocation_Graph_Encoding,
687 Invocation_Graph_Encoding_Kind_To_Code, Invoker, Kind, Line,
688 Locations, Name): New routine.
689 (Scan_Invocation_Construct_Line): Reimplement the scanning
690 mechanism.
691 (Scan_Invocation_Graph_Attributes_Line): New routine.
692 (Scan_Invocation_Graph_Line): Use a case statement to dispatch.
693 (Scan_Invocation_Relation_Line): Reimplement the scanning
694 mechanism.
695 (Scope): New routine.
696 (Set_Invocation_Graph_Encoding, Signature, Spec_Placement,
697 Target): New routine.
698 * ali.ads: Add new type Invocation_Graph_Encoding_Kind. Add
699 component Invocation_Graph_Encoding to type Unit_Record.
700 Relocate various types and data structures to the body of ALI.
701 (Add_Invocation_Construct, Add_Invocation_Relation): Update the
702 parameter profile.
703 (Body_Placement): New routine.
704 (Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind):
705 Removed.
706 (Code_To_Declaration_Placement_Kind,
707 Code_To_Invocation_Graph_Encoding_Kind, Column,
708 Declaration_Placement_Kind_To_Code, Extra,
709 For_Each_Invocation_Construct, For_Each_Invocation_Relation,
710 Invocation_Graph_Encoding,
711 Invocation_Graph_Encoding_Kind_To_Code, Invoker, Kind, Line,
712 Locations, Name, Scope, Set_Invocation_Graph_Encoding,
713 Signature, Spec_Placement, Target): New routine.
714 * bindo.adb: Add with clause for Binde. Add with and use
715 clauses for Debug. Update the documentation. Add new switches.
716 (Find_Elaboration_Order): Dispatch to the proper elaboration
717 mechanism.
718 * bindo-augmentors.adb:
719 Remove with and use clauses for GNAT and GNAT.Sets. Remove
720 membership set VS. Update the parameter profiles of most
721 routines to use better parameter names. Update the
722 implementation of most routine to use the new parameter names.
723 Remove various redundant assertions.
724 * bindo-builders.adb: Use better names for instantiated data
725 structures. Update all references to these names. Update the
726 parameter profiles of most routines to use better parameter
727 names. Update the implementation of most routine to use the new
728 parameter names.
729 (Build_Library_Graph): Update the parameter profile. Update the
730 call to Create.
731 (Create_Vertex): Reimplemented.
732 (Declaration_Placement_Vertex): New routine.
733 * bindo-builders.ads (Build_Library_Graph): Update the parameter
734 profile and comment on usage.
735 * bindo-diagnostics.adb: Almost a new unit.
736 * bindo-diagnostics.ads: Add a use clause for
737 Bindo.Graphs.Invocation_Graphs. Remove package
738 Cycle_Diagnostics.
739 (Diagnose_Circularities): New routine.
740 * bindo-elaborators.adb: Remove the with and use clauses for
741 Binderr and GNAT.Sets. Remove the use clause for
742 Bindo.Diagnostics.Cycle_Diagnostics. Remove membership set VS.
743 Update the parameter profiles of most routines to use better
744 parameter names. Update the implementation of most routine to
745 use the new parameter names. (Elaborate_Units_Common): Update
746 the parameter profile. Pass an infication to the library graph
747 builder whether the dynamic model is in effect.
748 (Elaborate_Units_Dynamic, Elaborate_Units_Static): Use
749 Diagnose_Circularities to provide diagnostics.
750 (Update_Successor): Use routine In_Same_Component to determine
751 whether the predecessor and successor reside in different
752 components.
753 * bindo-graphs.adb: Add with and use clauses for Butil, Debug,
754 Output, and Bindo.Writers. Remove with and use clauses for
755 GNAT.Lists. Update the parameter profiles of most routines to
756 use better parameter names. Update the implementation of most
757 routine to use the new parameter names. Remove various
758 redundant assertions. Remove doubly linked list EL. Add new
759 type Precedence_Kind.
760 (Add_Cycle): New routine.
761 (Add_Vertex): Update the parameter profile. Update the creation
762 of vertex attributes.
763 (Add_Vertex_And_Complement, Body_Vertex, Column,
764 Complementary_Vertex, Copy_Cycle_Path, Cycle_Kind_Of): New
765 routines.
766 (Destroy_Invocation_Graph_Edge, Destroy_Library_Graph_Cycle,
767 Destroy_Library_Graph_Edge, Extra, File_Name,
768 Find_All_Cycles_Through_Vertex, Find_All_Cycles_With_Edge,
769 Find_Cycles, Find_First_Lower_Precedence_Cycle,
770 Get_LGC_Attributes, Has_Next, Hash_Library_Graph_Cycle,
771 Hash_Library_Graph_Cycle_Attributes, Highest_Precedence_Cycle,
772 Highest_Precedence_Edge, In_Same_Component, Insert_And_Sort,
773 Invocation_Edge_Count, Invocation_Graph_Encoding,
774 Is_Cycle_Initiating_Edge, Is_Cyclic_Edge,
775 Is_Cyclic_Elaborate_All_Edge, Is_Cyclic_Elaborate_Body_Edge,
776 Is_Cyclic_Elaborate_Edge, Is_Cyclic_Forced_Edge,
777 Is_Cyclic_Invocation_Edge, Is_Cyclic_With_Edge,
778 Is_Dynamically_Elaborated, Is_Elaborate_All_Edge,
779 Is_Elaborate_Body_Edge, Is_Elaborate_Edge: New routines.
780 (Is_Existing_Predecessor_Successor_Relation): Removed.
781 (Is_Forced_Edge, Is_Invocation_Edge, Is_Recorded_Cycle,
782 Is_Recorded_Edge, Is_With_Edge, Iterate_Edges_Of_Cycle, Kind,
783 Length): New routine.
784 (Lib_Vertex): Removed.
785 (Line, Links_Vertices_In_Same_Component,
786 Maximum_Invocation_Edge_Count, Next, Normalize_And_Add_Cycle,
787 Normalize_Cycle_Path, Number_Of_Cycles, Path, Precedence,
788 Remove_Vertex_And_Complement, Sequence_Next_Cycle): New routines.
789 (Sequence_Next_IGE_Id): Renamed to Sequence_Next_Edge.
790 (Sequence_Next_IGV_Id): Renamed to Sequence_Next_Vertex.
791 (Sequence_Next_LGE_Id): Renamed to Sequence_Next_Edge.
792 (Sequence_Next_LGV_Id): Renamed to Sequence_Next_Vertex.
793 (Set_Is_Existing_Predecessor_Successor_Relation): Removed.
794 (Set_Is_Recorded_Cycle, Set_Is_Recorded_Edge,
795 Set_LGC_Attributes, Spec_Vertex, Trace_Cycle, Trace_Edge,
796 Trace_Eol, Trace_Vertex): New routines.
797 * bindo-graphs.ads: Add with and use clauses for Types and
798 GNAT.Lists. Update the parameter profiles of most routines to
799 use better parameter names. Update the implementation of most
800 routine to use the new parameter names. Add the new
801 instantiated data structures IGE_Lists, IGV_Sets, LGC_Lists,
802 LGE_Lists, LGE_Sets, LGV_Sets, and RC_Sets. Add new type
803 Library_Graph_Cycle_Id along with an empty and initial value.
804 Remove component Lib_Vertex and add new components Body_Vertex
805 and Spec_Vertex to type Invocation_Graph_Vertex_Attributes. Add
806 new type Library_Graph_Cycle_Kind. Add new iterators
807 All_Cycle_Iterator and Edges_Of_Cycle_Iterator. Add new type
808 Library_Graph_Cycle_Attributes. Add new components
809 Cycle_Attributes, Cycles, and Dynamically_Elaborated to type
810 Library_Graph_Attributes.
811 (Body_Vertex, Column, Destroy_Invocation_Graph_Edge,
812 Destroy_Library_Graph_Cycle_Attributes,
813 Destroy_Library_Graph_Edge, Extra, File_Name, Find_Cycles,
814 Has_Elaborate_All_Cycle, Has_Next, Hash_Library_Graph_Cycle,
815 Hash_Library_Graph_Cycle_Attributes, Highest_Precedence_Cycle,
816 In_Same_Component, Invocation_Edge_Count,
817 Invocation_Graph_Encoding, Is_Dynamically_Elaborated,
818 Is_Elaborate_All_Edge, Is_Elaborate_Body_Edge,
819 Is_Elaborate_Edge, Is_Forced_Edge, Is_Invocation_Edge,
820 Is_With_Edge, Iterate_All_Cycles, Iterate_Edges_Of_Cycle, Kind):
821 New routines.
822 (Length, Lib_Vertex, (Line, Next, Number_Of_Cycles, Present,
823 Same_Library_Graph_Cycle_Attributes, Spec_Vertex): New routines.
824 * bindo-units.adb (File_Name, Invocation_Graph_Encoding): New
825 routines.
826 * bindo-units.ads: Add new instantiated data structure
827 Unit_Sets.
828 (File_Name, Invocation_Graph_Encoding): New routine.
829 * bindo-validators.adb: Remove with and use clauses for GNAT and
830 GNAT.Sets. Remove membership set US. Update the parameter
831 profiles of most routines to use better parameter names. Update
832 the implementation of most routine to use the new parameter
833 names.
834 (Validate_Cycle, Validate_Cycle_Path, Validate_Cycles,
835 Validate_Invocation_Graph_Vertex): Remove the validation of
836 component Lib_Vertex. Add the validation of components
837 Body_Vertex and Spec_Vertex.
838 (Write_Error): New routine.
839 * bindo-validators.ads (Validate_Cycles): New routine.
840 * bindo-writers.adb: Update the parameter profiles of most
841 routines to use better parameter names. Update the
842 implementation of most routine to use the new parameter names.
843 (Write_Cycle, Write_Cyclic_Edge, Write_Cycles): New routines.
844 (Write_Invocation_Graph_Vertex): Remove the output of component
845 Lib_Vertex. Add the output of components Body_Vertex and
846 Spec_Vertex.
847 * bindo-writers.ads (Write_Cycles): New routine.
848 * debug.adb: Use binder switches -d_C and -d_P, add
849 documentation on their usage.
850 * gnatbind.adb: Remove with and use clauses for Binde. Delegate
851 the choice of elaboration mechanism to Bindo.
852 * lib-writ.adb (Column, Extra, Invoker, Kind, Line, Locations,
853 Name, Placement, Scope, Signature, Target): Removed.
854 (Write_Invocation_Graph): Moved at the top level.
855 (Write_Invocation_Graph_Attributes): New routine.
856 (Write_Invocation_Relation, Write_Invocation_Signature): Moved
857 at the top level.
858 * lib-writ.ads: Add a documentation section on invocation graph
859 attributes.
860 * sem_elab.adb (Body_Placement_Of): New routine.
861 (Declare_Invocation_Construct): Update the call to
862 Add_Invocation_Construct.
863 (Declaration_Placement_Of_Node): New routine.
864 (Get_Invocation_Attributes): Correct the retrieval of the
865 enclosing subprogram where the postcondition procedure lives.
866 (Placement_Of, Placement_Of_Node): Removed.
867 (Record_Invocation_Graph): Record the encoding format used.
868 (Record_Invocation_Graph_Encoding): New routine.
869 (Record_Invocation_Relation): Update the call to
870 Add_Invocation_Relation.
871 (Spec_Placement_Of): Removed.
872 * libgnat/g-lists.ads, libgnat/g-lists.adb (Equal): New routine.
873
164597c5 8742019-07-05 Ed Schonberg <schonberg@adacore.com>
875
876 * checks.adb (Apply_Predicate_Check): Except within the
877 subprogram body that defines the formal, do not apply predicate
878 check on a formal IN parameter: such a check is redundant and
879 its expansion can lead to out-of-scope references when it is
880 originates in a function call in a precondition,
881
572a4bc5 8822019-07-05 Yannick Moy <moy@adacore.com>
883
884 * sem_res.adb (Resolve_Call): Cannot inline in quantified
885 expressions.
886 * sem_util.adb, sem_util.ads (In_Quantified_Expression): New
887 function.
888
2c3ad474 8892019-07-05 Bob Duff <duff@adacore.com>
890
891 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
892 Fix typo.
893 * gnat_rm.texi: Regenerate.
894
2f67af4c 8952019-07-05 Bob Duff <duff@adacore.com>
896
897 * exp_attr.adb (Input): Take the No_Stream_Optimizations
898 restriction into account.
899
1cb1fd0f 9002019-07-05 Claire Dross <dross@adacore.com>
901
902 * libgnat/a-cofove.ads, libgnat/a-cofove.adb: Definite formal
903 vectors are now always bounded so that they do not need to be
904 limited anymore.
905
d2d09f3e 9062019-07-05 Dmitriy Anisimkov <anisimko@adacore.com>
907
908 * libgnat/g-traceb.ads, libgnat/g-traceb.adb (Call_Chain): New
909 function.
910
14e0bfed 9112019-07-04 James Clarke <jrtc27@debian.org>
912
913 * libgnarl/s-osinte__kfreebsd-gnu.ads (clockid_t): Make type
914 definition public.
915 (CLOCK_REALTIME): Make value public.
916
ecd07d3b 9172019-07-04 Javier Miranda <miranda@adacore.com>
918
919 * exp_tss.adb (Init_Proc): Adding missing support for access to
920 subprograms and access to protected subprograms of non-default
921 C++ constructors.
922
e0ff1639 9232019-07-04 Eric Botcazou <ebotcazou@adacore.com>
924
925 * gnat1drv.adb (Adjust_Global_Switches): Use proper interface to
926 set the validity settings in CodePeer mode.
927 * par-load.adb (Load): Remove all code dealing with validity
928 settings.
929 * validsw.ads (Validity_Check_Copies): Alphabetize.
930 * validsw.adb (Reset_Validity_Check_Options): Set all options to
931 off.
932 (Save_Validity_Check_Options): Save all options.
933
40bff3a0 9342019-07-04 Hristian Kirtchev <kirtchev@adacore.com>
935
936 * exp_ch3.adb, exp_ch4.adb, exp_ch4.ads, exp_ch5.adb,
937 exp_ch7.adb, exp_ch9.adb, exp_ch11.adb, exp_unst.adb,
938 rtsfind.ads, sem_attr.adb, sem_ch10.adb, sem_ch12.adb,
939 sem_ch13.adb, sem_dim.adb, sem_disp.adb, xref_lib.adb: Minor
940 reformatting.
941
0ebaade4 9422019-07-04 Joffrey Huguet <huguet@adacore.com>
943
944 * libgnarl/a-taside.ads: Add assertion policy to ignore
945 preconditions.
946 (Abort_Task, Is_Terminated, Is_Callable): Add preconditions.
947
f14a590b 9482019-07-04 Eric Botcazou <ebotcazou@adacore.com>
949
950 * doc/gnat_rm/implementation_defined_pragmas.rst: Fix
951 capitalization and parenthesis glitches.
952 * gnat_rm.texi: Regenerate.
953
f5388f99 9542019-07-04 Ed Schonberg <schonberg@adacore.com>
955
956 * sem_ch10.adb (Remove_Context_Clauses): Handle properly the
957 removal of a limited_with_clause which appears in the library
958 unit oF the main unit, when some other unit in the context has a
959 regular with_clause on the same unit, to prevent spurious
960 visibility errors in the subsequent analysis of pending instance
961 bodies.
962
c930bc82 9632019-07-04 Hristian Kirtchev <kirtchev@adacore.com>
964
965 * sem_elab.adb: Add new type Elaboration_Phase_Status along with
966 a global to keep track of the elaboration phase status.
967 Initialize all internal data structures to Nil for services
968 Elaborated_Units, Internal_Representation, and Scenario_Storage.
969 (Build_Call_Marker): Do not create a call marker when the
970 elaboration phase is not active.
971 (Build_Variable_Reference_Marker): Do not create a call marker
972 when the elaboration phase is not active.
973 (Check_Elaboration_Scenarios): Destroy all internal structures
974 when the elaboration phase does not have to run. Do not execute
975 when the elaboration phase is not active.
976 (Elaboration_Phase_Active): New routine.
977 (Finalize_All_Data_Structures): New routine.
978 (Initialize): Initialize all internal data structures and signal
979 that the elaboration phase has started.
980 (Initialize_All_Data_Structures): New routine.
981 (Initialize_Elaborated_Units): Initialize all internal data
982 structures.
983 (Initialize_Internal_Representation): Initialize all internal
984 data structures.
985 (Initialize_Scenario_Storage): Initialize all internal data
986 structures.
987 (Kill_Elaboration_Scenario): Do not execute when the elaboration
988 phase is not active.
989 (Set_Elaboration_Phase): New routine.
990 (Update_Elaboration_Scenario): Do not execute when the
991 elaboration phase is not active.
992
39dec7f4 9932019-07-04 Gary Dismukes <dismukes@adacore.com>
994
995 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): The special
996 treatment of calling Mask_Unfrozen_Types must also be done in
997 the case of an Ignored_Ghost_Entity, because Expander_Active is
998 False in that case.
999
92b004be 10002019-07-04 Yannick Moy <moy@adacore.com>
1001
1002 * sem_prag.adb (Check_Library_Level_Entity): Update for new rule
1003 on SPARK_Mode.
1004
12795e1c 10052019-07-04 Justin Squirek <squirek@adacore.com>
1006
1007 * sem_disp.adb (Check_Controlling_Formals): Obtain the full view
1008 before type comparison.
1009
63fe3141 10102019-07-04 Ed Schonberg <schonberg@adacore.com>
1011
1012 * exp_ch4.ads, exp_ch4.adb (Build_Eq_Call): New visible
1013 subprogram, extracted from Expand_Composite_Equality, to handle
1014 properly the composition of equality for variant record types.
1015 * exp_ch3.adb (MAke_Eq_If): Use Build_Eq_Call for each
1016 component, to handle properly the case of a component with a
1017 user-defined equality. Revert to predefined equality if the
1018 user-defined operation is abstract, to maintain compatibility
1019 with older versions,
1020
17fa952a 10212019-07-04 Justin Squirek <squirek@adacore.com>
1022
1023 * exp_ch3.adb (Build_Initialization_Call): Fixup
1024 *_skip_null_excluding_check argument to handle new default.
1025 (Init_Formals): Make *_skip_null_excluding_check formal default
1026 to False
1027 * exp_ch4.adb (Expand_N_Allocator): Add comment to note heavy
1028 code duplication
1029
cf32543d 10302019-07-04 Bob Duff <duff@adacore.com>
1031
1032 * sem_ch3.adb (Access_Definition): Do not create a master unless
1033 Tasking_Allowed. Otherwise, this fails on restricted runtimes.
1034
eb4dbf20 10352019-07-04 Hristian Kirtchev <kirtchev@adacore.com>
1036
1037 * sem_util.adb (Propagate_DIC_Attributes): Do not propagate the
1038 Default_Initial_Condition attributes to an incomplete type.
1039
25ddc6ba 10402019-07-04 Ed Schonberg <schonberg@adacore.com>
1041
1042 * sem_attr.adb (Check_Array_Type): An array type attribute such
1043 as 'First can be applied to an unconstrained array tyope when
1044 the attribute reference appears within an aspect specification
1045 and the prefix is a current instance, given that the prefix of
1046 the attribute will become a formal of the subprogram that
1047 implements the aspect (typically a predicate check).
1048
74a5962a 10492019-07-04 Piotr Trojanek <trojanek@adacore.com>
1050
1051 * sem_util.adb (Yields_Synchronized_Object): Fix typos in
1052 comments.
1053
c65d33a8 10542019-07-04 Yannick Moy <moy@adacore.com>
1055
1056 * sem_util.adb (Yields_Synchronized_Object): Adapt to new SPARK
1057 rule.
1058
afd77d39 10592019-07-04 Yannick Moy <moy@adacore.com>
1060
1061 * sem_spark.adb (Check_Statement): Only check permission of
1062 object in extended return when it is of a deep type.
1063
2281b807 10642019-07-04 Justin Squirek <squirek@adacore.com>
1065
1066 * sem_ch12.adb (Perform_Appropriate_Analysis): Added for
1067 selecting which type of analysis based on wheither the
1068 instantiation is a generic at the library-level. In which case
1069 expansion during analysis.
1070 (Preanalyze_Actuals): Modify calls to Analyze to use the new
1071 routine.
1072
542b3e26 10732019-07-04 Ed Schonberg <schonberg@adacore.com>
1074
1075 * exp_unst.adb: Handle conditional expressions.
1076
7754aad4 10772019-07-04 Yannick Moy <moy@adacore.com>
1078
1079 * sem_spark.adb (Check_Package_Spec, Check_Package_Body): Only
1080 analyze parts of the code marked in SPARK.
1081
3843c1bd 10822019-07-04 Hristian Kirtchev <kirtchev@adacore.com>
1083
1084 * erroutc.adb, exp_aggr.adb, inline.adb, opt.adb, sem_ch3.adb:
1085 Minor reformatting.
1086
5bc0f990 10872019-07-04 Yannick Moy <moy@adacore.com>
1088
1089 * sem_spark.adb (Explanation, Get_Expl): New functions to get
1090 the explanation for a permission mismatch.
1091 (Perm_Error, Perm_Mismatch, Perm_Error_Loop_Exit): Take
1092 explanation into account for issuing a more precise error
1093 message.
1094 (Set_Perm_Prefixes, Set_Perm_Extensions,
1095 Set_Perm_Extensions_Move): Pass suitable argument for the
1096 explanation node.
1097
11903e68 10982019-07-04 Arnaud Charlet <charlet@adacore.com>
1099
1100 * exp_aggr.adb (In_Place_Assign_OK): Moved to top level and add
1101 support for record aggregates.
1102 (Component_Check): Use Is_CCG_Supported_Aggregate instead of a
1103 similar local predicate.
1104 (Convert_To_Assignments): Take advantage of In_Place_Assign_OK
1105 predicate when possible.
1106 (Is_CCG_Supported_Aggregate): Return False for records with
1107 representation clauses and fix the logic for dealing with nested
1108 aggregates.
1109
b0c19ea3 11102019-07-04 Piotr Trojanek <trojanek@adacore.com>
1111
1112 * opt.adb (Set_Config_Switches): Keep assertions policy as
1113 enabled when analysing internal units in GNATprove mode.
1114
90f2b146 11152019-07-04 Arnaud Charlet <charlet@adacore.com>
1116
1117 * exp_ch4.adb (Expand_Short_Circuit_Operator): Strip
1118 N_Variable_Reference_Marker when checking for the presence of
1119 actions.
1120
39ecad34 11212019-07-04 Arnaud Charlet <charlet@adacore.com>
1122
1123 * exp_aggr.adb (Check_Component): Take into account type
1124 conversions.
1125
c0e899f1 11262019-07-04 Dmitriy Anisimkov <anisimko@adacore.com>
1127
1128 * doc/gnat_ugn/platform_specific_information.rst: Document
1129 Windows socket timeout particularity.
1130 * gnat_ugn.texi: Regenerate.
1131 * gsocket.h: Include versionhelpers.h.
1132 * socket.c (__gnat_minus_500ms): New function.
1133 * libgnat/g-sothco.ads (Minus_500ms_Windows_Timeout): New
1134 imported function.
1135 * libgnat/g-socket.adb (Set_Socket_Option): Refactor to remove
1136 500ms from the requested timeout only on old Windows version.
1137
363b1a8e 11382019-07-04 Thomas Quinot <quinot@adacore.com>
1139
1140 * get_scos.adb: Remove bogus, dead code.
1141
4ae0a9ce 11422019-07-04 Ed Schonberg <schonberg@adacore.com>
1143
1144 * sem_dim.adb (Analyze_Dimension_Array_Aggregate): If the
1145 component is an entity name, its dimensions are those of its
1146 type.
1147
d60fa3c9 11482019-07-03 Bob Duff <duff@adacore.com>
1149
1150 * doc/gnat_ugn/gnat_utility_programs.rst: Document new flags in
1151 GNATpp.
1152
877ad320 11532019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
1154
1155 * binde.adb: Remove with clause for System.OS_Lib.
1156 (Force_Elab_Order): Refactor the majority of the code in Butil.
1157 Use the new forced units iterator to obtain unit names.
1158 * bindo-builders.adb: Add with and use clauses for Binderr,
1159 Butil, Opt, Output, Types, GNAT, and GNAT.Dynamic_HTables. Add
1160 a hash table which maps units to line number in the forced
1161 elaboration order file.
1162 (Add_Unit): New routine.
1163 (Build_Library_Graph): Create forced edges between pairs of
1164 units listed in the forced elaboration order file.
1165 (Create_Forced_Edge, Create_Forced_Edges, Destroy_Line_Number,
1166 Duplicate_Unit_Error, Hash_Unit, Internal_Unit_Info,
1167 Is_Duplicate_Unit, Missing_Unit_Info): New routines.
1168 * bindo-graphs.adb (Is_Internal_Unit, Is_Predefined_Unit):
1169 Refactor some of the behavior to Bindo-Units.
1170 * bindo-graphs.ads: Enable the enumeration literal for forced
1171 edges.
1172 * bindo-units.adb, bindo-units.ads (Is_Internal_Unit,
1173 Is_Predefined_Unit): New routines.
1174 * butil.adb: Add with and use clauses for Opt, GNAT, and
1175 System.OS_Lib. Add with clause for Unchecked_Deallocation.
1176 (Has_Next, Iterate_Forced_Units, Next, Parse_Next_Unit_Name,
1177 Read_Forced_Elab_Order_File): New routines.
1178 * butil.ads: Add with and use clauses for Types. Add new
1179 iterator over the units listed in the forced elaboration order
1180 file.
1181 (Has_Next, Iterate_Forced_Units, Next): New routine.
1182 * namet.adb, namet.ads (Present): New routine.
1183
01e6eb2f 11842019-07-03 Bob Duff <duff@adacore.com>
1185
1186 * sem_ch3.adb (Access_Definition): The code was creating a
1187 master in the case where the designated type is a class-wide
1188 interface type. Create a master in the noninterface case as
1189 well. That is, create a master for all limited class-wide types.
1190
9ad42832 11912019-07-03 Yannick Moy <moy@adacore.com>
1192
1193 * erroutc.adb (Sloc_In_Range): New function to determine whether
1194 the range of a pragma Warnings covers a location, taking
1195 instantiations into account.
1196
f2a8d64e 11972019-07-03 Johannes Kanig <kanig@adacore.com>
1198
1199 * osint.ads, osint.adb (Get_First_Main_File_Name): New routine
1200 to access the first file provided on the command line.
1201
d4f28933 12022019-07-03 Ed Schonberg <schonberg@adacore.com>
1203
1204 * inline.adb (Process_Formals_In_Aspects): New procedure within
1205 Expand_Inlined_Call, to perform a replacement of references to
1206 formals that appear in aspect specifications within the body
1207 being inlined.
1208
23e7fc9b 12092019-07-03 Justin Squirek <squirek@adacore.com>
1210
1211 * sem_ch8.adb (Analyze_Object_Renaming): Add call to search for
1212 the appropriate actual subtype of the object renaming being
1213 analyzed.
1214 (Check_Constrained_Object): Minor cleanup.
1215
f8e6d133 12162019-07-03 Yannick Moy <moy@adacore.com>
1217
1218 * sem_spark.adb (Get_Observed_Or_Borrowed_Expr): New function to
1219 return go through traversal function call.
1220 (Check_Type): Consistently use underlying type.
1221 (Get_Perm): Adapt for case of elaboration code where variables
1222 are not declared in the environment. Remove incorrect handling
1223 of borrow and observe.
1224
d044ba5c 12252019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
1226
1227 * inline.adb (Build_Return_Object_Formal): New routine.
1228 (Can_Split_Unconstrained_Function): Code clean up.
1229 (Copy_Formals,Copy_Return_Object): New routines.
1230 (Split_Unconstrained_Function): Code clean up and refactoring.
1231
8699de72 12322019-07-03 Gary Dismukes <dismukes@adacore.com>
1233
1234 * bindo-augmentors.adb, bindo-augmentors.ads,
1235 bindo-builders.ads, bindo-elaborators.adb, sem_ch12.adb,
1236 sem_ch13.adb, sem_spark.adb, sinfo.ads: Minor editorial
1237 corrections and reformatting.
1238
2ccf6539 12392019-07-03 Bob Duff <duff@adacore.com>
1240
1241 * sem_warn.adb (Check_Infinite_Loop_Warning): Avoid the warning
1242 if an Iterator_Specification is present.
1243
17b5260d 12442019-07-03 Bob Duff <duff@adacore.com>
1245
1246 * doc/gnat_ugn/gnat_utility_programs.rst: Document default
1247 new-line behavior.
1248
5f71d12c 12492019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
1250
1251 * ali.adb: Add with and use clauses for GNAT,
1252 GNAT.Dynamic_HTables, and Snames. Add a map from invocation
1253 signature records to invocation signature ids. Add various
1254 encodings of invocation-related attributes. Sort and update
1255 table Known_ALI_Lines.
1256 (Add_Invocation_Construct, Add_Invocation_Relation,
1257 Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind,
1258 Code_To_Invocation_Construct_Kind, Code_To_Invocation_Kind,
1259 Code_To_Invocation_Graph_Line_Kind, Destroy, Hash): New
1260 routines.
1261 (Initialize_ALI): Sort the initialization sequence. Add
1262 initialization for all invocation-related tables.
1263 (Invocation_Construct_Kind_To_Code,
1264 Invocation_Graph_Line_Kind_To_Code, Invocation_Kind_To_Code,
1265 Invocation_Signature_Of, Present): New routines.
1266 (Scan_ALI): Add the default values for invocation-related ids.
1267 Scan invocation graph lines.
1268 (Scan_Invocation_Graph_Line): New routine.
1269 * ali.ads: Add with clause for GNAT.Dynamic_Tables. Add types
1270 for invocation constructs, relations, and signatures. Add
1271 tables for invocation constructs, relations, and signatures.
1272 Update Unit_Record to capture invocation-related ids. Relocate
1273 table Unit_Id_Tables and subtypes Unit_Id_Table, Unit_Id_Array
1274 from Binde.
1275 (Add_Invocation_Construct, Add_Invocation_Relation,
1276 Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind,
1277 Code_To_Invocation_Construct_Kind, Code_To_Invocation_Kind,
1278 Code_To_Invocation_Graph_Line_Kind,
1279 Invocation_Construct_Kind_To_Code,
1280 Invocation_Graph_Line_Kind_To_Code, Invocation_Kind_To_Code,
1281 Invocation_Signature_Of, Present): New routines.
1282 * binde.adb: Add with and use clause for Types. Add use clause
1283 for ALI.Unit_Id_Tables;
1284 * binde.ads: Relocate table Unit_Id_Tables and subtypes
1285 Unit_Id_Table, Unit_Id_Array to ALI.
1286 * bindgen.adb: Remove with and use clause for ALI.
1287 * bindgen.ads: Remove with and use clause for Binde. Add with
1288 and use clause for ALI.
1289 * bindo.adb, bindo.ads, bindo-augmentors.adb,
1290 bindo-augmentors.ads, bindo-builders.adb, bindo-builders.ads,
1291 bindo-diagnostics.adb, bindo-diagnostics.ads,
1292 bindo-elaborators.adb, bindo-elaborators.ads, bindo-graphs.adb,
1293 bindo-graphs.ads, bindo-units.adb, bindo-units.ads,
1294 bindo-validators.adb, bindo-validators.ads, bindo-writers.adb,
1295 bindo-writers.ads: New units.
1296 * debug.adb: Use and describe GNAT debug switches -gnatd_F and
1297 -gnatd_G. Add GNATbind debug switches in the ranges dA .. dZ,
1298 d.a .. d.z, d.A .. d.Z, d.1 .. d.9, d_a .. d_z, d_A .. d_Z, and
1299 d_1 .. d_9. Use and describe GNATbind debug switches -d_A,
1300 -d_I, -d_L, -d_N, -d_O, -d_T, and -d_V.
1301 * exp_util.adb, exp_util.ads (Exceptions_OK): Relocate to
1302 Sem_Util.
1303 * gnatbind.adb: Add with and use clause for Bindo. Use the new
1304 Bindo elaboration order only when -d_N is in effect.
1305 * lib-writ.adb
1306 (Column, Extra, Invoker, Kind, Line, Locations, Name, Placement,
1307 Scope, Signature, Target): New routines.
1308 (Write_ALI): Output all invocation-related data.
1309 (Write_Invocation_Graph): New routine.
1310 * lib-writ.ads: Document the invocation graph ALI line.
1311 * namet.adb, namet.ads (Present): New routines.
1312 * sem_ch8.adb (Find_Direct_Name): Capture the status of
1313 elaboration checks and warnings of an identifier.
1314 (Find_Expanded_Name): Capture the status of elaboration checks
1315 and warnings of an expanded name.
1316 * sem_ch12.adb (Analyze_Generic_Package_Declaration): Ensure
1317 that invocation graph-related data within the body of the main
1318 unit is encoded in the ALI file.
1319 (Analyze_Generic_Subprogram_Declaration): Ensure that invocation
1320 graph-related data within the body of the main unit is encoded
1321 in the ALI file.
1322 (Analyze_Package_Instantiation): Perform minimal decoration of
1323 the instance entity.
1324 (Analyze_Subprogram_Instantiation): Perform minimal decoration
1325 of the instance entity.
1326 * sem_elab.adb: Perform heavy refactoring of all code. The unit
1327 is now split into "services" which specialize in one area of ABE
1328 checks. Add processing in order to capture invocation-graph
1329 related attributes of the main unit, and encode them in the ALI
1330 file. The Processing phase can now operate in multiple modes,
1331 all described by type Processing_Kind. Scenarios and targets
1332 are now distinct at the higher level, and carry their own
1333 representations. This eliminates the need to constantly
1334 recompute their attributes, and offers the various processors a
1335 uniform interface. The various initial states of the Processing
1336 phase are now encoded using type Processing_In_State, and
1337 xxx_State constants.
1338 * sem_elab.ads: Update the literals of type
1339 Enclosing_Level_Kind. Add Inline pragmas on several routines.
1340 * sem_prag.adb (Process_Inline): Ensure that invocation
1341 graph-related data within the body of the main unit is encoded
1342 in the ALI file.
1343 * sem_util.adb (Enclosing_Generic_Body, Enclosing_Generic_Unit):
1344 Code clean up.
1345 (Exceptions_OK): Relocated from Sem_Util.
1346 (Mark_Save_Invocation_Graph_Of_Body): New routine.
1347 * sem_util.ads (Exceptions_OK): Relocated from Sem_Util.
1348 (Mark_Save_Invocation_Graph_Of_Body): New routine.
1349 * sinfo.adb (Is_Elaboration_Checks_OK_Node): Now applicable to
1350 N_Variable_Reference_Marker.
1351 (Is_Elaboration_Warnings_OK_Node): Now applicable to
1352 N_Expanded_Name, N_Identifier, N_Variable_Reference_Marker.
1353 (Is_Read): Use Flag4.
1354 (Is_SPARK_Mode_On_Node): New applicable to
1355 N_Variable_Reference_Marker.
1356 (Is_Write): Use Flag5.
1357 (Save_Invocation_Graph_Of_Body): New routine.
1358 (Set_Is_Elaboration_Checks_OK_Node): Now applicable to
1359 N_Variable_Reference_Marker.
1360 (Set_Is_Elaboration_Warnings_OK_Node): Now applicable to
1361 N_Expanded_Name, N_Identifier, N_Variable_Reference_Marker.
1362 (Set_Is_SPARK_Mode_On_Node): New applicable to
1363 N_Variable_Reference_Marker.
1364 (Set_Save_Invocation_Graph_Of_Body): New routine.
1365 * sinfo.ads: Update the documentation of attributes
1366 Is_Elaboration_Checks_OK_Node, Is_Elaboration_Warnings_OK_Node,
1367 Is_SPARK_Mode_On_Node. Update the flag usage of attributes
1368 Is_Read, Is_Write. Add attribute Save_Invocation_Graph_Of_Body
1369 and update its occurrence in nodes.
1370 (Save_Invocation_Graph_Of_Body): New routine along with pragma
1371 Inline.
1372 (Set_Save_Invocation_Graph_Of_Body): New routine along with
1373 pragma Inline.
1374 * switch-b.adb (Scan_Binder_Switches): Refactor the scanning of
1375 debug switches.
1376 (Scan_Debug_Switches): New routine.
1377 * libgnat/g-dynhta.adb, libgnat/g-dynhta.ads (Contains): New routine.
1378 * libgnat/g-graphs.adb (Associate_Vertices): Update the use of
1379 Component_Vertex_Iterator.
1380 (Contains_Component, Contains_Edge, Contains_Vertex, Has_Next):
1381 Reimplemented.
1382 (Iterate_Component_Vertices): New routine.
1383 (Iterate_Vertices): Removed.
1384 (Next): Update the parameter profile.
1385 (Number_Of_Component_Vertices, Number_Of_Outgoing_Edges): New
1386 routines.
1387 * libgnat/g-graphs.ads: Update the initialization of
1388 No_Component. Add type Component_Vertex_Iterator. Remove type
1389 Vertex_Iterator.
1390 (Has_Next): Add new versions and remove old ones.
1391 (Iterate_Component_Vertices): New routine.
1392 (Iterate_Vertices): Removed.
1393 (Next): Add new versions and remove old ones.
1394 (Number_Of_Component_Vertices, Number_Of_Outgoing_Edges): New
1395 routines.
1396 * libgnat/g-sets.adb (Contains): Reimplemented.
1397 * gcc-interface/Make-lang.in (GNATBIND_OBJS): Add
1398 GNAT.Dynamic_HTables, GNAT.Graphs and Bindo units.
1399 * rtsfind.ads: Remove extra space.
1400
df177848 14012019-07-03 Yannick Moy <moy@adacore.com>
1402
1403 * sem_spark.adb: Add support for locally borrowing and observing
1404 a path.
1405 (Get_Root_Object): Add parameter Through_Traversal to denote
1406 when we are interesting in getting to the traversed parameter.
1407 (Is_Prefix_Or_Almost): New function to support detection of
1408 illegal access to borrowed or observed paths.
1409 (Check_Pragma): Add analysis of assertion pragmas.
1410
f3f142ac 14112019-07-03 Ed Schonberg <schonberg@adacore.com>
1412
1413 * sem_ch13.adb (Build_Predicate_Functions): In a generic context
1414 we do not build the bodies of predicate fuctions, but the
1415 expression in a static predicate must be elaborated to allow
1416 case coverage checking within the generic unit.
1417 (Build_Discrete_Static_Predicate): In a generic context, return
1418 without building function body once the
1419 Static_Discrete_Predicate expression for the type has been
1420 constructed.
1421
99d90c85 14222019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
1423
1424 * bindgen.adb, inline.adb, layout.adb, sem_ch12.adb,
1425 sem_ch13.adb, sem_ch7.adb, styleg.adb: Minor reformatting.
1426
800597f6 14272019-07-03 Bob Duff <duff@adacore.com>
1428
1429 * par-ch3.adb (P_Defining_Identifier): Call
1430 Check_Defining_Identifier_Casing.
1431 * style.ads, styleg.ads, styleg.adb
1432 (Check_Defining_Identifier_Casing): New procedure to check for
1433 mixed-case defining identifiers.
1434 * stylesw.ads, stylesw.adb (Style_Check_Mixed_Case_Decls): New
1435 flag for checking for mixed-case defining identifiers.
1436 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
1437 Document new feature.
1438 * gnat_ugn.texi: Regenerate.
1439
2c75027a 14402019-07-03 Eric Botcazou <ebotcazou@adacore.com>
1441
1442 * doc/gnat_ugn/building_executable_programs_with_gnat.rst
1443 (Warning message control): Document that -gnatw.z/Z apply to
1444 array types.
1445 * freeze.adb (Freeze_Entity): Give -gnatw.z warning for array
1446 types as well, but not if the specified alignment is the minimum
1447 one.
1448 * gnat_ugn.texi: Regenerate.
1449
08237d0d 14502019-07-03 Bob Duff <duff@adacore.com>
1451
1452 * einfo.ads, exp_util.adb, layout.ads, sinfo.ads: Spell "laid"
1453 correctly.
1454
0396441f 14552019-07-03 Ed Schonberg <schonberg@adacore.com>
1456
1457 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): No error
1458 message on attribute applied to a renaming when the renamed
1459 object is an aggregate (from code reading).
1460 (Check_Aspect_At_End_Of_Declarations): In a generic context
1461 where freeze nodes are not generated, the original expression
1462 for an aspect may need to be analyzed to precent spurious
1463 conformance errors when compared with the expression that is
1464 anakyzed at the end of the current declarative list.
1465
c8406f30 14662019-07-03 Eric Botcazou <ebotcazou@adacore.com>
1467
1468 * layout.adb (Layout_Type): Do not set the component size of an
1469 array with a scalar component if the component type is
1470 overaligned.
1471
c38b32ea 14722019-07-03 Ed Schonberg <schonberg@adacore.com>
1473
1474 * inline.adb (Make_Loop_Labels_Unique): New procedure to modify
1475 the source code of subprograms that are inlined by the
1476 front-end, to prevent accidental duplication between loop labels
1477 in the inlined code and the code surrounding the inlined call.
1478
6d6f134e 14792019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
1480
1481 * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Update
1482 the section on resolving elaboration circularities to eliminate
1483 certain combinations of switches which together do not produce
1484 the desired effect and confuse users.
1485 * gnat_ugn.texi: Regenerate.
1486
f3e16ef4 14872019-07-03 Arnaud Charlet <charlet@adacore.com>
1488
1489 * bindgen.adb (Gen_Main): Disable generation of reference to
1490 Ada_Main_Program_Name for CCG.
1491 * bindusg.adb (Display): Add -G to the command-line usage for
1492 gnatbind.
1493 * opt.ads (Generate_C_Code): Update comment.
1494 * switch-b.adb (Scan_Binder_Switches): Add handling for -G.
1495
f4a31b16 14962019-07-03 Arnaud Charlet <charlet@adacore.com>
1497
1498 * sem_ch7.adb (Has_Referencer): Do not consider inlined
1499 subprograms when generating C code, which allows us to generate
1500 static inline subprograms.
1501
2f65e9f7 15022019-07-03 Justin Squirek <squirek@adacore.com>
1503
1504 * sem_ch6.adb (Check_Conformance): Add expression checking for
1505 constant modifiers in anonymous access types (in addition to
1506 "non-null" types) so that they are considered "matching" for
1507 subsequent conformance tests.
1508
c336ed70 15092019-07-03 Arnaud Charlet <charlet@adacore.com>
1510
1511 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
1512 Clarify wording on No_Multiple_Elaboration.
1513 * gnat_rm.texi: Regenerate.
1514
78611c86 15152019-07-03 Ed Schonberg <schonberg@adacore.com>
1516
1517 * sem_ch8.adb (Find_Selected_Component): If the prefix is the
1518 current instance of a type or subtype, complete the resolution
1519 of the name by finding the component of the type denoted by the
1520 selector name.
1521
5a87a4d9 15222019-07-03 Eric Botcazou <ebotcazou@adacore.com>
1523
1524 * doc/gnat_rm/interfacing_to_other_languages.rst (Interfacing to C):
1525 Document that boolean types with convention C now map to C99 bool.
1526 * gnat_rm.texi: Regenerate.
1527
371c539c 15282019-07-03 Javier Miranda <miranda@adacore.com>
1529
1530 * exp_attr.adb (Expand_Min_Max_Attribute): Code cleanup:
1531 removing code that it is now never executed in the CCG compiler
1532 (dead code).
1533
89d2d652 15342019-07-02 Iain Sandoe <iain@sandoe.co.uk>
1535
1536 * libgnat/system-darwin-ppc.ads: Set Stack_Check_Probes True for
1537 PPC Darwin.
1538
d21e66fb 15392019-07-01 Ed Schonberg <schonberg@adacore.com>
1540
1541 * sem_ch12.adb (Is_Defaulted): New predicate in
1542 Check_Formal_Package_Intance, to skip the conformance of checks
1543 on parameters of a formal package that are defaulted,
1544
7a42b778 15452019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
1546
1547 * checks.adb, exp_ch9.adb, exp_unst.adb, sem_ch4.adb,
1548 sem_prag.adb, sem_spark.adb: Minor reformatting.
1549
fc8ae496 15502019-07-01 Ed Schonberg <schonberg@adacore.com>
1551
1552 * sem_attr.adb (Analyze_Attribute, case Enum_Rep): Allow prefix
1553 of attribute to be an attribute reference of a discrete type.
1554
9d27ea41 15552019-07-01 Eric Botcazou <ebotcazou@adacore.com>
1556
1557 * sem_ch12.adb (Analyze_Subprogram_Instantiation): Move up
1558 handling of Has_Pragma_Inline_Always and deal with
1559 Has_Pragma_No_Inline.
1560
bcb8dcf3 15612019-07-01 Ed Schonberg <schonberg@adacore.com>
1562
1563 * sem_ch3.adb (Build_Derived_Record_Type): If the parent type is
1564 declared as a subtype of a private type with an inherited
1565 discriminant constraint, its generated full base appears as a
1566 record subtype, so we need to retrieve its oen base type so that
1567 the inherited constraint can be applied to it.
1568
d087b9ca 15692019-07-01 Yannick Moy <moy@adacore.com>
1570
1571 * sem_spark.adb: Completely rework the algorithm for ownership
1572 checking, as the rules in SPARK RM have changed a lot.
1573 * sem_spark.ads: Update comments.
1574
fe48ee0a 15752019-07-01 Dmitriy Anisimkov <anisimko@adacore.com>
1576
1577 * gsocket.h (Has_Sockaddr_Len): Use the offset of sin_family offset in
1578 the sockaddr_in structure to determine the existence of length field
1579 before the sin_family.
1580
b20f7e2c 15812019-07-01 Ed Schonberg <schonberg@adacore.com>
1582
1583 * sem_prag.adb (Analyze_Pragma, case Weak_External): Pragma only
1584 applies to entities with run-time addresses, not to types.
1585
374fdf94 15862019-07-01 Piotr Trojanek <trojanek@adacore.com>
1587
1588 * einfo.adb, sem_ch7.adb, sem_prag.adb, sem_util.adb: Update
1589 references to the SPARK RM after the removal of Rule 7.1.4(5).
1590
bf13a79d 15912019-07-01 Piotr Trojanek <trojanek@adacore.com>
1592
1593 * sysdep.c: Cleanup references to LynuxWorks in docs and
1594 comments.
1595
866fa2d0 15962019-07-01 Ed Schonberg <schonberg@adacore.com>
1597
1598 * checks.adb (Insert_Valid_Check): Do not apply validity check
1599 to variable declared within a protected object that uses the
1600 Lock_Free implementation, to prevent unwarranted constant
1601 folding, because entities within such an object msut be treated
1602 as volatile.
1603
bcb5ab83 16042019-07-01 Eric Botcazou <ebotcazou@adacore.com>
1605
1606 * exp_ch9.adb (Check_Inlining): Deal with Has_Pragma_No_Inline.
1607
2db33bd6 16082019-07-01 Ed Schonberg <schonberg@adacore.com>
1609
1610 * exp_unst.adb (Visit_Node, Check_Static_Type): Improve the
1611 handling of private and incomplete types whose full view is an
1612 access type, to detect additional uplevel references in dynamic
1613 bounds. This is relevant to N_Free_Statement among others that
1614 manipulate types whose full viww may be an access type.
1615
6b4f0b7d 16162019-07-01 Pat Rogers <rogers@adacore.com>
1617
1618 * doc/gnat_rm/representation_clauses_and_pragmas.rst: Correct
1619 size indicated for R as a component of an array.
1620 * gnat_rm.texi: Regenerate.
1621
cdee70d7 16222019-07-01 Justin Squirek <squirek@adacore.com>
1623
1624 * libgnat/s-win32.ads: Add definition for ULONG, modify
1625 OVERLAPPED type, and add appropriate pragmas.
1626
2cf822b7 16272019-07-01 Bob Duff <duff@adacore.com>
1628
1629 * gnat1drv.adb (gnat1drv): Call Write_ALI if the main unit is
1630 ignored-ghost.
1631
0a1ece97 16322019-07-01 Yannick Moy <moy@adacore.com>
1633
1634 * sem_ch4.adb (Operator_Check): Refine error message.
1635
ee4279ef 16362019-07-01 Piotr Trojanek <trojanek@adacore.com>
1637
1638 * libgnat/a-calend.ads: Revert "Global => null" contracts on
1639 non-pure routines.
1640
2c6b4ada 16412019-07-01 Piotr Trojanek <trojanek@adacore.com>
1642
1643 * exp_attr.adb, libgnat/g-graphs.ads: Fix typos in comments:
1644 componant -> component.
1645
175c4526 16462019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
1647
1648 * libgnat/g-graphs.adb: Use type Directed_Graph rather than
1649 Instance in various routines.
1650 * libgnat/g-graphs.ads: Change type Instance to Directed_Graph.
1651 Update various routines that mention the type.
1652
a0d15509 16532019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
1654
1655 * libgnat/g-sets.adb: Use type Membership_Set rathern than
1656 Instance in various routines.
1657 * libgnat/g-sets.ads: Change type Instance to Membership_Set.
1658 Update various routines that mention the type.
1659
205a23a3 16602019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
1661
1662 * libgnat/g-lists.adb: Use type Doubly_Linked_List rather than
1663 Instance in various routines.
1664 * libgnat/g-lists.ads: Change type Instance to
1665 Doubly_Linked_List. Update various routines that mention the
1666 type.
1667
17fdf8c2 16682019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
1669
1670 * libgnat/g-dynhta.adb: Use type Dynamic_Hash_Table rather than
1671 Instance in various routines.
1672 * libgnat/g-dynhta.ads: Change type Instance to
1673 Dynamic_Hash_Table. Update various routines that mention the
1674 type.
1675
216ffc64 16762019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
1677
1678 * exp_attr.adb, exp_ch7.adb, exp_unst.adb, sem_ch3.adb,
1679 sem_util.adb, uintp.adb, uintp.ads: Minor reformatting.
1680
5051fe35 16812019-07-01 Javier Miranda <miranda@adacore.com>
1682
1683 * exp_attr.adb (Expand_Min_Max_Attribute): Disable expansion of
1684 'Min/'Max on integer, enumeration, fixed point and floating
1685 point types since the CCG backend now provides in file
1686 standard.h routines to support it.
1687
830a2a71 16882019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
1689
1690 * impunit.adb: Add GNAT.Graphs to list Non_Imp_File_Names_95.
1691 * Makefile.rtl, gcc-interface/Make-lang.in: Register unit
1692 GNAT.Graphs.
1693 * libgnat/g-dynhta.adb: Various minor cleanups (use Present
1694 rather than direct comparisons).
1695 (Delete): Reimplement to use Delete_Node.
1696 (Delete_Node): New routine.
1697 (Destroy_Bucket): Invoke the provided destructor.
1698 (Present): New routines.
1699 * libgnat/g-dynhta.ads: Add new generic formal Destroy_Value.
1700 Use better names for the components of iterators.
1701 * libgnat/g-graphs.adb, libgnat/g-graphs.ads: New unit.
1702 * libgnat/g-lists.adb: Various minor cleanups (use Present
1703 rather than direct comparisons).
1704 (Delete_Node): Invoke the provided destructor.
1705 (Present): New routine.
1706 * libgnat/g-lists.ads: Add new generic formal Destroy_Element.
1707 Use better names for the components of iterators.
1708 (Present): New routine.
1709 * libgnat/g-sets.adb, libgnat/g-sets.ads (Destroy, Preset,
1710 Reset): New routines.
1711
b0111d94 17122019-07-01 Dmitriy Anisimkov <anisimko@adacore.com>
1713
1714 * libgnat/g-sothco.adb (Get_Address): Fix the case when AF_INET6
1715 is not defined.
1716
7362896b 17172019-07-01 Ed Schonberg <schonberg@adacore.com>
1718
1719 * exp_attr.adb (Expand_Attribute_Reference, case Invalid_Value):
1720 Resolve result of call to Get_Simple_Init_Val, which may be a
1721 conversion of a literal.
1722
0dae8dc2 17232019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
1724
1725 * freeze.adb (Freeze_Expression): Remove the horrible useless
1726 name hiding of N. Insert the freeze nodes generated by the
1727 expression prior to the expression when the nearest enclosing
1728 scope is transient.
1729
487da8ff 17302019-07-01 Pierre-Marie de Rodat <derodat@adacore.com>
1731
1732 * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix
1733 formatting issues in the -gnatR section.
1734 * gnat_ugn.texi: Regenerate.
1735
1d79fa18 17362019-06-30 Iain Sandoe <iain@sandoe.co.uk>
1737
1738 * gnatlink.adb (Link_Step): Remove duplicate -static-libgcc switches.
1739 Push -shared-libgcc explicitly, when it is the target default (unless
1740 overidden by the static flag).
1741 When the user has put an instance of shared/static-libgcc do not push
1742 a duplicate of this.
1743
a850edcd 17442019-06-29 Eric Botcazou <ebotcazou@adacore.com>
1745
1746 * gcc-interface/decl.c (gnat_to_gnu_entity): Beep up comment on SAVED,
1747 and tweak comment on the assertion about the scopes of Itypes. Do not
1748 skip the regular processing for Itypes that are E_Record_Subtype with
1749 a Cloned_Subtype. Get the Cloned_Subtype for every E_Record_Subtype
1750 if the type is dummy and hasn't got its own freeze node.
1751 <E_Record_Subtype>: Save again the DECL of the Cloned_Subtype, if any.
1752 <E_Access_Subtype>: Save again the DECL of the equivalent type.
1753 (Gigi_Equivalent_Type) <E_Access_Subtype>: New case.
1754
b1e46fb1 17552019-06-29 Eric Botcazou <ebotcazou@adacore.com>
1756
1757 * gcc-interface/utils.c (unchecked_convert): Tweak comment. Only skip
1758 dereferences when padding to have the same size on both sides. Do it
1759 for destination types with self-referential size too.
1760
07e38949 17612019-06-29 Eric Botcazou <ebotcazou@adacore.com>
1762
1763 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the
1764 type requires strict alignment, then set the RM size to the type size.
1765 Rework handling of alignment and sizes of tagged types in ASIS mode.
1766 (validate_size): Rename local variable and remove special handling for
1767 strict-alignment types.
1768 * gcc-interface/utils.c (finish_record_type): Constify local variables
1769 and use properly typed constants.
1770
f4409741 17712019-06-29 Eric Botcazou <ebotcazou@adacore.com>
1772
1773 * gcc-interface/decl.c (gnat_to_gnu_field): Rework error messages for
1774 fields requiring strict alignment, add explicit test on Storage_Unit
1775 for position and size, and mention type alignment for position.
1776
5882c515 17772019-06-29 Eric Botcazou <ebotcazou@adacore.com>
1778
1779 * gcc-interface/trans.c (mark_visited_r): Set TYPE_SIZES_GIMPLIFIED on
1780 the main variant of a type, if any.
1781
d0de0a27 17822019-06-29 Eric Botcazou <ebotcazou@adacore.com>
1783
1784 * gcc-interface/decl.c (set_nonaliased_component_on_array_type): Add
1785 missing guard for the presence of TYPE_CANONICAL.
1786 (set_reverse_storage_order_on_array_type): Likewise.
1787
2074c859 17882019-06-29 Eric Botcazou <ebotcazou@adacore.com>
1789
1790 * gcc-interface/gigi.h (make_packable_type): Remove default value.
1791 (value_factor_p): Tweak prototype.
1792 * gcc-interface/decl.c (gnat_to_gnu_entity): Add comment.
1793 (gnat_to_gnu_component_type): Likewise.
1794 (gnat_to_gnu_field): Likewise. Fetch the position of the field earlier
1795 and simplify the condition under which the type is packed. Declare
1796 local variable is_bitfield. Pass 1 as max_align to make_packable_type
1797 if it is set to true.
1798 (copy_and_substitute_in_layout): Pass 0 to make_packable_type.
1799 * gcc-interface/utils.c (make_packable_array_type): New function.
1800 (make_packable_type): Use it to rewrite the type of array field.
1801 (maybe_pad_type): Pass align parameter to make_packable_type.
1802 (create_field_decl): Minor tweaks.
1803 (value_factor_p): Assert that FACTOR is a power of 2 and replace the
1804 modulo computation by a masking operation.
1805
83c6da22 18062019-06-25 Eric Botcazou <ebotcazou@adacore.com>
1807
1808 * gcc-interface/decl.c (gnat_to_gnu_entity): Remove superfluous test
1809 in previous change.
1810 * gcc-interface/gigi.h (maybe_character_type): Fix formatting.
1811 (maybe_character_value): Likewise.
1812
aaabc7bc 18132019-06-24 Jan Hubicka <jh@suse.cz>
1814
1815 * gcc-interface/decl.c (gnat_to_gnu_entity): Check that
1816 type is array or integer prior checking string flag.
83c6da22 1817 * gcc-interface/gigi.h (maybe_character_type): Likewise.
1818 (maybe_character_value): Likewise.
aaabc7bc 1819
5fe09a56 18202019-06-24 Martin Sebor <msebor@redhat.com>
1821
1822 * gcc-interface/utils.c (handle_nonnull_attribute): Quote attribute
1823 name.
1824
bd9331d6 18252019-06-18 Arnaud Charlet <charlet@adacore.com>
1826
83c6da22 1827 PR ada/80590
bd9331d6 1828 * sem_ch5.adb (Analyze_Loop_Statement): Avoid exception propagation
1829 during normal processing.
1830
8a5a7d1c 18312019-06-17 Arnaud Charlet <charlet@adacore.com>
1832
83c6da22 1833 PR ada/80590
8a5a7d1c 1834 * exp_ch9.adb (Expand_N_Delay_Relative_Statement): Swap the two
1835 conditions to avoid a unnecessary exception propagation in the default
1836 case.
1837
580934f6 18382019-05-28 Eric Botcazou <ebotcazou@adacore.com>
1839
1840 * gcc-interface/utils.c (handle_stack_protect_attribute): Move around.
1841
c8956236 18422019-05-28 Eric Botcazou <ebotcazou@adacore.com>
1843
1844 * doc/gnat_rm/implementation_defined_pragmas.rst (Machine_Attribute):
1845 Document additional optional parameters.
1846 * sem_prag.adb (Analyze_Pragma) <Pragma_Machine_Attribute>: Accept
1847 more than one optional parameter.
1848 * gcc-interface/decl.c (prepend_one_attribute_pragma): Alphabetize
1849 the list of supported pragmas. Simplify the handling of parameters
1850 and add support for more than one optional parameter.
1851 * gcc-interface/utils.c (attr_cold_hot_exclusions): New constant.
1852 (gnat_internal_attribute_table): Add entry for no_icf, noipa, flatten,
1853 used, cold, hot, target and target_clones.
1854 (begin_subprog_body): Do not create the RTL for the subprogram here.
1855 (handle_noicf_attribute): New static function.
1856 (handle_noipa_attribute): Likewise.
1857 (handle_flatten_attribute): Likewise.
1858 (handle_used_attribute): Likewise.
1859 (handle_cold_attribute): Likewise.
1860 (handle_hot_attribute): Likewise.
1861 (handle_target_attribute): Likewise.
1862 (handle_target_clones_attribute): Likewise.
1863
62b762c2 18642019-05-28 Eric Botcazou <ebotcazou@adacore.com>
1865
1866 * gcc-interface/trans.c (lvalue_required_for_attribute_p): Return 0
1867 for 'Size too.
1868 (Identifier_to_gnu): Use the actual subtype for a reference to a
1869 packed array in a return statement.
1870 (Attribute_to_gnu) <Attr_Size>: Do not strip VIEW_CONVERT_EXPRs from
1871 the prefix in every case.
1872
336a61a3 18732019-05-28 Eric Botcazou <ebotcazou@adacore.com>
1874
1875 * gcc-interface/trans.c (gnat_to_gnu): Remove superfluous tests on
1876 Backend_Overflow_Checks_On_Target and rework comments.
1877
983c5b5e 18782019-05-28 Eric Botcazou <ebotcazou@adacore.com>
1879
1880 * gcc-interface/trans.c (walk_nesting_tree): New static function.
1881 (finalize_nrv): Use it to walk the entire nesting tree.
1882
96b4b84e 18832019-05-28 Eric Botcazou <ebotcazou@adacore.com>
1884
1885 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Remove
1886 obsolete test on Is_For_Access_Subtype.
1887
0b74284e 18882019-05-28 Eric Botcazou <ebotcazou@adacore.com>
1889
1890 * gcc-interface/decl.c (components_to_record): Set a name on the type
1891 created for the REP part, if any.
1892 * gcc-interface/utils.c (finish_record_type): Only take the maximum
1893 when merging sizes for a variant part at offset 0.
1894 (merge_sizes): Rename has_rep parameter into max.
1895
689dab9d 18962019-05-28 Eric Botcazou <ebotcazou@adacore.com>
1897
1898 * gcc-interface/utils.c (gnat_internal_attribute_table): Add support
1899 for stack_protect attribute.
1900 (handle_stack_protect_attribute): New static function.
1901
804f7d39 19022019-05-28 Eric Botcazou <ebotcazou@adacore.com>
1903
1904 * gcc-interface/decl.c (intrin_arglists_compatible_p): Do not return
1905 false if the internal builtin uses a variable list.
1906
f07f94cc 19072019-05-27 Eric Botcazou <ebotcazou@adacore.com>
1908
1909 * gcc-interface/trans.c (Call_to_gnu): Do not initialize the temporary
1910 created out of addressability concerns if it's for the _Init parameter
1911 of an initialization procedure.
1912
abfd658b 19132019-05-27 Eric Botcazou <ebotcazou@adacore.com>
1914
1915 * gcc-interface/ada-builtin-types.def: New file.
1916 * gcc-interface/ada-builtins.def: Likewise.
1917 * gcc-interface/ada-tree.h (BUILT_IN_LIKELY): New macro.
1918 (BUILT_IN_UNLIKELY): Likewise.
1919 * gcc-interface/trans.c (independent_iterations_p): Initialize the
1920 auto-vector to 16 elements.
1921 (Call_to_gnu): Remove local variable and change the vector of actual
1922 parameters to an auto-vector. Do not convert actual parameters to
1923 the argument type for front-end built-in functions. Add support for
1924 front-end built-in functions.
1925 (build_noreturn_cond): Use internal instead of built-in function.
1926 * gcc-interface/utils.c (c_builtin_type): Include ada-builtin-types.def
1927 (install_builtin_function_types): Likewise.
1928 (install_builtin_functions): Include ada-builtins.def first.
1929
caab73a2 19302019-05-27 Eric Botcazou <ebotcazou@adacore.com>
1931
1932 * gcc-interface/utils.c (maybe_pad_type): Issue the warning for the
1933 specific case of component types preferably.
1934
f1ca2388 19352019-05-27 Eric Botcazou <ebotcazou@adacore.com>
1936
1937 * gcc-interface/trans.c (Identifier_to_gnu): Minor tweaks.
1938 (gnat_to_gnu): Do not convert the result if it is a reference to an
1939 unconstrained array used as the prefix of an attribute reference that
1940 requires an lvalue.
1941
e3f3573c 19422019-05-27 Eric Botcazou <ebotcazou@adacore.com>
1943
1944 * gcc-interface/trans.c (Gigi_Types_Compatible): New predicate.
1945 (Identifier_to_gnu): Use it to assert that the type of the identifier
1946 and that of its entity are compatible for gigi. Rename a couple of
1947 local variables and separate the processing of the result type.
1948
2306cd17 19492019-05-27 Eric Botcazou <ebotcazou@adacore.com>
1950
1951 * gcc-interface/trans.c (Call_to_gnu): Use the unpadded type when
1952 putting back an intermediate conversion the type of the actuals.
1953
6e4e9378 19542019-05-27 Eric Botcazou <ebotcazou@adacore.com>
1955
1956 * gcc-interface/trans.c (gnat_to_gnu) <Shift operations>: Convert the
1957 count to the unsigned version of its base type before proceeding.
1958
85b9be9b 19592019-05-16 Martin Sebor <msebor@redhat.com>
1960
3d6be0d5 1961 * gcc-interface/trans.c (check_inlining_for_nested_subprog): Quote
1962 reserved names.
85b9be9b 1963
65d973ca 19642019-05-08 Arnaud Charlet <charlet@adacore.com>
1965
1966 * standard.ads.h: New file.
1967
ff628b99 19682019-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1969
1970 * gcc-interface/Makefile.in (install-gcc-specs): Use foreach.
1971 Honor DESTDIR.
1972
ebd761d4 19732019-04-29 Michael K. Darling <darlingm@gmail.com>
1974
1975 * gnatvsn.ads: Bump Library_Version to 10.
1976
5f260823 19772019-04-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1978 Bernd Edlinger <bernd.edlinger@hotmail.de>
1979 Jakub Jelinek <jakub@redhat.com>
1980
1981 PR target/89093
1982 * raise-gcc.c (TARGET_ATTRIBUTE): Define.
1983 (continue_unwind, personality_body, PERSONALITY_FUNCTION): Add
1984 TARGET_ATTRIBUTE.
1985
d7ca95c0 19862019-04-07 Eric Botcazou <ebotcazou@adacore.com>
1987
1988 * libgnat/i-cexten.ads (CFloat_128): New type.
1989
26b21081 19902019-03-22 Dmitriy Anisimkov <anisimko@adacore.com>
1991
1992 PR ada/89583
1993 * libgnat/g-socket.adb (Bind_Socket, Connect_Socket,
1994 Send_Socket): Fix the computation of structure lengths passed to
1995 low level routines.
1996 (Is_IPv6_Address): Fix the number of expected colons.
1997
2f6d557f 19982019-03-11 Martin Liska <mliska@suse.cz>
1999
d325ee67 2000 * gcc-interface/misc.c (gnat_post_options): Wrap option name in string
2001 format message and fix GNU coding style.
2f6d557f 2002
c1ad6672 20032019-02-08 Eric Botcazou <ebotcazou@adacore.com>
2004
2005 * gcc-interface/trans.c (gnat_to_gnu) <N_Aggregate>: Minor tweak.
2006 * gcc-interface/utils.c (convert): Do not pad when doing an unchecked
2007 conversion here. Use TREE_CONSTANT throughout the function.
2008 (unchecked_convert): Also pad if the source is a CONSTRUCTOR and the
2009 destination is a more aligned array type or a larger aggregate type,
2010 but not between original and packable versions of a type.
2011
62a6ebbd 20122019-02-08 Eric Botcazou <ebotcazou@adacore.com>
2013
2014 * gcc-interface/utils.c (max_size) <tcc_unary>: Be prepared for an
2015 operand with VOID_TYPE.
2016
da383d19 20172019-02-08 Eric Botcazou <ebotcazou@adacore.com>
2018
2019 * gcc-interface/trans.c (elaborate_all_entities): Do not elaborate the
2020 entities of a package renaming another one.
2021
09c123a0 20222019-02-08 Eric Botcazou <ebotcazou@adacore.com>
2023
2024 * gcc-interface/trans.c (Regular_Loop_to_gnu): Replace tests on
2025 individual flag_unswitch_loops and flag_tree_loop_vectorize switches
2026 with test on global optimize switch.
2027 (Raise_Error_to_gnu): Likewise.
2028
a9dd7273 20292019-02-07 Eric Botcazou <ebotcazou@adacore.com>
2030
2031 * libgnarl/s-linux__sparc.ads (ETIMEDOUT): Set to correct value.
2032
4836c4f1 20332019-02-06 Arnaud Charlet <charlet@adacore.com>
2034
2035 * libgnarl/s-linux__x32.ads: Resync list of signals with s-linux.ads
2036
6b56937c 20372019-01-27 Eric Botcazou <ebotcazou@adacore.com>
2038
2039 * repinfo.adb (List_Component_Layout): Remove superfluous space for
2040 zero-sized field.
2041 * gcc-interface/ada-tree.h (TYPE_IS_EXTRA_SUBTYPE_P): New macro.
2042 * gcc-interface/gigi.h (create_extra_subtype): Declare.
2043 * gcc-interface/decl.c (TYPE_ARRAY_SIZE_LIMIT): Likewise.
2044 (update_n_elem): New function.
2045 (gnat_to_gnu_entity): Use create_extra_subtype to create extra subtypes
2046 instead of doing it manually.
2047 <E_Array_Type>: Use update_n_elem to compute the maximum size. Use the
2048 index type instead of base type for the bounds. Set TYPE_ARRAY_MAX_SIZE
2049 of the array to the maximum size.
2050 <E_Array_Subtype>: Create an extra subtype using the index type of the
2051 base array type for self-referential bounds. Use update_n_elem to
2052 compute the maximum size. Set TYPE_ARRAY_MAX_SIZE of the array to the
2053 maximum size.
2054 (gnat_to_gnu_field): Clear DECL_NONADDRESSABLE_P on discriminants.
2055 * gcc-interface/misc.c (gnat_get_alias_set): Return the alias set of
2056 the base type for an extra subtype.
2057 (gnat_type_max_size): Remove obsolete code.
2058 * gcc-interface/trans.c (Attribute_to_gnu): Minor tweak.
2059 (can_be_lower_p): Deal with pathological types.
2060 * gcc-interface/utils.c (create_extra_subtype): New function.
2061 (create_field_decl): Minor tweak.
2062 (max_size) <tcc_reference>: Compute a better value by using the extra
2063 subtypes on the self-referential bounds.
2064 <tcc_binary>: Rewrite. Deal with "negative value" in unsigned types.
2065 <tcc_expression>: Likewise.
2066 * gcc-interface/utils2.c (compare_arrays): Retrieve the original bounds
2067 of the arrays upfront. Swap only if the second length is not constant.
2068 Use comparisons on the original bounds consistently for the null tests.
2069 (build_binary_op): Use TYPE_IS_EXTRA_SUBTYPE_P macro.
2070 (build_allocator): Minor tweak.
2071
ecb2c722 20722019-01-27 Eric Botcazou <ebotcazou@adacore.com>
2073
2074 * gcc-interface/decl.c (array_type_has_nonaliased_component): Return
2075 the same value for every dimension of a multidimensional array type.
2076
10f25579 20772019-01-26 Eric Botcazou <ebotcazou@adacore.com>
2078
2079 * gcc-interface/trans.c (Regular_Loop_to_gnu): Use the SLOC of the
2080 iteration scheme, if present, throughout the translation.
2081
aced6683 20822019-01-26 Eric Botcazou <ebotcazou@adacore.com>
2083
2084 * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Use
2085 DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT for the size to be assigned
2086 by a call to memset if the LHS is a DECL.
2087
18b4b30e 20882019-01-26 Eric Botcazou <ebotcazou@adacore.com>
2089
2090 * gcc-interface/trans.c (struct loop_info_d): Remove artificial field.
2091 (Loop_Statement_to_gnu): Do not set it.
2092
6dce35b7 20932019-01-26 Eric Botcazou <ebotcazou@adacore.com>
2094
2095 * gcc-interface/trans.c (Iterate_Acc_Clause_Arg): Fix formatting.
2096 (Acc_gnat_to_gnu): Likewise.
2097 (Acc_Data_to_gnu): Likewise.
2098 (Acc_Var_to_gnu): Likewise.
2099 (Acc_Reduc_to_gnu): Likewise.
2100 (Acc_Size_List_to_gnu): Likewise.
2101 (Pragma_to_gnu) <Pragma_Acc_Loop>: Likewise.
2102 <Pragma_Acc_Data>): Likewise.
2103 (find_loop_for): Remove default value for parameters.
2104 * gcc-interface/trans.c (gnat_to_gnu) <N_Op_And>: Merge into...
2105 <N_Op_Eq>): ...this.
2106
f8cd11ee 21072019-01-26 Eric Botcazou <ebotcazou@adacore.com>
2108
2109 * gcc-interface/decl.c (annotate_value) <INTEGER_CST>: Use test on
2110 the sign bit instead of on the sign of the value.
2111 <PLUS_EXPR>: Turn addition of negative constant into subtraction.
2112 <MULT_EXPR>: Add test for degenerate case.
2113 <BIT_AND_EXPR>: Simplify.
2114
9a3c51d9 21152019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
2116
2117 * s-oscons-tmplt.c (AF_INET6): Do not undefine for RTEMS.
2118
07c11f2b 21192019-01-09 Sandra Loosemore <sandra@codesourcery.com>
2120
2121 PR other/16615
07c11f2b 2122 * exp_ch11.adb: Change "can not" to "cannot".
2123 * sem_ch4.adb: Likewise.
2124
f4d3c071 21252019-01-09 Sandra Loosemore <sandra@codesourcery.com>
2126
2127 PR other/16615
f4d3c071 2128 * exp_ch9.adb: Mechanically replace "can not" with "cannot".
2129 * libgnat/s-regpat.ads: Likewise.
2130 * par-ch4.adb: Likewise.
2131 * set_targ.adb: Likewise.
2132 * types.ads: Likewise.
2133
902071d1 21342019-01-08 Justin Squirek <squirek@adacore.com>
2135
2136 Revert:
902071d1 2137 2018-07-31 Justin Squirek <squirek@adacore.com>
2138
76fb0465 2139 * lib-writ.adb (Write_With_Lines): Modfiy the generation
2140 of dependencies within ali files so that source unit
2141 bodies are properly listed even if said bodies are
2142 missing. Perform legacy behavior in GNATprove mode.
2143 * lib-writ.ads: Modify documentation to reflect current
2144 behavior.
902071d1 2145
2146 and:
902071d1 2147 2018-09-26 Justin Squirek <squirek@adacore.com>
2148
76fb0465 2149 * lib-writ.adb, lib-writ.ads (Write_With_Lines): Add
2150 documentation and an extra conditional check for RCI
2151 units so that generated ali files will list the spec
2152 only instead of a body when a body is not found.
902071d1 2153
65a33d4a 21542019-01-04 Eric Botcazou <ebotcazou@adacore.com>
2155
2156 * gnatvsn.ads: Bump copyright year.
2157
3d8932fd 21582019-01-01 Jakub Jelinek <jakub@redhat.com>
8e8f6434 2159
fbd26352 2160 Update copyright years.
2161
277184bc 2162 * gnat_ugn.texi: Bump @copying's copyright year.
2163 * gnat_rm.texi: Likewise.
7dfbd804 2164\f
3d8932fd 2165Copyright (C) 2019 Free Software Foundation, Inc.
7dfbd804 2166
2167Copying and distribution of this file, with or without modification,
2168are permitted in any medium without royalty provided the copyright
2169notice and this notice are preserved.