[Ada] Fix incorrect Do_Range_Check on type conversion
[gcc.git] / gcc / ada / ChangeLog
1 2019-08-12 Eric Botcazou <ebotcazou@adacore.com>
2
3 * checks.adb (Activate_Range_Check): Remove redundant argument.
4 (Generate_Range_Check): Likewise.
5 (Apply_Float_Conversion_Check): Reset the Do_Range_Check flag on
6 entry and remove redundant condition.
7
8 2019-08-02 Alexandre Oliva <oliva@adacore.com>
9
10 * libgnat/a-exexpr.adb (Begin_Handler_v1, End_Handler_v1): New.
11 (Claimed_Cleanup): New.
12 (Begin_Handler, End_Handler): Document.
13 * gcc-interface/trans.c (gigi): Switch to exception handler
14 ABI #1.
15 (Exception_Handler_to_gnu_gcc): Save the original cleanup
16 returned by begin handler, pass it to end handler, and use
17 EH_ELSE_EXPR to pass a propagating exception to end handler.
18 (gnat_to_gnu): Leave the exception pointer alone for reraise.
19 (add_cleanup): Handle EH_ELSE_EXPR, require it by itself.
20
21 2019-07-23 Ed Schonberg <schonberg@adacore.com>
22
23 * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations,
24 Freeze_Entity_Checks): Include Aspect_CPU with other aspects
25 whose expresssion may depend on a discriminant, and thus require
26 that components of the type be made visible.
27
28 2019-07-23 Eric Botcazou <ebotcazou@adacore.com>
29
30 * checks.adb (Convert_And_Check_Range): Add Suppress parameter
31 and pass it in the call to Insert_Actions. Rename local
32 variable.
33 (Generate_Range_Check): Minor comment fixes. Pass Range_Check
34 in the first call to Convert_And_Check_Range and All_Checks in
35 the second call.
36 * exp_ch4.adb (Expand_N_Type_Conversion): Reset the
37 Do_Overflow_Check flag in the float-to-float case too if there
38 is also a range check.
39
40 2019-07-23 Eric Botcazou <ebotcazou@adacore.com>
41
42 * checks.adb (Activate_Overflow_Check): Remove redundant
43 argument.
44 * exp_ch4.adb (Discrete_Range_Check): Reset the overflow flag.
45 (Expand_N_Type_Conversion): Do not reset it here.
46
47 2019-07-23 Eric Botcazou <ebotcazou@adacore.com>
48
49 * repinfo.adb (List_Component_Layout): Pass Decimal to UI_Write.
50 (Write_Val): Likewise.
51
52 2019-07-23 Ed Schonberg <schonberg@adacore.com>
53
54 * aspects.ads: New table Operational_Aspect, used to distinguish
55 between aspects that are view-specific, such as those related to
56 iterators, and representation aspects that apply to all views of
57 a type.
58 * aspects.adb (Find_Aspect): If the aspect being sought is
59 operational, do not ecamine the full view of a private type to
60 retrieve it.
61 * sem_ch5.adb (Analyze_Iterator_Specification): Improve error
62 message when the intended domain of iteration does not implement
63 the required iterator aspects.
64
65 2019-07-23 Yannick Moy <moy@adacore.com>
66
67 * sem_spark.ads (Is_Local_Context): New function.
68 * sem_spark.adb (Check_Declaration): Issue errors on violations
69 of SPARK RM 3.10(4)
70 (Process_Path): Do not issue error on borrow/observe during
71 elaboration, as these are caught by the new rule.
72
73 2019-07-23 Yannick Moy <moy@adacore.com>
74
75 * exp_ch7.adb (Create_Finalizer): Force finalizer not to be
76 Ghost enabled.
77 * exp_dbug.adb (Get_External_Name): Explain special case of
78 Ghost finalizer.
79
80 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
81
82 * repinfo.adb (List_Entities): Also list compiled-generated
83 types present as Etype of objects.
84
85 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
86
87 * sinfo.ads: Update the documentation about the
88 Do_Division_Check, Do_Overflow_Check and Do_Range_Check flags.
89
90 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
91
92 * exp_ch4.adb (Expand_N_Type_Conversion): Beef up comment.
93 (Fixup_Universal_Fixed_Operation): Set the base type instead of
94 the type of the enclosing type conversion on the operation.
95
96 2019-07-22 Ed Schonberg <schonberg@adacore.com>
97
98 * exp_ch4.adb (Expand_N_In): Do not suggest the use of attribute
99 'Valid as a replacement for a range check on a discrete type
100 when the bounds of the range are given by type conversions,
101 because in such a case there are distinct types involved and the
102 subbested attribute replacement would be misplaced.
103
104 2019-07-22 Yannick Moy <moy@adacore.com>
105
106 * sem_spark.adb (Get_Root_Object, Is_Path_Expression,
107 Is_Subpath_Expression): Add parameter Is_Traversal to adapt
108 these functions to the case of paths returned from a traversal
109 function.
110 (Read_Indexes): Handle the case of an if-expression or
111 case-expression.
112 (Check_Statement): Check Emit_Messages only when issuing an
113 error message. This is important as Emit_Messages may store the
114 information that an error was detected.
115
116 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
117
118 * checks.adb (Apply_Type_Conversion_Checks): Do not set
119 Do_Range_Check flag on conversions from fixed-point types
120 either.
121 * exp_attr.adb: Add use and with clause for Expander.
122 (Expand_N_Attribute_Reference) <Fixed_Value, Integer_Value>: Set
123 the Conversion_OK flag and do not generate overflow/range checks
124 manually.
125 * exp_ch4.adb (Expand_N_Qualified_Expression): Remove
126 superfluous clearing of Do_Range_Check flag.
127 (Discrete_Range_Check): New procedure to generate a range check
128 for discrete types.
129 (Real_Range_Check): Remove redundant local variable and adjust.
130 Remove useless shortcut. Clear Do_Range_Check flag on all
131 paths.
132 (Expand_N_Type_Conversion): Remove redundant test on
133 Conversion_OK. Call Discrete_Range_Check to generate range
134 checks on discrete types. Remove obsolete code for
135 float-to-integer conversions. Add code to generate range checks
136 for conversions involving fixed-point types.
137
138 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
139
140 * sprint.ads: Fix pasto in comment.
141
142 2019-07-22 Javier Miranda <miranda@adacore.com>
143
144 * sem_res.adb (Resolve_Actuals): Replace code that displaces the
145 pointer to an allocated object to reference its secondary
146 dispatch table by a type conversion (which takes care of
147 handling all cases).
148
149 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
150
151 * sprint.adb (Sprint_Node_Actual)
152 <N_Decimal_Fixed_Point_Definition>: Swap a couple of spaces.
153 (Write_Itype): Minor consistency fixes throughout. Add support
154 for printing ordinary and decimal fixed-point types and
155 subtypes.
156
157 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
158
159 * exp_attr.adb (Expand_Loop_Entry_Attribute): Beef up comment.
160
161 2019-07-22 Ed Schonberg <schonberg@adacore.com>
162
163 * libgnat/s-valboo.ads, libgnat/s-valcha.ads,
164 libgnat/s-valdec.ads, libgnat/s-valenu.ads,
165 libgnat/s-valint.ads, libgnat/s-vallld.ads,
166 libgnat/s-vallli.ads, libgnat/s-valllu.ads,
167 libgnat/s-valrea.ads, libgnat/s-valuns.ads,
168 libgnat/s-valwch.ads: Change categorization of packages that
169 implement attribute 'Value from Pure to Preelaborate, to prevent
170 undesirable optimizations when the evaluation of the attribute
171 raises Constraint_Error, but subsequent use of the result of
172 this evsaluation is removed by a subsequent optimization.
173
174 2019-07-22 Ed Schonberg <schonberg@adacore.com>
175
176 * sem_warn.adb (Check_References): Do not emit s warning on a
177 referenced entity with no explicit assignment if the type of the
178 entity has Preelaborable_Initialixation, such as
179 Exception_Occurrence.
180
181 2019-07-22 Javier Miranda <miranda@adacore.com>
182
183 * exp_ch4.adb (Size_In_Storage_Elements): Improve the expansion
184 to handle array indexes that are modular type.
185 (Expand_N_Allocator): For 32-bit targets improve the generation
186 of the runtime check associated with large arrays supporting
187 arrays initialized with a qualified expression.
188 * libgnat/s-imenne.adb (Image_Enumeration_8,
189 Image_Enumeration_16, Image_Enumeration_32): Define the index of
190 Index_Table with range Natural'First .. Names'Length since in
191 the worst case all the literals of the enumeration type would be
192 single letter literals and the Table built by the frontend would
193 have as many components as the length of the names string. As a
194 result of this enhancement, the internal tables declared using
195 Index_Table have a length closer to the real needs, thus
196 avoiding the declaration of large arrays on 32-bit CCG targets.
197
198 2019-07-22 Yannick Moy <moy@adacore.com>
199
200 * sem_ch3.adb (Constrain_Access): Issue a message about ignored
201 constraint.
202
203 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
204
205 * sem_ch8.adb (End_Use_Type): Reset the In_Use flag on the
206 class-wide type if the type is tagged.
207 (Use_One_Type): Add commentary on the handling of the class-wide
208 type.
209
210 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
211
212 * einfo.ads (Is_For_Access_Subtype): Delete.
213 (Set_Is_For_Access_Subtype): Likewise.
214 * einfo.adb (Is_For_Access_Subtype): Likewise.
215 (Set_Is_For_Access_Subtype): Likewise.
216 (Write_Entity_Flags): Do not write Is_For_Access_Subtype.
217 * exp_ch4.adb (Expand_N_Selected_Component): Do not deal with
218 it.
219 * exp_spark.adb (Expand_SPARK_N_Selected_Component): Likewise.
220 * sem_ch4.adb (Analyze_Explicit_Dereference): Likewise.
221 * sem_ch3.adb (Build_Discriminated_Subtype): Do not build a
222 special private subtype for access-to-record subtypes.
223
224 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
225
226 * sem_ch3.adb (Complete_Private_Subtype): Rework the setting of
227 the Etype of the full view for full base types that cannot
228 contain any discriminant. Remove code and comment about it in
229 the main path.
230
231 2019-07-22 Ed Schonberg <schonberg@adacore.com>
232
233 * sem_ch3.adb (Convert_Bound): Subsidiary of
234 Floating_Point_Type_Declaration, to handle properly range
235 specifications with bounds that may include static constants of
236 a given type rather than real literals.
237
238 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
239
240 * sem_aggr.adb (Rewrite_Bound): Be prepared for discriminals
241 too.
242 (Rewrite_Range;): Minor tweak.
243 (Resolve_Record_Aggregate): For a component with default
244 initialization whose expression is an array aggregate, also
245 rewrite the bounds of the component associations, if any.
246
247 2019-07-22 Gary Dismukes <dismukes@adacore.com>
248
249 * exp_ch5.adb (Expand_N_Case_Statement): In the case where a
250 case statement is rewritten as an equivalent if statement,
251 inherit the From_Condition_Expression flag from the case
252 statement.
253
254 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
255
256 * sem_ch8.adb (Check_Constrained_Object): Further extend the
257 special optimization to all limited types.
258
259 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
260
261 * exp_attr.adb (Expand_N_Attribute_Reference)
262 <Attribute_Enum_Val>: Set No_Truncation on the
263 N_Unchecked_Type_Conversion built around the argument passed to
264 the attribute.
265
266 2019-07-22 Nicolas Roche <roche@adacore.com>
267
268 * libgnat/s-valrea.adb (Scan_Real): Ignore non significative
269 digits to avoid converging to infinity in some cases.
270
271 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
272
273 * libgnat/g-encstr.adb (Encode_Wide_String): Fix oversight.
274 (Encode_Wide_Wide_String): Likewise.
275
276 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
277
278 * sem_warn.adb (Find_Var): Bail out for a function call with an
279 Out or In/Out parameter.
280
281 2019-07-22 Nicolas Roche <roche@adacore.com>
282
283 * terminals.c (__gnat_tty_waitpid): Support both blocking and
284 not blocking mode.
285 * libgnat/g-exptty.ads (Is_Process_Running): New function.
286 * libgnat/g-exptty.adb (Close): Don't try to interrupt/terminate
287 a process if it is already dead.
288
289 2019-07-22 Ed Schonberg <schonberg@adacore.com>
290
291 * freeze.adb (Freeze_Fixed_Point_Type): When freezing a
292 fixed-point subtype, check whether the parent type declarastion
293 includes an aspect specification for the 'Small type attribute,
294 and inherit the specified value.
295
296 2019-07-22 Javier Miranda <miranda@adacore.com>
297
298 * freeze.adb (Freeze_Subprogram): Check that C++ constructors
299 must have external or link name.
300
301 2019-07-22 Ed Schonberg <schonberg@adacore.com>
302
303 * sem_res.adb (Resolve_Selected_Component): If the prefix has a
304 deferred reference, generate the correct reference now, to
305 indicate that the previous assignment is used. This prevents
306 spurious warnings on useless assignments when compiling with all
307 warnings enabled. when there is a subsequent call in the same
308 stqtement list, in which the prefix of the selected component is
309 the actual for an out parameter.
310
311 2019-07-22 Eric Botcazou <ebotcazou@adacore.com>
312
313 * exp_attr.adb (Expand_Loop_Entry_Attribute): Copy the condition
314 of a while loop instead of simply relocating it.
315
316 2019-07-18 Arnaud Charlet <charlet@adacore.com>
317
318 * Makefile.rtl, expect.c, env.c, aux-io.c, mkdir.c, initialize.c,
319 cstreams.c, raise.c, tracebak.c, adadecode.c, init.c, raise-gcc.c,
320 argv.c, adaint.c, adaint.h, ctrl_c.c, sysdep.c, rtinit.c, cio.c,
321 seh_init.c, exit.c, targext.c: Introduce a "STANDALONE" mode where C
322 runtime files do not have any dependency on GCC include files.
323 Remove unnecessary includes.
324 Remove remaining references to VMS in runtime C file.
325 * runtime.h: new File.
326
327 2019-07-13 Andreas Schwab <schwab@linux-m68k.org>
328
329 * Makefile.rtl: Use g-sercom__linux.adb for all linuxes.
330
331 2019-07-11 Piotr Trojanek <trojanek@adacore.com>
332
333 * lib-writ.adb (Ensure_System_Dependency,
334 Up_To_Date_ALI_File_Exists, Write_ALI): Replace low-level access
335 to table with a high-level query.
336
337 2019-07-11 Piotr Trojanek <trojanek@adacore.com>
338
339 * checks.adb: Fix typo in comment.
340 * sem.adb (Semantics): Avoid repeated calls to
341 In_Extended_Main_Source_Unit by reusing an already-cached
342 result.
343 * sem_util.adb (First_Global): Fix style.
344
345 2019-07-11 Yannick Moy <moy@adacore.com>
346
347 * sem_res.adb (Resolve_Call): Do not perform dimensionality
348 checking on inlined bodies.
349
350 2019-07-11 Yannick Moy <moy@adacore.com>
351
352 * debug.adb: Flip meaning of debug switch -gnatdF.
353
354 2019-07-11 Yannick Moy <moy@adacore.com>
355
356 * sem_eval.adb (Is_Same_Value): Add special case for rewritten
357 Loop_Entry attribute.
358
359 2019-07-11 Claire Dross <dross@adacore.com>
360
361 * gnat1drv.adb: SPARK checking rules for pointer aliasing are
362 moved to GNATprove backend.
363 * sem_spark.ads, sem_spark.adb (Sem_SPARK): Is now a generic
364 unit. Takes as parameters:
365 - Retysp which is used to query the most underlying type
366 visible in SPARK. We do not introduce aliasing checks for
367 types which are not visibly deep.
368 - Component_Is_Visible_In_SPARK is used to avoid doing pointer
369 aliasing checks on components which are not visible in SPARK.
370 - Emit_Messages returns True in the second phase of SPARK
371 analysis. Error messages for failed aliasing checks are only
372 output in this case.
373 Additionally, errors on constructs not supported in SPARK are
374 removed as duplicates of marking errors. Components are stored
375 in the permission map using their original component to avoid
376 inconsistencies between components of different views of the
377 same type.
378 (Check_Expression): Handle delta constraints.
379 (Is_Deep): Exported so that we can check for SPARK restrictions
380 on deep types inside SPARK semantic checkings.
381 (Is_Traversal_Function): Exported so that we can check for SPARK
382 restrictions on traversal functions inside SPARK semantic
383 checkings.
384 (Check_Call_Statement, Read_Indexes): Check wether we are
385 dealing with a subprogram pointer type before querying called
386 entity.
387 (Is_Subpath_Expression): Image attribute can appear inside a
388 path.
389 (Check_Loop_Statement): Correct order of statements in the loop.
390 (Check_Node): Ignore raise nodes.
391 (Check_Statement): Use Last_Non_Pragma to get the object
392 declaration in an extended return statement.
393
394 2019-07-11 Patrick Bernardi <bernardi@adacore.com>
395
396 * bindgen.adb (Gen_Main): Do not generate a reference to
397 Ada_Main_Program_Name when the Minimal_Binder flag is set.
398 (Gen_Output_File_Ada): Do not output GNAT_Version and
399 Ada_Main_Program_Name info if Minimal_Binder flag is set.
400 * bindusg.adb: Add documentation for new -minimal switch.
401 * gnatbind.adb (Scan_Bind_Arg): Scan -minimal switch.
402 * opt.ads: Add new global flag Minimal_Binder to indicate if the
403 binder should not produce global variables.
404 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
405 Update documentation with new binder -minimal switch.
406 * gnat_ugn.texi: Regenerate.
407
408 2019-07-11 Eric Botcazou <ebotcazou@adacore.com>
409
410 * Makefile.rtl: Add warning note about compilation flags and
411 capitalize.
412
413 2019-07-11 Ed Schonberg <schonberg@adacore.com>
414
415 * exp_ch9.adb (Expand_N_Protected_Type_Declaaration): New
416 subsidiary routine Replace_Access_Definition, to handle properly
417 a protected type PT one of whose private components is of type
418 access PT.
419
420 2019-07-11 Dmitriy Anisimkov <anisimko@adacore.com>
421
422 * libgnat/g-socket.ads (Level_Type): Add enumerators for
423 IP_Protocol_For_ICMP, IP_Protocol_For_IGMP,
424 IP_Protocol_For_RAW_Level.
425 * libgnat/g-socket.adb (Levels): Handle them.
426 * s-oscons-tmplt.c: Import socket protocols defined in
427 netinet/in.h.
428
429 2019-07-11 Claire Dross <dross@adacore.com>
430
431 * libgnat/a-cfhama.adb, libgnat/a-cfhase.adb (Free): Do not
432 reset the Has_Element flag if no element is freed.
433
434 2019-07-11 Arnaud Charlet <charlet@adacore.com>
435
436 * errno.c: Remove obsolete support for MaRTE OS.
437
438 2019-07-11 Ed Schonberg <schonberg@adacore.com>
439
440 * exp_ch4.adb (Expand_N_Type_Conversion): If a predicate check
441 is generated, analyze it with range check suppressed, because
442 that check has been previously applied.
443 * exp_ch5.adb (Expand_N_Assignment_Statement): If the RHS is a
444 type conversion to the type of the LHS, do not apply a predicate
445 check to the RHS because it will have been generated already
446 during its expansion.
447 * exp_ch6.adb (Can_Fold_Predicate_Call): Extend processing to
448 handle a predicate check on a constant entity whose value is
449 static.
450
451 2019-07-11 Hristian Kirtchev <kirtchev@adacore.com>
452
453 * bindo.adb: Remove the documentation of switch -d_N because it
454 is no longer in use.
455 * bindo-graphs.ads, bindo-graphs.adb (Is_Spec_Before_Body_Edge):
456 New routine.
457 * bindo-writers.adb (Write_Dependency_Edge): Add the missing
458 case of a spec-before-body edge.
459
460 2019-07-11 Dmitriy Anisimkov <anisimko@adacore.com>
461
462 * libgnat/g-socket.ads (Mode_Type): Add a Socket_Raw enumerator.
463 * libgnat/g-socket.adb (Modes): Handle Socket_Raw.
464
465 2019-07-11 Justin Squirek <squirek@adacore.com>
466
467 * exp_ch9.adb (Build_Private_Protected_Declaration): Add
468 exception for the moving of pragmas to internally generated
469 specs for pragma Unreferenced.
470
471 2019-07-11 Bob Duff <duff@adacore.com>
472
473 * doc/gnat_ugn/gnat_utility_programs.rst: Fix inconsistent
474 documentation for gnatmetric.
475 * gnat_ugn.texi: Regenerate.
476
477 2019-07-11 Bob Duff <duff@adacore.com>
478
479 * doc/gnat_ugn/gnat_utility_programs.rst: Document gnatpp's
480 --spaces-only switch.
481
482 2019-07-11 Hristian Kirtchev <kirtchev@adacore.com>
483
484 * sem_util.adb (Null_Status): Assume that an erroneous construct
485 has an undefined null status.
486
487 2019-07-11 Hristian Kirtchev <kirtchev@adacore.com>
488
489 * checks.adb, exp_ch6.adb, gnat1drv.adb, sem_aux.adb,
490 sem_ch2.adb, sem_ch8.adb, sem_res.adb: Minor reformatting.
491
492 2019-07-11 Hristian Kirtchev <kirtchev@adacore.com>
493
494 * sem_ch8.adb (Analyze_Object_Renaming): Obtain the object being
495 renamed using routine Get_Object_Name which takes care of
496 various name forms.
497 (Get_Object_Name): New routine.
498
499 2019-07-11 Ed Schonberg <schonberg@adacore.com>
500
501 * exp_ch6.adb (Can_Fold_Predicate_Call): New function,
502 subsidiary of Expand_Call_Helper, to compute statically a
503 predicate check when the argument is a static integer.
504
505 2019-07-11 Hristian Kirtchev <kirtchev@adacore.com>
506
507 * sem_res.adb (Resolve_Op_Not): Do not rewrite an equality
508 operator into a function call when the operator is intrinsic.
509
510 2019-07-11 Thomas Quinot <quinot@adacore.com>
511
512 * sem_prag.adb (Analyze_Pragma, case pragma Check): Do not call
513 Set_SCO_Pragma_Enabled for the dynamic predicate case.
514
515 2019-07-11 Hristian Kirtchev <kirtchev@adacore.com>
516
517 * exp_util.ads, exp_util.adb (Needs_Finalization): Move to
518 Sem_Util.
519 * sem_ch9.adb (Analyze_Protected_Definition): Code cleanup. Mark
520 the protected type as having controlled components when it
521 contains at least one such component.
522 * sem_util.ads, sem_util.adb (Needs_Finalization): New
523 function.
524
525 2019-07-11 Eric Botcazou <ebotcazou@adacore.com>
526
527 * alloc.ads (Rep_JSON_Table_Initial): New constant.
528 (Rep_JSON_Table_Increment): Likewise.
529 * debug.adb: Document -gnatd_j switch.
530 * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add
531 repinfo-input.o.
532 * gnat1drv.adb: Add with clause for Repinfo.Input.
533 Add with and use clauses for Sinput.
534 (Read_JSON_Files_For_Repinfo): New procedure.
535 (Gnat1drv1): Deal with -gnatd_j switch.
536 * repinfo-input.ad[sb]: New unit.
537 * snames.ads-tmpl (Name_Discriminant): New constant.
538 (Name_Operands): Likewise.
539
540 2019-07-11 Justin Squirek <squirek@adacore.com>
541
542 * checks.adb (Apply_Accessibility_Check): Add check for constant
543 folded conditions on accessibility checks.
544
545 2019-07-11 Arnaud Charlet <charlet@adacore.com>
546
547 * libgnarl/g-thread.ads, libgnarl/g-thread.adb (Get_Thread):
548 Update comments. Add new version taking a Task_Id.
549
550 2019-07-11 Hristian Kirtchev <kirtchev@adacore.com>
551
552 * bindo.adb: Update the section of switches and debugging
553 elaboration issues.
554 * bindo.ads: Add type Elaboration_Phase.
555 * bindo-augmentors.adb: Add use clause for
556 Bindo.Writers.Phase_Writers.
557 (Augment_Library_Graph): Signal the start and end of the
558 aubmentation phase.
559 * bindo-builders.adb: Add with and use clause for Bindo.Writers.
560 Add use clause for Bindo.Writers.Phase_Writers.
561 (Build_Invocation_Graph): Signal the start and end of the
562 invocation graph construction phase.
563 (Build_Library_Graph): Signal the start and end of the library
564 graph construction phase.
565 * bindo-diagnostics.adb: Add use clause for
566 Bindo.Writers.Phase_Writers.
567 (Diagnose_Cycle): Signal the start and end of the cycle
568 diagnostic phase.
569 * bindo-elaborators.adb: Add use clause for
570 Bindo.Writers.Phase_Writers.
571 (Elaborate_Units): Signal the start and end of the unit
572 elaboration phase.
573 * bindo-graphs.adb: Add use clause for
574 Bindo.Writers.Phase_Writers.
575 (Find_Components): Signal the start and end of the component
576 discovery phase.
577 (Find_Cycles): Signal the start and end of the cycle discovery
578 phase.
579 * bindo-units.adb: Add with and use clause for Bindo.Writers.
580 Add use clause for Bindo.Writers.Phase_Writers.
581 (Collect_Elaborable_Units): Signal the start and end of the unit
582 collection phase.
583 * bindo-validators.adb: Add with and use clause for
584 Bindo.Writers. Add use clause for Bindo.Writers.Phase_Writers.
585 (Validate_Cycles, Validate_Elaboration_Order,
586 Validate_Invocation_Graph, Validate_Library_Graph): Signal the
587 start and end of the libray graph validation phase.
588 * bindo-writers.ads, bindo-writers.adb: Add new nested package
589 Phase_Writers.
590 * debug.adb: Update the documentation of switch d_S.
591
592 2019-07-11 Yannick Moy <moy@adacore.com>
593
594 * sem_res.adb (Check_Argument_Order): Special case calls to
595 operators.
596
597 2019-07-10 Dmitriy Anisimkov <anisimko@adacore.com>
598
599 * libgnat/s-ststop.adb: Remove System.Strings.Stream_Ops
600 dependence on System.Streams.Stream_IO.
601
602 2019-07-10 Ed Schonberg <schonberg@adacore.com>
603
604 * sem_ch2.adb (Analyze_Integer_Literal): Preserve the type of
605 the literal if prior analysis determined that its type is a
606 modular integer type.
607
608 2019-07-10 Doug Rupp <rupp@adacore.com>
609
610 * init.c: Do not attempt to re-arm guard page on x86_64-vx7(r2).
611
612 2019-07-10 Ed Schonberg <schonberg@adacore.com>
613
614 * sem_ch8.adb (Check_Constrained_Object): A record that is
615 limited because of the presence of a limited component is
616 constrained, and no subtype indiciation needs to be created for
617 it, just as is the case for declared limited records.
618
619 2019-07-10 Yannick Moy <moy@adacore.com>
620
621 * sem_aux.adb, sem_aux.ads (Is_Protected_Operation): New
622 function to determine if a subprogram is protected.
623 * sem_spark.adb (Setup_Protected_Components): New procedure to
624 add protected components to the environment.
625 (Check_Callable_Body): Call the new Setup_Protected_Components.
626 (Check_Package_Spec): Merge local environment with enclosing one
627 when done.
628
629 2019-07-10 Claire Dross <dross@adacore.com>
630
631 * sem_spark.adb (Check_Expression): Allow digits constraints as
632 input.
633 (Illegal_Global_Usage): Pass in the entity.
634 (Is_Subpath_Expression): New function to allow different nodes
635 as inner parts of a path expression.
636 (Read_Indexes): Allow concatenation and aggregates with box
637 expressions. Allow attributes Update and Loop_Entry.
638 (Check_Expression): Allow richer membership test.
639 (Check_Node): Ignore bodies of generics.
640 (Get_Root_Object): Allow concatenation and attributes.
641
642 2019-07-10 Hristian Kirtchev <kirtchev@adacore.com>
643
644 * sem_ch6.adb (Check_Discriminant_Conformance): Use Find_Type to
645 discover the type of a full view discriminant.
646
647 2019-07-10 Arnaud Charlet <charlet@adacore.com>
648
649 * doc/gnat_ugn/gnat_and_program_execution.rst: Improve gnatmem's
650 doc for the depth switch.
651
652 2019-07-10 Bob Duff <duff@adacore.com>
653
654 * doc/gnat_ugn/gnat_utility_programs.rst: Document gnatpp's
655 --source-line-breaks switch.
656
657 2019-07-10 Justin Squirek <squirek@adacore.com>
658
659 * doc/gnat_rm/implementation_defined_attributes.rst: Add mention
660 of 'Image attribute with 'Img's entry to mention additional
661 added 2012 usage of Obj'Image.
662 * doc/gnat_rm/implementation_defined_pragmas.rst: Correct
663 mispelling of Async_Writers.
664 * gnat_rm.texi: Regenerate.
665 * sem_prag.adb (Analyze_Pragma): Correct mispelling of
666 Async_Writers.
667 * sem_util.adb (State_Has_Enabled_Property): Correct mispelling
668 of Async_Writers.
669
670 2019-07-10 Simon Buist <buist@adacore.com>
671
672 * sem_util.ads (Child_Prefix): New constant.
673 * sem_util.adb (Unique_Name): Add a special prefix to child
674 units that have a nested subprogram or package.
675
676 2019-07-10 Arnaud Charlet <charlet@adacore.com>
677
678 * sfn_scan.adb (Scan_SFN_Pragmas): Add pragma Assert.
679
680 2019-07-10 Hristian Kirtchev <kirtchev@adacore.com>
681
682 * sem_ch3.adb (Check_Nonoverridable_Aspects): Correct the
683 spelling in certain error messages.
684 (Check_Pragma_Implemented): Correct the spelling in certain
685 error messages.
686
687 2019-07-10 Eric Botcazou <ebotcazou@adacore.com>
688
689 * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add g-brapre.
690 * libgnat/g-brapre.ads: New package specification.
691 * doc/gnat_rm/the_gnat_library.rst: Document it.
692 * gnat_rm.texi: Regenerate.
693
694 2019-07-10 Yannick Moy <moy@adacore.com>
695
696 * osint-c.adb (Set_File_Name): Always add extension for multiple
697 units per file mode.
698
699 2019-07-10 Corentin Gay <gay@adacore.com>
700
701 * sysdep.c: Put include directive for 'vxWorks.h' before any
702 other VxWorks headers.
703
704 2019-07-10 Eric Botcazou <ebotcazou@adacore.com>
705
706 * doc/gnat_rm/implementation_defined_attributes.rst
707 (Scalar_Storage_Order): Minor tweaks. Add note about debuggers.
708 * gnat_rm.texi: Regenerate.
709
710 2019-07-10 Hristian Kirtchev <kirtchev@adacore.com>
711
712 * exp_ch4.adb (Expand_N_Case_Expression): Mark the generated
713 assignments to the temporary result as being OK because the
714 expansion of case expressions is correct by construction.
715 (Is_Copy_Type): Update the predicate to match the comment
716 within.
717
718 2019-07-10 Hristian Kirtchev <kirtchev@adacore.com>
719
720 * bindo-graphs.adb, bindo.adb, debug.adb, exp_ch6.adb,
721 sem_ch10.adb, sem_ch13.adb, sem_ch3.adb, sem_ch4.adb,
722 sem_ch6.adb, sem_ch7.adb, sem_res.adb, sem_spark.adb,
723 sem_util.adb, warnsw.ads: Minor reformatting.
724
725 2019-07-10 Joffrey Huguet <huguet@adacore.com>
726
727 * libgnat/a-strbou.ads, libgnat/a-strfix.ads,
728 libgnat/a-strunb.ads, libgnat/a-strunb__shared.ads: Add global
729 contracts, contract cases, preconditions and postconditions to
730 procedures and functions.
731
732 2019-07-10 Doug Rupp <rupp@adacore.com>
733
734 * sysdep.c (__gnat_is_file_not_found_error): Reformulate to also
735 work for vxworks7r2 SR0610.
736
737 2019-07-10 Doug Rupp <rupp@adacore.com>
738
739 * env.c (__gnat_environ): Reformulate to also work for
740 vxworks7r2 SR0610.
741
742 2019-07-10 Patrick Bernardi <bernardi@adacore.com>
743
744 * Makefile.rtl: Handle vxworks7r2 ppc target
745
746 2019-07-10 Hristian Kirtchev <kirtchev@adacore.com>
747
748 * bindo.adb: Update the section on switches.
749 * bindo-graphs.adb
750 (Add_Cycle, Add_Vertex_And_Complement): Remove.
751 (Create): The graph no longer needs a set of recorded cycles
752 because the cycles are not rediscovered in permuted forms.
753 (Cycle_End_Vertices): New routine.
754 (Destroy): The graph no longer needs a set of recorded cycles
755 because the cycles are not rediscovered in permuted forms.
756 (Destroy_Library_Graph_Vertex): Move to the library level.
757 (Find_All_Cycles_Through_Vertex, Find_All_Cycles_With_Edge):
758 Remove.
759 (Find_Cycles_From_Successor, Find_Cycles_From_Vertex,
760 Find_Cycles_In_Component, Has_Elaborate_All_Edge): New routines.
761 (Insert_And_Sort): Remove.
762 (Is_Elaborate_Body_Edge): Use predicate
763 Is_Vertex_With_Elaborate_Body.
764 (Is_Recorded_Cycle): Remove.
765 (Is_Vertex_With_Elaborate_Body): New routine.
766 (Normalize_And_Add_Cycle): Remove.
767 (Precedence): Rename to xxx_Precedence, where xxx relates to the
768 input. These versions better reflect the desired input
769 precedence.
770 (Record_Cycle): New routine.
771 (Remove_Vertex_And_Complement, Set_Is_Recorded_Cycle): Remove.
772 (Trace_xxx): Update all versions to use debug switch -d_t.
773 (Trace_Component): New routine.
774 (Trace_Eol): Removed.
775 (Trace_Vertex): Do not output the component as this information
776 is already available when the component is traced.
777 (Unvisit, Visit): New routine.
778 * bindo-graphs.ads: Add new instance LGV_Lists. Remove instance
779 RC_Sets. Update the structure of type Library_Graph_Attributes
780 to remove the set of recorded cycles.
781 (Destroy_Library_Graph_Vertex): Move to the library level.
782 * bindo-writers.adb (Write_Component_Vertices): Output
783 information about the number of vertices.
784 * debug.adb: Document the use of binder switch -d_t. Update the
785 use of binder switch -d_T.
786
787 2019-07-10 Yannick Moy <moy@adacore.com>
788
789 * sem_spark.adb (Get_Root_Object): Replace precondition by error
790 message.
791 (Read_Indexes): Replace precondition by error message.
792 (Check_Callable_Body): Check only traversal function returns an
793 anonymous access type.
794 (Check_Expression): Issue error on unexpected expression as
795 path.
796 * sem_util.adb (First_Global): Fix access to global on
797 entry/task.
798
799 2019-07-10 Javier Miranda <miranda@adacore.com>
800
801 * exp_ch6.adb (Is_Class_Wide_Interface_Type): New subprogram.
802 (Expand_Call_Helper): Handle non-limited views when we check if
803 any formal is a class-wide interface type.
804 * exp_disp.adb (Expand_Interface_Actuals): Handle non-limited
805 views when we look for interface type formals to force "this"
806 displacement.
807
808 2019-07-10 Ed Schonberg <schonberg@adacore.com>
809
810 * sem_res.adb (Resolve_Equality_Op): Do not replace the resolved
811 operator by its alias if expander is not active, because the
812 operand type may not be frozen yet and its inherited operations
813 have not yet been created.
814
815 2019-07-10 Hristian Kirtchev <kirtchev@adacore.com>
816
817 * bindo-elaborators.adb (Elaborate_Units): Set attribute
818 Elab_Position of all elaborated units.
819 (Set_Unit_Elaboration_Positions): New routine.
820
821 2019-07-10 Gary Dismukes <dismukes@adacore.com>
822
823 * exp_util.adb: Reformatting and a typo fix.
824
825 2019-07-10 Yannick Moy <moy@adacore.com>
826
827 * exp_util.adb (Remove_Side_Effects): Prefer renamings for
828 objects of possible owning type in GNATprove mode.
829
830 2019-07-09 Ed Schonberg <schonberg@adacore.com>
831
832 * sem_ch3.adb (Analyze_Object_Declaration): If the object type
833 is a composite type that has a dynamic predicate and, the
834 expression in the declaration is an aggregate, the generated
835 predicate check must appear after the expanded code for the
836 aggregate, which will appear after the rewritten object
837 declarastion.
838
839 2019-07-09 Justin Squirek <squirek@adacore.com>
840
841 * sem_eval.adb (Expr_Value_E): Add conditional to correctly
842 handle constant enumerated character types.
843
844 2019-07-09 Eric Botcazou <ebotcazou@adacore.com>
845
846 * libgnarl/s-osinte__mingw.ads (CRITICAL_SECTION): Use proper
847 type for SpinCount component.
848
849 2019-07-09 Justin Squirek <squirek@adacore.com>
850
851 * exp_ch4.adb (Expand_N_Allocator): Add conditional to detect
852 the presence of anoymous access type allocators and issue a
853 warning if the appropriate warning flag is enabled.
854 * warnsw.ads: Add new warning flag for anonymous allocators
855 * warnsw.adb (All_Warnings, Restore_Warnings, Save_Warnings,
856 Set_Underscore_Warning_Switch): Register new flags.
857 (WA_Warnings): Register new flag as an "all warnings" switch
858 * usage.adb,
859 doc/gnat_ugn/building_executable_programs_with_gnat.rst:
860 Document new warning switches -gnatw_a and -gnatw_A.
861 * gnat_ugn.texi: Regenerate.
862
863 2019-07-09 Ed Schonberg <schonberg@adacore.com>
864
865 * sem_ch4.adb (Diagnose_Call): Improve error recovery when a
866 local subprogram name hides a possible candidate name declared
867 in a child package in the context of the current unit.
868 * sem_ch6.adb (Process_Formals): Protect against malformed
869 formal types when the parameter type does not denote an entity.
870
871 2019-07-09 Hristian Kirtchev <kirtchev@adacore.com>
872
873 * bindo-augmentors.adb (Visit_Elaboration_Root): Do not start a
874 DFS from an elaboration root whose corresponding unit lacks
875 elaboration code. This behavior mimics that of the old
876 elaboration order mechanism.
877 * bindo-graphs.adb (Find_All_Cycles_Through_Vertex): Move the
878 vertex tracing within the functional branches of the routine.
879 This prevents spurious trace output.
880 (Has_No_Elaboration_Code): New routine.
881 (Trace_Cycle, Trace_Edge): Update the various Ids to use the
882 "standard" trace format.
883 * bindo-graphs.ads (Has_No_Elaboration_Code): New routine.
884 * bindo-units.ads, bindo-units.adb (Has_No_Elaboration_Code):
885 New routine.
886
887 2019-07-09 Piotr Trojanek <trojanek@adacore.com>
888
889 * ali.ads, bindo-graphs.adb, bindo-validators.adb, clean.adb,
890 doc/gnat_ugn/elaboration_order_handling_in_gnat.rst, einfo.ads,
891 exp_aggr.adb, exp_ch13.adb, exp_ch4.adb, exp_ch5.adb,
892 exp_ch6.adb, exp_ch7.adb, exp_ch9.adb, exp_pakd.adb,
893 fname-uf.ads, gnatlink.adb, inline.adb, lib.ads, make.adb,
894 namet.ads, opt.ads, par-ch4.adb, par-ch6.adb, par-labl.adb,
895 prep.adb, sem_aggr.adb, sem_ch13.adb, sem_ch4.adb, sem_ch5.adb,
896 sem_ch6.adb, sem_ch6.ads, sem_ch7.adb, sem_ch8.adb, sem_dim.adb,
897 sem_disp.adb, sem_prag.adb, sem_res.adb, sem_warn.adb,
898 sinfo.ads: Replace ". " with ". ". Minor reformatting and typo
899 corrections.
900 * gnat_ugn.texi: Generate.
901
902 2019-07-09 Hristian Kirtchev <kirtchev@adacore.com>
903
904 * bindo.ads: Move type Precedence_Kind from the private to the
905 visible part of the unit.
906 * bindo-augmentors.adb: Remove the use of global data as it is
907 bad practice.
908 (Augment_Library_Graph): Update the parameter profile.
909 (Is_Visited, Set_Is_Visited): Remove.
910 (Visit_Elaboration_Root, Visit_Elaboration_Roots): Update the
911 parameter profile and comment on usage.
912 (Visit_Vertex): Likewise. Also keep track of which invocation
913 edge activates a task.
914 * bindo-augmentors.ads (Augment_Library_Graph): Update the
915 parameter profile and comment on usage.
916 * bindo-builders.adb (Create_Forced_Edge,
917 Create_Spec_And_Body_Edge, Create_With_Edge): Update the call to
918 Add_Edge.
919 * bindo-diagnostics.adb: Add with end use clauses for Restrict
920 and Rident.
921 (Output_Dynamic_Model_Suggestions): Remove.
922 (Output_Invocation_Related_Suggestions): New routine.
923 (Output_Suggestions): Output all invocation-related suggestions
924 together.
925 * bindo-elaborators.adb: Remove types Comparator_Ptr and
926 Predicate_Ptr.
927 (Find_Best_Vertex): Update the parameter profile.
928 * bindo-graphs.adb (Activates_Task): New routine.
929 (Add_Body_Before_Spec_Edge): Update the call to
930 Add_Edge_With_Return.
931 (Add_Edge): Update the parameter profile and the call to
932 Add_Edge_With_Return.
933 (Add_Edge_With_Return): Update the parameter profile and comment
934 on usage.
935 (At_Least_One_Edge_Satisfies): New routine.
936 (Contains_Elaborate_All_Edge): Reimplement.
937 (Contains_Static_Successor_Edge, Contains_Task_Activation): New
938 routine.
939 (Contains_Weak_Static_Successor): Remove.
940 (Is_Static_Successor_Edge): New routine.
941 * bindo-graphs.ads: Add types LGE_Predicate_Ptr,
942 LGV_Comparator_Ptr, and LGV_Predicate_Ptr. Update type
943 Library_Graph_Edge_Attributes to capture whether an invocation
944 edge activates a task. Update the value of
945 No_Library_Graph_Edge_Attributes.
946 (Activates_Task): Update the parameter profile and comment on
947 usage.
948 (Contains_Static_Successor_Edge, Contains_Task_Activation): New
949 routines.
950 (Contains_Weak_Static_Successor): Remove.
951 * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst:
952 Update the documentation to reflect the new task-related advice.
953 * gnat_ugn.texi: Regenerate.
954
955 2019-07-09 Piotr Trojanek <trojanek@adacore.com>
956
957 * exp_util.adb (Containing_Package_With_Ext_Axioms): Replace
958 low-level Ekind test with a high-level wrapper.
959
960 2019-07-09 Arnaud Charlet <charlet@adacore.com>
961
962 * libgnat/s-memory.adb: Disable calls to Abort defer/undefer
963 when ZCX_By_Default.
964
965 2019-07-09 Javier Miranda <miranda@adacore.com>
966
967 * sem_ch13.adb (Rep_Item_Too_Early): Representation clauses are
968 not allowed for a derivation of a generic type. Extend the
969 current test to check that none of the parents is a generic
970 type.
971
972 2019-07-09 Hristian Kirtchev <kirtchev@adacore.com>
973
974 * exp_ch9.adb, exp_util.adb, repinfo.adb, sem_ch12.adb,
975 sem_prag.adb, sem_res.adb, sem_spark.adb, sem_util.adb: Minor
976 reformatting.
977
978 2019-07-09 Ed Schonberg <schonberg@adacore.com>
979
980 * sem_res.adb (Resolve_Equality_Op): If the node was overloaded,
981 set properly the entity to which the node has been resolved. The
982 original entity is the first one found during analysis, and is
983 not necessarily the resolved one.
984 (Resolve_Op_Not): If the argument of negation is an overloaded
985 equality operation, call its resolution directly given that the
986 context type does not participate in overload resolution.
987
988 2019-07-09 Hristian Kirtchev <kirtchev@adacore.com>
989
990 * bindo.adb: Remove with and use clauses for Debug. Add with
991 and use clauses for Opt.
992 (Find_Elaboration_Order): Enable the v4.0 elaboration order. The
993 v3.0 mechanism is now available under binder switch -H.
994 * bindusg.adb (Display): Enable switch -H.
995 * debug.adb: Free compiler switch -gnatd_G. Free binder switch
996 -d_N.
997 * sem_elab.adb: Update the section on switches to remove
998 -gnatd_G.
999 (Invocation_Graph_Recording_OK): The invocation graph is now
1000 unconditionally recorded in ALI files.
1001 * switch-b.adb (Scan_Binder_Switches): Scan switch -H.
1002 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
1003 Update the documentation on compiler switches related to
1004 elaboration. Update the documentation on binder switches to
1005 include switch -H.
1006 * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Update
1007 the documentation on elaboration order handling in GNAT.
1008 * gnat_ugn.texi: Regenerate.
1009
1010 2019-07-09 Eric Botcazou <ebotcazou@adacore.com>
1011
1012 * repinfo.adb (List_Entities): Disregard formals altogether.
1013 (List_Name): Properly escape the double quote in the JSON
1014 output.
1015
1016 2019-07-09 Javier Miranda <miranda@adacore.com>
1017
1018 * exp_util.adb (Remove_Side_Effects): Preserve the
1019 Do_Range_Check flag.
1020
1021 2019-07-09 Yannick Moy <moy@adacore.com>
1022
1023 * sinfo.ads: Refine comment for Do_Range_Check.
1024
1025 2019-07-09 Yannick Moy <moy@adacore.com>
1026
1027 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Expand
1028 attribute reference on Enum_Rep.
1029
1030 2019-07-09 Ed Schonberg <schonberg@adacore.com>
1031
1032 * sem_ch12.adb (Instantiate_Formal_Package): Handle properly the
1033 case where the actual for a formal package in an instance is the
1034 current instance of an enclosing generic package.
1035 (Check_Formal_Packages): If the formal package declaration is
1036 box-initialized or lacks associations altogether, no internal
1037 instance was created to verify conformance, and there is no
1038 validating package to remove from tree.
1039
1040 2019-07-09 Yannick Moy <moy@adacore.com>
1041
1042 * freeze.adb (Build_Renamed_Body): Do not set body to inline in
1043 GNATprove mode.
1044
1045 2019-07-09 Yannick Moy <moy@adacore.com>
1046
1047 * exp_util.adb (Expand_Subtype_From_Expr): Still expand the type
1048 of static expressions in GNATprove_Mode.
1049 * sem_ch3.adb (Analyze_Object_Declaration): Remove obsolete
1050 special case for GNATprove_Mode.
1051
1052 2019-07-09 Piotr Trojanek <trojanek@adacore.com>
1053
1054 * doc/gnat_rm/the_gnat_library.rst,
1055 doc/gnat_ugn/building_executable_programs_with_gnat.rst,
1056 erroutc.adb, libgnat/g-comlin.adb, libgnat/g-comlin.ads,
1057 libgnat/g-regexp.ads, libgnat/g-regpat.ads,
1058 libgnat/g-spipat.ads, libgnat/s-os_lib.ads,
1059 libgnat/s-regexp.ads: Reword "wild card" to "wildcard".
1060 * gnat_rm.texi, gnat_ugn.texi: Regenerate.
1061
1062 2019-07-09 Yannick Moy <moy@adacore.com>
1063
1064 * sem_spark.adb (Check_Expression): Handle correctly implicit
1065 assignments as part of allocators and (extension) aggregates.
1066 (Get_Root_Object): Adapt for new path expressions.
1067 (Is_Path_Expression): Return True for (extension) aggregate.
1068
1069 2019-07-09 Piotr Trojanek <trojanek@adacore.com>
1070
1071 * einfo.ads: Fix a typo.
1072
1073 2019-07-09 Ed Schonberg <schonberg@adacore.com>
1074
1075 * sem_util.adb (Scope_Within_Or_Same): Handle properly task
1076 bodies and protected bodies, so that local variables within have
1077 their proper scopes after these constructs have been rewritten
1078 during expansion. This patch resembles but is not identical to
1079 the code in Scope_Within.
1080
1081 2019-07-09 Arnaud Charlet <charlet@adacore.com>
1082
1083 * gnat1drv.adb (Adjust_Global_Switches): Set
1084 Dynamic_Elaboration_Checks to True in CodePeer mode.
1085
1086 2019-07-09 Yannick Moy <moy@adacore.com>
1087
1088 * sem_spark.adb (Get_Perm_Or_Tree): Issue an error when
1089 encountering unknown global variable.
1090
1091 2019-07-09 Yannick Moy <moy@adacore.com>
1092
1093 * sem_spark.adb (Check_Expression): Change signature to take an
1094 Extended_Checking_Mode, for handling read permission checking of
1095 sub-expressions in an assignment.
1096 (Check_Parameter_Or_Global): Adapt to new behavior of
1097 Check_Expression for mode Assign.
1098 (Check_Safe_Pointers): Do not analyze generic bodies.
1099 (Check_Assignment): Separate checking of the target of an
1100 assignment.
1101
1102 2019-07-09 Eric Botcazou <ebotcazou@adacore.com>
1103
1104 * repinfo.ads (JSON format): Adjust.
1105 * repinfo.adb (Need_Blank_Line): Rename to...
1106 (Need_Separator): ...this.
1107 (Blank_Line): Rename to...
1108 (Write_Separator): ...this and add JSON specific handling.
1109 (List_Array_Info): Adjust to above renaming.
1110 (List_Object_Info): Likewise.
1111 (List_Record_Info): Likewise.
1112 (List_Subprogram_Info): Likewise.
1113 (List_Type_Info): Likewise.
1114 (List_Entities): Do not set Need_Blank_Line.
1115 (List_Rep_Info): Set Need_Separator and add JSON specific
1116 handling. Output a single JSON stream in the normal case.
1117
1118 2019-07-09 Arnaud Charlet <charlet@adacore.com>
1119
1120 * doc/gnat_ugn/the_gnat_compilation_model.rst: Update doc on
1121 -fdump-ada-spec now that we generate Ada 2012.
1122 * gnat_ugn.texi: Regenerate.
1123
1124 2019-07-08 Eric Botcazou <ebotcazou@adacore.com>
1125
1126 * repinfo.adb (List_Common_Type_Info): New procedure extracted
1127 from...
1128 (List_Type_Info): ...here. Call it for the common information,
1129 start with a blank line and output the linker section at the
1130 end, if any.
1131 (List_Mechanisms): Rename to...
1132 (List_Subprogram_Info): ...this.
1133 (List_Array_Info): Call List_Common_Type_Info.
1134 (List_Entities): Adjust to above change and renaming.
1135 (List_Record_Info): Call List_Common_Type_Info.
1136
1137 2019-07-08 Dmitriy Anisimkov <anisimko@adacore.com>
1138
1139 * libgnat/g-sercom.ads
1140 (Serial_Port_Descriptor): New type.
1141 (Serial_Port): Add a comment, make it hold a
1142 Serial_Port_Descriptor.
1143 (To_Ada, To_C): New procedures.
1144 (Port_Data, Port_Data_Access): Remove types.
1145 * libgnat/g-sercom.adb (To_Ada): New stub.
1146 * libgnat/g-sercom__linux.adb, libgnat/g-sercom__mingw.adb:
1147 Update implementations accordingly.
1148 * s-oscons-tmplt.c: Bind Serial_Port_Descriptor to
1149 System.Win32.HANDLE on Windows, and to Interfaces.C.int on
1150 Linux. Add "Interfaces.C." prefix for other basic integer type
1151 bindings.
1152 * xoscons.adb (Output_Info): Remove the "Interfaces.C." prefix
1153 for subtypes generation.
1154
1155 2019-07-08 Arnaud Charlet <charlet@adacore.com>
1156
1157 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
1158 Update documentation on No_Exceptions restriction.
1159 * gnat_rm.texi: Regenerate.
1160
1161 2019-07-08 Dmitriy Anisimkov <anisimko@adacore.com>
1162
1163 * libgnat/s-os_lib.adb: Do not call __gnat_kill for Invalid_Pid.
1164
1165 2019-07-08 Piotr Trojanek <trojanek@adacore.com>
1166
1167 * sem_util.adb (Enclosing_Package_Or_Subprogram): Do not expect
1168 package and subprogram bodies.
1169
1170 2019-07-08 Bob Duff <duff@adacore.com>
1171
1172 * doc/gnat_ugn/gnat_utility_programs.rst: Remove documentation
1173 of ignored GNATpp switch.
1174
1175 2019-07-08 Hristian Kirtchev <kirtchev@adacore.com>
1176
1177 * doc/gnat_rm/implementation_defined_pragmas.rst:
1178 Update the documentation of pragma Initialize_Scalars.
1179 * gnat_rm.texi: Regenerate.
1180
1181 2019-07-08 Javier Miranda <miranda@adacore.com>
1182
1183 * exp_ch4.adb (Tagged_Membership): Fix regression silently
1184 introduced in r260738 that erroneouslusy causes the evaluation
1185 to True of the membership test when the left operand of the
1186 membership test is a class-wide interface object and the right
1187 operand is a type that implements such interface type.
1188
1189 2019-07-08 Hristian Kirtchev <kirtchev@adacore.com>
1190
1191 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Do not
1192 register an address clause when its prefix denotes a generic
1193 formal object.
1194
1195 2019-07-08 Hristian Kirtchev <kirtchev@adacore.com>
1196
1197 * bindo-diagnostics.adb (Diagnose_Cycle): Capture the presence
1198 of an Elaborate_All edge before iterating over the edges of the
1199 cycle.
1200 (Output_Elaborate_Body_Transition): Update the parameter profile
1201 and the comment on usage. Add a missing case where the edge is
1202 within the context of an Elaborate_All.
1203 (Output_Transition): Update the call to
1204 Output_Elaborate_Body_Transition.
1205 * bindo-graphs.ads, bindo-graphs.adb
1206 (Contains_Elaborate_All_Edge): New routine.
1207
1208 2019-07-08 Piotr Trojanek <trojanek@adacore.com>
1209
1210 * lib-xref-spark_specific.adb (Create_Heap): Set dummy Etype for
1211 the fake __HEAP entity.
1212
1213 2019-07-08 Daniel Mercier <mercier@adacore.com>
1214
1215 * gnat1drv.adb: Suppress warnings on memory representation in
1216 CodePeer compiler mode.
1217
1218 2019-07-08 Nicolas Roche <roche@adacore.com>
1219
1220 * rtinit.c (__gnat_runtime_initialize): Remove dependency on
1221 CommandLineToArgvW.
1222
1223 2019-07-08 Doug Rupp <rupp@adacore.com>
1224
1225 * Makefile.rtl: Handle vxworks7r2 in x86_64 and x86 vxworks7.
1226
1227 2019-07-08 Dmitriy Anisimkov <anisimko@adacore.com>
1228
1229 * Makefile.rtl: Use g-sercom__linux.adb for all linuxes.
1230
1231 2019-07-08 Yannick Moy <moy@adacore.com>
1232
1233 * expander.adb (Expand): Do not reset Analyzed flag always.
1234 * sem_eval.adb (Fold_Ureal): Mark node as analyzed.
1235
1236 2019-07-08 Ed Schonberg <schonberg@adacore.com>
1237
1238 * exp_ch9.adb (Expand_N_Timed_Entry_Call): Do not insert twice
1239 the assignment statement that computes the delay value, to
1240 prevent improper tree sharing when the value is a type
1241 conversion and Float_Overflow checks are enabled.
1242
1243 2019-07-08 Hristian Kirtchev <kirtchev@adacore.com>
1244
1245 * bindo.adb: Update the section on terminology to include new
1246 concepts. Update the section on switches to include new
1247 entries.
1248 * bindo.ads: Add type Precedence_Kind.
1249 * bindo-builders.adb: Add with and use clauses for Debug and
1250 Bindo.Validators. Add use clauses for
1251 Bindo.Validators.Invocation_Graph_Validators and
1252 Bindo.Validators.Library_Graph_Validators.
1253 (Build_Invocation_Graph): Validate the graph immediately after
1254 it was built.
1255 (Build_Library_Graph): Update the parameter profile. The
1256 creation of the graph is now elaboration model-agnostic.
1257 Validate the graph immediately after it was built.
1258 (Create_With_Edge): Create regular with edges for Elaborate and
1259 Elaborate_All edges when the appropriate debug switches are in
1260 effect.
1261 * bindo-builders.ads (Build_Library_Graph): Update the parameter
1262 profile.
1263 * bindo-diagnostics.adb (Diagnose_Cycle): Track the presence of
1264 an Elaborate_All edge throughout the inspection of the cycle's
1265 edges.
1266 (Output_Dynamic_Model_Suggestions): Output the suggestion only
1267 when the cycle contains at least one weak edge where the
1268 successor was statically elaborated.
1269 (Output_Elaborate_Body_Transition, Output_Forced_Transition,
1270 Output_With_Transition): Update the assertions.
1271 * bindo-elaborators.adb: Remove use clauses for
1272 Bindo.Validators.Invocation_Graph_Validators and
1273 Bindo.Validators.Library_Graph_Validators. Remove strings
1274 Add_To_All_Candidates_Msg and Add_To_Comp_Candidates_Msg.
1275 Remove type String_Ptr.
1276 (Add_Vertex, Add_Vertex_If_Elaborable, Create_All_Candidates_Set
1277 Create_Component_Candidates_Set): Remove.
1278 (Create_Component_Vertex_Sets, Create_Vertex_Sets): New routine.
1279 (Elaborate_Component): Update the parameter profile and the
1280 comment on usage. Reimplement the elaboration of a component.
1281 The algorithm will now attempt to elaborate as many vertices
1282 possible. If this is not possible, and a weakly elaborable
1283 vertex is available use unit was compiled using the dynamic
1284 model, the algorithm will elaborate it.
1285 (Elaborate_Library_Graph): Reimplement the elaboration of the
1286 graph. The algorithm will now attempt to elaborate as many
1287 vertices along with their components as possible. If this is not
1288 possible, and a weakly elaborable vertex is available use unit
1289 was compiled using the dynamic model, the algorithm will
1290 elaborate it along with its component.
1291 (Elaborate_Units): Merge with the functionality of
1292 Elaborate_Units_Common.
1293 (Elaborate_Units_Common, Elaborate_Units_Dynamic,
1294 Elaborate_Units_Static): Remove.
1295 (Elaborate_Vertex): Update the parameter profile and the comment
1296 on usage. Reimplemented.
1297 (Find_Best_Candidate): Remove.
1298 (Find_Best_Elaborable_Vertex, Find_Best_Vertex,
1299 Find_Best_Weakly_Elaborable_Vertex, Has_Elaborable_Body,
1300 Insert_Elaborable_Successor, Insert_Vertex): New routines.
1301 (Is_Better_Candidate): Remove.
1302 (Is_Better_Elaborable_Vertex,
1303 Is_Better_Weakly_Elaborable_Vertex,
1304 Is_Suitable_Elaborable_Vertex,
1305 Is_Suitable_Weakly_Elaborable_Vertex): New routines.
1306 (Trace_Candidate_Vertices): Remove.
1307 (Trace_Component): Output the number of strong and weak
1308 predecessors.
1309 (Trace_Unelaborated_Vertices): Remove.
1310 (Trace_Vertex): Output the number of strong and weak
1311 predecessors.
1312 (Trace_Vertices): New routine.
1313 (Update_Successor, Update_Successors): Update the parameter
1314 profile and the comment on usage.
1315 * bindo-graphs.adb: Remove type Precedence_Kind.
1316 (Add_Edge_With_Return): Update the increment of pending
1317 predecessors.
1318 (Add_Vertex): Provide default values for strong and weak
1319 predecessors.
1320 (Complementary_Vertex): Move the initial declaration to the
1321 spec. Update the parameter profile and the comment on usage.
1322 (Contains_Weak_Static_Successor): New routine.
1323 (Create): Update the parameter profile. The creation of the
1324 graph is now elaboration model-agnostic.
1325 (Decrement_Pending_Predecessors): Update the parameter profile
1326 and the comment on usage. Reimplemented.
1327 (Delete_Edge): Update the decrement of pending predecesors.
1328 (Has_Elaborate_Body): Do not treat a vertex as being subject to
1329 Elaborate_Body when a debug switch is in effect.
1330 (Increment_Pending_Predecessors): Update the parameter profile
1331 and the comment on usage. Reimplemented.
1332 (Is_Elaborable_Component): Reimplemented.
1333 (Is_Elaborable_Vertex): Move the initial declaration to the
1334 spec. Reimplemented.
1335 (Is_Elaborate_Body_Pair): New routine.
1336 (Is_Dynamically_Elaborated): Update the parameter profile.
1337 Reimplemented.
1338 (Is_Weakly_Elaborable_Vertex): New routine.
1339 (Pending_Predecessors): Removed.
1340 (Pending_Predecessors_For_Elaboration,
1341 Pending_Strong_Predecessors, Pending_Weak_Predecessors,
1342 Update_Pending_Predecessors): New routines.
1343 (Update_Pending_Predecessors_Of_Components): Update the
1344 increment of pending predecessors.
1345 * bindo-graphs.ads: Update the components of type
1346 Component_Attributes. Update the components of type
1347 Library_Graph_Attributes. Update the components of type
1348 Library_Graph_Vertex_Attributes. Update the initialization of
1349 No_Component_Attributes. Update the initialization of
1350 No_Library_Graph_Vertex_Attributes.
1351 (Complementary_Vertex, Contains_Weak_Static_Successor): New
1352 routines.
1353 (Create): Update the parameter profile and the comment on usage.
1354 (Decrement_Pending_Predecessors, Is_Dynamically_Elaborated):
1355 Update the parameter profile and the comment on usage.
1356 (Is_Elaborate_Body_Pair, Is_Weakly_Elaborable_Vertex): New
1357 routines.
1358 (Pending_Predecessors): Removed.
1359 (Pending_Predecessors_For_Elaboration,
1360 Pending_Strong_Predecessors, Pending_Weak_Predecessors): New
1361 routines.
1362 * bindo-writers.adb (Write_Components): Moved from the spec.
1363 (Write_Component): Output the strong and weak predecessors.
1364 (Write_Library_Graph): Output the components as part of the
1365 graph.
1366 (Write_Library_Graph_Vertex): Output the strong and weak
1367 predecessors.
1368 * bindo-writers.ads (Write_Components): Moved to the body.
1369 * debug.adb: Add and document new GNATbind switches -d_a, -d_b,
1370 -d_e.
1371 * bindo-validators.adb: Minor reformattings.
1372
1373 2019-07-08 Bob Duff <duff@adacore.com>
1374
1375 * libgnat/g-sercom.ads, libgnat/g-sercom__linux.adb (Data_Rate):
1376 Support additional data rates.
1377
1378 2019-07-08 Olivier Hainque <hainque@adacore.com>
1379
1380 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Don't request
1381 DECL_ARTIFICIAL_P on elab proc declarations.
1382
1383 2019-07-08 Eric Botcazou <ebotcazou@adacore.com>
1384
1385 * repinfo.adb (List_Record_Info): Declare Incomplete_Layout and
1386 Not_In_Extended_Main local exceptions.
1387 (List_Structural_Record_Layout): For an extension, raise the
1388 former if the parent subtype has not been built and the latter
1389 if it is not declared in the main source unit. Fall back to the
1390 flat layout if either exception has been raised.
1391
1392 2019-07-08 Ed Schonberg <schonberg@adacore.com>
1393
1394 * libgnat/a-strfix.adb (Delete): The RM describes the semantics
1395 of Delete as equivalent to that of Replace_String with a null
1396 argument. As a result, deleting a null string that starts past
1397 the end of its argument is a noop and must not raise
1398 Index_Error.
1399
1400 2019-07-08 Javier Miranda <miranda@adacore.com>
1401
1402 * exp_disp.adb (Register_Primitive): When registering a
1403 primitive in the secondary dispatch table, handle primitive
1404 inherited through several levels of type derivation (required to
1405 properly handle inherited 'null' primitive).
1406
1407 2019-07-08 Bob Duff <duff@adacore.com>
1408
1409 * doc/gnat_ugn/gnat_utility_programs.rst: Document handling of
1410 preprocessor directives in GNATpp.
1411
1412 2019-07-08 Javier Miranda <miranda@adacore.com>
1413
1414 * gnat1drv.adb (Post_Compilation_Validation_Checks:
1415 Validate_Compile_Time_Warning_Errors is now located in sem_prag
1416 (instead of sem_ch13).
1417 * sem_ch13.ads (Validate_Compile_Time_Warning_Error,
1418 Validate_Compile_Time_Warning_Errors): Move to sem_prag.
1419 * sem_ch13.adb
1420 (Compile_Time_Warnings_Errors): Move to sem_prag.
1421 (Initialize): Remove initialization of table
1422 Compile_Time_Warning_Errors.
1423 (Validate_Compile_Time_Warning_Error,
1424 Validate_Compile_Time_Warning_Errors): Move to sem_prag.
1425 * sem_prag.ads (Validate_Compile_Time_Warning_Errors): New
1426 procedure.
1427 * sem_prag.adb (Initialize): Initialize table
1428 Compile_Time_Warning_Errors.
1429
1430 2019-07-08 Ed Schonberg <schonberg@adacore.com>
1431
1432 * sem_ch13.adb (Analyze_Aspect_Specifications): For a
1433 pre/postcondition of a generic subprogram declaration, do not
1434 use Relocate_Node on the aspect expression to construct the
1435 corresponding attribute specification, to prevent tree anomalies
1436 when the expression is a call with named actual parameters.
1437
1438 2019-07-08 Javier Miranda <miranda@adacore.com>
1439
1440 * sem_attr.adb (Analyze_Attribute [Attribute_Size]): For pragmas
1441 used to report user defined compile time warning or errors
1442 handle 'Size for types with known static RM size.
1443
1444 2019-07-08 Justin Squirek <squirek@adacore.com>
1445
1446 * exp_imgv.adb (Build_Enumeration_Image_Tables): Default SSO for
1447 the building of image tables.
1448 (Expand_Image_Attribute): Minor cleanup.
1449
1450 2019-07-08 Dmitriy Anisimkov <anisimko@adacore.com>
1451
1452 * libgnat/g-socket.ads, libgnat/g-socket.adb: Improve
1453 documentation.
1454 (Get_Socket_Option, Set_Socket_Option): Remove default value for
1455 the Level formal.
1456
1457 2019-07-08 Ed Schonberg <schonberg@adacore.com>
1458
1459 * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): For an
1460 unanalized aspect in a generic context that has not been
1461 analyzed yet, if the aspect applies to a type, place the type on
1462 the scope stack to make its components visible, before checking
1463 conformance with the version of the expression analyzed at the
1464 freeze point.
1465
1466 2019-07-05 Justin Squirek <squirek@adacore.com>
1467
1468 * checks.adb (Apply_Accessibility_Check): Add logic to fetch the
1469 function result accessibility level if one is required within
1470 the generated check.
1471 * exp_ch6.adb (Needs_Result_Accessibility_Level): Modify
1472 controlling elsif block to handle more cases such as anonymous
1473 access results and disable checking for coextensions.
1474
1475 2019-07-05 Ed Schonberg <schonberg@adacore.com>
1476
1477 * sem_ch9.adb (Analyze_Accept_Statement): If this is an illegal
1478 accept statement for an enclosing entry abandon analysis to
1479 prevent scope mismatches and potential infinite loops in
1480 compiler.
1481
1482 2019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
1483
1484 * ali.adb (For_Each_Invocation_Construct,
1485 For_Each_Invocation_Relation): New version.
1486 (Scan_ALI): Initialize field Invocation_Graph_Encoding.
1487 (Set_Invocation_Graph_Encoding): Update the setting of the
1488 invocation graph encoding.
1489 * ali.ads: Move field Invocation_Graph_Encoding from Unit_Record
1490 to ALI_Record because the encoding applies to the whole ALI,
1491 rather than one of the units (spec or body) for which the ALI
1492 file was created.
1493 (For_Each_Invocation_Construct, For_Each_Invocation_Relation):
1494 New version.
1495 * bindo.adb: Update the section on switches. Complete the
1496 section of debugging elaboration order issues.
1497 (Find_Elaboration_Order): Prepare the routine for the switch
1498 from the old to the new elaboration order mechanism.
1499 * bindo-diagnostics.adb (Find_And_Output_Invocation_Paths):
1500 Manage a visited set used by Visit_Vertex.
1501 (Output_All_Cycles_Suggestions,
1502 Output_Dynamic_Model_Suggestions): Clarify the nature of the
1503 suggested switch.
1504 (Output_Elaborate_Body_Transition): Update the diagnostic to
1505 emit a better message.
1506 (Output_Forced_Suggestions, Output_Full_Encoding_Suggestions):
1507 Clarify the nature of the suggested switch.
1508 (Visit_Vertex): Update the parameter profile to add a set of
1509 invokers visited during the transition. This set prevents
1510 infinite exploration of the graph in case the invocations are
1511 recursive.
1512 * bindo-elaborators.adb: Add a use clause for
1513 Bindo.Writers.Dependency_Writers.
1514 (Elaborate_Units_Common): Output the library graph after it has
1515 been augmented with invocation edges. Output just the components
1516 instead of outputting the whole library graph again.
1517 (Elaborate_Units_Dynamic, Elaborate_Units_Static): Output the
1518 dependencies as expressed in the library graph.
1519 * bindo-units.adb (Invocation_Graph_Encoding): Update the
1520 extraction of the invocation graph encoding.
1521 * bindo-writers.adb: Add with and use clauses for Binderr and
1522 Butil.
1523 (palgc, plgc): New debug routine.
1524 (Write_Components): Moved to the spec. Add a header for the
1525 output.
1526 (Write_Dependencies, Write_Dependencies_Of_Vertex,
1527 Write_Dependency_Edge): New routine.
1528 (Write_Elaboration_Order): Update the logic to follow the format
1529 of Binde's order output.
1530 (Write_Library_Graph): Do not output the components every time
1531 the graph is written.
1532 (Write_Unit): Output the invocation graph encoding of the unit.
1533 Output the invocation constructs and relations for the unit
1534 only.
1535 * bindo-writers.ads (Write_Components): Moved from the body.
1536 (Write_Dependencies): New routine.
1537 * bindusg.adb: Prepare the routine for the switch from the old
1538 to the new elaboration order mechanism.
1539 * debug.adb: Binder switch -d_O is now not associated with any
1540 functionality.
1541 * einfo.adb (Is_Elaboration_Target): The attribute applies to
1542 packages, as specified by the comment on the attribute usage.
1543 * opt.ads: Add a global flag which controls the choice between
1544 the new and the legacy elaboration order mechanism.
1545 * sem_elab.adb: Add Package_Target to type Target_Kind.
1546 (Build_Elaborate_Body_Procedure, Build_Elaborate_Procedure,
1547 Build_Elaborate_Spec_Procedure, Check_Elaboration_Scenarios,
1548 Check_SPARK_Model_In_Effect): Use Main_Unit_Entity to obtain the
1549 entity of the main unit.
1550 (Create_Package_Rep): New routine.
1551 (Create_Target_Rep): Add processing for packages.
1552 (Declaration_Placement_Of_Node, Has_Prior_Elaboration): Use
1553 Main_Unit_Entity to obtain the entity of the main
1554 unit.
1555 (Invocation_Graph_Recording_OK): Prepare the routine for the
1556 switch from the old to the new elaboration order mechanism.
1557 (Main_Unit_Entity): New routine.
1558 (Meet_Elaboration_Requirement,
1559 Process_Conditional_ABE_Variable_Reference): Use
1560 Main_Unit_Entity to obtain the entity of the main unit.
1561 (Process_Invocation_Instantiation): New routine.
1562 (Process_Invocation_Scenario): Add processing for
1563 instantiations.
1564 * switch-b.adb (Scan_Binder_Switches): Prepare the routine for
1565 the switch from the old to the new elaboration order mechanism.
1566
1567 2019-07-05 Joffrey Huguet <huguet@adacore.com>
1568
1569 * libgnat/a-textio.adb: Add abstract state refinment.
1570 * libgnat/a-textio.ads: Add File_System abstract state. Add
1571 global contracts, contract cases, preconditions and
1572 postconditions to procedures and functions.
1573 (Set_Input, Set_Output, Set_Error, Standard_Input,
1574 Standard_Output, Standard_Error, Current_Input, Current_Output,
1575 Current_Error): Turn SPARK_Mode off.
1576 (Get_Line): Turn SPARK_Mode off on Get_Line functions.
1577 * libgnat/a-tideio.ads, libgnat/a-tienio.ads,
1578 libgnat/a-tifiio.ads, libgnat/a-tiflio.ads,
1579 libgnat/a-tiinio.ads, libgnat/a-timoio.ads: Add global
1580 contracts, contract cases, preconditions and postconditions to
1581 procedures and functions.
1582
1583 2019-07-05 Arnaud Charlet <charlet@adacore.com>
1584
1585 * doc/gnat_ugn/platform_specific_information.rst: Refresh doc on
1586 installing from the command line on Windows. Remove obsolete
1587 part.
1588 * gnat_ugn.texi: Regenerate.
1589
1590 2019-07-05 Vasiliy Fofanov <fofanov@adacore.com>
1591
1592 * libgnat/a-wichha.ads (Is_Alphanumeric): Replace comment with
1593 the correct one. Also capitalize references to False
1594 throughout.
1595
1596 2019-07-05 Eric Botcazou <ebotcazou@adacore.com>
1597
1598 * exp_ch4.adb (Expand_N_Indexed_Component): Do not expand actual
1599 parameters of function calls here either.
1600
1601 2019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
1602
1603 * bindo-units.adb, checks.adb, exp_attr.adb, exp_ch3.adb,
1604 exp_ch4.adb, exp_pakd.adb, lib-writ.adb, libgnat/g-traceb.adb,
1605 libgnat/g-traceb.ads, libgnat/s-stratt.ads, sem_aux.ads,
1606 sem_util.adb: Minor reformatting.
1607
1608 2019-07-05 Ed Schonberg <schonberg@adacore.com>
1609
1610 * sem_ch13.adb (Build_Predicate_Functions): If a subtype that
1611 carries a static predicate aspect is frozen immediately after
1612 its declaration, ensure that the generated function body created
1613 for predicate checking is inserted after the corresponding
1614 subprogram declaration, which is created at the point the
1615 declaration is elaborated.
1616
1617 2019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
1618
1619 * exp_ch7.adb (Cleanup_Record): Use the underlying type when
1620 checking for components with tasks.
1621
1622 2019-07-05 Arnaud Charlet <charlet@adacore.com>
1623
1624 * libgnarl/s-osinte__linux.ads: Link with -lrt before -lpthread.
1625
1626 2019-07-05 Ed Schonberg <schonberg@adacore.com>
1627
1628 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Add explicit
1629 range checks when the index type of the bit-packed array is an
1630 enumeration type with a non-standard representation,
1631
1632 2019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
1633
1634 * sem_res.adb (Is_Control_Flow_Statement): Delay statements
1635 contain an expression, which in turn may have side effects and
1636 affect the infinite recursion. As a result, delay statements
1637 should not be treated specially.
1638
1639 2019-07-05 Arnaud Charlet <charlet@adacore.com>
1640
1641 * libgnarl/s-linux.ads, libgnarl/s-linux__alpha.ads,
1642 libgnarl/s-linux__android.ads, libgnarl/s-linux__hppa.ads,
1643 libgnarl/s-linux__mips.ads, libgnarl/s-linux__riscv.ads,
1644 libgnarl/s-linux__sparc.ads: Fix typos in comments.
1645
1646 2019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
1647
1648 * sem_res.adb (Check_Infinite_Recursion): Reimplemented.
1649 (Enclosing_Declaration_Or_Statement,
1650 Invoked_With_Different_Arguments, Is_Conditional_Statement,
1651 Is_Control_Flow_Statement, Is_Immediately_Within_Body,
1652 Is_Raise_Idiom, Is_Raise_Statement, Is_Sole_Statement,
1653 Preceded_By_Control_Flow_Statement,
1654 Within_Conditional_Statement): New routines.
1655
1656 2019-07-05 Javier Miranda <miranda@adacore.com>
1657
1658 * exp_ch4.adb (Expand_N_Type_Conversion): Do not apply an
1659 accessibility check when the conversion is an access to
1660 class-wide interface type and it is an actual parameter.
1661 * exp_ch6.adb (Expand_Call_Helper): Add documentation on the
1662 accessibility level of an anonymous allocator defining the value
1663 of an access parameter.
1664 * sem_util.ads, sem_util.adb (Dynamic_Accessibility_Level): Add
1665 support for an anonymous allocator whose type is that of a
1666 stand-alone object of an anonymous access to object type.
1667
1668 2019-07-05 Piotr Trojanek <trojanek@adacore.com>
1669
1670 * einfo.ads, sem_res.adb: Typo fixes in comments.
1671
1672 2019-07-05 Bob Duff <duff@adacore.com>
1673
1674 * exp_ch6.adb (Is_Build_In_Place_Function): Narrow the check for
1675 Has_Foreign_Convention to the imported case only. If a
1676 build-in-place function is exported, and called from Ada code,
1677 build-in-place protocols should be used.
1678
1679 2019-07-05 Ed Schonberg <schonberg@adacore.com>
1680
1681 * sem_util.adb (Encloing_Subprogram): If Enclosing_Dynamic_Scope
1682 is a loop, continue climbing the scope stack to find the
1683 enclosing subprogram.
1684 (Gather_Components): Handle properly a choice in a record
1685 aggregate that is given by a subtype with a static predicate.
1686
1687 2019-07-05 Javier Miranda <miranda@adacore.com>
1688
1689 * debug.adb (-gnatd.K): Leave available this switch.
1690 * contracts.adb (Build_And_Analyze_Contract_Only_Subprograms):
1691 Remove.
1692 * scil_ll.ads, scil_ll.adb (Contract_Only_Body_Flag,
1693 Contract_Only_Body_Nodes, Get_Contract_Only_Body,
1694 Is_Contract_Only_Body, Set_Contract_Only_Body): Remove.
1695
1696 2019-07-05 Pierre-Marie de Rodat <derodat@adacore.com>
1697
1698 * libgnat/a-strunb.ads: Import documentation from the RM
1699
1700 2019-07-05 Pierre-Marie de Rodat <derodat@adacore.com>
1701
1702 * libgnat/a-strfix.ads: Import documentation from the RM
1703
1704 2019-07-05 Yannick Moy <moy@adacore.com>
1705
1706 * adabkend.adb (Scan_Back_End_Switches): Accept -Og and -Ofast
1707 switches.
1708
1709 2019-07-05 Hristian Kirtchev <kirtchev@adacore.com>
1710
1711 * ali.adb: Relocate types Invocation_Construct_Record,
1712 Invocation_Relation_Record, and Invocation_Signature_Record to
1713 the body of ALI. Relocate tables Invocation_Constructs,
1714 Invocation_Relations, and Invocation_Signatures to the body of
1715 ALI. Remove type Body_Placement_Codes. Add new types
1716 Declaration_Placement_Codes, and
1717 Invocation_Graph_Encoding_Codes. Update the literals of type
1718 Invocation_Graph_Line_Codes.
1719 (Add_Invocation_Construct): Update the parameter profile. Add an
1720 invocation construct built from all attributes provided.
1721 (Add_Invocation_Relation): Update the parameter profile. Add an
1722 invocation relation built from all attributes provided.
1723 (Body_Placement): New routine.
1724 (Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind):
1725 Removed.
1726 (Code_To_Declaration_Placement_Kind,
1727 Code_To_Invocation_Graph_Encoding_Kind, Column,
1728 Declaration_Placement_Kind_To_Code, Extra,
1729 For_Each_Invocation_Construct, For_Each_Invocation_Relation,
1730 Invocation_Graph_Encoding,
1731 Invocation_Graph_Encoding_Kind_To_Code, Invoker, Kind, Line,
1732 Locations, Name): New routine.
1733 (Scan_Invocation_Construct_Line): Reimplement the scanning
1734 mechanism.
1735 (Scan_Invocation_Graph_Attributes_Line): New routine.
1736 (Scan_Invocation_Graph_Line): Use a case statement to dispatch.
1737 (Scan_Invocation_Relation_Line): Reimplement the scanning
1738 mechanism.
1739 (Scope): New routine.
1740 (Set_Invocation_Graph_Encoding, Signature, Spec_Placement,
1741 Target): New routine.
1742 * ali.ads: Add new type Invocation_Graph_Encoding_Kind. Add
1743 component Invocation_Graph_Encoding to type Unit_Record.
1744 Relocate various types and data structures to the body of ALI.
1745 (Add_Invocation_Construct, Add_Invocation_Relation): Update the
1746 parameter profile.
1747 (Body_Placement): New routine.
1748 (Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind):
1749 Removed.
1750 (Code_To_Declaration_Placement_Kind,
1751 Code_To_Invocation_Graph_Encoding_Kind, Column,
1752 Declaration_Placement_Kind_To_Code, Extra,
1753 For_Each_Invocation_Construct, For_Each_Invocation_Relation,
1754 Invocation_Graph_Encoding,
1755 Invocation_Graph_Encoding_Kind_To_Code, Invoker, Kind, Line,
1756 Locations, Name, Scope, Set_Invocation_Graph_Encoding,
1757 Signature, Spec_Placement, Target): New routine.
1758 * bindo.adb: Add with clause for Binde. Add with and use
1759 clauses for Debug. Update the documentation. Add new switches.
1760 (Find_Elaboration_Order): Dispatch to the proper elaboration
1761 mechanism.
1762 * bindo-augmentors.adb:
1763 Remove with and use clauses for GNAT and GNAT.Sets. Remove
1764 membership set VS. Update the parameter profiles of most
1765 routines to use better parameter names. Update the
1766 implementation of most routine to use the new parameter names.
1767 Remove various redundant assertions.
1768 * bindo-builders.adb: Use better names for instantiated data
1769 structures. Update all references to these names. Update the
1770 parameter profiles of most routines to use better parameter
1771 names. Update the implementation of most routine to use the new
1772 parameter names.
1773 (Build_Library_Graph): Update the parameter profile. Update the
1774 call to Create.
1775 (Create_Vertex): Reimplemented.
1776 (Declaration_Placement_Vertex): New routine.
1777 * bindo-builders.ads (Build_Library_Graph): Update the parameter
1778 profile and comment on usage.
1779 * bindo-diagnostics.adb: Almost a new unit.
1780 * bindo-diagnostics.ads: Add a use clause for
1781 Bindo.Graphs.Invocation_Graphs. Remove package
1782 Cycle_Diagnostics.
1783 (Diagnose_Circularities): New routine.
1784 * bindo-elaborators.adb: Remove the with and use clauses for
1785 Binderr and GNAT.Sets. Remove the use clause for
1786 Bindo.Diagnostics.Cycle_Diagnostics. Remove membership set VS.
1787 Update the parameter profiles of most routines to use better
1788 parameter names. Update the implementation of most routine to
1789 use the new parameter names. (Elaborate_Units_Common): Update
1790 the parameter profile. Pass an infication to the library graph
1791 builder whether the dynamic model is in effect.
1792 (Elaborate_Units_Dynamic, Elaborate_Units_Static): Use
1793 Diagnose_Circularities to provide diagnostics.
1794 (Update_Successor): Use routine In_Same_Component to determine
1795 whether the predecessor and successor reside in different
1796 components.
1797 * bindo-graphs.adb: Add with and use clauses for Butil, Debug,
1798 Output, and Bindo.Writers. Remove with and use clauses for
1799 GNAT.Lists. Update the parameter profiles of most routines to
1800 use better parameter names. Update the implementation of most
1801 routine to use the new parameter names. Remove various
1802 redundant assertions. Remove doubly linked list EL. Add new
1803 type Precedence_Kind.
1804 (Add_Cycle): New routine.
1805 (Add_Vertex): Update the parameter profile. Update the creation
1806 of vertex attributes.
1807 (Add_Vertex_And_Complement, Body_Vertex, Column,
1808 Complementary_Vertex, Copy_Cycle_Path, Cycle_Kind_Of): New
1809 routines.
1810 (Destroy_Invocation_Graph_Edge, Destroy_Library_Graph_Cycle,
1811 Destroy_Library_Graph_Edge, Extra, File_Name,
1812 Find_All_Cycles_Through_Vertex, Find_All_Cycles_With_Edge,
1813 Find_Cycles, Find_First_Lower_Precedence_Cycle,
1814 Get_LGC_Attributes, Has_Next, Hash_Library_Graph_Cycle,
1815 Hash_Library_Graph_Cycle_Attributes, Highest_Precedence_Cycle,
1816 Highest_Precedence_Edge, In_Same_Component, Insert_And_Sort,
1817 Invocation_Edge_Count, Invocation_Graph_Encoding,
1818 Is_Cycle_Initiating_Edge, Is_Cyclic_Edge,
1819 Is_Cyclic_Elaborate_All_Edge, Is_Cyclic_Elaborate_Body_Edge,
1820 Is_Cyclic_Elaborate_Edge, Is_Cyclic_Forced_Edge,
1821 Is_Cyclic_Invocation_Edge, Is_Cyclic_With_Edge,
1822 Is_Dynamically_Elaborated, Is_Elaborate_All_Edge,
1823 Is_Elaborate_Body_Edge, Is_Elaborate_Edge: New routines.
1824 (Is_Existing_Predecessor_Successor_Relation): Removed.
1825 (Is_Forced_Edge, Is_Invocation_Edge, Is_Recorded_Cycle,
1826 Is_Recorded_Edge, Is_With_Edge, Iterate_Edges_Of_Cycle, Kind,
1827 Length): New routine.
1828 (Lib_Vertex): Removed.
1829 (Line, Links_Vertices_In_Same_Component,
1830 Maximum_Invocation_Edge_Count, Next, Normalize_And_Add_Cycle,
1831 Normalize_Cycle_Path, Number_Of_Cycles, Path, Precedence,
1832 Remove_Vertex_And_Complement, Sequence_Next_Cycle): New routines.
1833 (Sequence_Next_IGE_Id): Renamed to Sequence_Next_Edge.
1834 (Sequence_Next_IGV_Id): Renamed to Sequence_Next_Vertex.
1835 (Sequence_Next_LGE_Id): Renamed to Sequence_Next_Edge.
1836 (Sequence_Next_LGV_Id): Renamed to Sequence_Next_Vertex.
1837 (Set_Is_Existing_Predecessor_Successor_Relation): Removed.
1838 (Set_Is_Recorded_Cycle, Set_Is_Recorded_Edge,
1839 Set_LGC_Attributes, Spec_Vertex, Trace_Cycle, Trace_Edge,
1840 Trace_Eol, Trace_Vertex): New routines.
1841 * bindo-graphs.ads: Add with and use clauses for Types and
1842 GNAT.Lists. Update the parameter profiles of most routines to
1843 use better parameter names. Update the implementation of most
1844 routine to use the new parameter names. Add the new
1845 instantiated data structures IGE_Lists, IGV_Sets, LGC_Lists,
1846 LGE_Lists, LGE_Sets, LGV_Sets, and RC_Sets. Add new type
1847 Library_Graph_Cycle_Id along with an empty and initial value.
1848 Remove component Lib_Vertex and add new components Body_Vertex
1849 and Spec_Vertex to type Invocation_Graph_Vertex_Attributes. Add
1850 new type Library_Graph_Cycle_Kind. Add new iterators
1851 All_Cycle_Iterator and Edges_Of_Cycle_Iterator. Add new type
1852 Library_Graph_Cycle_Attributes. Add new components
1853 Cycle_Attributes, Cycles, and Dynamically_Elaborated to type
1854 Library_Graph_Attributes.
1855 (Body_Vertex, Column, Destroy_Invocation_Graph_Edge,
1856 Destroy_Library_Graph_Cycle_Attributes,
1857 Destroy_Library_Graph_Edge, Extra, File_Name, Find_Cycles,
1858 Has_Elaborate_All_Cycle, Has_Next, Hash_Library_Graph_Cycle,
1859 Hash_Library_Graph_Cycle_Attributes, Highest_Precedence_Cycle,
1860 In_Same_Component, Invocation_Edge_Count,
1861 Invocation_Graph_Encoding, Is_Dynamically_Elaborated,
1862 Is_Elaborate_All_Edge, Is_Elaborate_Body_Edge,
1863 Is_Elaborate_Edge, Is_Forced_Edge, Is_Invocation_Edge,
1864 Is_With_Edge, Iterate_All_Cycles, Iterate_Edges_Of_Cycle, Kind):
1865 New routines.
1866 (Length, Lib_Vertex, (Line, Next, Number_Of_Cycles, Present,
1867 Same_Library_Graph_Cycle_Attributes, Spec_Vertex): New routines.
1868 * bindo-units.adb (File_Name, Invocation_Graph_Encoding): New
1869 routines.
1870 * bindo-units.ads: Add new instantiated data structure
1871 Unit_Sets.
1872 (File_Name, Invocation_Graph_Encoding): New routine.
1873 * bindo-validators.adb: Remove with and use clauses for GNAT and
1874 GNAT.Sets. Remove membership set US. Update the parameter
1875 profiles of most routines to use better parameter names. Update
1876 the implementation of most routine to use the new parameter
1877 names.
1878 (Validate_Cycle, Validate_Cycle_Path, Validate_Cycles,
1879 Validate_Invocation_Graph_Vertex): Remove the validation of
1880 component Lib_Vertex. Add the validation of components
1881 Body_Vertex and Spec_Vertex.
1882 (Write_Error): New routine.
1883 * bindo-validators.ads (Validate_Cycles): New routine.
1884 * bindo-writers.adb: Update the parameter profiles of most
1885 routines to use better parameter names. Update the
1886 implementation of most routine to use the new parameter names.
1887 (Write_Cycle, Write_Cyclic_Edge, Write_Cycles): New routines.
1888 (Write_Invocation_Graph_Vertex): Remove the output of component
1889 Lib_Vertex. Add the output of components Body_Vertex and
1890 Spec_Vertex.
1891 * bindo-writers.ads (Write_Cycles): New routine.
1892 * debug.adb: Use binder switches -d_C and -d_P, add
1893 documentation on their usage.
1894 * gnatbind.adb: Remove with and use clauses for Binde. Delegate
1895 the choice of elaboration mechanism to Bindo.
1896 * lib-writ.adb (Column, Extra, Invoker, Kind, Line, Locations,
1897 Name, Placement, Scope, Signature, Target): Removed.
1898 (Write_Invocation_Graph): Moved at the top level.
1899 (Write_Invocation_Graph_Attributes): New routine.
1900 (Write_Invocation_Relation, Write_Invocation_Signature): Moved
1901 at the top level.
1902 * lib-writ.ads: Add a documentation section on invocation graph
1903 attributes.
1904 * sem_elab.adb (Body_Placement_Of): New routine.
1905 (Declare_Invocation_Construct): Update the call to
1906 Add_Invocation_Construct.
1907 (Declaration_Placement_Of_Node): New routine.
1908 (Get_Invocation_Attributes): Correct the retrieval of the
1909 enclosing subprogram where the postcondition procedure lives.
1910 (Placement_Of, Placement_Of_Node): Removed.
1911 (Record_Invocation_Graph): Record the encoding format used.
1912 (Record_Invocation_Graph_Encoding): New routine.
1913 (Record_Invocation_Relation): Update the call to
1914 Add_Invocation_Relation.
1915 (Spec_Placement_Of): Removed.
1916 * libgnat/g-lists.ads, libgnat/g-lists.adb (Equal): New routine.
1917
1918 2019-07-05 Ed Schonberg <schonberg@adacore.com>
1919
1920 * checks.adb (Apply_Predicate_Check): Except within the
1921 subprogram body that defines the formal, do not apply predicate
1922 check on a formal IN parameter: such a check is redundant and
1923 its expansion can lead to out-of-scope references when it is
1924 originates in a function call in a precondition,
1925
1926 2019-07-05 Yannick Moy <moy@adacore.com>
1927
1928 * sem_res.adb (Resolve_Call): Cannot inline in quantified
1929 expressions.
1930 * sem_util.adb, sem_util.ads (In_Quantified_Expression): New
1931 function.
1932
1933 2019-07-05 Bob Duff <duff@adacore.com>
1934
1935 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
1936 Fix typo.
1937 * gnat_rm.texi: Regenerate.
1938
1939 2019-07-05 Bob Duff <duff@adacore.com>
1940
1941 * exp_attr.adb (Input): Take the No_Stream_Optimizations
1942 restriction into account.
1943
1944 2019-07-05 Claire Dross <dross@adacore.com>
1945
1946 * libgnat/a-cofove.ads, libgnat/a-cofove.adb: Definite formal
1947 vectors are now always bounded so that they do not need to be
1948 limited anymore.
1949
1950 2019-07-05 Dmitriy Anisimkov <anisimko@adacore.com>
1951
1952 * libgnat/g-traceb.ads, libgnat/g-traceb.adb (Call_Chain): New
1953 function.
1954
1955 2019-07-04 James Clarke <jrtc27@debian.org>
1956
1957 * libgnarl/s-osinte__kfreebsd-gnu.ads (clockid_t): Make type
1958 definition public.
1959 (CLOCK_REALTIME): Make value public.
1960
1961 2019-07-04 Javier Miranda <miranda@adacore.com>
1962
1963 * exp_tss.adb (Init_Proc): Adding missing support for access to
1964 subprograms and access to protected subprograms of non-default
1965 C++ constructors.
1966
1967 2019-07-04 Eric Botcazou <ebotcazou@adacore.com>
1968
1969 * gnat1drv.adb (Adjust_Global_Switches): Use proper interface to
1970 set the validity settings in CodePeer mode.
1971 * par-load.adb (Load): Remove all code dealing with validity
1972 settings.
1973 * validsw.ads (Validity_Check_Copies): Alphabetize.
1974 * validsw.adb (Reset_Validity_Check_Options): Set all options to
1975 off.
1976 (Save_Validity_Check_Options): Save all options.
1977
1978 2019-07-04 Hristian Kirtchev <kirtchev@adacore.com>
1979
1980 * exp_ch3.adb, exp_ch4.adb, exp_ch4.ads, exp_ch5.adb,
1981 exp_ch7.adb, exp_ch9.adb, exp_ch11.adb, exp_unst.adb,
1982 rtsfind.ads, sem_attr.adb, sem_ch10.adb, sem_ch12.adb,
1983 sem_ch13.adb, sem_dim.adb, sem_disp.adb, xref_lib.adb: Minor
1984 reformatting.
1985
1986 2019-07-04 Joffrey Huguet <huguet@adacore.com>
1987
1988 * libgnarl/a-taside.ads: Add assertion policy to ignore
1989 preconditions.
1990 (Abort_Task, Is_Terminated, Is_Callable): Add preconditions.
1991
1992 2019-07-04 Eric Botcazou <ebotcazou@adacore.com>
1993
1994 * doc/gnat_rm/implementation_defined_pragmas.rst: Fix
1995 capitalization and parenthesis glitches.
1996 * gnat_rm.texi: Regenerate.
1997
1998 2019-07-04 Ed Schonberg <schonberg@adacore.com>
1999
2000 * sem_ch10.adb (Remove_Context_Clauses): Handle properly the
2001 removal of a limited_with_clause which appears in the library
2002 unit oF the main unit, when some other unit in the context has a
2003 regular with_clause on the same unit, to prevent spurious
2004 visibility errors in the subsequent analysis of pending instance
2005 bodies.
2006
2007 2019-07-04 Hristian Kirtchev <kirtchev@adacore.com>
2008
2009 * sem_elab.adb: Add new type Elaboration_Phase_Status along with
2010 a global to keep track of the elaboration phase status.
2011 Initialize all internal data structures to Nil for services
2012 Elaborated_Units, Internal_Representation, and Scenario_Storage.
2013 (Build_Call_Marker): Do not create a call marker when the
2014 elaboration phase is not active.
2015 (Build_Variable_Reference_Marker): Do not create a call marker
2016 when the elaboration phase is not active.
2017 (Check_Elaboration_Scenarios): Destroy all internal structures
2018 when the elaboration phase does not have to run. Do not execute
2019 when the elaboration phase is not active.
2020 (Elaboration_Phase_Active): New routine.
2021 (Finalize_All_Data_Structures): New routine.
2022 (Initialize): Initialize all internal data structures and signal
2023 that the elaboration phase has started.
2024 (Initialize_All_Data_Structures): New routine.
2025 (Initialize_Elaborated_Units): Initialize all internal data
2026 structures.
2027 (Initialize_Internal_Representation): Initialize all internal
2028 data structures.
2029 (Initialize_Scenario_Storage): Initialize all internal data
2030 structures.
2031 (Kill_Elaboration_Scenario): Do not execute when the elaboration
2032 phase is not active.
2033 (Set_Elaboration_Phase): New routine.
2034 (Update_Elaboration_Scenario): Do not execute when the
2035 elaboration phase is not active.
2036
2037 2019-07-04 Gary Dismukes <dismukes@adacore.com>
2038
2039 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): The special
2040 treatment of calling Mask_Unfrozen_Types must also be done in
2041 the case of an Ignored_Ghost_Entity, because Expander_Active is
2042 False in that case.
2043
2044 2019-07-04 Yannick Moy <moy@adacore.com>
2045
2046 * sem_prag.adb (Check_Library_Level_Entity): Update for new rule
2047 on SPARK_Mode.
2048
2049 2019-07-04 Justin Squirek <squirek@adacore.com>
2050
2051 * sem_disp.adb (Check_Controlling_Formals): Obtain the full view
2052 before type comparison.
2053
2054 2019-07-04 Ed Schonberg <schonberg@adacore.com>
2055
2056 * exp_ch4.ads, exp_ch4.adb (Build_Eq_Call): New visible
2057 subprogram, extracted from Expand_Composite_Equality, to handle
2058 properly the composition of equality for variant record types.
2059 * exp_ch3.adb (MAke_Eq_If): Use Build_Eq_Call for each
2060 component, to handle properly the case of a component with a
2061 user-defined equality. Revert to predefined equality if the
2062 user-defined operation is abstract, to maintain compatibility
2063 with older versions,
2064
2065 2019-07-04 Justin Squirek <squirek@adacore.com>
2066
2067 * exp_ch3.adb (Build_Initialization_Call): Fixup
2068 *_skip_null_excluding_check argument to handle new default.
2069 (Init_Formals): Make *_skip_null_excluding_check formal default
2070 to False
2071 * exp_ch4.adb (Expand_N_Allocator): Add comment to note heavy
2072 code duplication
2073
2074 2019-07-04 Bob Duff <duff@adacore.com>
2075
2076 * sem_ch3.adb (Access_Definition): Do not create a master unless
2077 Tasking_Allowed. Otherwise, this fails on restricted runtimes.
2078
2079 2019-07-04 Hristian Kirtchev <kirtchev@adacore.com>
2080
2081 * sem_util.adb (Propagate_DIC_Attributes): Do not propagate the
2082 Default_Initial_Condition attributes to an incomplete type.
2083
2084 2019-07-04 Ed Schonberg <schonberg@adacore.com>
2085
2086 * sem_attr.adb (Check_Array_Type): An array type attribute such
2087 as 'First can be applied to an unconstrained array tyope when
2088 the attribute reference appears within an aspect specification
2089 and the prefix is a current instance, given that the prefix of
2090 the attribute will become a formal of the subprogram that
2091 implements the aspect (typically a predicate check).
2092
2093 2019-07-04 Piotr Trojanek <trojanek@adacore.com>
2094
2095 * sem_util.adb (Yields_Synchronized_Object): Fix typos in
2096 comments.
2097
2098 2019-07-04 Yannick Moy <moy@adacore.com>
2099
2100 * sem_util.adb (Yields_Synchronized_Object): Adapt to new SPARK
2101 rule.
2102
2103 2019-07-04 Yannick Moy <moy@adacore.com>
2104
2105 * sem_spark.adb (Check_Statement): Only check permission of
2106 object in extended return when it is of a deep type.
2107
2108 2019-07-04 Justin Squirek <squirek@adacore.com>
2109
2110 * sem_ch12.adb (Perform_Appropriate_Analysis): Added for
2111 selecting which type of analysis based on wheither the
2112 instantiation is a generic at the library-level. In which case
2113 expansion during analysis.
2114 (Preanalyze_Actuals): Modify calls to Analyze to use the new
2115 routine.
2116
2117 2019-07-04 Ed Schonberg <schonberg@adacore.com>
2118
2119 * exp_unst.adb: Handle conditional expressions.
2120
2121 2019-07-04 Yannick Moy <moy@adacore.com>
2122
2123 * sem_spark.adb (Check_Package_Spec, Check_Package_Body): Only
2124 analyze parts of the code marked in SPARK.
2125
2126 2019-07-04 Hristian Kirtchev <kirtchev@adacore.com>
2127
2128 * erroutc.adb, exp_aggr.adb, inline.adb, opt.adb, sem_ch3.adb:
2129 Minor reformatting.
2130
2131 2019-07-04 Yannick Moy <moy@adacore.com>
2132
2133 * sem_spark.adb (Explanation, Get_Expl): New functions to get
2134 the explanation for a permission mismatch.
2135 (Perm_Error, Perm_Mismatch, Perm_Error_Loop_Exit): Take
2136 explanation into account for issuing a more precise error
2137 message.
2138 (Set_Perm_Prefixes, Set_Perm_Extensions,
2139 Set_Perm_Extensions_Move): Pass suitable argument for the
2140 explanation node.
2141
2142 2019-07-04 Arnaud Charlet <charlet@adacore.com>
2143
2144 * exp_aggr.adb (In_Place_Assign_OK): Moved to top level and add
2145 support for record aggregates.
2146 (Component_Check): Use Is_CCG_Supported_Aggregate instead of a
2147 similar local predicate.
2148 (Convert_To_Assignments): Take advantage of In_Place_Assign_OK
2149 predicate when possible.
2150 (Is_CCG_Supported_Aggregate): Return False for records with
2151 representation clauses and fix the logic for dealing with nested
2152 aggregates.
2153
2154 2019-07-04 Piotr Trojanek <trojanek@adacore.com>
2155
2156 * opt.adb (Set_Config_Switches): Keep assertions policy as
2157 enabled when analysing internal units in GNATprove mode.
2158
2159 2019-07-04 Arnaud Charlet <charlet@adacore.com>
2160
2161 * exp_ch4.adb (Expand_Short_Circuit_Operator): Strip
2162 N_Variable_Reference_Marker when checking for the presence of
2163 actions.
2164
2165 2019-07-04 Arnaud Charlet <charlet@adacore.com>
2166
2167 * exp_aggr.adb (Check_Component): Take into account type
2168 conversions.
2169
2170 2019-07-04 Dmitriy Anisimkov <anisimko@adacore.com>
2171
2172 * doc/gnat_ugn/platform_specific_information.rst: Document
2173 Windows socket timeout particularity.
2174 * gnat_ugn.texi: Regenerate.
2175 * gsocket.h: Include versionhelpers.h.
2176 * socket.c (__gnat_minus_500ms): New function.
2177 * libgnat/g-sothco.ads (Minus_500ms_Windows_Timeout): New
2178 imported function.
2179 * libgnat/g-socket.adb (Set_Socket_Option): Refactor to remove
2180 500ms from the requested timeout only on old Windows version.
2181
2182 2019-07-04 Thomas Quinot <quinot@adacore.com>
2183
2184 * get_scos.adb: Remove bogus, dead code.
2185
2186 2019-07-04 Ed Schonberg <schonberg@adacore.com>
2187
2188 * sem_dim.adb (Analyze_Dimension_Array_Aggregate): If the
2189 component is an entity name, its dimensions are those of its
2190 type.
2191
2192 2019-07-03 Bob Duff <duff@adacore.com>
2193
2194 * doc/gnat_ugn/gnat_utility_programs.rst: Document new flags in
2195 GNATpp.
2196
2197 2019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
2198
2199 * binde.adb: Remove with clause for System.OS_Lib.
2200 (Force_Elab_Order): Refactor the majority of the code in Butil.
2201 Use the new forced units iterator to obtain unit names.
2202 * bindo-builders.adb: Add with and use clauses for Binderr,
2203 Butil, Opt, Output, Types, GNAT, and GNAT.Dynamic_HTables. Add
2204 a hash table which maps units to line number in the forced
2205 elaboration order file.
2206 (Add_Unit): New routine.
2207 (Build_Library_Graph): Create forced edges between pairs of
2208 units listed in the forced elaboration order file.
2209 (Create_Forced_Edge, Create_Forced_Edges, Destroy_Line_Number,
2210 Duplicate_Unit_Error, Hash_Unit, Internal_Unit_Info,
2211 Is_Duplicate_Unit, Missing_Unit_Info): New routines.
2212 * bindo-graphs.adb (Is_Internal_Unit, Is_Predefined_Unit):
2213 Refactor some of the behavior to Bindo-Units.
2214 * bindo-graphs.ads: Enable the enumeration literal for forced
2215 edges.
2216 * bindo-units.adb, bindo-units.ads (Is_Internal_Unit,
2217 Is_Predefined_Unit): New routines.
2218 * butil.adb: Add with and use clauses for Opt, GNAT, and
2219 System.OS_Lib. Add with clause for Unchecked_Deallocation.
2220 (Has_Next, Iterate_Forced_Units, Next, Parse_Next_Unit_Name,
2221 Read_Forced_Elab_Order_File): New routines.
2222 * butil.ads: Add with and use clauses for Types. Add new
2223 iterator over the units listed in the forced elaboration order
2224 file.
2225 (Has_Next, Iterate_Forced_Units, Next): New routine.
2226 * namet.adb, namet.ads (Present): New routine.
2227
2228 2019-07-03 Bob Duff <duff@adacore.com>
2229
2230 * sem_ch3.adb (Access_Definition): The code was creating a
2231 master in the case where the designated type is a class-wide
2232 interface type. Create a master in the noninterface case as
2233 well. That is, create a master for all limited class-wide types.
2234
2235 2019-07-03 Yannick Moy <moy@adacore.com>
2236
2237 * erroutc.adb (Sloc_In_Range): New function to determine whether
2238 the range of a pragma Warnings covers a location, taking
2239 instantiations into account.
2240
2241 2019-07-03 Johannes Kanig <kanig@adacore.com>
2242
2243 * osint.ads, osint.adb (Get_First_Main_File_Name): New routine
2244 to access the first file provided on the command line.
2245
2246 2019-07-03 Ed Schonberg <schonberg@adacore.com>
2247
2248 * inline.adb (Process_Formals_In_Aspects): New procedure within
2249 Expand_Inlined_Call, to perform a replacement of references to
2250 formals that appear in aspect specifications within the body
2251 being inlined.
2252
2253 2019-07-03 Justin Squirek <squirek@adacore.com>
2254
2255 * sem_ch8.adb (Analyze_Object_Renaming): Add call to search for
2256 the appropriate actual subtype of the object renaming being
2257 analyzed.
2258 (Check_Constrained_Object): Minor cleanup.
2259
2260 2019-07-03 Yannick Moy <moy@adacore.com>
2261
2262 * sem_spark.adb (Get_Observed_Or_Borrowed_Expr): New function to
2263 return go through traversal function call.
2264 (Check_Type): Consistently use underlying type.
2265 (Get_Perm): Adapt for case of elaboration code where variables
2266 are not declared in the environment. Remove incorrect handling
2267 of borrow and observe.
2268
2269 2019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
2270
2271 * inline.adb (Build_Return_Object_Formal): New routine.
2272 (Can_Split_Unconstrained_Function): Code clean up.
2273 (Copy_Formals,Copy_Return_Object): New routines.
2274 (Split_Unconstrained_Function): Code clean up and refactoring.
2275
2276 2019-07-03 Gary Dismukes <dismukes@adacore.com>
2277
2278 * bindo-augmentors.adb, bindo-augmentors.ads,
2279 bindo-builders.ads, bindo-elaborators.adb, sem_ch12.adb,
2280 sem_ch13.adb, sem_spark.adb, sinfo.ads: Minor editorial
2281 corrections and reformatting.
2282
2283 2019-07-03 Bob Duff <duff@adacore.com>
2284
2285 * sem_warn.adb (Check_Infinite_Loop_Warning): Avoid the warning
2286 if an Iterator_Specification is present.
2287
2288 2019-07-03 Bob Duff <duff@adacore.com>
2289
2290 * doc/gnat_ugn/gnat_utility_programs.rst: Document default
2291 new-line behavior.
2292
2293 2019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
2294
2295 * ali.adb: Add with and use clauses for GNAT,
2296 GNAT.Dynamic_HTables, and Snames. Add a map from invocation
2297 signature records to invocation signature ids. Add various
2298 encodings of invocation-related attributes. Sort and update
2299 table Known_ALI_Lines.
2300 (Add_Invocation_Construct, Add_Invocation_Relation,
2301 Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind,
2302 Code_To_Invocation_Construct_Kind, Code_To_Invocation_Kind,
2303 Code_To_Invocation_Graph_Line_Kind, Destroy, Hash): New
2304 routines.
2305 (Initialize_ALI): Sort the initialization sequence. Add
2306 initialization for all invocation-related tables.
2307 (Invocation_Construct_Kind_To_Code,
2308 Invocation_Graph_Line_Kind_To_Code, Invocation_Kind_To_Code,
2309 Invocation_Signature_Of, Present): New routines.
2310 (Scan_ALI): Add the default values for invocation-related ids.
2311 Scan invocation graph lines.
2312 (Scan_Invocation_Graph_Line): New routine.
2313 * ali.ads: Add with clause for GNAT.Dynamic_Tables. Add types
2314 for invocation constructs, relations, and signatures. Add
2315 tables for invocation constructs, relations, and signatures.
2316 Update Unit_Record to capture invocation-related ids. Relocate
2317 table Unit_Id_Tables and subtypes Unit_Id_Table, Unit_Id_Array
2318 from Binde.
2319 (Add_Invocation_Construct, Add_Invocation_Relation,
2320 Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind,
2321 Code_To_Invocation_Construct_Kind, Code_To_Invocation_Kind,
2322 Code_To_Invocation_Graph_Line_Kind,
2323 Invocation_Construct_Kind_To_Code,
2324 Invocation_Graph_Line_Kind_To_Code, Invocation_Kind_To_Code,
2325 Invocation_Signature_Of, Present): New routines.
2326 * binde.adb: Add with and use clause for Types. Add use clause
2327 for ALI.Unit_Id_Tables;
2328 * binde.ads: Relocate table Unit_Id_Tables and subtypes
2329 Unit_Id_Table, Unit_Id_Array to ALI.
2330 * bindgen.adb: Remove with and use clause for ALI.
2331 * bindgen.ads: Remove with and use clause for Binde. Add with
2332 and use clause for ALI.
2333 * bindo.adb, bindo.ads, bindo-augmentors.adb,
2334 bindo-augmentors.ads, bindo-builders.adb, bindo-builders.ads,
2335 bindo-diagnostics.adb, bindo-diagnostics.ads,
2336 bindo-elaborators.adb, bindo-elaborators.ads, bindo-graphs.adb,
2337 bindo-graphs.ads, bindo-units.adb, bindo-units.ads,
2338 bindo-validators.adb, bindo-validators.ads, bindo-writers.adb,
2339 bindo-writers.ads: New units.
2340 * debug.adb: Use and describe GNAT debug switches -gnatd_F and
2341 -gnatd_G. Add GNATbind debug switches in the ranges dA .. dZ,
2342 d.a .. d.z, d.A .. d.Z, d.1 .. d.9, d_a .. d_z, d_A .. d_Z, and
2343 d_1 .. d_9. Use and describe GNATbind debug switches -d_A,
2344 -d_I, -d_L, -d_N, -d_O, -d_T, and -d_V.
2345 * exp_util.adb, exp_util.ads (Exceptions_OK): Relocate to
2346 Sem_Util.
2347 * gnatbind.adb: Add with and use clause for Bindo. Use the new
2348 Bindo elaboration order only when -d_N is in effect.
2349 * lib-writ.adb
2350 (Column, Extra, Invoker, Kind, Line, Locations, Name, Placement,
2351 Scope, Signature, Target): New routines.
2352 (Write_ALI): Output all invocation-related data.
2353 (Write_Invocation_Graph): New routine.
2354 * lib-writ.ads: Document the invocation graph ALI line.
2355 * namet.adb, namet.ads (Present): New routines.
2356 * sem_ch8.adb (Find_Direct_Name): Capture the status of
2357 elaboration checks and warnings of an identifier.
2358 (Find_Expanded_Name): Capture the status of elaboration checks
2359 and warnings of an expanded name.
2360 * sem_ch12.adb (Analyze_Generic_Package_Declaration): Ensure
2361 that invocation graph-related data within the body of the main
2362 unit is encoded in the ALI file.
2363 (Analyze_Generic_Subprogram_Declaration): Ensure that invocation
2364 graph-related data within the body of the main unit is encoded
2365 in the ALI file.
2366 (Analyze_Package_Instantiation): Perform minimal decoration of
2367 the instance entity.
2368 (Analyze_Subprogram_Instantiation): Perform minimal decoration
2369 of the instance entity.
2370 * sem_elab.adb: Perform heavy refactoring of all code. The unit
2371 is now split into "services" which specialize in one area of ABE
2372 checks. Add processing in order to capture invocation-graph
2373 related attributes of the main unit, and encode them in the ALI
2374 file. The Processing phase can now operate in multiple modes,
2375 all described by type Processing_Kind. Scenarios and targets
2376 are now distinct at the higher level, and carry their own
2377 representations. This eliminates the need to constantly
2378 recompute their attributes, and offers the various processors a
2379 uniform interface. The various initial states of the Processing
2380 phase are now encoded using type Processing_In_State, and
2381 xxx_State constants.
2382 * sem_elab.ads: Update the literals of type
2383 Enclosing_Level_Kind. Add Inline pragmas on several routines.
2384 * sem_prag.adb (Process_Inline): Ensure that invocation
2385 graph-related data within the body of the main unit is encoded
2386 in the ALI file.
2387 * sem_util.adb (Enclosing_Generic_Body, Enclosing_Generic_Unit):
2388 Code clean up.
2389 (Exceptions_OK): Relocated from Sem_Util.
2390 (Mark_Save_Invocation_Graph_Of_Body): New routine.
2391 * sem_util.ads (Exceptions_OK): Relocated from Sem_Util.
2392 (Mark_Save_Invocation_Graph_Of_Body): New routine.
2393 * sinfo.adb (Is_Elaboration_Checks_OK_Node): Now applicable to
2394 N_Variable_Reference_Marker.
2395 (Is_Elaboration_Warnings_OK_Node): Now applicable to
2396 N_Expanded_Name, N_Identifier, N_Variable_Reference_Marker.
2397 (Is_Read): Use Flag4.
2398 (Is_SPARK_Mode_On_Node): New applicable to
2399 N_Variable_Reference_Marker.
2400 (Is_Write): Use Flag5.
2401 (Save_Invocation_Graph_Of_Body): New routine.
2402 (Set_Is_Elaboration_Checks_OK_Node): Now applicable to
2403 N_Variable_Reference_Marker.
2404 (Set_Is_Elaboration_Warnings_OK_Node): Now applicable to
2405 N_Expanded_Name, N_Identifier, N_Variable_Reference_Marker.
2406 (Set_Is_SPARK_Mode_On_Node): New applicable to
2407 N_Variable_Reference_Marker.
2408 (Set_Save_Invocation_Graph_Of_Body): New routine.
2409 * sinfo.ads: Update the documentation of attributes
2410 Is_Elaboration_Checks_OK_Node, Is_Elaboration_Warnings_OK_Node,
2411 Is_SPARK_Mode_On_Node. Update the flag usage of attributes
2412 Is_Read, Is_Write. Add attribute Save_Invocation_Graph_Of_Body
2413 and update its occurrence in nodes.
2414 (Save_Invocation_Graph_Of_Body): New routine along with pragma
2415 Inline.
2416 (Set_Save_Invocation_Graph_Of_Body): New routine along with
2417 pragma Inline.
2418 * switch-b.adb (Scan_Binder_Switches): Refactor the scanning of
2419 debug switches.
2420 (Scan_Debug_Switches): New routine.
2421 * libgnat/g-dynhta.adb, libgnat/g-dynhta.ads (Contains): New routine.
2422 * libgnat/g-graphs.adb (Associate_Vertices): Update the use of
2423 Component_Vertex_Iterator.
2424 (Contains_Component, Contains_Edge, Contains_Vertex, Has_Next):
2425 Reimplemented.
2426 (Iterate_Component_Vertices): New routine.
2427 (Iterate_Vertices): Removed.
2428 (Next): Update the parameter profile.
2429 (Number_Of_Component_Vertices, Number_Of_Outgoing_Edges): New
2430 routines.
2431 * libgnat/g-graphs.ads: Update the initialization of
2432 No_Component. Add type Component_Vertex_Iterator. Remove type
2433 Vertex_Iterator.
2434 (Has_Next): Add new versions and remove old ones.
2435 (Iterate_Component_Vertices): New routine.
2436 (Iterate_Vertices): Removed.
2437 (Next): Add new versions and remove old ones.
2438 (Number_Of_Component_Vertices, Number_Of_Outgoing_Edges): New
2439 routines.
2440 * libgnat/g-sets.adb (Contains): Reimplemented.
2441 * gcc-interface/Make-lang.in (GNATBIND_OBJS): Add
2442 GNAT.Dynamic_HTables, GNAT.Graphs and Bindo units.
2443 * rtsfind.ads: Remove extra space.
2444
2445 2019-07-03 Yannick Moy <moy@adacore.com>
2446
2447 * sem_spark.adb: Add support for locally borrowing and observing
2448 a path.
2449 (Get_Root_Object): Add parameter Through_Traversal to denote
2450 when we are interesting in getting to the traversed parameter.
2451 (Is_Prefix_Or_Almost): New function to support detection of
2452 illegal access to borrowed or observed paths.
2453 (Check_Pragma): Add analysis of assertion pragmas.
2454
2455 2019-07-03 Ed Schonberg <schonberg@adacore.com>
2456
2457 * sem_ch13.adb (Build_Predicate_Functions): In a generic context
2458 we do not build the bodies of predicate fuctions, but the
2459 expression in a static predicate must be elaborated to allow
2460 case coverage checking within the generic unit.
2461 (Build_Discrete_Static_Predicate): In a generic context, return
2462 without building function body once the
2463 Static_Discrete_Predicate expression for the type has been
2464 constructed.
2465
2466 2019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
2467
2468 * bindgen.adb, inline.adb, layout.adb, sem_ch12.adb,
2469 sem_ch13.adb, sem_ch7.adb, styleg.adb: Minor reformatting.
2470
2471 2019-07-03 Bob Duff <duff@adacore.com>
2472
2473 * par-ch3.adb (P_Defining_Identifier): Call
2474 Check_Defining_Identifier_Casing.
2475 * style.ads, styleg.ads, styleg.adb
2476 (Check_Defining_Identifier_Casing): New procedure to check for
2477 mixed-case defining identifiers.
2478 * stylesw.ads, stylesw.adb (Style_Check_Mixed_Case_Decls): New
2479 flag for checking for mixed-case defining identifiers.
2480 * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
2481 Document new feature.
2482 * gnat_ugn.texi: Regenerate.
2483
2484 2019-07-03 Eric Botcazou <ebotcazou@adacore.com>
2485
2486 * doc/gnat_ugn/building_executable_programs_with_gnat.rst
2487 (Warning message control): Document that -gnatw.z/Z apply to
2488 array types.
2489 * freeze.adb (Freeze_Entity): Give -gnatw.z warning for array
2490 types as well, but not if the specified alignment is the minimum
2491 one.
2492 * gnat_ugn.texi: Regenerate.
2493
2494 2019-07-03 Bob Duff <duff@adacore.com>
2495
2496 * einfo.ads, exp_util.adb, layout.ads, sinfo.ads: Spell "laid"
2497 correctly.
2498
2499 2019-07-03 Ed Schonberg <schonberg@adacore.com>
2500
2501 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): No error
2502 message on attribute applied to a renaming when the renamed
2503 object is an aggregate (from code reading).
2504 (Check_Aspect_At_End_Of_Declarations): In a generic context
2505 where freeze nodes are not generated, the original expression
2506 for an aspect may need to be analyzed to precent spurious
2507 conformance errors when compared with the expression that is
2508 anakyzed at the end of the current declarative list.
2509
2510 2019-07-03 Eric Botcazou <ebotcazou@adacore.com>
2511
2512 * layout.adb (Layout_Type): Do not set the component size of an
2513 array with a scalar component if the component type is
2514 overaligned.
2515
2516 2019-07-03 Ed Schonberg <schonberg@adacore.com>
2517
2518 * inline.adb (Make_Loop_Labels_Unique): New procedure to modify
2519 the source code of subprograms that are inlined by the
2520 front-end, to prevent accidental duplication between loop labels
2521 in the inlined code and the code surrounding the inlined call.
2522
2523 2019-07-03 Hristian Kirtchev <kirtchev@adacore.com>
2524
2525 * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Update
2526 the section on resolving elaboration circularities to eliminate
2527 certain combinations of switches which together do not produce
2528 the desired effect and confuse users.
2529 * gnat_ugn.texi: Regenerate.
2530
2531 2019-07-03 Arnaud Charlet <charlet@adacore.com>
2532
2533 * bindgen.adb (Gen_Main): Disable generation of reference to
2534 Ada_Main_Program_Name for CCG.
2535 * bindusg.adb (Display): Add -G to the command-line usage for
2536 gnatbind.
2537 * opt.ads (Generate_C_Code): Update comment.
2538 * switch-b.adb (Scan_Binder_Switches): Add handling for -G.
2539
2540 2019-07-03 Arnaud Charlet <charlet@adacore.com>
2541
2542 * sem_ch7.adb (Has_Referencer): Do not consider inlined
2543 subprograms when generating C code, which allows us to generate
2544 static inline subprograms.
2545
2546 2019-07-03 Justin Squirek <squirek@adacore.com>
2547
2548 * sem_ch6.adb (Check_Conformance): Add expression checking for
2549 constant modifiers in anonymous access types (in addition to
2550 "non-null" types) so that they are considered "matching" for
2551 subsequent conformance tests.
2552
2553 2019-07-03 Arnaud Charlet <charlet@adacore.com>
2554
2555 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
2556 Clarify wording on No_Multiple_Elaboration.
2557 * gnat_rm.texi: Regenerate.
2558
2559 2019-07-03 Ed Schonberg <schonberg@adacore.com>
2560
2561 * sem_ch8.adb (Find_Selected_Component): If the prefix is the
2562 current instance of a type or subtype, complete the resolution
2563 of the name by finding the component of the type denoted by the
2564 selector name.
2565
2566 2019-07-03 Eric Botcazou <ebotcazou@adacore.com>
2567
2568 * doc/gnat_rm/interfacing_to_other_languages.rst (Interfacing to C):
2569 Document that boolean types with convention C now map to C99 bool.
2570 * gnat_rm.texi: Regenerate.
2571
2572 2019-07-03 Javier Miranda <miranda@adacore.com>
2573
2574 * exp_attr.adb (Expand_Min_Max_Attribute): Code cleanup:
2575 removing code that it is now never executed in the CCG compiler
2576 (dead code).
2577
2578 2019-07-02 Iain Sandoe <iain@sandoe.co.uk>
2579
2580 * libgnat/system-darwin-ppc.ads: Set Stack_Check_Probes True for
2581 PPC Darwin.
2582
2583 2019-07-01 Ed Schonberg <schonberg@adacore.com>
2584
2585 * sem_ch12.adb (Is_Defaulted): New predicate in
2586 Check_Formal_Package_Intance, to skip the conformance of checks
2587 on parameters of a formal package that are defaulted,
2588
2589 2019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
2590
2591 * checks.adb, exp_ch9.adb, exp_unst.adb, sem_ch4.adb,
2592 sem_prag.adb, sem_spark.adb: Minor reformatting.
2593
2594 2019-07-01 Ed Schonberg <schonberg@adacore.com>
2595
2596 * sem_attr.adb (Analyze_Attribute, case Enum_Rep): Allow prefix
2597 of attribute to be an attribute reference of a discrete type.
2598
2599 2019-07-01 Eric Botcazou <ebotcazou@adacore.com>
2600
2601 * sem_ch12.adb (Analyze_Subprogram_Instantiation): Move up
2602 handling of Has_Pragma_Inline_Always and deal with
2603 Has_Pragma_No_Inline.
2604
2605 2019-07-01 Ed Schonberg <schonberg@adacore.com>
2606
2607 * sem_ch3.adb (Build_Derived_Record_Type): If the parent type is
2608 declared as a subtype of a private type with an inherited
2609 discriminant constraint, its generated full base appears as a
2610 record subtype, so we need to retrieve its oen base type so that
2611 the inherited constraint can be applied to it.
2612
2613 2019-07-01 Yannick Moy <moy@adacore.com>
2614
2615 * sem_spark.adb: Completely rework the algorithm for ownership
2616 checking, as the rules in SPARK RM have changed a lot.
2617 * sem_spark.ads: Update comments.
2618
2619 2019-07-01 Dmitriy Anisimkov <anisimko@adacore.com>
2620
2621 * gsocket.h (Has_Sockaddr_Len): Use the offset of sin_family offset in
2622 the sockaddr_in structure to determine the existence of length field
2623 before the sin_family.
2624
2625 2019-07-01 Ed Schonberg <schonberg@adacore.com>
2626
2627 * sem_prag.adb (Analyze_Pragma, case Weak_External): Pragma only
2628 applies to entities with run-time addresses, not to types.
2629
2630 2019-07-01 Piotr Trojanek <trojanek@adacore.com>
2631
2632 * einfo.adb, sem_ch7.adb, sem_prag.adb, sem_util.adb: Update
2633 references to the SPARK RM after the removal of Rule 7.1.4(5).
2634
2635 2019-07-01 Piotr Trojanek <trojanek@adacore.com>
2636
2637 * sysdep.c: Cleanup references to LynuxWorks in docs and
2638 comments.
2639
2640 2019-07-01 Ed Schonberg <schonberg@adacore.com>
2641
2642 * checks.adb (Insert_Valid_Check): Do not apply validity check
2643 to variable declared within a protected object that uses the
2644 Lock_Free implementation, to prevent unwarranted constant
2645 folding, because entities within such an object msut be treated
2646 as volatile.
2647
2648 2019-07-01 Eric Botcazou <ebotcazou@adacore.com>
2649
2650 * exp_ch9.adb (Check_Inlining): Deal with Has_Pragma_No_Inline.
2651
2652 2019-07-01 Ed Schonberg <schonberg@adacore.com>
2653
2654 * exp_unst.adb (Visit_Node, Check_Static_Type): Improve the
2655 handling of private and incomplete types whose full view is an
2656 access type, to detect additional uplevel references in dynamic
2657 bounds. This is relevant to N_Free_Statement among others that
2658 manipulate types whose full viww may be an access type.
2659
2660 2019-07-01 Pat Rogers <rogers@adacore.com>
2661
2662 * doc/gnat_rm/representation_clauses_and_pragmas.rst: Correct
2663 size indicated for R as a component of an array.
2664 * gnat_rm.texi: Regenerate.
2665
2666 2019-07-01 Justin Squirek <squirek@adacore.com>
2667
2668 * libgnat/s-win32.ads: Add definition for ULONG, modify
2669 OVERLAPPED type, and add appropriate pragmas.
2670
2671 2019-07-01 Bob Duff <duff@adacore.com>
2672
2673 * gnat1drv.adb (gnat1drv): Call Write_ALI if the main unit is
2674 ignored-ghost.
2675
2676 2019-07-01 Yannick Moy <moy@adacore.com>
2677
2678 * sem_ch4.adb (Operator_Check): Refine error message.
2679
2680 2019-07-01 Piotr Trojanek <trojanek@adacore.com>
2681
2682 * libgnat/a-calend.ads: Revert "Global => null" contracts on
2683 non-pure routines.
2684
2685 2019-07-01 Piotr Trojanek <trojanek@adacore.com>
2686
2687 * exp_attr.adb, libgnat/g-graphs.ads: Fix typos in comments:
2688 componant -> component.
2689
2690 2019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
2691
2692 * libgnat/g-graphs.adb: Use type Directed_Graph rather than
2693 Instance in various routines.
2694 * libgnat/g-graphs.ads: Change type Instance to Directed_Graph.
2695 Update various routines that mention the type.
2696
2697 2019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
2698
2699 * libgnat/g-sets.adb: Use type Membership_Set rathern than
2700 Instance in various routines.
2701 * libgnat/g-sets.ads: Change type Instance to Membership_Set.
2702 Update various routines that mention the type.
2703
2704 2019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
2705
2706 * libgnat/g-lists.adb: Use type Doubly_Linked_List rather than
2707 Instance in various routines.
2708 * libgnat/g-lists.ads: Change type Instance to
2709 Doubly_Linked_List. Update various routines that mention the
2710 type.
2711
2712 2019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
2713
2714 * libgnat/g-dynhta.adb: Use type Dynamic_Hash_Table rather than
2715 Instance in various routines.
2716 * libgnat/g-dynhta.ads: Change type Instance to
2717 Dynamic_Hash_Table. Update various routines that mention the
2718 type.
2719
2720 2019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
2721
2722 * exp_attr.adb, exp_ch7.adb, exp_unst.adb, sem_ch3.adb,
2723 sem_util.adb, uintp.adb, uintp.ads: Minor reformatting.
2724
2725 2019-07-01 Javier Miranda <miranda@adacore.com>
2726
2727 * exp_attr.adb (Expand_Min_Max_Attribute): Disable expansion of
2728 'Min/'Max on integer, enumeration, fixed point and floating
2729 point types since the CCG backend now provides in file
2730 standard.h routines to support it.
2731
2732 2019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
2733
2734 * impunit.adb: Add GNAT.Graphs to list Non_Imp_File_Names_95.
2735 * Makefile.rtl, gcc-interface/Make-lang.in: Register unit
2736 GNAT.Graphs.
2737 * libgnat/g-dynhta.adb: Various minor cleanups (use Present
2738 rather than direct comparisons).
2739 (Delete): Reimplement to use Delete_Node.
2740 (Delete_Node): New routine.
2741 (Destroy_Bucket): Invoke the provided destructor.
2742 (Present): New routines.
2743 * libgnat/g-dynhta.ads: Add new generic formal Destroy_Value.
2744 Use better names for the components of iterators.
2745 * libgnat/g-graphs.adb, libgnat/g-graphs.ads: New unit.
2746 * libgnat/g-lists.adb: Various minor cleanups (use Present
2747 rather than direct comparisons).
2748 (Delete_Node): Invoke the provided destructor.
2749 (Present): New routine.
2750 * libgnat/g-lists.ads: Add new generic formal Destroy_Element.
2751 Use better names for the components of iterators.
2752 (Present): New routine.
2753 * libgnat/g-sets.adb, libgnat/g-sets.ads (Destroy, Preset,
2754 Reset): New routines.
2755
2756 2019-07-01 Dmitriy Anisimkov <anisimko@adacore.com>
2757
2758 * libgnat/g-sothco.adb (Get_Address): Fix the case when AF_INET6
2759 is not defined.
2760
2761 2019-07-01 Ed Schonberg <schonberg@adacore.com>
2762
2763 * exp_attr.adb (Expand_Attribute_Reference, case Invalid_Value):
2764 Resolve result of call to Get_Simple_Init_Val, which may be a
2765 conversion of a literal.
2766
2767 2019-07-01 Hristian Kirtchev <kirtchev@adacore.com>
2768
2769 * freeze.adb (Freeze_Expression): Remove the horrible useless
2770 name hiding of N. Insert the freeze nodes generated by the
2771 expression prior to the expression when the nearest enclosing
2772 scope is transient.
2773
2774 2019-07-01 Pierre-Marie de Rodat <derodat@adacore.com>
2775
2776 * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix
2777 formatting issues in the -gnatR section.
2778 * gnat_ugn.texi: Regenerate.
2779
2780 2019-06-30 Iain Sandoe <iain@sandoe.co.uk>
2781
2782 * gnatlink.adb (Link_Step): Remove duplicate -static-libgcc switches.
2783 Push -shared-libgcc explicitly, when it is the target default (unless
2784 overidden by the static flag).
2785 When the user has put an instance of shared/static-libgcc do not push
2786 a duplicate of this.
2787
2788 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
2789
2790 * gcc-interface/decl.c (gnat_to_gnu_entity): Beep up comment on SAVED,
2791 and tweak comment on the assertion about the scopes of Itypes. Do not
2792 skip the regular processing for Itypes that are E_Record_Subtype with
2793 a Cloned_Subtype. Get the Cloned_Subtype for every E_Record_Subtype
2794 if the type is dummy and hasn't got its own freeze node.
2795 <E_Record_Subtype>: Save again the DECL of the Cloned_Subtype, if any.
2796 <E_Access_Subtype>: Save again the DECL of the equivalent type.
2797 (Gigi_Equivalent_Type) <E_Access_Subtype>: New case.
2798
2799 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
2800
2801 * gcc-interface/utils.c (unchecked_convert): Tweak comment. Only skip
2802 dereferences when padding to have the same size on both sides. Do it
2803 for destination types with self-referential size too.
2804
2805 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
2806
2807 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the
2808 type requires strict alignment, then set the RM size to the type size.
2809 Rework handling of alignment and sizes of tagged types in ASIS mode.
2810 (validate_size): Rename local variable and remove special handling for
2811 strict-alignment types.
2812 * gcc-interface/utils.c (finish_record_type): Constify local variables
2813 and use properly typed constants.
2814
2815 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
2816
2817 * gcc-interface/decl.c (gnat_to_gnu_field): Rework error messages for
2818 fields requiring strict alignment, add explicit test on Storage_Unit
2819 for position and size, and mention type alignment for position.
2820
2821 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
2822
2823 * gcc-interface/trans.c (mark_visited_r): Set TYPE_SIZES_GIMPLIFIED on
2824 the main variant of a type, if any.
2825
2826 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
2827
2828 * gcc-interface/decl.c (set_nonaliased_component_on_array_type): Add
2829 missing guard for the presence of TYPE_CANONICAL.
2830 (set_reverse_storage_order_on_array_type): Likewise.
2831
2832 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
2833
2834 * gcc-interface/gigi.h (make_packable_type): Remove default value.
2835 (value_factor_p): Tweak prototype.
2836 * gcc-interface/decl.c (gnat_to_gnu_entity): Add comment.
2837 (gnat_to_gnu_component_type): Likewise.
2838 (gnat_to_gnu_field): Likewise. Fetch the position of the field earlier
2839 and simplify the condition under which the type is packed. Declare
2840 local variable is_bitfield. Pass 1 as max_align to make_packable_type
2841 if it is set to true.
2842 (copy_and_substitute_in_layout): Pass 0 to make_packable_type.
2843 * gcc-interface/utils.c (make_packable_array_type): New function.
2844 (make_packable_type): Use it to rewrite the type of array field.
2845 (maybe_pad_type): Pass align parameter to make_packable_type.
2846 (create_field_decl): Minor tweaks.
2847 (value_factor_p): Assert that FACTOR is a power of 2 and replace the
2848 modulo computation by a masking operation.
2849
2850 2019-06-25 Eric Botcazou <ebotcazou@adacore.com>
2851
2852 * gcc-interface/decl.c (gnat_to_gnu_entity): Remove superfluous test
2853 in previous change.
2854 * gcc-interface/gigi.h (maybe_character_type): Fix formatting.
2855 (maybe_character_value): Likewise.
2856
2857 2019-06-24 Jan Hubicka <jh@suse.cz>
2858
2859 * gcc-interface/decl.c (gnat_to_gnu_entity): Check that
2860 type is array or integer prior checking string flag.
2861 * gcc-interface/gigi.h (maybe_character_type): Likewise.
2862 (maybe_character_value): Likewise.
2863
2864 2019-06-24 Martin Sebor <msebor@redhat.com>
2865
2866 * gcc-interface/utils.c (handle_nonnull_attribute): Quote attribute
2867 name.
2868
2869 2019-06-18 Arnaud Charlet <charlet@adacore.com>
2870
2871 PR ada/80590
2872 * sem_ch5.adb (Analyze_Loop_Statement): Avoid exception propagation
2873 during normal processing.
2874
2875 2019-06-17 Arnaud Charlet <charlet@adacore.com>
2876
2877 PR ada/80590
2878 * exp_ch9.adb (Expand_N_Delay_Relative_Statement): Swap the two
2879 conditions to avoid a unnecessary exception propagation in the default
2880 case.
2881
2882 2019-05-28 Eric Botcazou <ebotcazou@adacore.com>
2883
2884 * gcc-interface/utils.c (handle_stack_protect_attribute): Move around.
2885
2886 2019-05-28 Eric Botcazou <ebotcazou@adacore.com>
2887
2888 * doc/gnat_rm/implementation_defined_pragmas.rst (Machine_Attribute):
2889 Document additional optional parameters.
2890 * sem_prag.adb (Analyze_Pragma) <Pragma_Machine_Attribute>: Accept
2891 more than one optional parameter.
2892 * gcc-interface/decl.c (prepend_one_attribute_pragma): Alphabetize
2893 the list of supported pragmas. Simplify the handling of parameters
2894 and add support for more than one optional parameter.
2895 * gcc-interface/utils.c (attr_cold_hot_exclusions): New constant.
2896 (gnat_internal_attribute_table): Add entry for no_icf, noipa, flatten,
2897 used, cold, hot, target and target_clones.
2898 (begin_subprog_body): Do not create the RTL for the subprogram here.
2899 (handle_noicf_attribute): New static function.
2900 (handle_noipa_attribute): Likewise.
2901 (handle_flatten_attribute): Likewise.
2902 (handle_used_attribute): Likewise.
2903 (handle_cold_attribute): Likewise.
2904 (handle_hot_attribute): Likewise.
2905 (handle_target_attribute): Likewise.
2906 (handle_target_clones_attribute): Likewise.
2907
2908 2019-05-28 Eric Botcazou <ebotcazou@adacore.com>
2909
2910 * gcc-interface/trans.c (lvalue_required_for_attribute_p): Return 0
2911 for 'Size too.
2912 (Identifier_to_gnu): Use the actual subtype for a reference to a
2913 packed array in a return statement.
2914 (Attribute_to_gnu) <Attr_Size>: Do not strip VIEW_CONVERT_EXPRs from
2915 the prefix in every case.
2916
2917 2019-05-28 Eric Botcazou <ebotcazou@adacore.com>
2918
2919 * gcc-interface/trans.c (gnat_to_gnu): Remove superfluous tests on
2920 Backend_Overflow_Checks_On_Target and rework comments.
2921
2922 2019-05-28 Eric Botcazou <ebotcazou@adacore.com>
2923
2924 * gcc-interface/trans.c (walk_nesting_tree): New static function.
2925 (finalize_nrv): Use it to walk the entire nesting tree.
2926
2927 2019-05-28 Eric Botcazou <ebotcazou@adacore.com>
2928
2929 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Remove
2930 obsolete test on Is_For_Access_Subtype.
2931
2932 2019-05-28 Eric Botcazou <ebotcazou@adacore.com>
2933
2934 * gcc-interface/decl.c (components_to_record): Set a name on the type
2935 created for the REP part, if any.
2936 * gcc-interface/utils.c (finish_record_type): Only take the maximum
2937 when merging sizes for a variant part at offset 0.
2938 (merge_sizes): Rename has_rep parameter into max.
2939
2940 2019-05-28 Eric Botcazou <ebotcazou@adacore.com>
2941
2942 * gcc-interface/utils.c (gnat_internal_attribute_table): Add support
2943 for stack_protect attribute.
2944 (handle_stack_protect_attribute): New static function.
2945
2946 2019-05-28 Eric Botcazou <ebotcazou@adacore.com>
2947
2948 * gcc-interface/decl.c (intrin_arglists_compatible_p): Do not return
2949 false if the internal builtin uses a variable list.
2950
2951 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
2952
2953 * gcc-interface/trans.c (Call_to_gnu): Do not initialize the temporary
2954 created out of addressability concerns if it's for the _Init parameter
2955 of an initialization procedure.
2956
2957 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
2958
2959 * gcc-interface/ada-builtin-types.def: New file.
2960 * gcc-interface/ada-builtins.def: Likewise.
2961 * gcc-interface/ada-tree.h (BUILT_IN_LIKELY): New macro.
2962 (BUILT_IN_UNLIKELY): Likewise.
2963 * gcc-interface/trans.c (independent_iterations_p): Initialize the
2964 auto-vector to 16 elements.
2965 (Call_to_gnu): Remove local variable and change the vector of actual
2966 parameters to an auto-vector. Do not convert actual parameters to
2967 the argument type for front-end built-in functions. Add support for
2968 front-end built-in functions.
2969 (build_noreturn_cond): Use internal instead of built-in function.
2970 * gcc-interface/utils.c (c_builtin_type): Include ada-builtin-types.def
2971 (install_builtin_function_types): Likewise.
2972 (install_builtin_functions): Include ada-builtins.def first.
2973
2974 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
2975
2976 * gcc-interface/utils.c (maybe_pad_type): Issue the warning for the
2977 specific case of component types preferably.
2978
2979 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
2980
2981 * gcc-interface/trans.c (Identifier_to_gnu): Minor tweaks.
2982 (gnat_to_gnu): Do not convert the result if it is a reference to an
2983 unconstrained array used as the prefix of an attribute reference that
2984 requires an lvalue.
2985
2986 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
2987
2988 * gcc-interface/trans.c (Gigi_Types_Compatible): New predicate.
2989 (Identifier_to_gnu): Use it to assert that the type of the identifier
2990 and that of its entity are compatible for gigi. Rename a couple of
2991 local variables and separate the processing of the result type.
2992
2993 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
2994
2995 * gcc-interface/trans.c (Call_to_gnu): Use the unpadded type when
2996 putting back an intermediate conversion the type of the actuals.
2997
2998 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
2999
3000 * gcc-interface/trans.c (gnat_to_gnu) <Shift operations>: Convert the
3001 count to the unsigned version of its base type before proceeding.
3002
3003 2019-05-16 Martin Sebor <msebor@redhat.com>
3004
3005 * gcc-interface/trans.c (check_inlining_for_nested_subprog): Quote
3006 reserved names.
3007
3008 2019-05-08 Arnaud Charlet <charlet@adacore.com>
3009
3010 * standard.ads.h: New file.
3011
3012 2019-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3013
3014 * gcc-interface/Makefile.in (install-gcc-specs): Use foreach.
3015 Honor DESTDIR.
3016
3017 2019-04-29 Michael K. Darling <darlingm@gmail.com>
3018
3019 * gnatvsn.ads: Bump Library_Version to 10.
3020
3021 2019-04-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3022 Bernd Edlinger <bernd.edlinger@hotmail.de>
3023 Jakub Jelinek <jakub@redhat.com>
3024
3025 PR target/89093
3026 * raise-gcc.c (TARGET_ATTRIBUTE): Define.
3027 (continue_unwind, personality_body, PERSONALITY_FUNCTION): Add
3028 TARGET_ATTRIBUTE.
3029
3030 2019-04-07 Eric Botcazou <ebotcazou@adacore.com>
3031
3032 * libgnat/i-cexten.ads (CFloat_128): New type.
3033
3034 2019-03-22 Dmitriy Anisimkov <anisimko@adacore.com>
3035
3036 PR ada/89583
3037 * libgnat/g-socket.adb (Bind_Socket, Connect_Socket,
3038 Send_Socket): Fix the computation of structure lengths passed to
3039 low level routines.
3040 (Is_IPv6_Address): Fix the number of expected colons.
3041
3042 2019-03-11 Martin Liska <mliska@suse.cz>
3043
3044 * gcc-interface/misc.c (gnat_post_options): Wrap option name in string
3045 format message and fix GNU coding style.
3046
3047 2019-02-08 Eric Botcazou <ebotcazou@adacore.com>
3048
3049 * gcc-interface/trans.c (gnat_to_gnu) <N_Aggregate>: Minor tweak.
3050 * gcc-interface/utils.c (convert): Do not pad when doing an unchecked
3051 conversion here. Use TREE_CONSTANT throughout the function.
3052 (unchecked_convert): Also pad if the source is a CONSTRUCTOR and the
3053 destination is a more aligned array type or a larger aggregate type,
3054 but not between original and packable versions of a type.
3055
3056 2019-02-08 Eric Botcazou <ebotcazou@adacore.com>
3057
3058 * gcc-interface/utils.c (max_size) <tcc_unary>: Be prepared for an
3059 operand with VOID_TYPE.
3060
3061 2019-02-08 Eric Botcazou <ebotcazou@adacore.com>
3062
3063 * gcc-interface/trans.c (elaborate_all_entities): Do not elaborate the
3064 entities of a package renaming another one.
3065
3066 2019-02-08 Eric Botcazou <ebotcazou@adacore.com>
3067
3068 * gcc-interface/trans.c (Regular_Loop_to_gnu): Replace tests on
3069 individual flag_unswitch_loops and flag_tree_loop_vectorize switches
3070 with test on global optimize switch.
3071 (Raise_Error_to_gnu): Likewise.
3072
3073 2019-02-07 Eric Botcazou <ebotcazou@adacore.com>
3074
3075 * libgnarl/s-linux__sparc.ads (ETIMEDOUT): Set to correct value.
3076
3077 2019-02-06 Arnaud Charlet <charlet@adacore.com>
3078
3079 * libgnarl/s-linux__x32.ads: Resync list of signals with s-linux.ads
3080
3081 2019-01-27 Eric Botcazou <ebotcazou@adacore.com>
3082
3083 * repinfo.adb (List_Component_Layout): Remove superfluous space for
3084 zero-sized field.
3085 * gcc-interface/ada-tree.h (TYPE_IS_EXTRA_SUBTYPE_P): New macro.
3086 * gcc-interface/gigi.h (create_extra_subtype): Declare.
3087 * gcc-interface/decl.c (TYPE_ARRAY_SIZE_LIMIT): Likewise.
3088 (update_n_elem): New function.
3089 (gnat_to_gnu_entity): Use create_extra_subtype to create extra subtypes
3090 instead of doing it manually.
3091 <E_Array_Type>: Use update_n_elem to compute the maximum size. Use the
3092 index type instead of base type for the bounds. Set TYPE_ARRAY_MAX_SIZE
3093 of the array to the maximum size.
3094 <E_Array_Subtype>: Create an extra subtype using the index type of the
3095 base array type for self-referential bounds. Use update_n_elem to
3096 compute the maximum size. Set TYPE_ARRAY_MAX_SIZE of the array to the
3097 maximum size.
3098 (gnat_to_gnu_field): Clear DECL_NONADDRESSABLE_P on discriminants.
3099 * gcc-interface/misc.c (gnat_get_alias_set): Return the alias set of
3100 the base type for an extra subtype.
3101 (gnat_type_max_size): Remove obsolete code.
3102 * gcc-interface/trans.c (Attribute_to_gnu): Minor tweak.
3103 (can_be_lower_p): Deal with pathological types.
3104 * gcc-interface/utils.c (create_extra_subtype): New function.
3105 (create_field_decl): Minor tweak.
3106 (max_size) <tcc_reference>: Compute a better value by using the extra
3107 subtypes on the self-referential bounds.
3108 <tcc_binary>: Rewrite. Deal with "negative value" in unsigned types.
3109 <tcc_expression>: Likewise.
3110 * gcc-interface/utils2.c (compare_arrays): Retrieve the original bounds
3111 of the arrays upfront. Swap only if the second length is not constant.
3112 Use comparisons on the original bounds consistently for the null tests.
3113 (build_binary_op): Use TYPE_IS_EXTRA_SUBTYPE_P macro.
3114 (build_allocator): Minor tweak.
3115
3116 2019-01-27 Eric Botcazou <ebotcazou@adacore.com>
3117
3118 * gcc-interface/decl.c (array_type_has_nonaliased_component): Return
3119 the same value for every dimension of a multidimensional array type.
3120
3121 2019-01-26 Eric Botcazou <ebotcazou@adacore.com>
3122
3123 * gcc-interface/trans.c (Regular_Loop_to_gnu): Use the SLOC of the
3124 iteration scheme, if present, throughout the translation.
3125
3126 2019-01-26 Eric Botcazou <ebotcazou@adacore.com>
3127
3128 * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Use
3129 DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT for the size to be assigned
3130 by a call to memset if the LHS is a DECL.
3131
3132 2019-01-26 Eric Botcazou <ebotcazou@adacore.com>
3133
3134 * gcc-interface/trans.c (struct loop_info_d): Remove artificial field.
3135 (Loop_Statement_to_gnu): Do not set it.
3136
3137 2019-01-26 Eric Botcazou <ebotcazou@adacore.com>
3138
3139 * gcc-interface/trans.c (Iterate_Acc_Clause_Arg): Fix formatting.
3140 (Acc_gnat_to_gnu): Likewise.
3141 (Acc_Data_to_gnu): Likewise.
3142 (Acc_Var_to_gnu): Likewise.
3143 (Acc_Reduc_to_gnu): Likewise.
3144 (Acc_Size_List_to_gnu): Likewise.
3145 (Pragma_to_gnu) <Pragma_Acc_Loop>: Likewise.
3146 <Pragma_Acc_Data>): Likewise.
3147 (find_loop_for): Remove default value for parameters.
3148 * gcc-interface/trans.c (gnat_to_gnu) <N_Op_And>: Merge into...
3149 <N_Op_Eq>): ...this.
3150
3151 2019-01-26 Eric Botcazou <ebotcazou@adacore.com>
3152
3153 * gcc-interface/decl.c (annotate_value) <INTEGER_CST>: Use test on
3154 the sign bit instead of on the sign of the value.
3155 <PLUS_EXPR>: Turn addition of negative constant into subtraction.
3156 <MULT_EXPR>: Add test for degenerate case.
3157 <BIT_AND_EXPR>: Simplify.
3158
3159 2019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
3160
3161 * s-oscons-tmplt.c (AF_INET6): Do not undefine for RTEMS.
3162
3163 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
3164
3165 PR other/16615
3166 * exp_ch11.adb: Change "can not" to "cannot".
3167 * sem_ch4.adb: Likewise.
3168
3169 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
3170
3171 PR other/16615
3172 * exp_ch9.adb: Mechanically replace "can not" with "cannot".
3173 * libgnat/s-regpat.ads: Likewise.
3174 * par-ch4.adb: Likewise.
3175 * set_targ.adb: Likewise.
3176 * types.ads: Likewise.
3177
3178 2019-01-08 Justin Squirek <squirek@adacore.com>
3179
3180 Revert:
3181 2018-07-31 Justin Squirek <squirek@adacore.com>
3182
3183 * lib-writ.adb (Write_With_Lines): Modfiy the generation
3184 of dependencies within ali files so that source unit
3185 bodies are properly listed even if said bodies are
3186 missing. Perform legacy behavior in GNATprove mode.
3187 * lib-writ.ads: Modify documentation to reflect current
3188 behavior.
3189
3190 and:
3191 2018-09-26 Justin Squirek <squirek@adacore.com>
3192
3193 * lib-writ.adb, lib-writ.ads (Write_With_Lines): Add
3194 documentation and an extra conditional check for RCI
3195 units so that generated ali files will list the spec
3196 only instead of a body when a body is not found.
3197
3198 2019-01-04 Eric Botcazou <ebotcazou@adacore.com>
3199
3200 * gnatvsn.ads: Bump copyright year.
3201
3202 2019-01-01 Jakub Jelinek <jakub@redhat.com>
3203
3204 Update copyright years.
3205
3206 * gnat_ugn.texi: Bump @copying's copyright year.
3207 * gnat_rm.texi: Likewise.
3208 \f
3209 Copyright (C) 2019 Free Software Foundation, Inc.
3210
3211 Copying and distribution of this file, with or without modification,
3212 are permitted in any medium without royalty provided the copyright
3213 notice and this notice are preserved.