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