]> gcc.gnu.org Git - gcc.git/blame - gcc/ada/ChangeLog
[multiple changes]
[gcc.git] / gcc / ada / ChangeLog
CommitLineData
6cbfce7e
AC
12017-04-27 Claire Dross <dross@adacore.com>
2
3 * a-cfdlli.adb, a-cfdlli.ads (Formal_Model): Adapt to
4 modifications in functional containers.
5 * a-cofuba.ads, a-cofuma.ads, a-cofuse.ads, a-cofuve.ads Reformat
6 to improve readablity. Subprograms are separated between basic
7 operations, constructors and properties. Universally quantified
8 formulas in contracts are factorized in independant functions
9 with a name and a comment. Names of parameters are improved.
10
112017-04-27 Gary Dismukes <dismukes@adacore.com>
12
13 * exp_spark.adb, sem_elab.adb: Minor reformatting and typo fix.
14
152017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
16
17 * sem_res.adb (Resolve_Type_Conversion): Do not
18 install a predicate check here since this is already done during
19 the expansion phase. Verify whether the operand satisfies the
20 static predicate (if any) of the target type.
21 * sem_ch3.adb (Analyze_Object_Declaration): Do
22 not install a predicate check if the object is initialized by
23 means of a type conversion because the conversion is subjected
24 to the same check.
25
262017-04-27 Tristan Gingold <gingold@adacore.com>
27
28 * raise.c (__gnat_builtin_longjmp): Remove.
29 (__gnat_bracktrace):
30 Add a dummy definition for the compiler (__gnat_eh_personality,
31 __gnat_rcheck_04, __gnat_rcheck_10) (__gnat_rcheck_19,
32 __gnat_rcheck_20, __gnat_rcheck_21) (__gnat_rcheck_30,
33 __gnat_rcheck_31, __gnat_rcheck_32): Likewise.
34 * a-exexpr.adb: Renamed from a-exexpr-gcc.adb
35 * a-except.ads, a-except.adb: Renamed from a-except-2005.ads
36 and a-except-2005.adb.
37 * raise-gcc.c: Allow build in compiler, compiled as a C++
38 file.
39 (__gnat_Unwind_ForcedUnwind): Adjust prototype.
40 (db): Constify msg_format.
41 (get_call_site_action_for): Don't use void arithmetic.
42 * system.ads (Frontend_Exceptions): Set to False.
43 (ZCX_By_Default): Set to True.
44 (GCC_ZC_Support): Set to True.
45 * gcc-interface/Makefile.in: No more variants for a-exexpr.adb and
46 a-except.ad[sb].
47 * gcc-interface/Make-lang.in: Add support for backend zcx exceptions
48 in gnat1 and gnatbind.
49 * gnat1, gnatbind: link with raise-gcc.o, a-exctra.o, s-addima.o,
50 s-excmac.o, s-imgint.o, s-traceb.o, s-trasym.o, s-wchstw.o
51 * s-excmac.ads, s-excmac.adb: Copy of variants.
52 * a-except.o: Adjust preequisites.
53 Add handling of s-excmac-arm.adb and s-excmac-gcc.adb.
54
552017-04-27 Claire Dross <dross@adacore.com>
56
57 * a-cfdlli.adb, a-cfdlli.ads (Formal_Model): Adapt to
58 modifications in functional containers.
59 * a-cofuba.ads, a-cofuma.ads, a-cofuse.ads, a-cofuve.ads Reformat
60 to improve readablity. Subprograms are separated between basic
61 operations, constructors and properties. Universally quantified
62 formulas in contracts are factorized in independant functions
63 with a name and a comment. Names of parameters are improved.
64
652017-04-27 Gary Dismukes <dismukes@adacore.com>
66
67 * exp_spark.adb, sem_elab.adb: Minor reformatting and typo fix.
68
692017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
70
71 * sem_res.adb (Resolve_Type_Conversion): Do not
72 install a predicate check here since this is already done during
73 the expansion phase. Verify whether the operand satisfies the
74 static predicate (if any) of the target type.
75 * sem_ch3.adb (Analyze_Object_Declaration): Do
76 not install a predicate check if the object is initialized by
77 means of a type conversion because the conversion is subjected
78 to the same check.
79
802017-04-27 Tristan Gingold <gingold@adacore.com>
81
82 * a-except.ads, a-except.adb, a-exexpr.adb: Removed (will be
83 replaced by their variants).
84
e77e2429
AC
852017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
86
87 * exp_prag.adb, a-cofuse.adb, a-cofuse.ads, einfo.adb, sem_prag.adb,
88 cstand.adb, par-prag.adb, a-cofuve.adb, a-cofuve.ads, a-cofuma.adb,
89 a-cofuma.ads, a-cofuba.adb, a-cofuba.ads: Minor reformatting.
90
912017-04-27 Tristan Gingold <gingold@adacore.com>
92
93 * s-excmac-gcc.ads, s-excmac-gcc.adb,
94 s-excmac-arm.ads, s-excmac-arm.adb (New_Occurrence): Rewrite it in
95 Ada95.
96
972017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
98
99 * exp_ch7.adb (Establish_Transient_Scope): Rewrite
100 the loop which detects potential enclosing transient scopes. The
101 loop now terminates much earlier as transient scopes are bounded
102 by packages and subprograms.
103
1042017-04-27 Claire Dross <dross@adacore.com>
105
106 * a-cfdlli.adb, a-cfdlli.ads (=): Generic parameter removed to
107 allow the use of regular equality over elements in contracts.
108 (Cursor): Type is now public so that it can be used in
109 model functions.
110 (Formal_Model): Ghost package containing
111 model functions that are used in subprogram contracts.
112 (Current_To_Last): Removed, model functions should be used
113 instead.
114 (First_To_Previous): Removed, model functions should
115 be used instead.
116 (Strict_Equal): Removed, model functions
117 should be used instead.
118 (Append): Default parameter value
119 replaced by new wrapper to allow more precise contracts.
120 (Insert): Default parameter value replaced by new wrapper to
121 allow more precise contracts.
122 (Delete): Default parameter
123 value replaced by new wrapper to allow more precise contracts.
124 (Prepend): Default parameter value replaced by new wrapper to
125 allow more precise contracts.
126 (Delete_First): Default parameter
127 value replaced by new wrapper to allow more precise contracts.
128 (Delete_Last): Default parameter value replaced by new wrapper
129 to allow more precise contracts.
130
1312017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
132
133 * exp_spark.adb (Expand_SPARK): Perform specialized expansion
134 for object declarations.
135 (Expand_SPARK_N_Object_Declaration): New routine.
136 * sem_elab.adb (Check_A_Call): Include calls to the
137 Default_Initial_Condition procedure of a type under the SPARK
138 elaboration checks umbrella.
139
7a71a7c4
AC
1402017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
141
142 * sem.adb (Analyze): Diagnose an illegal iterated component
143 association.
144 * sem_util.ads, sem_util.adb
145 (Diagnose_Iterated_Component_Association): New routine.
146
1472017-04-27 Bob Duff <duff@adacore.com>
148
149 * adaint.c (__gnat_get_current_dir): Return 0 in length if
150 getcwd fails.
151 * a-direct.adb, g-dirope.adb, osint.adb, s-os_lib.adb: Raise
152 exception if getcwd failed.
153
1542017-04-27 Yannick Moy <moy@adacore.com>
155
156 * exp_dbug.adb, exp_dbug.ads (Get_External_Name): Prefix ghost
157 entities with special prefix.
158
1592017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
160
161 * debug.adb Change the documentation of switch -gnatd.s.
162 * exp_ch7.adb (Make_Transient_Block): Transient blocks do not need
163 to manage the secondary stack when an enclosing scope already
164 performs this functionality (aka relaxed management). Switch
165 -gnatd.s may be used to force strict management in which case
166 the block will manage the secondary stack unconditionally. Add
167 a guard to stop the traversal when encountering a package or a
168 subprogram scope.
169
1702017-04-27 Ed Schonberg <schonberg@adacore.com>
171
172 * sem_res.adb (Resolve_Call): Refine further the handling of
173 limited views of return types in function calls. If the function
174 that returns a limited view appears in the current unit,
175 we do not replace its type by the non-limited view because
176 this transformation is performed int the back-end. However,
177 the type of the call itself must be the non-limited view, to
178 prevent spurious resolution errors.
179
1802017-04-27 Ed Schonberg <schonberg@adacore.com>
181
182 * einfo,ads, einfo.adb (Class_Wide_Preconds, Class_Wide_Postconds):
183 Removed, proposed implementation using generics for class-wide
184 preconditions proved impractical.
185 (Class_Wide_Clone): New attribute of subprogram. Designates
186 subprogram created for primitive operations with class-wide
187 pre/postconditions that contain calls to other primitives. The
188 clone holds the body of the original primitive, but the
189 pre/postonditions do not apply to it. The original body is
190 rewritten as a wrapper for a call to the clone.
191 (Is_Class_Wide_Clone): New flag to identify a Class_Wide_Clone. If
192 the flag is set, no code for the corresponding pre/postconditions
193 is inserted into its body.
194
1952017-04-27 Bob Duff <duff@adacore.com>
196
197 * exp_prag.adb, par-prag.adb, sem_ch13.adb: Ignore
198 Scalar_Storage_Order if -gnatI is given.
199 * sem_prag.adb (Analyze_Pragma): Ignore
200 Default_Scalar_Storage_Order if -gnatI is given.
201
394fa9f5
CD
2022017-04-27 Claire Dross <dross@adacore.com>
203
204 * a-cofuba.ads (Add): Take as an additional input parameter
205 the position where the element should be inserted.
206 (Remove): New function that removes an element from the container.
207 * a-cofuma.ads (Add): Adapt to the new API of Base.Add.
208 * a-cofuse.ads (Add): Adapt to the new API of Base.Add.
209 (Remove): New function that removes an element from a set.
210 * a-cofuve.ads (Add): Adapt to the new API of Base.Add.
211 (Remove): New function that removes an element from a sequence.
212 (Insert): New function that adds anywhere in a sequence.
213
11775988
AC
2142017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
215
216 * checks.adb (Generate_Range_Check): Revert previous change.
217
2182017-04-27 Gary Dismukes <dismukes@adacore.com>
219
220 * sem_util.adb: Minor reformatting/rewording.
221
2222017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
223
224 * lib-xref.adb (Generate_Reference): The use
225 of attribute 'Result is not considered a violation of pragma
226 Unreferenced.
227
2282017-04-27 Justin Squirek <squirek@adacore.com>
229
230 * cstand.adb (Create_Standard): Correctly set
231 Directly_Designated_Type for Any_Access.
232 * sem_type.adb (Covers): Minor grammar fixes.
233
2342017-04-27 Bob Duff <duff@adacore.com>
235
236 * sem_attr.adb: Minor cleanup.
237
2382017-04-27 Claire Dross <dross@adacore.com>
239
240 * a-cofuba.ads, a-cofuba.adb (Ada.Containers.Functional_Base): New
241 private child of Ada.Containers used to implement all functional
242 containers.
243 * a-cofuma.ads, a-cofuma.adb (Ada.Containers.Functional_Maps): New
244 child of Ada.Containers. It provides functional indefinite unbounded
245 maps which can be used as high level models for specification
246 of data structures.
247 * a-cofuse.ads, a-cofuse.adb (Ada.Containers.Functional_Sets): New
248 child of Ada.Containers. It provides functional indefinite unbounded
249 sets which can be used as high level models for specification
250 of data structures.
251 * a-cofuve.ads, a-cofuve.adb (Ada.Containers.Functional_Vectors): New
252 child of Ada.Containers. It provides functional indefinite unbounded
253 vectors which can be used as high level models for specification
254 of data structures.
255 * Makefile.rtl: Add new packages.
256 * impunit.adb: Add new packages.
257
f32eb591
AC
2582017-04-27 Gary Dismukes <dismukes@adacore.com>
259
260 * sem_ch4.adb: Minor reformatting.
261
2622017-04-27 Ed Schonberg <schonberg@adacore.com>
263
264 * sem_ch12.adb (Analyze_Associations): minor reformatting.
265 (Check_Fixed_Point_Actual): Do not emit a warning on a fixed
266 point type actual that has user-defined arithmetic primitives,
267 when there is a previous actual for a formal package that defines
268 a fixed-point type with the parent user-defined operator.
269
2702017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
271
272 * checks.adb (Generate_Range_Check): Reinstate part of previous change.
273 * sem_attr.adb (Resolve_Attribute): Generate a range check when
274 the component type allows range checks.
275
2762017-04-27 Ed Schonberg <schonberg@adacore.com>
277
278 * sem_aux.adb (Is_Generic_Formal): Use original node to locate
279 corresponding declaration, because formal derived types are
280 rewritten as private extensions.
281
2822017-04-27 Ed Schonberg <schonberg@adacore.com>
283
284 * sem_dim.adb (Analyze_Dimension_Binary_Op): Do not check
285 dimensions of operands if node has been analyzed already, because
286 previous analysis and dimension checking will have removed the
287 dimension information from the operands.
288
2892017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
290
291 * debug.adb: Document the use of switch -gnatd.s.
292 * einfo.ads Update the documentation on attribute
293 Sec_Stack_Needed_For_Return and attribute Uses_Sec_Stack. Remove
294 the uses of these attributes from certain entities.
295 * exp_ch7.adb (Make_Transient_Block): Reimplement the circuitry
296 which determines whether the block should continue to manage
297 the secondary stack.
298 (Manages_Sec_Stack): New routine.
299
3002017-04-27 Bob Duff <duff@adacore.com>
301
302 * atree.ads: Minor edit.
303
3042017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
305
306 * sinfo.ads: Update the section on Ghost mode. Add
307 a section on SPARK mode. Update the placement of section on
308 expression functions.
309
3102017-04-27 Bob Duff <duff@adacore.com>
311
312 * sinput.adb (Get_Source_File_Index): Don't
313 assert that S is in the right range in the case where this is
314 a .dg file under construction.
315
3162017-04-27 Yannick Moy <moy@adacore.com>
317
318 * sem_util.adb (Check_Result_And_Post_State):
319 Handle more precisely each conjunct in expressions formed by
320 and'ing sub-expressions.
321
0c3ef0cc
GD
3222017-04-27 Gary Dismukes <dismukes@adacore.com>
323
324 * exp_ch4.adb, sem_ch4.adb: Minor typo fix and reformatting.
325
9c533e7d
AC
3262017-04-25 Arnaud Charlet <charlet@adacore.com>
327
328 * gnat_rm.texi, gnat_ugn.texi,
329 doc/gnat_ugn/building_executable_programs_with_gnat.rst,
330 doc/gnat_ugn/platform_specific_information.rst,
331 doc/gnat_ugn/gnat_and_program_execution.rst,
332 doc/gnat_ugn/gnat_utility_programs.rst,
333 doc/gnat_ugn/the_gnat_compilation_model.rst,
334 doc/gnat_rm/implementation_defined_attributes.rst,
335 doc/gnat_rm/the_gnat_library.rst,
336 doc/gnat_rm/implementation_defined_pragmas.rst,
337 doc/gnat_rm/representation_clauses_and_pragmas.rst,
338 doc/gnat_rm/implementation_of_specific_ada_features.rst,
339 doc/gnat_rm/implementation_defined_aspects.rst,
340 doc/gnat_rm/implementation_defined_characteristics.rst: Update
341 documentation.
342
211e7410
AC
3432017-04-25 Arnaud Charlet <charlet@adacore.com>
344
345 * exp_ch4.adb (Expand_N_Case_Expression): Emit error message when
346 generating C code on complex case expressions.
347
3482017-04-25 Arnaud Charlet <charlet@adacore.com>
349
350 * sem_prag.adb (Analyze_Pragma): Generate a warning instead
351 of silently ignoring pragma Ada_xxx in Latest_Ada_Only mode.
352 * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Use
353 Ada_2012 instead of Ada_2005 to be compatible with the above
354 change.
355 * bindgen.adb: Silence new warning on pragma Ada_95.
356
3572017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
358
359 * checks.adb (Generate_Range_Check): Revert part of previous change.
360
3612017-04-25 Ed Schonberg <schonberg@adacore.com>
362
363 * sem_ch4.adb (Try_Container_Indexing): Handle properly a
364 container indexing operation that appears as a an actual in a
365 parameter association in a procedure call.
366
3672017-04-25 Olivier Ramonat <ramonat@adacore.com>
368
369 * prj-proc.adb, sem_util.adb, s-stposu.adb, sem_attr.adb, prj-conf.ads:
370 Fix spelling mistakes.
371
3722017-04-25 Bob Duff <duff@adacore.com>
373
374 * types.ads, osint.adb, sinput-c.adb, sinput-d.adb, sinput-l.adb,
375 * sinput-p.adb: Use regular fat pointers, with bounds checking,
376 for source buffers. Fix misc obscure bugs.
377 * sinput.ads, sinput.adb: Use regular fat pointers, with bounds
378 checking, for source buffers. Modify representation clause for
379 Source_File_Record as appropriate. Move Source_File_Index_Table
380 from spec to body, because it is not used outside the body.
381 Move Set_Source_File_Index_Table into the private part, because
382 it is used only in the body and in children. Use trickery to
383 modify the dope in the generic instantiation case. It's ugly,
384 but not as ugly as the previous method. Fix documentation.
385 Remove obsolete code.
386 * fname-sf.adb, targparm.adb: Fix misc out-of-bounds
387 indexing in source buffers.
388 * fmap.adb: Avoid conversions from one string type to another.
389 Remove a use of global name buffer.
390 * osint.ads, sfn_scan.ads, sfn_scan.adb, sinput-c.ads: Comment
391 fixes.
392
e0666fc6
AC
3932017-04-25 Gary Dismukes <dismukes@adacore.com>
394
395 * exp_util.adb, exp_ch4.adb: Minor reformatting.
396
3972017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
398
399 * checks.adb: Code clean up in various routines.
400 (Generate_Range_Check): Do not generate a range check when the
401 expander is not active or when index/range checks are suppressed
402 on the target type.
403 (Insert_List_After_And_Analyze, Insert_List_Before_And_Analyze):
404 Remove variants that include a Supress parameter. These routines
405 are never used, and were introduced before the current scope-based
406 check suppression method.
407
4082017-04-25 Vasiliy Fofanov <fofanov@adacore.com>
409
410 * prj-part.adb, cstreams.c, osint.adb, osint.ads: Remove VMS specific
411 code and some subprogram calls that are now noop.
412
e44e8a5e
AC
4132017-04-25 Arnaud Charlet <charlet@adacore.com>
414
415 * exp_ch4.adb (Expand_N_Case_Expression): Take
416 Minimize_Expression_With_Actions into account when possible.
417
bf604a5e
AC
4182017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
419
420 * exp_util.adb (Known_Non_Null): Moved to Sem_Util.
421 (Known_Null): Moved to Sem_Util.
422 * exp_util.ads (Known_Non_Null): Moved to Sem_Util.
423 (Known_Null): Moved to Sem_Util.
424 * sem_util.adb Add new enumeration type Null_Status_Kind.
425 (Known_Non_Null): Moved from Exp_Util. Most of the logic in
426 this routine is now carried out by Null_Status.
427 (Known_Null): Moved from Exp_Util. Most of the logic in this routine
428 is now carried out by Null_Status.
429 (Null_Status): New routine.
430 * sem_util.ads (Known_Non_Null): Moved from Exp_Util.
431 (Known_Null): Moved from Exp_Util.
432
4332017-04-25 Ed Schonberg <schonberg@adacore.com>
434
435 * sem_ch6.adb (Analyze_Expression_Function): Do not report an
436 error on the return type of an expression function that is a
437 completion, if the type is derived from a generic formal type.
438
4392017-04-25 Ed Schonberg <schonberg@adacore.com>
440
441 * sem_dim.adb (Dimensions_Of_Operand): The dimensions of a type
442 conversion are those of the target type.
443
4442017-04-25 Bob Duff <duff@adacore.com>
445
446 * a-clrefi.adb: Minor cleanup.
447
178c3cba
GD
4482017-04-25 Gary Dismukes <dismukes@adacore.com>
449
450 * exp_util.adb, exp_util.ads, types.ads: Minor reformatting.
451
0f96fd14
BD
4522017-04-25 Bob Duff <duff@adacore.com>
453
454 * err_vars.ads, fmap.adb, fmap.ads, comperr.adb, fname-sf.adb,
455 types.adb, types.ads, types.h, sinput-l.adb, targparm.adb,
456 errout.adb, sinput.adb, sinput.ads, cstand.adb, scn.adb,
457 scn.ads, gnatls.adb: Eliminate the vestigial Internal_Source_File and
458 the Internal_Source buffer. This removes the incorrect call to "="
459 the customer noticed.
460 Wrap remaining calls to "=" in Null_Source_Buffer_Ptr. We
461 eventually need to eliminate them altogether. Or else get rid
462 of zero-origin addressing.
463
28ccbd3f
AC
4642017-04-25 Claire Dross <dross@adacore.com>
465
466 * exp_util.ads (Expression_Contains_Primitives_Calls_Of): New
467 function used in GNATprove to know if an expression contains
468 non-dispatching calls on primitives of a tagged type.
469
4702017-04-25 Bob Duff <duff@adacore.com>
471
472 * rtsfind.adb (Initialize): Initialize
473 First_Implicit_With. Building the compiler with Normalize_Scalars
474 and validity checking finds this being used as an uninitialized
475 variable.
476
f9a8f910
HK
4772017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
478
479 * contracts.adb (Analyze_Entry_Or_Subprogram_Body_Contract):
480 Add a warning about SPARK mode management. The routine now
481 saves and restores both the mode and associated pragma.
482 (Analyze_Entry_Or_Subprogram_Contract): Add a warning about
483 SPARK mode management. The routine now saves and restores both
484 the mode and associated pragma.
485 (Analyze_Object_Contract):
486 Add a warning about SPARK mode management. The routine
487 now saves and restores both the mode and associated pragma.
488 (Analyze_Package_Body_Contract): Add a warning about SPARK mode
489 management. The routine now saves and restores both the mode
490 and associated pragma. (Analyze_Package_Contract): Add a warning
491 about SPARK mode management. The routine now saves and restores
492 both the mode and associated pragma.
493 (Analyze_Task_Contract):
494 Add a warning about SPARK mode management. The routine now saves
495 and restores both the mode and associated pragma.
496 * expander.adb (Expand): Change the way the Ghost mode is saved
497 and restored.
498 * exp_ch3.adb (Freeze_Type): Change the way the Ghost mode is
499 saved and restored.
500 * exp_disp.adb (Make_DT): Change the way the Ghost mode is saved
501 and restored.
502 * exp_util.adb (Build_DIC_Procedure_Body):
503 Change the way the Ghost mode is saved and restored.
504 (Build_DIC_Procedure_Declaration): Change the way the Ghost
505 mode is saved and restored.
506 (Build_Invariant_Procedure_Body):
507 Change the way the Ghost mode is saved and restored.
508 (Build_Invariant_Procedure_Declaration): Change the way the Ghost
509 mode is saved and restored.
510 (Make_Predicate_Call): Change the
511 way the Ghost mode is saved and restored.
512 * freeze.adb (Freeze_Entity): Change the way the Ghost mode is
513 saved and restored.
514 * ghost.adb (Mark_And_Set_Ghost_Assignment): Remove parameter Mode
515 and its assignment.
516 (Mark_And_Set_Ghost_Body): Remove parameter
517 Mode and its assignment.
518 (Mark_And_Set_Ghost_Completion):
519 Remove parameter Mode and its assignment.
520 (Mark_And_Set_Ghost_Declaration): Remove parameter Mode and its
521 assignment.
522 (Mark_And_Set_Ghost_Instantiation): Remove parameter
523 Mode and its assignment.
524 (Mark_And_Set_Ghost_Procedure_Call):
525 Remove parameter Mode and its assignment.
526 (Set_Ghost_Mode):
527 Remove parameter Mode and its assignment.
528 * ghost.ads (Mark_And_Set_Ghost_Assignment): Remove parameter Mode
529 and update the comment on usage.
530 (Mark_And_Set_Ghost_Body):
531 Remove parameter Mode and update the comment on usage.
532 (Mark_And_Set_Ghost_Completion): Remove parameter Mode and
533 update the comment on usage.
534 (Mark_And_Set_Ghost_Declaration):
535 Remove parameter Mode and update the comment on usage.
536 (Mark_And_Set_Ghost_Instantiation): Remove parameter Mode and
537 update the comment on usage.
538 (Mark_And_Set_Ghost_Procedure_Call):
539 Remove parameter Mode and update the comment on usage.
540 (Set_Ghost_Mode): Remove parameter Mode and update the comment
541 on usage.
542 * lib.ads Remove obsolete fields SPARK_Mode_Pragma from various
543 types.
544 * lib-load.adb (Create_Dummy_Package_Unit): Remove the assignment
545 of obsolete field SPARK_Mode_Pragma.
546 (Load_Main_Source): Remove
547 the assignment of obsolete field SPARK_Mode_Pragma.
548 (Load_Unit): Remove the assignment of obsolete field SPARK_Mode_Pragma.
549 * lib-writ.adb (Add_Preprocessing_Dependency): Remove
550 the assignment of obsolete field SPARK_Mode_Pragma.
551 (Ensure_System_Dependency): Remove the assignment of obsolete
552 field SPARK_Mode_Pragma.
553 * rtsfind.adb (Load_RTU): Add a warning about Ghost and SPARK
554 mode management. Change the way Ghost and SPARK modes are saved
555 and restored.
556 * sem.adb (Analyze): Change the way the Ghost mode is saved
557 and restored.
558 * sem_ch3.adb (Analyze_Object_Declaration): Change the way the
559 Ghost mode is saved and restored.
560 (Process_Full_View): Change
561 the way the Ghost mode is saved and restored.
562 * sem_ch5.adb (Analyze_Assignment): Change the way the Ghost
563 mode is saved and restored.
564 * sem_ch6.adb (Analyze_Procedure_Call): Change the way the Ghost
565 mode is saved and restored.
566 (Analyze_Subprogram_Body_Helper):
567 Change the way the Ghost mode is saved and restored.
568 * sem_ch7.adb (Analyze_Package_Body_Helper): Change the way the
569 Ghost mode is saved and restored.
570 * sem_ch10.adb (Analyze_Subunit): Add a warning about SPARK mode
571 management. Save the SPARK mode-related data prior to any changes
572 to the scope stack and contexts. The mode is then reinstalled
573 before the subunit is analyzed in order to restore the original
574 view of the subunit.
575 * sem_ch12.adb (Analyze_Package_Instantiation): Update the
576 warning on region management. Change the way the Ghost and
577 SPARK modes are saved and restored.
578 (Inline_Instance_Body):
579 Add a warning about SPARK mode management. Code clean up.
580 (Analyze_Subprogram_Instantiation): Update the warning on region
581 management. Change the way the Ghost and SPARK modes are saved
582 and restored.
583 (Instantiate_Package_Body): Update the warning
584 on region management. Change the way the Ghost and SPARK modes
585 are saved and restored.
586 (Instantiate_Subprogram_Body): Update
587 the warning on region management. Change the way the Ghost and
588 SPARK modes are saved and restored.
589 (Set_Instance_Env): Add a
590 warning about SPARK mode management. Change the way SPARK mode
591 is saved and restored.
592 * sem_ch13.adb (Build_Predicate_Functions):
593 Change the way the Ghost mode is saved and restored.
594 (Build_Predicate_Function_Declaration): Change the way the Ghost
595 mode is saved and restored.
596 * sem_elab.adb (Check_Elab_Calls): Add a warning about SPARK
597 mode management. Change the way SPARK mode is saved and restored.
598 * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part):
599 Change the way the Ghost mode is saved and restored.
600 (Analyze_Initial_Condition_In_Decl_Part): Change the way
601 the Ghost mode is saved and restored.
602 (Analyze_Pragma):
603 Change the way the Ghost mode is saved and restored.
604 (Analyze_Pre_Post_Condition_In_Decl_Part): Change the way the
605 Ghost mode is saved and restored.
606 * sem_util.adb (Install_SPARK_Mode): New routine.
607 (Restore_SPARK_Mode): New routine.
608 (Save_SPARK_Mode_And_Set): Removed.
609 (Set_SPARK_Mode): New routine.
610 * sem_util.ads (Install_SPARK_Mode): New routine.
611 (Restore_SPARK_Mode): New routine.
612 (Save_SPARK_Mode_And_Set): Removed.
613 (Set_SPARK_Mode): New routine.
614
e1691d7e
ES
6152017-04-25 Ed Schonberg <schonberg@adacore.com>
616
617 * sem_util.adb, sem_util.ads (From_Nested_Package): New predicate
618 to determine whether a type is declared in a local package that
619 has not yet been frozen.
620 * freeze.adb (Freeze_Before): Use new predicate to determine
621 whether a local package must be installed on the scope stack
622 in order to evaluate in the proper scope actions generated by
623 aspect specifications, such as Predicate
624 * sem_ch13.adb: Simplify code in Analyze_Aspects_At_Freeze_Point
625 using new predicate.
626
57f6e00c
AC
6272017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
628
629 * sem_warn.adb (Warn_On_Constant_Valid_Condition): Do not consider
630 comparisons between non- scalar expressions expressions because
631 their values cannot be invalidated.
632 * sem_warn.ads (Warn_On_Constant_Valid_Condition): Update the
633 comment on usage.
634
6352017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
636
637 * par_sco.adb: Minor reformatting.
638
6392017-04-25 Ed Schonberg <schonberg@adacore.com>
640
641 * sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): If entity
642 is a type from an unfrozen local package, install package to
643 complete the analysis of delayed aspects of the type.
644
6452017-04-25 Tristan Gingold <gingold@adacore.com>
646
647 * bingen.adb (System_Version_Control_Used): New variable.
648 (Resolve_Binder_Options): Set the above variable.
649 (Gen_Output_File_Ada): Conditionally call Gen_Versions.
650 (Gen_Elab_Order): Emit blank line before.
651
6522017-04-25 Justin Squirek <squirek@adacore.com>
653
654 * sem_cat.adb (Validate_RT_RAT_Component): Added
655 an extra check to ignore incomplete types.
656
62807842
AC
6572017-04-25 Thomas Quinot <quinot@adacore.com>
658
659 * sem_prag.adb (Analyze_Pragma, case Pragma_Check): Remove
660 bogus circuitry for the case where Name is Predicate.
661
6622017-04-25 Thomas Quinot <quinot@adacore.com>
663
664 * par_sco.adb(Traverse_Declarations_Or_Statements.Traverse_Aspects):
665 Create SCOs for Predicate aspects in disabled
666 state initially, to be enabled later on by...
667 * sem_ch13.adb (Build_Predicate_Functions.Add_Predicates): Mark
668 SCO for predicate as enabled.
669
6702017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
671
672 * comperr.adb (Compiler_Abort): Remove now obsolete pair of
673 pragmas Warnings Off / On.
674 * namet.adb (Finalize): Remove now obsolete pair of pragmas
675 Warnings Off / On.
676 * output.adb: Remove now obsolete pair of pragmas Warnings Off / On.
677 * sem_warn.adb (Warn_On_Constant_Valid_Condition): Do not
678 consider comparisons between static expressions because their
679 values cannot be invalidated.
680 * urealp.adb (Tree_Read): Remove now obsolete pair of pragmas
681 Warnings Off / On.
682 (Tree_Write): Remove now obsolete pair of pragmas Warnings Off / On.
683 * usage.adb Remove now obsolete pair of pragmas Warnings Off / On.
684
6852017-04-25 Bob Duff <duff@adacore.com>
686
687 * sem_elab.adb (In_Task_Activation): Trace internal calls in
688 task bodies.
689
2da8c8e2
GD
6902017-04-25 Gary Dismukes <dismukes@adacore.com>
691
692 * sem_prag.adb, sem_warn.adb, sem_eval.adb: Minor reformatting and
693 typo fixes.
694
634a926b
AC
6952017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
696
697 * comperr.adb (Compiler_Abort): Add a pair of pragma Warnings
698 On/Off to defend against a spurious warning in conditional
699 compilation.
700 * exp_ch4.adb (Rewrite_Comparison): Reimplemented.
701 * namet.adb (Finalize): Add a pair of pragma Warnings On/Off to
702 defend against a spurious warning in conditional compilation.
703 * output.adb Add a pair of pragma Warnings On/Off to defend
704 against a spurious warning in conditional compilation.
705 * sem_eval.adb (Eval_Relational_Op): Major code clean up.
706 (Fold_General_Op): New routine.
707 (Fold_Static_Real_Op): New routine.
708 (Test_Comparison): New routine.
709 * sem_eval.ads (Test_Comparison): New routine.
710 * sem_warn.adb (Is_Attribute_Constant_Comparison): New routine.
711 (Warn_On_Constant_Valid_Condition): New routine.
712 (Warn_On_Known_Condition): Use Is_Attribute_Constant_Comparison
713 to detect a specific case.
714 * sem_warn.adb (Warn_On_Constant_Valid_Condition): New routine.
715 * urealp.adb (Tree_Read): Add a pair of pragma Warnings On/Off
716 to defend against a spurious warning in conditional compilation.
717 (Tree_Write): Add a pair of pragma Warnings On/Off to defend
718 against a spurious warning in conditional compilation.
719 * usage.adb Add a pair of pragma Warnings On/Off to defend
720 against a spurious warning in conditional compilation.
721
7222017-04-25 Arnaud Charlet <charlet@adacore.com>
723
724 * sinfo.ads, sem_ch13.adb: Update comment.
725
1f70c47f
AC
7262017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
727
728 * sem_util.adb (Is_Post_State): A reference to a
729 generic in out parameter is considered a change in the post-state
730 of a subprogram.
731
7322017-04-25 Ed Schonberg <schonberg@adacore.com>
733
734 * sem_ch12.adb (Load_Parent_Of_Generic); When retrieving the
735 declaration of a subprogram instance within its wrapper package,
736 skip over null statements that may result from the rewriting of
737 ignored pragmas.
738
7392017-04-25 Ed Schonberg <schonberg@adacore.com>
740
741 * exp_attr.adb (Expand_Attribute_Reference, case 'Read):
742 If the type is an unchecked_union, replace the attribute with
743 a Raise_Program_Error (rather than inserting such before the
744 attribute reference) to handle properly the case where we are
745 processing a component of a larger record, and we need to prevent
746 further expansion for the unchecked union.
747 (Expand_Attribute_Reference, case 'Write): If the type is
748 an unchecked_union, check whether enclosing scope is a Write
749 subprogram. Replace attribute with a Raise_Program_Error if the
750 discriminants of the unchecked_union type have not default values
751 because such a use is erroneous..
752
7532017-04-25 Tristan Gingold <gingold@adacore.com>
754
755 * exp_ch9.adb (Expand_N_Task_Type_Declaration):
756 Add relative_deadline to task record on edf profile.
757 (Make_Initialize_Protection): Pass deadline_floor value on edf profile.
758 (Make_Task_Create_Call): Pass relative_deadline value.
759 * par-prag.adb (Prag): Handle Pragma_Deadline_Floor.
760 * s-rident.ads (Profile_Name): Add GNAT_Ravenscar_EDF.
761 (Profile_Info): Add info for GNAT_Ravenscar_EDF.
762 * sem_prag.adb (Set_Ravenscar_Profile): Handle
763 GNAT_Ravenscar_EDF (set scheduling policy).
764 (Analyze_Pragma): Handle GNAT_Ravenscar_EDF profile and Deadline_Floor
765 pragma.
766 (Sig_Flags): Add choice for Pragma_Deadline_Floor.
767 * snames.ads-tmpl (Name_Deadline_Floor, Name_Gnat_Ravenscar_EDF):
768 New names.
769 (Pragma_Deadline_Floor): New pragma.
770 * targparm.adb (Get_Target_Parameters): Recognize
771 GNAT_Ravenscar_EDF profile.
772
daad20d6
AC
7732017-04-25 Arnaud Charlet <charlet@adacore.com trojanek>
774
775 * gnatvsn.ads (Library_Version): Bump to 8. Update comment.
776
e7c25229
AC
7772017-04-25 Ed Schonberg <schonberg@adacore.com>
778
779 * sem_aux.adb (Nearest_Ancestor): Use original node of type
780 declaration to locate nearest ancestor, because derived
781 type declarations for record types are rewritten as record
782 declarations.
783 * sem_ch13.adb (Add_Call): Use an unchecked conversion to handle
784 properly derivations that are completions of private types.
785 (Add_Predicates): If type is private, examine rep. items of full
786 view, which may include inherited predicates.
787 (Build_Predicate_Functions): Ditto.
788
7892017-04-25 Javier Miranda <miranda@adacore.com>
790
791 * sem_util.adb (New_Copy_Tree.Visit_Entity): Extend previous change
792 to generate new entities for subtype declarations located in
793 Expression_With_Action nodes.
794
7952017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
796
797 * sem_elab.adb (Check_A_Call): Remove
798 local variables Is_DIC_Proc and Issue_In_SPARK. Verify the
799 need for Elaborate_All when SPARK elaboration checks are
800 required. Update the checks for instances, variables, and calls
801 to Default_Initial_Condition procedures.
802
8032017-04-25 Ed Schonberg <schonberg@adacore.com>
804
805 * aspects.ads, aspects.adb: Make the GNAT-specific pragma No_Inline
806 into a boolean aspect, in analogy with the Ada aspect No_Return.
807
a267d8cc
AC
8082017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
809
810 * exp_ch6.adb, sem_ch13.adb, sem_ch6.adb: Minor reformatting.
811
8122017-04-25 Bob Duff <duff@adacore.com>
813
814 * sem_res.adb (Resolve_Actuals): Under -gnatd.q, reset
815 Is_True_Constant for an array variable that is passed to a
816 foreign function as an 'in' parameter.
817 * debug.adb: Document -gnatd.q.
818
241f328c
ES
8192017-04-25 Ed Schonberg <schonberg@adacore.com>
820
821 * sem_ch6.adb (Analyze_Expression_Function): If expression function
822 is completion and return type is an access type do not freeze
823 designated type: this will be done in the process of freezing
824 the expression if needed.
825 (Freeze_Expr_Types): Check whether type is complete before
826 creating freeze node, to provide a better error message if
827 reference is premature.
828 * sem_ch13.adb (Check_Indexing_Functions): Ignore inherited
829 functions created by type derivations.
830
cccb761b
AC
8312017-04-25 Pascal Obry <obry@adacore.com>
832
833 * g-sercom.ads: Add simple usage of GNAT.Serial_Communication.
834
8352017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
836
837 * sem_res.adb (Resolve_Type_Conversion):
838 When resolving against any fixed type, set the type of the
839 operand as universal real when the operand is a multiplication
840 or a division where both operands are of any fixed type.
841 (Unique_Fixed_Point_Type): Add local variable ErrN. Improve the
842 placement of an error message by pointing to the operand of a
843 type conversion rather than the conversion itself.
844
8452017-04-25 Thomas Quinot <quinot@adacore.com>
846
847 * sem_ch13.adb (Build_Predicate_Function_Declaration): Set
848 Needs_Debug_Info when producing SCOs.
849
8502017-04-25 Thomas Quinot <quinot@adacore.com>
851
852 * exp_ch6.adb (Add_Finalization_Master_Actual_To_Build_In_Place_Call):
853 Always pass a null finalization master for a library level named access
854 type to which a pragme No_Heap_Finalization applies.
855
9dd958d2
AC
8562017-04-25 Arnaud Charlet <charlet@adacore.com trojanek>
857
858 PR ada/78845
859
860 * a-ngcoar.adb, a-ngrear.adb (Inverse): call Unit_Matrix with First_1
861 set to A'First(2) and vice versa.
862
7738270b
AC
8632017-04-25 Yannick Moy <moy@adacore.com>
864
865 * freeze.adb (Freeze_Record_Type): Remove obsolete
866 rule on volatile tagged record restriction on SPARK code.
867
8682017-04-25 Yannick Moy <moy@adacore.com>
869
870 * sem_prag.adb (minor) Fix SPARK RM reference.
871
8722017-04-25 Yannick Moy <moy@adacore.com>
873
874 * sem_util.adb, sem_util.ads (Unique_Defining_Entity): Update
875 comment to reflect which entity is chosen as unique entity.
876 (Unique_Entity): Return full view instead of private spec for
877 protected type or task type. Fix possible incorrect access when
878 called on entry.
879
8802017-04-25 Eric Botcazou <ebotcazou@adacore.com>
881
882 * sem_res.adb (Set_Slice_Subtype): Treat specially bit-packed
883 array types only instead of all packed array types.
884
8852017-04-25 Ed Schonberg <schonberg@adacore.com>
886
887 * sem_ch6.adb (Conforming_Types): If type of formal as a specified
888 dimension system, verify that dimensions of both match.
889 (Check_Conformance): Add error message in case of dimension
890 mismatch.
891 * sem_dim.ads, sem_dim.adb (Dimensions_Match): New utility
892 predicate.
893
8942017-04-25 Arnaud Charlet <charlet@adacore.com trojanek>
895
896 * gnatxref.adb, gnatfind.adb: Avoid using the term project file,
897 confusing.
898
e4b1cd76
YM
8992017-04-25 Yannick Moy <moy@adacore.com>
900
901 * sem_util.adb: Minor refactoring.
902 * freeze.adb (Freeze_Record_Type): Fix checking of SPARK RM 7.1.3(5).
903
3e3bc136
AC
9042017-04-25 Claire Dross <dross@adacore.com>
905
906 * sem_prag.adb (Collect_Inherited_Class_Wide_Conditions): Go to
907 ultimate alias when accessing overridden operation. Indeed, if the
908 overridden operation is itself inherited, it won't have any explicit
909 contract.
910
9112017-04-25 Ed Schonberg <schonberg@adacore.com>
912
913 * sem_warn.adb (Warn_On_Overlapping_Actuals): There can be no
914 overlap if the two formals have different types, because formally
915 the corresponding actuals cannot designate the same objects.
916
9172017-04-25 Ed Schonberg <schonberg@adacore.com>
918
919 * sem_dim.adb (Dimensions_Of_Operand): minot cleanups: a) If
920 dimensions are present from context, use them. b) If operand is
921 a static constant rewritten as a literal, obtain the dimensions
922 from the original declaration, otherwise use dimensions of type
923 established from context.
924
9252017-04-25 Yannick Moy <moy@adacore.com>
926
927 * sem_util.adb (Is_Effectively_Volatile): Protect against base type
928 of array that is private.
929
ca0b6141
AC
9302017-04-25 Gary Dismukes <dismukes@adacore.com>
931
932 * sem_ch3.adb, exp_util.adb, sem_prag.adb, exp_ch4.adb: Minor
933 reformatting.
934
9352017-04-25 Yannick Moy <moy@adacore.com>
936
937 * a-ngelfu.adb, a-ngelfu.ads: Add SPARK_Mode On on spec, Off
938 on body.
939
5f8d3dd5
AC
9402017-04-25 Ed Schonberg <schonberg@adacore.com>
941
942 * sem_disp.adb (Check_Dispatching_Context): Add guard to refine
943 the check that recognizes a call to a private overridding and
944 replaces the called subprogram with its alias.
945
9462017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
947
948 * exp_util.adb: Minor reformatting.
949
b554177a
AC
9502017-04-25 Justin Squirek <squirek@adacore.com>
951
952 * exp_ch3.adb (Freeze_Type): Add condition to always treat
953 interface types as a partial view of a private type for the
954 generation of invariant procedure bodies.
955 * exp_util.adb, exp_util.ads (Add_Inherited_Invariants):
956 Add a condition to get the Corresponding_Record_Type for
957 concurrent types, add condition to return in the absence of a
958 class in the pragma, remove call to Replace_Type_References,
959 and add call to Replace_References.
960 (Add_Interface_Invariatns),
961 (Add_Parent_Invariants): Modify call to Add_Inherited_Invariants
962 to including the working type T.
963 (Add_Own_Invariants): Remove
964 legacy condition for separate units, remove dispatching for ASIS
965 and save a copy of the expression in the pragma expression.
966 (Build_Invariant_Procedure_Body): Default initalize vars,
967 remove return condition on interfaces, always use the
968 private type for interfaces, and move the processing of types
969 until after the processing of invariants for the full view.
970 (Build_Invariant_Procedure_Declaration): Remove condition
971 to return if an interface type is encountered and add
972 condition to convert the formal parameter to its class-wide
973 counterpart if Work_Typ is abstract.
974 (Replace_Type): Add call to Remove_Controlling_Arguments.
975 (Replace_Type_Ref): Remove class-wide dispatching for the current
976 instance of the type.
977 (Replace_Type_References): Remove parameter "Derived"
978 (Remove_Controlling_Arguments): Created in order to removing
979 the controlliong argument from calls to primitives in the case
980 of the formal parameter being an class-wide abstract type.
981 * sem_ch3.adb (Build_Assertion_Bodies_For_Type): Almost identical
982 to the change made to Freeze_Type in exp_ch3. Add a condition
983 to treat interface types as a partial view.
984 * sem_prag.adb (Analyze_Pragma): Modify parameters in the call
985 to Build_Invariant_Procedure_Declaration to properly generate a
986 "partial" invariant procedure when Typ is an interface.
987
9882017-04-25 Bob Duff <duff@adacore.com>
989
990 * a-numeri.ads: Go back to using brackets encoding for the Greek
991 letter pi.
992
904a2ae4
AC
9932017-04-25 Ed Schonberg <schonberg@adacore.com>
994
995 * sem_ch3.adb (Derive_Subprogram): Implement rule in RM 6.1.1
996 (10-15): if derived type T with progenitors is abstract,
997 and primitive P of this type inherits non-trivial classwide
998 preconditions from both a parent operation and from an interface
999 operation, then the inherited operation is abstract if the parent
1000 operation is not null.
1001 * sem_disp.ads, sem_disp.adb: replace function Covers_Some_Interface
1002 with Covered_Interface_Op to yield the actual interface operation
1003 that is implemented by a given inherited operation.
1004
10052017-04-25 Javier Miranda <miranda@adacore.com>
1006
1007 * exp_ch4.adb (Expand_N_Op_Expon): Relocate left
1008 and right operands after performing the validity checks. Required
1009 because validity checks may remove side effects from the operands.
1010
10112017-04-25 Javier Miranda <miranda@adacore.com>
1012
1013 * exp_attr.adb (Attribute_Unrestricted_Access):
1014 Do not disable implicit type conversion. Required to generate
1015 code that displaces the pointer to reference the secondary
1016 dispatch table.
1017
10182017-04-25 Pascal Obry <obry@adacore.com>
1019
1020 * prj-attr.adb, snames.ads-tmpl: Add package Install's
1021 Required_Artifacts attribute.
1022
8f34c90b
AC
10232017-04-25 Ed Schonberg <schonberg@adacore.com>
1024
1025 * sem_util.adb (Same_Value): String literals are compile-time
1026 values, and comparing them must use Expr_Value_S.
1027
10282017-04-25 Ed Schonberg <schonberg@adacore.com>
1029
1030 * sem_ch4.adb (Complete_Object_Interpretation): If an explicit
1031 dereference is introduced for the object, and the object is
1032 overloaded, do not check whether it is aliased, because it may
1033 include an implicit dereference.
1034 * sem_type.adb (Disambiguate): If two interpretations are access
1035 attribute types with the same designated type keep either of
1036 them and do not report an ambiguity. A true ambiguity will be
1037 reported elsewhere.
1038
10392017-04-25 Bob Duff <duff@adacore.com>
1040
1041 * a-numeri.ads: Change the encoding of Greek letter Pi from
1042 brackets encoding to UTF-8. Use pragma Wide_Character_Encoding
1043 to indicate the encoding. We considered using a byte order mark
1044 (BOM), but that causes various trouble (misc software eats the
1045 BOM, if you have a patch with a BOM, then it's not at the start
1046 of the patch, so it's not a BOM, the BOM affects with-ing files,
1047 etc.).
1048 * scng.adb, s-wchcnv.adb: Minor.
1049
10502017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
1051
1052 * sem_ch3.adb, sem_ch8.adb, sem_disp.adb: Minor reformatting.
321c24f7
AC
10532017-04-25 Ed Schonberg <schonberg@adacore.com>
1054
1055 * sem_ch3.adb (Add_Internal_Interface_Entities): Move
1056 Has_Non_Trivial_Precondition to sem_util. for use elsewhere.
1057 Improve error message on operations that inherit non-conforming
1058 classwide preconditions from ancestor and progenitor.
1059 * sem_util.ads, sem_util.adb (Has_Non_Trivial_Precondition):
1060 moved here from sem_ch3.
1061 * sem_ch8.adb (Analyze_Subprogram_Renaming): Implement legality
1062 check given in RM 6.1.1 (17) concerning renamings of overriding
1063 operations that inherits class-wide preconditions from ancestor
1064 or progenitor.
1065
10662017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
1067
1068 * exp_ch7.adb (Build_Adjust_Or_Finalize_Statements): Code cleanup.
1069 (Build_Adjust_Statements): Code cleanup.
1070 (Build_Finalizer): Update the initialization of
1071 Exceptions_OK.
1072 (Build_Finalize_Statements): Code cleanup.
1073 (Build_Initialize_Statements): Code cleanup.
1074 (Make_Deep_Array_Body): Update the initialization of
1075 Exceptions_OK.
1076 (Make_Deep_Record_Body): Update the initialization of Exceptions_OK.
1077 (Process_Object_Declaration): Generate a null exception handler only
1078 when exceptions are allowed.
1079 (Process_Transients_In_Scope): Update the initialization of
1080 Exceptions_OK.
1081 * exp_util.ads, exp_util.adb (Exceptions_In_Finalization_OK): New
1082 routine.
1083 * sem_ch11.adb (Analyze_Exception_Handlers): Do not check any
1084 restrictions when the handler is internally generated and the
1085 mode is warnings.
1086
10872017-04-25 Ed Schonberg <schonberg@adacore.com>
1088
1089 * sem_ch3.adb (Has_Non_Trivial_Precondition): New predicate to
1090 enforce legality rule on classwide preconditions inherited from
1091 both an ancestor and a progenitor (RM 6.1.1 (10-13).
1092 * sem_disp.adb (Check_Dispatching_Context): A call to an abstract
1093 subprogram need not be dispatching if it appears in a precondition
1094 for an abstract or null subprogram.
1095
10962017-04-25 Gary Dismukes <dismukes@adacore.com>
1097
1098 * sem_ch10.adb: Minor typo fix.
1099
6948bc18
AC
11002017-04-25 Arnaud Charlet <charlet@adacore.com>
1101
1102 * gcc-interface/Makefile.in: Cleanup VxWorks targets.
1103
457cee0b
AC
11042017-04-25 Eric Botcazou <ebotcazou@adacore.com>
1105
1106 * fname.adb (Is_Internal_File_Name): Arrange for the slices to
1107 have a length which is a power of 2.
1108 (Is_Predefined_File_Name): Likewise. Adjust comment.
1109
11102017-04-25 Bob Duff <duff@adacore.com>
1111
1112 * exp_aggr.adb (Component_Count): Protect the
1113 arithmetic from attempting to convert a value >= 2**31 to Int,
1114 which would otherwise raise Constraint_Error.
1115
11162017-04-25 Bob Duff <duff@adacore.com>
1117
1118 * opt.ads (Locking_Policy): Fix incorrect documentation. The
1119 first character of the policy name is not unique.
1120
11212017-04-25 Bob Duff <duff@adacore.com>
1122
1123 * s-fileio.adb (Name): Raise Use_Error if the file is a temp file.
1124 * s-ficobl.ads (Is_Temporary_File): Remove incorrect comment
1125 about this flag not being used. It was already used, and it is
1126 now used more.
1127
cf9a473e
AC
11282017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
1129
1130 * einfo.adb Flag301 is now known as Ignore_SPARK_Mode_Pragmas.
1131 (Ignore_SPARK_Mode_Pragmas): New routine.
1132 (Set_Ignore_SPARK_Mode_Pragmas): New routine.
1133 (Write_Entity_Flags): Add an entry for Ignore_SPARK_Mode_Pragmas.
1134 * einfo.ads Add new attribute Ignore_SPARK_Mode_Pragmas and update
1135 related entities.
1136 (Ignore_SPARK_Mode_Pragmas): New routine
1137 along with pragma Inline.
1138 (Set_Ignore_SPARK_Mode_Pragmas): New routine along with pragma Inline.
1139 * opt.ads Rename flag Ignore_Pragma_SPARK_Mode to
1140 Ignore_SPARK_Mode_Pragmas_In_Instance.
1141 * sem_ch6.adb (Analyze_Subprogram_Body_Helper):
1142 Save and restore the value of global flag
1143 Ignore_SPARK_Mode_Pragmas_In_Instance. Set or reinstate the value
1144 of global flag Ignore_SPARK_Mode_Pragmas_In_Instance when either
1145 the corresponding spec or the body must ignore all SPARK_Mode
1146 pragmas found within.
1147 (Analyze_Subprogram_Declaration): Mark
1148 the spec when it needs to ignore all SPARK_Mode pragmas found
1149 within to allow the body to infer this property in case it is
1150 instantiated or inlined later.
1151 * sem_ch7.adb (Analyze_Package_Body_Helper): Save and restore the
1152 value of global flag Ignore_SPARK_Mode_Pragmas_In_Instance. Set
1153 the value of global flag Ignore_SPARK_Mode_Pragmas_In_Instance
1154 when the corresponding spec also ignored all SPARK_Mode pragmas
1155 found within.
1156 (Analyze_Package_Declaration): Mark the spec when
1157 it needs to ignore all SPARK_Mode pragmas found within to allow
1158 the body to infer this property in case it is instantiated or
1159 inlined later.
1160 * sem_ch12.adb (Analyze_Formal_Package_Declaration):
1161 Save and restore the value of flag
1162 Ignore_SPARK_Mode_Pragmas_In_Instance. Mark the
1163 formal spec when it needs to ignore all SPARK_Mode
1164 pragmas found within to allow the body to infer this
1165 property in case it is instantiated or inlined later.
1166 (Analyze_Package_Instantiation): Save and restore the value
1167 of global flag Ignore_SPARK_Mode_Pragmas_In_Instance. Mark
1168 the instance spec when it needs to ignore all SPARK_Mode
1169 pragmas found within to allow the body to infer this
1170 property in case it is instantiated or inlined later.
1171 (Analyze_Subprogram_Instantiation): Save and restore the value
1172 of global flag Ignore_SPARK_Mode_Pragmas_In_Instance. Mark the
1173 instance spec and anonymous package when they need to ignore
1174 all SPARK_Mode pragmas found within to allow the body to infer
1175 this property in case it is instantiated or inlined later.
1176 (Instantiate_Package_Body): Save and restore the value of global
1177 flag Ignore_SPARK_Mode_Pragmas_In_Instance. Set the value of
1178 global flag Ignore_SPARK_Mode_Pragmas_In_Instance when the
1179 corresponding instance spec also ignored all SPARK_Mode pragmas
1180 found within.
1181 (Instantiate_Subprogram_Body): Save and restore the
1182 value of global flag Ignore_SPARK_Mode_Pragmas_In_Instance. Set
1183 the value of global flag Ignore_SPARK_Mode_Pragmas_In_Instance
1184 when the corresponding instance spec also ignored all SPARK_Mode
1185 pragmas found within.
1186 * sem_prag.adb (Analyze_Pragma): Update the reference to
1187 Ignore_Pragma_SPARK_Mode.
1188 * sem_util.adb (SPARK_Mode_Is_Off): A construct which ignored
1189 all SPARK_Mode pragmas defined within yields mode "off".
1190
11912017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
1192
1193 * bindgen.adb, exp_dbug.adb, errout.adb, fname.adb: Minor reformatting.
1194
11952017-04-25 Bob Duff <duff@adacore.com>
1196
1197 * exp_atag.adb (Build_CW_Membership): Add "Suppress =>
1198 All_Checks" to avoid generating unnecessary checks.
1199 * exp_ch4.adb (Expand_N_In, Make_Tag_Check): Add "Suppress =>
1200 All_Checks".
1201 * sem.ads: Fix comment.
1202 * expander.ads: Fix comment.
1203 * exp_atag.ads: Fix comment: "Index = 0" should be
1204 "Index >= 0".
1205
12062017-04-25 Gary Dismukes <dismukes@adacore.com>
1207
1208 * s-taprop-linux.adb: Minor editorial fixes.
1209
1f0bcd44
AC
12102017-04-25 Eric Botcazou <ebotcazou@adacore.com>
1211
1212 * sem_util.adb (New_Copy_Tree): Put back the declarations of the
1213 hash tables at library level. Reinstate the NCT_Hash_Tables_Used
1214 variable and set it to True whenever the main hash table is
1215 populated. Short- circuit the Assoc function if it is false
1216 and add associated guards.
1217
12182017-04-25 Olivier Hainque <hainque@adacore.com>
1219
1220 * bindgen.adb (Gen_Elab_Calls): Also update counter of lone
1221 specs without elaboration code that have an elaboration counter
1222 nevertheless, e.g. when compiled with -fpreserve-control-flow.
1223 * sem_ch10.adb (Analyze_Compilation_Unit):
1224 Set_Elaboration_Entity_Required when requested to preserve
1225 control flow, to ensure the unit elaboration is materialized at
1226 bind time, resulting in the inclusion of the unit object file
1227 in the executable closure at link time.
1228
12292017-04-25 Pierre-Marie de Rodat <derodat@adacore.com>
1230
1231 * exp_dbug.adb: In Debug_Renaming_Declaration,
1232 when dealing with indexed component, accept to produce a renaming
1233 symbol when the index is an IN parameter or when it is a name
1234 defined in an outer scope.
1235
12362017-04-25 Yannick Moy <moy@adacore.com>
1237
1238 * errout.adb (Error_Msg): Adapt continuation
1239 message in instantiations and inlined bodies for info messages.
1240
12412017-04-25 Eric Botcazou <ebotcazou@adacore.com>
1242
1243 * fname.adb (Has_Internal_Extension): Add pragma Inline.
1244 Use direct 4-character slice comparisons.
1245 (Has_Prefix): Add
1246 pragma Inline. (Has_Suffix): Delete.
1247 (Is_Internal_File_Name):
1248 Test Is_Predefined_File_Name first.
1249 (Is_Predefined_File_Name):
1250 Use direct slice comparisons as much as possible and limit all
1251 comparisons to at most 8 characters.
1252
62e45e3e
HK
12532017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
1254
1255 * checks.adb (Insert_Valid_Check): Code cleanup.
1256 * exp_ch6.adb (Add_Validation_Call_By_Copy_Code): New routine.
1257 (Expand_Actuals): Generate proper copy-back for a validation
1258 variable when it acts as the argument of a type conversion.
1259 * sem_util.adb (Is_Validation_Variable_Reference): Augment the
1260 predicate to operate on type qualifications.
1261
ec40b86c
HK
12622017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
1263
1264 * sem_prag.adb, exp_ch6.adb, binde.adb, sem_disp.adb, s-fileio.adb:
1265 Minor reformatting.
1266
ca1f6b29
BD
12672017-04-25 Bob Duff <duff@adacore.com>
1268
1269 * sem_prag.adb (No_Return): Give an error if the pragma applies
1270 to a body. Specialize the error for the specless body case,
1271 as is done for (e.g.) pragma Convention.
1272 * debug.adb: Add switch -gnatd.J to disable the above legality
1273 checks. This is mainly for use in our test suite, to avoid
1274 rewriting a lot of illegal (but working) code. It might also
1275 be useful to customers. Under this switch, if a pragma No_Return
1276 applies to a body, and the procedure raises an exception (as it
1277 should), the pragma has no effect. If the procedure does return,
1278 execution is erroneous.
1279
12802017-04-25 Bob Duff <duff@adacore.com>
1281
1282 * exp_ch6.adb (Expand_Actuals): This is the
1283 root of the problem. It took N as an 'in out' parameter, and in
1284 some cases, rewrote N, but then set N to Original_Node(N). So
1285 the node returned in N had no Parent. The caller continued
1286 processing of this orphaned node. In some cases that caused a
1287 crash (e.g. Remove_Side_Effects climbs up Parents in a loop,
1288 and trips over the Empty Parent). The solution is to make N an
1289 'in' parameter. Instead of rewriting it, return the list of
1290 post-call actions, so the caller can do the rewriting later,
1291 after N has been fully processed.
1292 (Expand_Call_Helper): Move most of Expand_Call here. It has
1293 too many premature 'return' statements, and we want to do the
1294 rewriting on return.
1295 (Insert_Post_Call_Actions): New procedure to insert the post-call
1296 actions in the appropriate place. In the problematic case,
1297 that involves rewriting N as an Expression_With_Actions.
1298 (Expand_Call): Call the new procedures Expand_Call_Helper and
1299 Insert_Post_Call_Actions.
1300
36357cf3
AC
13012017-04-25 Ed Schonberg <schonberg@adacore.com>
1302
1303 * sem_prag.adb (Inherits_Class_Wide_Pre): Cleanup code, handle
1304 properly type derived from generic formal types, to handle
1305 properly modified version of ACATS 4.1B B611017.
1306
13072017-04-25 Javier Miranda <miranda@adacore.com>
1308
1309 * exp_unst.adb (Subp_Index): Adding missing
1310 support for renamings and functions that return a constrained
1311 array type (i.e. functions for which the frontend built a
1312 procedure with an extra out parameter).
1313
13142017-04-25 Pascal Obry <obry@adacore.com>
1315
1316 * s-string.adb: Minor code clean-up.
1317
13182017-04-25 Bob Duff <duff@adacore.com>
1319
1320 * s-os_lib.ads, s-os_lib.adb (Non_Blocking_Wait_Process): New
1321 procedure.
1322 * adaint.h, adaint.c (__gnat_portable_no_block_wait): C support
1323 function for Non_Blocking_Wait_Process.
1324
13252017-04-25 Bob Duff <duff@adacore.com>
1326
1327 * prep.adb (Preprocess): Remove incorrect
1328 Assert. Current character can be ASCII.CR.
1329
48c8c473
AC
13302017-04-25 Ed Schonberg <schonberg@adacore.com>
1331
1332 * sem_prag.adb (Set_Convention_From_Pragma): Cleanup code for
1333 convention Stdcall, which has a number of exceptions. Convention
1334 is legal on a component declaration whose type is an anonymous
1335 access to subprogram.
1336
13372017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
1338
1339 * sem_ch4.adb: sem_ch4.adb Various reformattings.
1340 (Try_One_Prefix_Interpretation): Use the base type when dealing
1341 with a subtype created for purposes of constraining a private
1342 type with discriminants.
1343
13442017-04-25 Javier Miranda <miranda@adacore.com>
1345
1346 * einfo.ads, einfo.adb (Has_Private_Extension): new attribute.
1347 * warnsw.ads, warnsw.adb (All_Warnings): Set warning on late
1348 dispatching primitives (Restore_Warnings): Restore warning on
1349 late dispatching primitives (Save_Warnings): Save warning on late
1350 dispatching primitives (Do_Warning_Switch): Use -gnatw.j/-gnatw.J
1351 to enable/disable this warning.
1352 (WA_Warnings): Set warning on late dispatching primitives.
1353 * sem_ch3.adb (Analyze_Private_Extension_Declaration): Remember
1354 that its parent type has a private extension.
1355 * sem_disp.adb (Warn_On_Late_Primitive_After_Private_Extension):
1356 New subprogram.
1357 * usage.adb: Document -gnatw.j and -gnatw.J.
1358
94295b25
AC
13592017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
1360
1361 * exp_ch7.adb, checks.adb, sem_prag.adb, eval_fat.adb: Minor
1362 reformatting.
1363
13642017-04-25 Bob Duff <duff@adacore.com>
1365
1366 * binde.adb (Validate): Do not pass dynamic strings
1367 to pragma Assert, because older compilers do not support that.
1368
13692017-04-25 Bob Duff <duff@adacore.com>
1370
1371 * s-fileio.adb (Close): When a temp file is
1372 closed, delete it and clean up its Temp_File_Record immediately,
1373 rather than waiting until later.
1374 (Temp_File_Record): Add File
1375 component, so Close can know which Temp_File_Record corresponds
1376 to the file being closed.
1377 (Delete): Don't delete temp files,
1378 because they are deleted by Close.
1379 (Open): Set the File component
1380 of Temp_File_Record. This requires moving the creation of the
1381 Temp_File_Record to the end, after the AFCB has been created.
1382
b0cd50fd
AC
13832017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
1384
1385 * checks.adb (Insert_Valid_Check): Do not generate
1386 a validity check when inside a generic.
1387
13882017-04-25 Yannick Moy <moy@adacore.com>
1389
1390 * sem_res.adb (Resolve_Type_Conversion): Fix bad logic.
1391
13922017-04-25 Arnaud Charlet <charlet@adacore.com>
1393
1394 * snames.ads-tmpl (Snames): More names for detecting predefined
1395 potentially blocking subprograms.
1396
13972017-04-25 Ed Schonberg <schonberg@adacore.com>
1398
1399 * sem_prag.adb (Analyze_Pre_Post_Condition): The rules
1400 concerning inheritance of class-wide preconditions do not apply
1401 to postconditions.
1402
14032017-04-25 Bob Duff <duff@adacore.com>
1404
1405 * s-ficobl.ads: Minor comment fix.
1406
d8ee014f
YM
14072017-04-25 Yannick Moy <moy@adacore.com>
1408
1409 * checks.adb (Apply_Scalar_Range_Check): Analyze precisely
1410 conversions from float to integer in GNATprove mode.
1411 (Apply_Type_Conversion_Checks): Make sure in GNATprove mode
1412 to call Apply_Type_Conversion_Checks, so that range checks
1413 are properly positioned when needed on conversions, including
1414 when converting from float to integer. (Determine_Range): In
1415 GNATprove mode, take into account the possibility of conversion
1416 from float to integer.
1417 * sem_res.adb (Resolve_Type_Conversion): Only enforce range
1418 check on conversions from fixed-point to integer, not anymore
1419 on conversions from floating-point to integer, when in GNATprove
1420 mode.
1421
3c77943e
YM
14222017-04-25 Yannick Moy <moy@adacore.com>
1423
1424 * checks.adb (Determine_Range_R): Special case type conversions
1425 from integer to float in order to get bounds in that case too.
1426 * eval_fat.adb (Machine): Avoid issuing warnings in GNATprove
1427 mode, for computations involved in interval checking.
1428
89b6c83e
AC
14292017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
1430
1431 * checks.adb (Insert_Valid_Check): Partially reimplement validity
1432 checks.
1433 * einfo.adb Node36 is now used as Validated_Object.
1434 (Validated_Object): New routine.
1435 (Set_Validated_Object): New routine.
1436 (Write_Field36_Name): Add an entry for Validated_Object.
1437 * einfo.ads Add new attribute Validated_Object along with
1438 usage in entities.
1439 (Validated_Object): New routine along with pragma Inline.
1440 (Set_Validated_Object): New routine along with pragma Inline.
1441 * exp_attr.adb (Make_Range_Test): Add processing for validation
1442 variables to avoid extra reads and copies of the prefix.
1443 * exp_ch6.adb (Expand_Actuals): Add copy-back for validation
1444 variables in order to reflect any changes done in the variable
1445 back into the original object.
1446 * sem_util.adb (Is_Validation_Variable_Reference): New routine.
1447 * sem_util.ads (Is_Validation_Variable_Reference): New routine.
1448
14492017-04-25 Steve Baird <baird@adacore.com>
1450
1451 * exp_ch7.adb (Build_Array_Deep_Procs,
1452 Build_Record_Deep_Procs, Make_Finalize_Address_Body): Don't
1453 generate Finalize_Address routines for CodePeer.
1454
14552017-04-25 Ed Schonberg <schonberg@adacore.com>
1456
1457 * sem_prag.adb (Inherits_Class_Wide_Pre): subsidiary of
1458 Analyze_Pre_Post_Condition, to implement the legality checks
1459 mandated by AI12-0131: Pre'Class shall not be specified for an
1460 overriding primitive subprogram of a tagged type T unless the
1461 Pre'Class aspect is specified for the corresponding primitive
1462 subprogram of some ancestor of T.
1463
c6840e83
AC
14642017-04-25 Bob Duff <duff@adacore.com>
1465
1466 * sem_ch8.adb (Use_One_Type): If a use_type_clause
1467 is redundant, set its Used_Operations to empty. This is only
1468 necessary for use clauses that appear in the parent of a generic
1469 child unit, because those use clauses get reanalyzed when we
1470 instantiate the generic, and we don't want the Used_Operations
1471 carried over from the original context (where it was probably
1472 not redundant).
1473
14742017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
1475
1476 * exp_ch6.adb: Minor reformatting.
1477
f2a54683
AC
14782017-04-25 Bob Duff <duff@adacore.com>
1479
1480 * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
1481 Use Source_Index (Current_Sem_Unit) to find the correct casing.
1482 * exp_prag.adb (Expand_Pragma_Check): Use Source_Index
1483 (Current_Sem_Unit) to find the correct casing.
1484 * par.adb (Par): Null out Current_Source_File, to ensure that
1485 the above bugs won't rear their ugly heads again.
1486
14872017-04-25 Ed Schonberg <schonberg@adacore.com>
1488
1489 * sem_ch8.adb (Find_Type): For an attribute reference
1490 'Class, if prefix type is synchronized and previous errors
1491 have suppressed the creation of the corresponding record type,
1492 create a spurious class-wide for the synchonized type itself,
1493 to catch other misuses of the attribute
1494
14952017-04-25 Steve Baird <baird@adacore.com>
1496
1497 * exp_ch6.adb (Expand_Simple_Function_Return): if CodePeer_Mode
1498 is True, then don't generate the accessibility check for the
1499 tag of a tagged result.
1500 * exp_intr.adb (Expand_Dispatching_Constructor_Call):
1501 if CodePeer_Mode is True, then don't generate the
1502 tag checks for the result of call to an instance of
1503 Ada.Tags.Generic_Dispatching_Constructor (i.e., both the "is a
1504 descendant of" check and the accessibility check).
1505
15062017-04-25 Ed Schonberg <schonberg@adacore.com>
1507
1508 * sem_ch13.adb: Code cleanups.
1509 * a-strbou.ads: minor whitespace fix in Trim for bounded strings.
1510 * sem_ch8.ads: Minor comment fix.
1511
2df23f66
AC
15122017-04-25 Eric Botcazou <ebotcazou@adacore.com>
1513
1514 * exp_ch4.adb (Library_Level_Target): New function.
1515 (Expand_Concatenate): When optimization is enabled, also expand
1516 the operation out-of-line if the concatenation is present within
1517 the expression of the declaration of a library-level object and
1518 not only if it is the expression of the declaration.
1519
15202017-04-25 Bob Duff <duff@adacore.com>
1521
1522 * freeze.adb (Freeze_Object_Declaration): Do
1523 not Remove_Side_Effects if there is a pragma Linker_Section,
1524 because in that case we want static initialization in the
1525 appropriate section.
1526
15272017-04-25 Gary Dismukes <dismukes@adacore.com>
1528
1529 * exp_dbug.adb: Minor rewording and reformatting.
1530
15312017-04-25 Ed Schonberg <schonberg@adacore.com>
1532
1533 * sem_attr.adb (Statically_Denotes_Object): New predicate, to
1534 handle the proposed changes to rules concerning potentially
1535 unevaluated expressions, to include selected components that
1536 do not depend on discriminants, and indexed components with
1537 static indices.
1538 * sem_util.adb (Is_Potentially_Unevaluated): Add check for
1539 predicate in quantified expression, and fix bugs in the handling
1540 of case expressions and membership test.
1541 (Analyze_Attribute_Old_Result): use new predicate.
1542 (Analyze_Attribute, case Loop_Entry): ditto.
1543
d9049849
AC
15442017-04-25 Bob Duff <duff@adacore.com>
1545
1546 * s-secsta.adb (SS_Info): Add a comment
1547 explaining why we don't need to walk all the chunks in order to
1548 compute the total size.
1549
15502017-04-25 Bob Duff <duff@adacore.com>
1551
1552 * namet.ads, namet.adb (Global_Name_Buffer): Increase the length
1553 of the global name buffer to 4*Max_Line_Length.
1554
15552017-04-25 Javier Miranda <miranda@adacore.com>
1556
1557 * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): When creating a
1558 renaming entity for debug information, mark the entity as needing debug
1559 info if it comes from sources.
1560
15612017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
1562
1563 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Remove the
1564 restriction converning the use of 'Address where the prefix is
1565 of a controlled type.
1566
15672017-04-25 Pierre-Marie de Rodat <derodat@adacore.com>
1568
1569 * exp_dbug.adb: In Debug_Renaming_Declaration,
1570 skip slices that are made redundant by an indexed component
1571 access.
1572 * atree.h: New definition for Original_Node.
1573
db78cb81
HK
15742017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
1575
1576 * sem_prag.adb, sem_prag.ads: Minor reformatting.
1577
0c85534d
ES
15782017-04-25 Ed Schonberg <schonberg@adacore.com>
1579
1580 * sem_ch3.adb (Check_Entry_Contract): Call
1581 Preanalyze_Spec_Expression so that resolution takes place as well.
1582 * sem_util.adb (Check_Internal_Protected_Use): Reject properly
1583 internal calls that appear in preconditions of protected
1584 operations, in default values for same, and in contract guards
1585 for contract cases in SPARK.
1586
be3416c6
AC
15872017-04-25 Eric Botcazou <ebotcazou@adacore.com>
1588
1589 * a-numaux.ads: Fix description of a-numaux-darwin
1590 and a-numaux-x86.
1591 (Double): Define to Long_Float.
1592 * a-numaux-vxworks.ads (Double): Likewise.
1593 * a-numaux-darwin.ads
1594 (Double): Likewise.
1595 * a-numaux-libc-x86.ads (Double): Define to Long_Long_Float.
1596 * a-numaux-x86.ads: Fix package description.
1597 * a-numaux-x86.adb (Is_Nan): Minor tweak.
1598 (Reduce): Adjust and complete description. Call Is_Nan instead of
1599 testing manually. Use an integer temporary to hold rounded value.
1600 * a-numaux-darwin.adb (Reduce): Likewise.
1601 (Is_Nan): New function.
1602
16032017-04-25 Ed Schonberg <schonberg@adacore.com>
1604
1605 * sem_ch4.adb (Analyze_Selected_Component): Additional refinement
1606 on analysis of prefix whose type is a current instance of a
1607 synchronized type, but where the prefix itself is an entity that
1608 is an object.
1609
16102017-04-25 Ed Schonberg <schonberg@adacore.com>
1611
1612 * exp_ch5.adb (Replace_Target): When rewriting the RHS, preserve
1613 the identity of callable entities therein, because they have been
1614 properly resolved, and prefixed calls may have been rewritten
1615 as normal calls.
1616
16172017-04-25 Patrick Bernardi <bernardi@adacore.com>
1618
1619 * exp_ch3.adb (Build_Init_Statements): Convert
1620 the expression of the pragma/aspect Secondary_Stack_Size to
1621 internal type System.Parameters.Size_Type before assigning
1622 it to the Secondary_Stack_Size component of the task type's
1623 corresponding record.
1624
16252017-04-25 Eric Botcazou <ebotcazou@adacore.com>
1626
1627 * sem_eval.adb (Compile_Time_Compare): Reinstate the expr+literal
1628 (etc) optimizations when the type is modular and the offsets
1629 are equal.
1630
16312017-04-25 Eric Botcazou <ebotcazou@adacore.com>
1632
1633 * s-osinte-freebsd.ads: Minor comment tweaks
1634
16352017-04-25 Javier Miranda <miranda@adacore.com>
1636
1637 * urealp.adb (UR_Write): Reverse previous patch
1638 adding documentation on why we generate multiplications instead
1639 of divisions (needed to avoid expressions whose computation with
1640 large numbers may cause division by 0).
1641
16422017-04-25 Bob Duff <duff@adacore.com>
1643
1644 * erroutc.adb (Set_Specific_Warning_Off,
1645 Set_Warnings_Mode_Off): Use the correct source file for
1646 Stop. Was using Current_Source_File, which is only valid during
1647 parsing. Current_Source_File will have a leftover value from
1648 whatever file happened to be parsed last, because of a with_clause
1649 or something.
1650
16512017-04-25 Bob Duff <duff@adacore.com>
1652
1653 * lib.ads, lib.adb (In_Internal_Unit): New functions similar
1654 to In_Predefined_Unit, but including GNAT units.
1655 * sem_util.ads, sem_util.adb (Should_Ignore_Pragma): Replace
1656 with Should_Ignore_Pragma_Par and Should_Ignore_Pragma_Sem,
1657 because Should_Ignore_Pragma was not working reliably outside
1658 the parser, because Current_Source_File is not valid.
1659 * sem_prag.adb, exp_prag.adb: Call Should_Ignore_Pragma_Sem.
1660 * par-prag.adb: Call Should_Ignore_Pragma_Par.
1661
f4f5851e
AC
16622017-04-25 Arnaud Charlet <charlet@adacore.com trojanek>
1663
1664 * gnat1drv.adb (Gnat1Drv): Disable Generate_Processed_File in
1665 codepeer mode.
1666
16672017-04-25 Javier Miranda <miranda@adacore.com>
1668
1669 * urealp.adb (UR_Write): Fix output of constants with a base other
1670 that 10.
1671
16722017-04-25 Justin Squirek <squirek@adacore.com>
1673
1674 * sem_ch13.adb (Get_Interfacing_Aspects): Moved to sem_util.adb.
1675 * sem_prag.adb (Analyze_Pragma, Process_Import_Or_Interface):
1676 Add extra parameter for Process_Interface_Name.
1677 (Process_Interface_Name): Add parameter for pragma to analyze
1678 corresponding aspect.
1679 * sem_util.ads, sem_util.adb (Get_Interfacing_Aspects): Added
1680 from sem_ch13.adb
1681
ded462b0
AC
16822017-04-25 Gary Dismukes <dismukes@adacore.com>
1683
1684 * exp_ch7.adb, einfo.ads, sem_prag.adb: Minor reformatting and typo
1685 correction.
1686
16872017-04-25 Yannick Moy <moy@adacore.com>
1688
1689 * sem_res.adb (Resolve_Comparison_Op): Do not
1690 attempt evaluation of relational operations inside assertions.
1691
16922017-04-25 Justin Squirek <squirek@adacore.com>
1693
1694 * exp_util.adb (Add_Interface_Invariants):
1695 Restored, code moved back from Build_Invariant_Procedure_Body.
1696 (Add_Parent_Invariants): Restored, code moved back from
1697 Build_Invariant_Procedure_Body.
1698 (Build_Invariant_Procedure_Body):
1699 Remove refactored calls and integrated code from
1700 Add_Parent_Invariants and Add_Interface_Invariants.
1701
17022017-04-25 Johannes Kanig <kanig@adacore.com>
1703
1704 * errout.adb (Output_Messages): Adjust computation of total
1705 errors
1706 * erroutc.adb (Error_Msg): In statistics counts, deal
1707 correctly with informational messages that are not warnings.
1708 * errutil.adb (Finalize): adjust computation of total errors.
1709
17102017-04-25 Arnaud Charlet <charlet@adacore.com trojanek>
1711
1712 * terminals.c (__gnat_terminate_pid): New.
1713 * g-exptty.ads (Terminate_Process): New. Update comments.
1714
d1eb8a82
AC
17152017-04-25 Arnaud Charlet <charlet@adacore.com>
1716
1717 * a-cfinve.ads, a-cofove.ads (Empty_Vector): add Global contract.
1718
17192017-04-25 Justin Squirek <squirek@adacore.com>
1720
1721 * sem_ch3.adb (Analyze_Declarations): Minor
1722 correction to comments, move out large conditional and scope
1723 traversal into a predicate.
1724 (Uses_Unseen_Lib_Unit_Priv): Predicate function made from extracted
1725 logic.
1726
17272017-04-25 Ed Schonberg <schonberg@adacore.com>
1728
1729 * sem_ch4.adb (Analyze_Selected_Component): Refine analysis
1730 of prefix whose type is a current instance of a synchronized
1731 type. If the prefix is an object this is an external call (or
1732 requeue) that can only access public operations of the object. The
1733 previous predicate was too restrictive, and did not allow public
1734 protected operations, only task entries.
1735
17362017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
1737
1738 * sem_ch5.adb, fname.adb: Minor reformatting.
1739
17402017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
1741
1742 * einfo.adb (Is_Anonymous_Access_Type): New routine.
1743 * einfo.ads Update the placement of
1744 E_Anonymous_Access_Subprogram_Type along with all subtypes that
1745 mention the ekind.
1746 (Is_Anonymous_Access_Type): New routine.
1747 * exp_ch7.adb (Allows_Finalization_Master): Do not generate a
1748 master for an access type subject to pragma No_Heap_Finalization.
1749 * exp_util.adb (Build_Allocate_Deallocate_Proc): An object being
1750 allocated or deallocated does not finalization actions if the
1751 associated access type is subject to pragma No_Heap_Finalization.
1752 * opt.ads Add new global variable No_Heap_Finalization_Pragma.
1753 * par-prag.adb Pragma No_Heap_Finalization does not need special
1754 processing from the parser.
1755 * sem_ch6.adb (Check_Return_Subtype_Indication): Remove ancient
1756 ??? comments. Use the new predicate Is_Anonymous_Access_Type.
1757 * sem_prag.adb Add an entry in table Sig_Flags for pragma
1758 No_Heap_Finalization.
1759 (Analyze_Pragma): Add processing for
1760 pragma No_Heap_Finalization. Update various error messages to
1761 use Duplication_Error.
1762 * sem_util.ads, sem_util.adb (No_Heap_Finalization): New routine.
1763 * snames.ads-tmpl: Add new predefined name No_Heap_Finalization
1764 and corresponding pragma id.
1765
820f1162
AC
17662017-04-25 Bob Duff <duff@adacore.com>
1767
1768 * freeze.adb (Freeze_Record_Type): Use the
1769 underlying type of the component type to determine whether it's
1770 elementary. For representation clause purposes, a private type
1771 should behave the same as its full type.
1772 * fname.ads, fname.adb (Is_Predefined_File_Name):
1773 Make sure things like "system.ali" are recognized as predefined.
1774
17752017-04-25 Javier Miranda <miranda@adacore.com>
1776
1777 * debug.adb: Update documentation of -gnatd.6.
1778
17792017-04-25 Ed Schonberg <schonberg@adacore.com>
1780
1781 * sem_ch5.adb (Preanalyze_Range): Handle properly an Ada2012
1782 element iterator when the name is an overloaded function call,
1783 one of whose interpretations yields an array.
1784
998429d6
AC
17852017-04-25 Bob Duff <duff@adacore.com>
1786
1787 * uname.ads, uname.adb (Is_Predefined_Unit_Name,
1788 Is_Internal_Unit_Name): New functions for operating on unit
1789 names, as opposed to file names. There's some duplicated code
1790 with fname.adb, which is unfortunate, but it seems like we don't
1791 want to add dependencies here.
1792 * fname-uf.adb (Get_File_Name): Change Is_Predefined_File_Name
1793 to Is_Predefined_Unit_Name; the former was wrong, because Uname
1794 is not a file name at all.
1795 * fname.ads, fname.adb: Document the fact that
1796 Is_Predefined_File_Name and Is_Internal_File_Name can be called
1797 for ALI files, and fix the code so it works properly for ALI
1798 files. E.g. these should return True for "system.ali".
1799
18002017-04-25 Justin Squirek <squirek@adacore.com>
1801
1802 * exp_util.adb (Add_Invariant): Removed,
1803 code moved to Add_Invariant_Check, Add_Inherited_Invariant,
1804 and Add_Own_Invariant. (Add_Invariant_Check): Used
1805 for adding runtime checks from any kind of invariant.
1806 (Add_Inherited_Invariant): Generates invariant checks for
1807 class-wide invariants (Add_Interface_Invariants): Removed, code
1808 moved to Build_Invariant_Procedure_Body (Add_Own_Invariant):
1809 Create a types own invariant procedure (Add_Parent_Invariants):
1810 Removed, code moved to Build_Invariant_Procedure_Body
1811 (Build_Invariant_Procedure_Body): Add refactored calls
1812 and integrated code from Add_Parent_Invariants and
1813 Add_Interface_Invariants.
1814 (Process_Type): Removed, the
1815 relavant code was inlined into both Add_Own_Invariant and
1816 Add_Inherited_Invariant.
1817
94d3a18d
AC
18182017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
1819
1820 * make.adb, par-ch2.adb, sem_util.adb, scans.ads, sem_ch8.adb,
1821 scn.adb, osint.adb, fname.adb: Minor reformatting.
1822
18232017-04-25 Pascal Obry <obry@adacore.com>
1824
1825 * s-taprop-mingw.adb: Do not check for CloseHandle in
1826 Finalize_TCB.
1827
51148dda
AC
18282017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
1829
1830 * sem_util.adb (Check_Part_Of_Reference):
1831 Continue to examine the context if the reference appears within
1832 an expression function.
1833
18342017-04-25 Justin Squirek <squirek@adacore.com>
1835
1836 * exp_ch7.adb, exp_ch7.ads Remove Build_Invariant_Procedure_Body
1837 and Build_Invariant_Procedure_Declaration.
1838 * exp_util.ads, exp_util.adb Add Build_Invariant_Procedure_Body
1839 and Build_Invariant_Procedure_Declaration from exp_ch7
1840 and break-out Is_Untagged_Private_Derivation from
1841 Build_Invariant_Procedure_Body.
1842 (Replace_Type_References):
1843 Append an extra parameter to allow for dispatching replacements
1844 and add the corrasponding logic.
1845 (Type_Invariant): Remove
1846 Replace_Typ_Refs and replace its references with calls to
1847 Replace_Type_References.
1848 * sem_ch3.adb, sem_prag.adb: Remove with and use of exp_ch7.
1849
b043ae01
AC
18502017-04-25 Bob Duff <duff@adacore.com>
1851
1852 * sem_util.ads, sem_util.adb (Should_Ignore_Pragma): New function
1853 that returns True when appropriate.
1854 * par-prag.adb, exp_prag.adb, sem_prag.adb: Do not ignore pragmas
1855 when compiling predefined files.
1856 * fname.ads, fname.adb (Is_Predefined_File_Name): Fix bug:
1857 "gnat.adc" should not be considered a predefined file name.
1858 That required (or at least encouraged) a lot of cleanup of global
1859 variable usage. We shouldn't be communicating information via
1860 the global name buffer.
1861 * bindgen.adb, errout.adb, fname-uf.adb, lib-load.adb, make.adb,
1862 * restrict.adb, sem_ch10.adb, sem_ch6.adb, sem_ch8.adb: Changes
1863 required by the above-mentioned cleanup.
1864
18652017-04-25 Ed Schonberg <schonberg@adacore.com>
1866
1867 * osint.adb (Find_File): Handle properly a request for a
1868 configuration file whose name is a directory.
1869
b6e6a4e3
AC
18702017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
1871
1872 * sem_attr.adb, sem_ch5.adb: Minor reformatting.
1873
18742017-04-25 Bob Duff <duff@adacore.com>
1875
1876 * types.ads: Minor: Fix '???' comment.
1877 * sem_ch8.adb: Minor comment fix.
1878
18792017-04-25 Bob Duff <duff@adacore.com>
1880
1881 * sem_prag.adb: Remove suspicious uses of Name_Buf.
1882 * stringt.ads, stringt.adb, exp_dbug.adb, sem_dim.adb: Remove
1883 Add_String_To_Name_Buffer, to avoid using the global Name_Buf.
1884 Add String_To_Name with no side effects.
1885
18862017-04-25 Justin Squirek <squirek@adacore.com>
1887
1888 * sem_ch3.adb (Analyze_Declarations): Add
1889 additional condition for edge case.
1890
18912017-04-25 Bob Duff <duff@adacore.com>
1892
1893 * par-ch2.adb, scans.ads, scn.adb: Do not give an error for
1894 reserved words inside pragmas. This is necessary to allow the
1895 pragma name Interface to be used in pragma Ignore_Pragma.
1896 * par.adb: Minor comment fix.
1897
18982017-04-25 Javier Miranda <miranda@adacore.com>
1899
1900 * a-tags.ads, a-tags.adb (Type_Is_Abstract): Renamed as Is_Abstract.
1901 * rtsfind.ads (RE_Type_Is_Abstract): Renamed as Is_Abstract.
1902 * exp_disp.adb (Make_DT): Update occurrences of RE_Type_Is_Abstract.
1903 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Update
1904 occurrences of RE_Type_Is_Abstract
1905
19062017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
1907
1908 * exp_util.adb (Build_Chain): Account for ancestor
1909 subtypes while traversing the derivation chain.
1910
f8a21934
AC
19112017-04-25 Ed Schonberg <schonberg@adacore.com>
1912
1913 * sem_attr.adb: minor reformatting.
1914
19152017-04-25 Doug Rupp <rupp@adacore.com>
1916
1917 * sigtramp-vxworks-target.inc [PPC64]: Add a .localentry pseudo-op.
1918
19192017-04-25 Ed Schonberg <schonberg@adacore.com>
1920
1921 * sem_ch5.adb (Analyze_Assignment): Reset Full_Analysis flag on
1922 the first pass over an assignment statement with target names,
1923 to prevent the generation of subtypes (such as discriminated
1924 record components)that may carry the target name outside of the
1925 tree for the assignment. The subtypes will be generated when
1926 the assignment is reanalyzed in full.
1927 (Analyze_Target_Name): Handle properly class-wide types.
1928
b619c88e
AC
19292017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
1930
1931 * elists.ads, elists.adb (Prepend_Unique_Elmt): New routine.
1932 * exp_ch3.adb (Freeze_Type): Signal the DIC body is created for
1933 the purposes of freezing.
1934 * exp_util.adb Update the documentation and structure of the
1935 type map used in class-wide semantics of assertion expressions.
1936 (Add_Inherited_Tagged_DIC): There is really no need to preanalyze
1937 and resolve the triaged expression because all substitutions
1938 refer to the proper entities. Update the replacement of
1939 references.
1940 (Build_DIC_Procedure_Body): Add formal parameter
1941 For_Freeze. Add local variable Build_Body. Inherited DIC pragmas
1942 are now only processed when freezing occurs. Build a body only
1943 when one is needed.
1944 (Entity_Hash): Removed.
1945 (Map_Types): New routine.
1946 (Replace_Object_And_Primitive_References): Removed.
1947 (Replace_References): New routine.
1948 (Replace_Type_References): Moved to the library level of Exp_Util.
1949 (Type_Map_Hash): New routine.
1950 (Update_Primitives_Mapping): Update the mapping call.
1951 (Update_Primitives_Mapping_Of_Types): Removed.
1952 * exp_util.ads (Build_DIC_Procedure_Body): Add formal
1953 parameter For_Freeze and update the comment on usage.
1954 (Map_Types): New routine.
1955 (Replace_References): New routine.
1956 (Replace_Type_References): Moved to the library level of Exp_Util.
1957 (Update_Primitives_Mapping_Of_Types): Removed.
1958 * sem_ch7.adb (Preserve_Full_Attributes): Propagate the DIC
1959 properties of the private type to the full view in case the full
1960 view derives from a parent type and inherits a DIC pragma.
1961 * sem_prag.adb (Analyze_Pragma): Guard against a case where a
1962 DIC pragma is placed at the top of a declarative region.
1963
19642017-04-25 Arnaud Charlet <charlet@adacore.com trojanek>
1965
1966 * a-tasatt.adb: Complete previous change and use an unsigned
1967 int to avoid overflow checks.
1968
19692017-04-25 Ed Schonberg <schonberg@adacore.com>
1970
1971 * sem_attr.adb (Analyze_Attribute, case 'Access): Specialize
1972 the error message when the attribute reference is an actual in
1973 a call to a subprogram inherited from a generic formal type with
1974 unknown discriminants, which makes the subprogram and its formal
1975 parameters intrinsic (see RM 6.3.1 (8) and (13)).
1976
2bb988bb
AC
19772017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
1978
1979 * sem_aggr.adb, inline.adb, einfo.adb, einfo.ads, scng.adb,
1980 sem_prag.adb: Minor reformatting.
1981
19822017-04-25 Bob Duff <duff@adacore.com>
1983
1984 * sem_attr.adb (Type_Key): Add code in the
1985 recursive Compute_Type_Key to protect against fetching the source
1986 code for Standard, in case a component of the type is declared
1987 in Standard. There was already code to do this for the original
1988 type, but not for its components.
1989
b03d3f73
AC
19902017-04-25 Javier Miranda <miranda@adacore.com>
1991
1992 * exp_ch3.adb (Build_Initialization_Call): Handle
1993 subtypes of private types when searching for the underlying full
1994 view of a private type.
1995
19962017-04-25 Javier Miranda <miranda@adacore.com>
1997
1998 * sem_res.adb (Set_Mixed_Mode_Operand): A universal
1999 real conditional expression can appear in a fixed-type context
2000 and must be resolved with that context to facilitate the code
2001 generation to the backend.
2002
20032017-04-25 Ed Schonberg <schonberg@adacore.com>
2004
2005 * einfo.adb, einfo.ads (Body_Needed_For_Inlining): New flag,
2006 to indicate whether during inline processing, when some unit U1
2007 appears in the context of a unit U2 compiled for instantiation
2008 or inlining purposes, the body of U1 needs to be compiled as well.
2009 * sem_prag.adb (Process_Inline): Set Body_Needed_For_Inlining if
2010 context is a package declaration.
2011 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration,
2012 Analyze_Generic_Package_Declaration): ditto.
2013 * inline.adb (Analyze_Inlined_Bodies): Check
2014 Body_Needed_For_Inlining.
2015
20162017-04-25 Ed Schonberg <schonberg@adacore.com>
2017
2018 * par.adb (Current_Assign_Node): Global variable use to record
2019 the presence of a target_name in the right hand side of the
2020 assignment being parsed.
2021 * par-ch4.adb (P_Name): If the name is a target_name, mark the
2022 enclosing assignment node accordingly.
2023 * par-ch5.adb (P_Assignment_Statement): Set Current_Assign_Node
2024 appropriately.
2025 * sem_ch5.adb (Analyze_Assignment): Disable expansion before
2026 analyzing RHS if the statement has target_names.
2027 * sem_aggr.adb (Resolve_Iterated_Component_Association): Handle
2028 properly choices that are subtype marks.
2029 * exp_ch5.adb: Code cleanup.
2030
20312017-04-25 Bob Duff <duff@adacore.com>
2032
2033 * s-memory.adb: Add a comment regarding efficiency.
2034 * atree.adb: Fix the assertion, and combine 2 assertions into one,
2035 "the source has an extension if and only if the destination does."
2036 * sem_ch3.adb, sem_ch13.adb: Address ??? comments.
2037
20382017-04-25 Arnaud Charlet <charlet@adacore.com trojanek>
2039
2040 * a-tasatt.adb (Set_Value): Fix handling of 32bits -> 64bits
2041 conversion.
2042
20432017-04-25 Doug Rupp <rupp@adacore.com>
2044
2045 * init.c (__gnat_error_handler) [vxworks]: Turn on sigtramp
2046 handling for ppc64-vx7.
2047 * sigtramp-vxworks-target.inc
2048 [SIGTRAMP_BODY]: Add section for ppc64-vx7.
2049
18e82947
AC
20502017-04-25 Arnaud Charlet <charlet@adacore.com>
2051
2052 * ada_get_targ.adb: New file.
2053
f607cacf
BD
20542017-04-25 Bob Duff <duff@adacore.com>
2055
2056 * uintp.adb (Most_Sig_2_Digits): In case Direct (Right), fetch
2057 Direct_Val (Right), instead of the incorrect Direct_Val (Left).
2058 (UI_GCD): Remove ??? comment involving possible efficiency
2059 improvements. This just isn't important after all these years.
2060 Also minor cleanup.
2061 * uintp.ads: Minor cleanup.
2062
28ad2460
HK
20632017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
2064
2065 * exp_util.adb, exp_util.ads, sem_ch7.adb, sem_prag.adb, exp_ch3.adb:
2066 Revert previous changes.
2067 * scng.adb: Minor reformatting.
2068 * s-stratt.ads: Fix unbalanced parens in comment.
2069
b41c731f
AC
20702017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
2071
2072 * sem_ch3.adb, exp_util.adb, sem_prag.adb, freeze.adb, sem_util.adb:
2073 Minor reformatting.
2074
20752017-04-25 Ed Schonberg <schonberg@adacore.com>
2076
2077 * scng.adb (Scan): Handle '@' appropriately.
2078 * sem_ch5.adb: Code cleanup.
2079
b5360737
AC
20802017-04-25 Ed Schonberg <schonberg@adacore.com>
2081
2082 * freeze.adb (Check_Expression_Function): Do not check for the
2083 use of deferred constants if the freezing of the expression
2084 function is triggered by its generated body, rather than a
2085 premature use.
2086
20872017-04-25 Javier Miranda <miranda@adacore.com>
2088
2089 * exp_attr.adb (Rewrite_Stream_Proc_Call): Handle
2090 subtypes of private types when performing the view conversion.
2091
20922017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
2093
2094 * exp_ch3.adb (Freeze_Type): Signal the DIC body is created for
2095 the purposes of freezing.
2096 * exp_util.adb Update the documentation and structure of the
2097 type map used in class-wide semantics of assertion expressions.
2098 (Add_Inherited_Tagged_DIC): There is really no need to preanalyze
2099 and resolve the triaged expression because all substitutions
2100 refer to the proper entities. Update the replacement of
2101 references.
2102 (Build_DIC_Procedure_Body): Add formal parameter
2103 For_Freeze. Add local variable Build_Body. Inherited DIC pragmas
2104 are now only processed when freezing occurs. Build a body only
2105 when one is needed.
2106 (Entity_Hash): Removed.
2107 (Map_Types): New routine.
2108 (Replace_Object_And_Primitive_References): Removed.
2109 (Replace_References): New routine.
2110 (Replace_Type_References): Moved to the library level of Exp_Util.
2111 (Type_Map_Hash): New routine.
2112 (Update_Primitives_Mapping): Update the mapping call.
2113 (Update_Primitives_Mapping_Of_Types): Removed.
2114 * exp_util.ads (Build_DIC_Procedure_Body): Add formal
2115 parameter For_Freeze and update the comment on usage.
2116 (Map_Types): New routine.
2117 (Replace_References): New routine.
2118 (Replace_Type_References): Moved to the library level of Exp_Util.
2119 (Update_Primitives_Mapping_Of_Types): Removed.
2120 * sem_ch7.adb (Preserve_Full_Attributes): Propagate the DIC
2121 properties of the private type to the full view in case the full
2122 view derives from a parent type and inherits a DIC pragma.
2123 * sem_prag.adb (Analyze_Pragma): Guard against a case where a
2124 DIC pragma is placed at the top of a declarative region.
2125
a187206c
AC
21262017-04-25 Tristan Gingold <gingold@adacore.com>
2127
2128 * s-mmap.ads (Data): Add pragma Inline.
2129
21302017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
2131
2132 * checks.adb (Insert_Valid_Check): Do not use
2133 a renaming to alias a volatile name because this will lead to
2134 multiple evaluations of the volatile name. Use a constant to
2135 capture the value instead.
2136
21372017-04-25 Doug Rupp <rupp@adacore.com>
2138
2139 * init.c [VxWorks Section]: Disable sigtramp for ppc64-vx7.
2140
21412017-04-25 Ed Schonberg <schonberg@adacore.com>
2142
2143 * exp_util.adb, exp_util.ads (Build_Class_Wide_Expression):
2144 Add out parameter to indicate to caller that a wrapper must
2145 be constructed for an inherited primitive whose inherited
2146 pre/postcondition has called to overridden primitives.
2147 * freeze.adb (Check_Inherited_Conditions): Build wrapper body
2148 for inherited primitive that requires it.
2149 * sem_disp.adb (Check_Dispatching_Operation): Such wrappers are
2150 legal primitive operations and belong to the list of bodies
2151 generated after the freeze point of a type.
2152 * sem_prag.adb (Build_Pragma_Check_Equivalent): Use new signature
2153 of Build_Class_Wide_Expression.
2154 * sem_util.adb, sem_util.ads (Build_Overriding_Spec): New procedure
2155 to construct the specification of the wrapper subprogram created
2156 for an inherited operation.
2157
15fc8cb7
AC
21582017-04-25 Bob Duff <duff@adacore.com>
2159
2160 * s-osinte-linux.ads (pthread_mutexattr_setprotocol,
2161 pthread_mutexattr_setprioceiling): Add new interfaces for these
2162 pthread operations.
2163 * s-taprop-linux.adb (Initialize_Lock, Initialize_TCB): Set
2164 protocols as appropriate for Locking_Policy 'C' and 'I'.
2165 * s-taprop-posix.adb: Minor reformatting to make it more similar
2166 to s-taprop-linux.adb.
2167
21682017-04-25 Ed Schonberg <schonberg@adacore.com>
2169
2170 * sem_ch3.adb (Get_Discriminant_Value, Search_Derivation_Levels):
2171 Handle properly a multi- level derivation involving both renamed
2172 and constrained parent discriminants, when the type to be
2173 constrained has fewer discriminants that the ultimate ancestor.
2174
21752017-04-25 Bob Duff <duff@adacore.com>
2176
2177 * sem_util.adb (Is_Object_Reference): In the
2178 case of N_Explicit_Dereference, return False if it came from a
2179 conditional expression.
2180
21812017-04-25 Bob Duff <duff@adacore.com>
2182
2183 * par-ch4.adb (P_Case_Expression): If a semicolon
2184 is followed by "when", assume that ";" was meant to be ",".
2185
605afee8
GD
21862017-04-25 Gary Dismukes <dismukes@adacore.com>
2187
2188 * sem_ch9.adb, sem_ch10.adb, sem_util.adb: Minor reformatting and typo
2189 fixes.
2190
b912db16
AC
21912017-04-25 Arnaud Charlet <charlet@adacore.com>
2192
2193 * rtsfind.ads (SPARK_Implicit_Load): New procedure for forced
2194 loading of an entity.
2195 * rtsfind.adb (SPARK_Implicit_Load): Body with a pattern
2196 previously repeated in the analysis.
2197 * sem_ch9.adb (Analyze_Protected_Type_Declaration): use new
2198 procedure SPARK_Implicit_Load. (Analyze_Task_Type_Declaration):
2199 use new procedure SPARK_Implicit_Load.
2200 * sem_ch10.adb (Analyze_Compilation_Unit): Use new procedure
2201 SPARK_Implicit_Load.
2202
22032017-04-25 Javier Miranda <miranda@adacore.com>
2204
2205 * sem_util.adb (New_Copy_Tree): By default
2206 copying of defining identifiers is prohibited because
2207 this would introduce an entirely new entity into the
2208 tree. This patch introduces an exception to this general
2209 rule: the declaration of constants and variables located in
2210 Expression_With_Action nodes.
2211 (Copy_Itype_With_Replacement): Renamed as Copy_Entity_With_Replacement.
2212 (In_Map): New subprogram.
2213 (Visit_Entity): New subprogram.
2214 (Visit_Node): Handle EWA_Level,
2215 EWA_Inner_Scope_Level, and take care of defining entities defined
2216 in Expression_With_Action nodes.
2217
22182017-04-25 Thomas Quinot <quinot@adacore.com>
2219
2220 * exp_ch6.adb: minor comment edit.
2221 * sinfo.ads, sinfo.adb: New Null_Statement attribute for null
2222 procedure specifications that come from source.
2223 * par-ch6.adb (P_Subprogram, case of a null procedure): Set new
2224 Null_Statement attribute.
2225 * par_sco.adb (Traverse_Declarations_Or_Statements): For a null
2226 procedure, generate statement SCO for the generated NULL statement.
2227 * sem_ch6.adb (Analyze_Null_Procedure): Use null statement from
2228 parser, if available.
2229
d90175a4
AK
22302017-04-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2231
2232 * system-linux-s390.ads: Use Long_Integer'Size to define
2233 Memory_Size.
2234
4c439306
EB
22352017-04-04 Eric Botcazou <ebotcazou@adacore.com>
2236
2237 * sem_ch3.adb (Build_Derived_Record_Type): Fix long line.
2238
5764ee3c
JW
22392017-04-03 Jonathan Wakely <jwakely@redhat.com>
2240
2241 * doc/gnat_ugn/gnat_and_program_execution.rst: Fix typo.
2242 * g-socket.adb (To_Host_Entry): Fix typo in comment.
2243 * gnat_ugn.texi: Fix typo.
2244 * raise.c (_gnat_builtin_longjmp): Fix capitalization in comment.
2245 * s-stposu.adb (Allocate_Any_Controlled): Fix typo in comment.
2246 * sem_ch3.adb (Build_Derived_Record_Type): Likewise.
2247 * sem_util.adb (Mark_Coextensions): Likewise.
2248 * sem_util.ads (Available_Full_View_Of_Component): Likewise.
2249
41f44717
AS
22502017-03-28 Andreas Schwab <schwab@suse.de>
2251
2252 PR ada/80117
2253 * system-linux-aarch64-ilp32.ads: New file.
2254 * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS_COMMON): Rename
2255 from LIBGNAT_TARGET_PAIRS.
2256 (LIBGNAT_TARGET_PAIRS_32, LIBGNAT_TARGET_PAIRS_64): Define.
2257 (LIBGNAT_TARGET_PAIRS): Use LIBGNAT_TARGET_PAIRS_COMMON, and
2258 LIBGNAT_TARGET_PAIRS_64 or LIBGNAT_TARGET_PAIRS_32 for -mabi=lp64
2259 or -mabi=ilp32, resp.
2260
e3e8f22f
JC
22612017-03-14 James Cowgill <James.Cowgill@imgtec.com>
2262
2263 * s-osinte-linux.ads (struct_sigaction): Use correct type for sa_flags.
2264
2ff555ff
TT
22652017-03-08 Thanassis Tsiodras <ttsiodras@gmail.com>
2266
2267 PR ada/79903
2268 * socket.c (__gnat_gethostbyaddr): Add missing test for __rtems__.
2269
4f8fe72b
EB
22702017-03-08 Eric Botcazou <ebotcazou@adacore.com>
2271
2272 PR ada/79945
2273 * system-linux-ppc.ads (Default_Bit_Order): Use Standard's setting.
2274
2275 * system-linux-arm.ads (Default_Bit_Order): Likewise.
2276 * system-linux-mips.ads (Default_Bit_Order): Likewise.
2277 * system-linux-armeb.ads: Delete.
2278 * system-linux-mipsel.ads: Likewise.
2279 * gcc-interface/Makefile.in (MIPS/Linux): Adjust.
2280 (ARM/Linux): Likewise.
2281
b9822443
JJ
22822017-02-24 Jakub Jelinek <jakub@redhat.com>
2283
2284 PR c/79677
2285 * gcc-interface/misc.c (gnat_handle_option): Pass true to
2286 handle_generated_option GENERATED_P.
2287
741bd9b1
EB
22882017-02-24 Eric Botcazou <ebotcazou@adacore.com>
2289
2290 * gcc-interface/decl.c (gnat_to_gnu_field): Do not remove the wrapper
2291 around a justified modular type if it doesn't have the same scalar
2292 storage order as the enclosing record type.
2293
830815b9
EB
22942017-02-24 Eric Botcazou <ebotcazou@adacore.com>
2295
2296 * gcc-interface/trans.c (gnat_to_gnu): Do not apply special handling
2297 of boolean rvalues to function calls.
2298
491527af
EB
22992017-02-24 Eric Botcazou <ebotcazou@adacore.com>
2300
2301 * gcc-interface/utils.c (fold_bit_position): New function.
2302 (rest_of_record_type_compilation): Call it instead of bit_position to
2303 compute the field position and remove the call to remove_conversions.
2304 (compute_related_constant): Factor out the multiplication in both
2305 operands, if any, and streamline the final test.
2306
0b9cdb9a
EB
23072017-02-24 Eric Botcazou <ebotcazou@adacore.com>
2308
2309 * gcc-interface/trans.c (return_value_ok_for_nrv_p): Add sanity check.
2310
59909673
EB
23112017-02-24 Eric Botcazou <ebotcazou@adacore.com>
2312
2313 * gcc-interface/decl.c: Include demangle.h.
2314 (is_cplusplus_method): Return again true for a primitive operation
2315 only if it is dispatching. For a subprogram with an interface name,
2316 call the demangler to get the number of C++ parameters and compare it
2317 with the number of Ada parameters.
2318
8ff873dc
EB
23192017-02-24 Eric Botcazou <ebotcazou@adacore.com>
2320
2321 * gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu): If
2322 there is no end label, put the location of the At_End procedure on
2323 the call to the procedure.
2324
23252017-02-24 Eric Botcazou <ebotcazou@adacore.com>
2326
2327 * gcc-interface/misc.c (gnat_type_max_size): Try to return a meaningful
2328 value for array types with TYPE_INDEX_TYPE set on their domain type.
2329 * gcc-interface/utils.c (max_size): For operations and expressions, do
2330 not build a new node if the operands have not changed or are missing.
2331
4af362a9
EB
23322017-02-24 Eric Botcazou <ebotcazou@adacore.com>
2333
2334 * gcc-interface/utils.c (max_size) <tcc_expression>: Flip the second
2335 argument when recursing on TRUTH_NOT_EXPR.
2336
19fc3f9a
JM
23372017-02-12 John Marino <gnugcc@marino.st>
2338
2339 * system-freebsd-x86.ads: Rename into...
2340 * system-freebsd.ads: ...this.
2341 (Default_Bit_Order): Define using Standard'Default_Bit_Order.
2342 * gcc-interface/Makefile.in: Support aarch64-freebsd.
2343 (x86-64/FreeBSD): Adjust to above renaming.
2344 (i386/FreeBSD): Likewise.
2345
b5811a69
GP
23462017-02-09 Gerald Pfeifer <gerald@pfeifer.com>
2347
2348 * comperr.adb: Update FSF bug reporting URL.
2349
372db67b
EB
23502017-02-01 Eric Botcazou <ebotcazou@adacore.com>
2351 Jakub Jelinek <jakub@redhat.com>
2352
2353 PR ada/79309
2354 * adaint.c (__gnat_killprocesstree): Fix broken string handling.
2355
e5e391d6
MO
23562017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com>
2357
2358 PR lto/79061
2359 * gcc-interface/utils.c (get_global_context): Pass main_input_filename
2360 to build_translation_unit_decl.
2361
b4fad9fa
JM
23622017-01-23 Javier Miranda <miranda@adacore.com>
2363
2364 * sem_util.adb (New_Copy_Tree): Code cleanup:
2365 removal of the internal map (ie. variable Actual_Map, its
2366 associated local variables, and all the code handling it).
2367 * sem_ch9.adb (Analyze_Task_Type_Declaration): in GNATprove mode
2368 force loading of the System package when processing a task type.
2369 (Analyze_Protected_Type_Declaration): in GNATprove mode force
2370 loading of the System package when processing a protected type.
2371 * sem_ch10.adb (Analyze_Compilation_Unit): in GNATprove mode
2372 force loading of the System package when processing compilation
2373 unit with a main-like subprogram.
2374 * frontend.adb (Frontend): remove forced loading of the System
2375 package.
2376
d268147d
ES
23772017-01-23 Ed Schonberg <schonberg@adacore.com>
2378
2379 * sem_prag.adb (Default_Initial_Condition): If the desired type
2380 declaration is a derived type declaration with discriminants,
2381 it is rewritten as a private type declaration.
2382 * sem_ch13.adb (Replace_Type_References_Generic,
2383 Visible_Component): A discriminated private type with descriminnts
2384 has components that must be rewritten as selected components
2385 if they appear as identifiers in an aspect expression such as
2386 a Default_Initial_Condition.
2387 * sem_util.adb (Defining_Entity): support N_Iterator_Specification
2388 nodes.
2389
dafe11cd
HK
23902017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
2391
2392 * ghost.ads, ghost.adb (Is_Ignored_Ghost_Unit): New routine.
2393 * gnat1drv.adb Generate an empty object file for an ignored
2394 Ghost compilation unit.
2395 * inline.adb, sem_util.adb, sem_ch4.adb: Minor reformatting.
2396
bfaf8a97
AC
23972017-01-23 Yannick Moy <moy@adacore.com>
2398
2399 * sem_ch4.adb (Analyze_Indexed_Component_Form):
2400 Adapt to inlined prefix with string literal subtype.
2401 * inline.adb (Expand_Inlined_Call): Keep unchecked
2402 conversion inside inlined call when formal type is constrained.
2403
24042017-01-23 Javier Miranda <miranda@adacore.com>
2405
2406 * sem_util.adb (New_Copy_Tree): Code cleanup:
2407 removal of global variables. All the global variables, global
2408 functions and tables of this subprogram are now declared locally.
2409
9313a26a
AC
24102017-01-23 Gary Dismukes <dismukes@adacore.com>
2411
2412 * exp_strm.ads: Minor reformatting and typo fixes.
2413
24142017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
2415
2416 * sem_aggr.adb, par_sco.adb, exp_util.adb, sem.adb, sem_ch4.adb,
2417 exp_aggr.adb: Minor reformatting.
2418 * g-diopit.adb: minor grammar/punctuation fix in comment.
2419 * g-byorma.ads: minor fix of unbalanced parens in comment.
2420
24212017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
2422
2423 * par.adb: Update the documentation of component Labl.
2424 * par-ch6.adb (P_Return_Statement): Set the expected label of
2425 an extended return statement to Error.
2426
24272017-01-23 Tristan Gingold <gingold@adacore.com>
2428
2429 * s-boustr.ads, s-boustr.adb (Is_Full): New function.
2430
24312017-01-23 Ed Schonberg <schonberg@adacore.com>
2432
2433 * expander.adb: Handle N_Delta_Aggregate.
2434
24352017-01-23 Javier Miranda <miranda@adacore.com>
2436
2437 * exp_ch6.adb (Expand_Call): Improve the code that
2438 checks if some formal of the called subprogram is a class-wide
2439 interface, to handle subtypes of class-wide interfaces.
2440
24412017-01-23 Javier Miranda <miranda@adacore.com>
2442
2443 * checks.adb (Apply_Parameter_Aliasing_Checks):
2444 Remove side effects of the actuals before generating the overlap
2445 check.
2446
4b7fd131
AC
24472017-01-23 Justin Squirek <squirek@adacore.com>
2448
2449 * exp_strm.ads, exp_strm.ads
2450 (Build_Record_Or_Elementary_Input_Function): Add an extra parameter so
2451 as to avoid getting the underlying type by default.
2452 * exp_attr.adb (Expand_N_Attribute_Reference): Remove use of
2453 underlying type in the Iiput and output attribute cases when
2454 building their respective functions.
2455
24562017-01-23 Gary Dismukes <dismukes@adacore.com>
2457
2458 * scng.adb: Minor reformatting of error message.
2459
24602017-01-23 Ed Schonberg <schonberg@adacore.com>
2461
2462 * sem_ch6.adb (Analyze_Expression_Function): Do not attempt
2463 to freeze the return type of an expression funxtion that is a
2464 completion, if the type is a limited view and the non-limited
2465 view is available.
2466
9eb8d5b4
AC
24672017-01-23 Ed Schonberg <schonberg@adacore.com>
2468
2469 * par-ch4.adb (P_Aggregate_Or_Parent_Expr): Recognize delta
2470 aggregate construct.
2471 (P_Record_Or_Array_Component_Association): An array aggregate
2472 can start with an Iterated_Component_Association.
2473 * scng.adb: Modify error message on improper use of @ in earlier
2474 versions of the language.
2475 * sinfo.ads: New node kind N_Delta_Aggregate.
2476 * sinfo.adb: An N_Delta_Aggregate has component associations and
2477 an expression.
2478 * sem_res.adb (Resolve): Call Resolve_Delta_Aggregate.
2479 * sem_aggr.ads, sem_aggr.adb (Resolve_Iterated_Component_Association):
2480 Create a new index for each one of the choices in the association,
2481 to prevent spurious homonyms in the scope.
2482 (Resolve_Delta_Aggregate): New.
2483 * sem.adb: An N_Delta_Aggregate is analyzed like an aggregate.
2484 * exp_util.adb (Insert_Actions): Take into account
2485 N_Delta_Aggregate.
2486 * exp_aggr.ads: New procedure Expand_N_Delta_Aggregate.
2487 * exp_aggr.adb: New procedure Expand_N_Delta_Aggregate,
2488 and local procedures Expand_Delta_Array_Aggregate and
2489 expand_Delta_Record_Aggregate.
2490 * sprint.adb: Handle N_Delta_Aggregate.
2491
24922017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
2493
2494 * exp_ch11.adb (Expand_N_Exception_Declaration): Generate an
2495 empty name when the exception declaration is subject to pragma
2496 Discard_Names.
2497 (Null_String): New routine.
2498
24992017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
2500
2501 * par-ch9.adb (P_Protected_Definition): Parse
2502 any optional and potentially illegal pragmas which appear in
2503 a protected operation declaration list.
2504 (P_Task_Items): Parse
2505 any optional and potentially illegal pragmas which appear in a
2506 task item list.
2507
a51368fa
AC
25082017-01-23 Pascal Obry <obry@adacore.com>
2509
2510 * s-taprop-mingw.adb (Enter_Task): Initialize the Thread handle which
2511 is needed when a foreign thread call a Win32 API using a thread handle
2512 like GetThreadTimes() for example.
2513
25142017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
2515
2516 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Do not
2517 allow an 'Address clause to be specified on a prefix of a
2518 class-wide type.
2519
25202017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
2521
2522 * checks.adb (Insert_Valid_Check): Ensure that the prefix of
2523 attribute 'Valid is a renaming of the original expression when
2524 the expression denotes a name. For all other kinds of expression,
2525 use a constant to capture the value.
2526 * exp_util.adb (Is_Name_Reference): Moved to Sem_Util.
2527 * sem_util.ads, sem_util.adb (Is_Name_Reference): Moved from Exp_Util.
2528
25292017-01-23 Justin Squirek <squirek@adacore.com>
2530
2531 * sem_eval.adb (Eval_Integer_Literal): Add special
2532 case to avoid optimizing out check if the literal appears in
2533 an if-expression.
2534
25352017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
2536
2537 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Do not
2538 allow an 'Address clause to be specified on a prefix of a
2539 class-wide type.
2540
25412017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
2542
2543 * checks.adb (Insert_Valid_Check): Ensure that the prefix of
2544 attribute 'Valid is a renaming of the original expression when
2545 the expression denotes a name. For all other kinds of expression,
2546 use a constant to capture the value.
2547 * exp_util.adb (Is_Name_Reference): Moved to Sem_Util.
2548 * sem_util.ads, sem_util.adb (Is_Name_Reference): Moved from Exp_Util.
2549
25502017-01-23 Justin Squirek <squirek@adacore.com>
2551
2552 * sem_eval.adb (Eval_Integer_Literal): Add special
2553 case to avoid optimizing out check if the literal appears in
2554 an if-expression.
2555
913e4b36
ES
25562017-01-23 Ed Schonberg <schonberg@adacore.com>
2557
2558 * sem_ch4.adb (Try_Primitive_Operations,
2559 Is_Valid_First_Argument_Of): argument is valid if it is a derived
2560 type with unknown discriminants that matches its underlying
2561 record view.
2562 * exp_util.adb (Expand_Subtype_From_Expr): Do not expand
2563 expression if its type is derived from a limited type with
2564 unknown discriminants, because the expansion (which is a call)
2565 must be expanded in the enclosing context to add the proper build-
2566 in-place parameters to the call.
2567 * lib.ads, exp_ch9.adb: Minor fixes in comments.
2568
a77152ca
AC
25692017-01-23 Yannick Moy <moy@adacore.com>
2570
2571 * frontend.adb (Frontend): Do not load runtime
2572 unit for GNATprove when parsing failed.
2573 * exp_ch9.adb: minor removal of extra whitespace
2574 * exp_ch6.adb: minor typo in comment
2575 * sem_util.adb: Code cleanup.
2576 * exp_ch9.ads, par-ch2.adb: minor style fixes in whitespace and comment
2577 * a-ngcefu.adb: minor style fix in whitespace
2578
25792017-01-23 Thomas Quinot <quinot@adacore.com>
2580
2581 * scos.ads: Document usage of 'd' as default SCO kind for
2582 declarations.
2583 * par_sco.adb (Traverse_Declarations_Or_Statements.
2584 Traverse_Degenerate_Subprogram): New supporting routine for expression
2585 functions and null procedures.
2586 (Traverse_Declarations_Or_Statements.Traverse_One): Add
2587 N_Expression_Function to the subprogram case; add required
2588 support for null procedures and expression functions.
2589
25902017-01-23 Bob Duff <duff@adacore.com>
2591
2592 * namet.ads (Bounded_String): Decrease the size of type
2593 Bounded_String to avoid running out of stack space.
2594 * namet.ads (Append): Don't ignore buffer overflow; raise
2595 Program_Error instead.
2596
d43584ca
AC
25972017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
2598
2599 * exp_ch5.adb, freeze.adb, par-ch4.adb, scng.adb, sem_ch13.adb,
2600 sem_ch3.adb, sem_ch5.adb, sem_ch5.ads, sem_util.adb, sinfo.ads: Minor
2601 reformatting.
2602 * exp_ch9.adb: minor style fix in comment.
2603
26042017-01-23 Ed Schonberg <schonberg@adacore.com>
2605
2606 * sem_ch4.adb (Analyze_Allocator): Handle properly a type derived
2607 for a limited record extension with unknown discriminants whose
2608 full view has no discriminants.
2609
26102017-01-23 Yannick Moy <moy@adacore.com>
2611
2612 * exp_spark.adb: Alphabetize with clauses.
2613
0f83b044
AC
26142017-01-23 Yannick Moy <moy@adacore.com>
2615
2616 * sem_util.adb (Has_Enabled_Property): Treat
2617 protected objects and variables differently from other variables.
2618
52b70b1b
TQ
26192017-01-23 Thomas Quinot <quinot@adacore.com>
2620
2621 * sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
2622 Split original Ada 95 part off into new subprogram
2623 below. Call that subprogram (instead of proceeding with
2624 AI95-0133 behaviour) if debug switch -gnatd.p is in use.
2625 (Adjust_Record_For_Reverse_Bit_Order_Ada_95): ... new subprogram
2626 * debug.adb Document new switch -gnatd.p
2627 * freeze.adb (Freeze_Entity.Freeze_Record_Type): Do not adjust
2628 record for reverse bit order if an error has already been posted
2629 on the record type. This avoids generating extraneous "info:"
2630 messages for illegal code.
2631
2a02fa98
JS
26322017-01-23 Justin Squirek <squirek@adacore.com>
2633
2634 * sem_ch3.adb (Analyze_Declarations): Correct comments
2635 * freeze.adb (Find_Constant): Add detection of deferred constants
2636 so they are not incorrectly flagged as premature.
2637
ae33543c
ES
26382017-01-23 Ed Schonberg <schonberg@adacore.com>
2639
2640 * scans.ads: New token At_Sign. Remove '@' from list of illegal
2641 characters for future version of the language. '@' is legal name.
2642 * scng.ads, scng.adb (Scan): Handle '@' appropriately.
2643 * scn.adb (Scan_Reserved_Identifier): An occurrence of '@'
2644 denotes a Target_Name.
2645 * par-ch4.adb (P_Name, P_Primary): Handle Target_Name.
2646 * sinfo.ads, sinfo.adb (N_Target_Name): New non-terminal node.
2647 (Has_Target_Names): New flag on N_Assignment_Statement, to
2648 indicate that RHS has occurrences of N_Target_Name.
2649 * sem.adb: Call Analyze_Target_Name.
2650 * sem_ch5.ads, sem_ch5.adb (Analyze_Target_Name): New subpogram.
2651 (urrent_LHS): Global variable that denotes LHS of assignment,
2652 used in the analysis of Target_Name nodes.
2653 * sem_res.adb (Resolve_Target_Name): New procedure.
2654 * exp_ch5.adb (Expand_Assign_With_Target_Names): (AI12-0125):
2655 N is an assignment statement whose RHS contains occurences of @
2656 that designate the value of the LHS of the assignment. If the
2657 LHS is side-effect free the target names can be replaced with
2658 a copy of the LHS; otherwise the semantics of the assignment
2659 is described in terms of a procedure with an in-out parameter,
2660 and expanded as such.
2661 (Expand_N_Assignment_Statement): Call
2662 Expand_Assign_With_Target_Names when needed.
2663 * exp_util.adb (Insert_Actions): Take into account N_Target_Name.
2664 * sprint.adb: Handle N_Target_Name.
2665
13230c68
AC
26662017-01-23 Eric Botcazou <ebotcazou@adacore.com>
2667
2668 * checks.adb: Minor fix in comment.
2669
26702017-01-23 Philippe Gil <gil@adacore.com>
2671
2672 * g-debpoo.adb (Do_Report) remove freed chunks from chunks
2673 count in Sort = Memory_Usage or Allocations_Count
2674
26752017-01-23 Justin Squirek <squirek@adacore.com>
2676
2677 * sem_ch3.adb: Code cleanup.
2678
26792017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
2680
2681 * sem_prag.adb (Analyze_Refined_Depends_In_Decl_Part): Move all global
2682 variables to the local variable section. Update the profile
2683 of various nested routine that previously had visibility
2684 of those globals. One the matching phase has completed,
2685 remove certain classes of clauses which are considered noise.
2686 (Check_Dependency_Clause): Properly detect a match between two
2687 'Result attributes. Update the various post-match cases to use
2688 Is_Already_Matched as this routine now automatically recognizes
2689 a previously matched 'Result attribute.
2690 (Is_Already_Matched): New routine.
2691 (Remove_Extra_Clauses): New routine.
2692 (Report_Extra_Clauses): Remove the detection of ... => null
2693 clauses as this is now done in Remove_Extra_Clauses.
2694
6adb6030
AC
26952017-01-23 Ed Schonberg <schonberg@adacore.com>
2696
2697 * sem_aggr.adb (Resolve_Array_Aggregate): In ASIS mode do not
2698 report on spurious overlaps between values involving a subtype
2699 with a static predicate, because the expansion of such a subtype
2700 into individual ranges in inhibited in ASIS mode.
2701
27022017-01-23 Justin Squirek <squirek@adacore.com>
2703
2704 * sem_ch3.adb (Analyze_Declarations): Add detection
2705 of an edge case and delay freezing if it is present.
2706
f991bd8e
HK
27072017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
2708
2709 * sem_ch3.adb, exp_spark.adb, exp_attr.adb, sem_ch9.adb, sem_prag.adb,
2710 sem_util.adb, sem_warn.adb, exp_ch3.adb: Minor reformatting.
2711
27122017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
2713
2714 * freeze.adb (Freeze_Subprogram): Ensure that all anonymous
2715 access-to-subprogram types inherit the convention of the
2716 associated subprogram. (Set_Profile_Convention): New routine.
2717 * sem_ch6.adb (Check_Conformance): Do not compare the conventions
2718 of the two entities directly, use Conventions_Match to account
2719 for anonymous access-to-subprogram and subprogram types.
2720 (Conventions_Match): New routine.
2721
d553a695
CD
27222017-01-23 Claire Dross <dross@adacore.com>
2723
2724 * exp_spark.adb (Expand_SPARK_Attribute_Reference): For attributes
2725 which return Universal_Integer, force the overflow check flag for
2726 Length and Range_Length for types as big as Long_Long_Integer.
2727
6d67bea9
AC
27282017-01-23 Claire Dross <dross@adacore.com>
2729
2730 * exp_spark.adb (Expand_SPARK_Attribute_Reference): For
2731 attributes which return Universal_Integer, introduce a conversion
2732 to the expected type with the appropriate check flags set.
2733 * sem_res.adb (Resolve_Range): The higher bound can be in Typ's
2734 base type if the range is null. It may still be invalid if it
2735 is higher than the lower bound. This is checked later in the
2736 context in which the range appears.
2737
27382017-01-23 Pierre-Marie de Rodat <derodat@adacore.com>
2739
2740 * scos.ads: Introduce a constant to represent ignored
2741 dependencies in SCO_Unit_Table_Entry.
2742
64a4f612
AC
27432017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
2744
2745 * exp_ch9.adb (Expand_N_Protected_Type_Declaration): Remove extra
2746 spaces from error messages.
2747
27482017-01-23 Ed Schonberg <schonberg@adacore.com>
2749
2750 * exp_ch3.adb (Check_Large_Modular_Array): New procedure,
2751 subsidiary to Expand_N_Object_ Declaration, to compute a guard on
2752 an object declaration for an array type with a modular index type
2753 with the size of Long_Long_Integer. Special processing is needed
2754 in this case to compute reliably the size of the object, and
2755 eventually to raise Storage_Error, when wrap-around arithmetic
2756 might compute a meangingless size for the object.
2757
27582017-01-23 Justin Squirek <squirek@adacore.com>
2759
2760 * a-wtenau.adb, par-endh.adb, sem_prag.adb,
2761 sem_type.adb: Code cleanups.
2762
be4e989c
BD
27632017-01-23 Bob Duff <duff@adacore.com>
2764
2765 * sem_res.adb (Resolve_Call): In the part of the code where
2766 it is deciding whether to turn the call into an indexed
2767 component, avoid doing so if the call is to an instance of
2768 Unchecked_Conversion. Otherwise, the compiler turns it into an
2769 indexed component, and resolution of that turns it back into a
2770 function call, and so on, resulting in infinite recursion.
2771 * sem_util.adb (Needs_One_Actual): If the first formal has a
2772 default, then return False.
2773
22564ca9
EB
27742017-01-21 Eric Botcazou <ebotcazou@adacore.com>
2775
2776 * sem_eval.adb (Compile_Time_Compare): Reinstate the expr+literal (etc)
2777 optimizations when the type is modular and the offsets are equal.
2778
0a3ec628
AC
27792017-01-20 Thomas Quinot <quinot@adacore.com>
2780
2781 * sem_warn.adb (Warn_On_Useless_Assignment): Adjust wording of warning
2782 message.
2783
27842017-01-20 Nicolas Roche <roche@adacore.com>
2785
2786 * terminals.c: Ignore failures on setpgid and tcsetpgrp commands.
2787
27882017-01-20 Bob Duff <duff@adacore.com>
2789
2790 * sem_eval.adb (Compile_Time_Compare): Disable the expr+literal
2791 (etc) optimizations when the type is modular.
2792
27932017-01-20 Yannick Moy <moy@adacore.com>
2794
2795 * sem_ch6.adb (Move_Pragmas): move some pragmas,
2796 but copy the SPARK_Mode pragma instead of moving it.
2797 (Build_Subprogram_Declaration): Ensure that the generated spec
2798 and original body share the same SPARK_Pragma aspect/pragma.
2799 * sem_util.adb, sem_util.ads (Copy_SPARK_Mode_Aspect): New
2800 procedure to copy SPARK_Mode aspect.
2801
28022017-01-20 Bob Duff <duff@adacore.com>
2803
2804 * sem_ch3.adb (Analyze_Declarations): Disable Resolve_Aspects
2805 even in ASIS mode.
2806 * sem_ch13.adb (Resolve_Name): Enable setting the entity to
2807 Empty even in ASIS mode.
2808
be42aa71
AC
28092017-01-20 Hristian Kirtchev <kirtchev@adacore.com>
2810
2811 * exp_ch9.adb: minor style fixes in comments.
2812 * sem_ch9.adb (Analyze_Delay_Relative): in GNATprove mode a delay
2813 relative statement introduces an implicit dependency on
2814 Ada.Real_Time.Clock_Time.
2815 * sem_util.adb: Minor reformatting.
2816
28172017-01-20 Ed Schonberg <schonberg@adacore.com>
2818
2819 * sem_ch13.adb (Analyze_Aspect_Specifications): Aspect Alignment
2820 must be treated as delayed aspect even if the expression is
2821 a literal, because the aspect affects the freezing and the
2822 elaboration of the object to which it applies.
2823
28242017-01-20 Tristan Gingold <gingold@adacore.com>
2825
2826 * s-osinte-vxworks.ads (Interrup_Range): New subtype.
2827
28282017-01-20 Ed Schonberg <schonberg@adacore.com>
2829
2830 * lib-xref.adb (Generate_Reference): Do not warn about the
2831 presence of a pragma Unreferenced if the entity appears as the
2832 actual in a procedure call that does not come from source.
2833
28342017-01-20 Pascal Obry <obry@adacore.com>
2835
2836 * expect.c, terminals.c: Fix some warnings about unused variables.
2837 * gsocket.h, adaint.c, adaint.h: Fix some more warnings in the C part
2838 of the runtime.
2839
28402017-01-20 Bob Duff <duff@adacore.com>
2841
2842 * exp_attr.adb (Constrained): Apply an access check (check that
2843 the prefix is not null) when the prefix denotes an object of an
2844 access type; that is, when there is an implicit dereference.
2845
28462017-01-20 Gary Dismukes <dismukes@adacore.com>
2847
2848 * s-rident.ads (constant Profile_Info): Remove
2849 No_Calendar from GNAT_Extended_Ravenscar restrictions.
2850
28512017-01-20 Tristan Gingold <gingold@adacore.com>
2852
2853 * s-maccod.ads: Add pragma No_Elaboration_Code_All
2854
6e9e35e1
AC
28552017-01-20 Hristian Kirtchev <kirtchev@adacore.com>
2856
2857 * ghost.adb (Mark_Ghost_Clause): New routine.
2858 (Prune_Node): Do not prune compilation unit nodes.
2859 (Remove_Ignored_Ghost_Code): Prune the compilation unit node directly.
2860 This does not touch the node itself, but does prune all its fields.
2861 * ghost.ads (Mark_Ghost_Clause): New routine.
2862 * sem_ch8.adb (Analyze_Use_Package): Emit an error when a use
2863 package clause mentions Ghost and non-Ghost packages. Mark a
2864 use package clause as Ghost when it mentions a Ghost package.
2865 (Analyze_Use_Type): Emit an error when a use type clause mentions
2866 Ghost and non-Ghost types. Mark a use type clause as Ghost when
2867 it mentions a Ghost type.
2868 * sem_ch10.adb (Analyze_With_Clause): Mark a with clause as
2869 Ghost when it withs a Ghost unit.
2870
28712017-01-20 Javier Miranda <miranda@adacore.com>
2872
2873 * sem_res.adb (Resolve_Call): If a function call
2874 returns a limited view of a type and at the point of the call the
2875 function is not declared in the extended main unit then replace
2876 it with the non-limited view, which must be available. If the
2877 called function is in the extended main unit then no action is
2878 needed since the back-end handles this case.
2879
28802017-01-20 Eric Botcazou <ebotcazou@adacore.com>
2881
2882 * sem_ch7.adb (Contains_Subp_Or_Const_Refs): Rename into...
2883 (Contains_Subprograms_Refs): ...this. Adjust comment
2884 for constants. (Is_Subp_Or_Const_Ref): Rename into...
2885 (Is_Subprogram_Ref): ...this.
2886 (Has_Referencer): Rename Has_Non_Subp_Const_Referencer variable into
2887 Has_Non_Subprograms_Referencer and adjust comment. Remove
2888 incorrect shortcut for package declarations and bodies.
2889
28902017-01-20 Ed Schonberg <schonberg@adacore.com>
2891
2892 * sem_ch3.adb (Complete_Private_Subtype): If the scope of the
2893 base type differs from that of the completion and the private
2894 subtype is an itype (created for a constraint on an access
2895 type e.g.), set Delayed_Freeze on both to prevent out-of-scope
2896 anomalies in gigi.
2897
28982017-01-20 Hristian Kirtchev <kirtchev@adacore.com>
2899
2900 * sem_ch6.adb (Analyze_Subprogram_Body_Helper):
2901 When inheriting the SPARK_Mode of a prior expression function,
2902 look at the properly resolved entity rather than the initial
2903 candidate which may denote a homonym.
2904
29052017-01-20 Ed Schonberg <schonberg@adacore.com>
2906
2907 * sem_prag.adb (Rewrite_Assertion_Kind): If the name is
2908 Precondition or Postcondition, and the context is pragma
2909 Check_Policy, indicate that this Pre-Ada2012 usage is deprecated
2910 and suggest the standard names Assertion_Policy /Pre /Post
2911 instead.
2912
7124d1a5
HK
29132017-01-20 Hristian Kirtchev <kirtchev@adacore.com>
2914
2915 * sem_ch10.adb, sem_cat.adb: Minor reformatting.
2916
89a53f83
AC
29172017-01-20 Javier Miranda <miranda@adacore.com>
2918
2919 * sem_ch3.adb (Access_Type_Declaration): Protect access to the
2920 Entity attribute.
2921 * sem_ch10.adb (Install_Siblings): Skip processing malformed trees.
2922 * sem_cat.adb (Validate_Categoriztion_Dependency): Skip processing
2923 malformed trees.
2924
29252017-01-20 Ed Schonberg <schonberg@adacore.com>
2926
2927 * sem_ch13.adb (Analyze_Aspect_Specification, case
2928 Dynamic_Predicate): If the entity E is a subtype that inherits
2929 a static predicate for its parent P,, the inherited and the
2930 new predicate combine in the generated predicate function,
2931 and E only has a dynamic predicate.
2932
29332017-01-20 Tristan Gingold <gingold@adacore.com>
2934
2935 * s-boustr.ads, s-boustr.adb: New package.
2936 * Makefile.rtl: Add s-boustr.
2937
29382017-01-20 Hristian Kirtchev <kirtchev@adacore.com>
2939
2940 * inline.adb (Process_Formals): Qualify the
2941 expression of a return statement when it yields a universal type.
2942
29432017-01-20 Hristian Kirtchev <kirtchev@adacore.com>
2944
2945 * freeze.adb (Freeze_All): Freeze the default
2946 expressions of all eligible formal parameters that appear in
2947 entries, entry families, and protected subprograms.
2948
f68fc405
AC
29492017-01-20 Ed Schonberg <schonberg@adacore.com>
2950
2951 * sem_ch3.adb (Check_Nonoverridable_Aspects); Refine check
2952 for illegal inherited Implicit_Dereference aspects with renamed
2953 discriminants.
2954
29552017-01-20 Javier Miranda <miranda@adacore.com>
2956
2957 * debug.adb (switch d.6): do not avoid declaring unreferenced itypes.
2958 * nlists.ads (Lock_Lists, Unlock_Lists): New subprograms.
2959 * nlists.adb (Lock_Lists, Unlock_Lists): New subprograms.
2960 (Set_First, Set_Last, Set_List_Link, Set_Next, Set_Parent,
2961 Set_Prev, Tree_Read): Adding assertion.
2962 * atree.ads (Lock_Nodes, Unlock_Nodes): New subprograms.
2963 * atree.adb (Lock_Nodes, Unlock_Nodes): New subprograms.
2964 (Set_Analyzed, Set_Check_Actuals, Set_Comes_From_Source,
2965 Set_Ekind, Set_Error_Posted, Set_Has_Aspects,
2966 Set_Is_Ignored_Ghost_Node, Set_Original_Node, Set_Paren_Count,
2967 Set_Parent, Set_Sloc, Set_Nkind, Set_FieldNN, Set_NodeNN,
2968 Set_ListNN, Set_ElistNN, Set_NameN, Set_StrN, Set_UintNN,
2969 Set_UrealNN, Set_FlagNNN, Set_NodeN_With_Parent,
2970 Set_ListN_With_Parent): Adding assertion.
2971
29722017-01-20 Ed Schonberg <schonberg@adacore.com>
2973
2974 * sem_prag.adb (Process_Convention): Diagnose properly a pragma
2975 import that applies to several homograph subprograms. when one
2976 of them is declared by a subprogram body.
2977
29782017-01-20 Justin Squirek <squirek@adacore.com>
2979
2980 * exp_ch6.adb (Expand_Call): Remove optimization
2981 that nulls out calls to null procedures.
2982
f4ef7b06
AC
29832017-01-20 Yannick Moy <moy@adacore.com>
2984
2985 * inline.adb (Expand_Inlined_Call): Keep more
2986 precise type of actual for inlining whenever possible. In
2987 particular, do not switch to the formal type in GNATprove mode in
2988 some case where the GNAT backend might require it for visibility.
2989
29902017-01-20 Ed Schonberg <schonberg@adacore.com>
2991
2992 * sem_ch3.adb (Check_Non_Overridable_Aspects): An inherited
2993 aspect Implicit_Dereference can be inherited by a full view if
2994 the partial view has no discriminants, because there is no way
2995 to apply the aspect to the partial view.
2996 (Build_Derived_Record_Type): If derived type renames discriminants
2997 of the parent, the new discriminant inherits the aspect from
2998 the old one.
2999 * sem_ch4.adb (Analyze_Call): Handle properly a parameterless
3000 call through an access discriminant designating a subprogram.
3001 * sem_ch5.adb (Analyze_Assignment): (Analyze_Call): Handle
3002 properly a parameterless call through an access discriminant on
3003 the left-hand side of an assignment.
3004 * sem_res.adb (resolve): If an interpreation involves a
3005 discriminant with an implicit dereference and the expression is an
3006 entity, resolution takes place later in the appropriate routine.
3007 * sem_ch13.adb (Analyze_Aspect_Implicit_Dereference): Recognize
3008 access discriminants that designate a subprogram type.
3009
30102017-01-20 Pascal Obry <obry@adacore.com>
3011
3012 * a-locale.adb, a-locale.ads: Update Ada.Locales for RM 2012 COR:1:2016
3013
ce06d641
AC
30142017-01-20 Yannick Moy <moy@adacore.com>
3015
3016 * sem_ch10.adb (Check_No_Elab_Code_All): Do not issue an error
3017 on implicitly with'ed units in GNATprove mode.
3018 * sinfo.ads (Implicit_With): Document use of flag for implicitly
3019 with'ed units in GNATprove mode.
3020
30212017-01-20 Ed Schonberg <schonberg@adacore.com>
3022
3023 * sem_cat.adb (Validate_Static_Object_Name): In a preelaborated
3024 unit Do not report an error on a non-static entity that appears
3025 in the context of a spec expression, such as an aspect expression.
3026
30272017-01-20 Hristian Kirtchev <kirtchev@adacore.com>
3028
3029 * einfo.adb: Flag298 now denotes Is_Underlying_Full_View.
3030 (Is_Underlying_Full_View): New routine.
3031 (Set_Is_Underlying_Full_View): New routine.
3032 (Write_Entity_Flags): Add an entry for Is_Underlying_Full_View.
3033 * einfo.ads Add new attribute Is_Underlying_Full_View.
3034 (Is_Underlying_Full_View): New routine along with pragma Inline.
3035 (Set_Is_Underlying_Full_View): New routine along with pragma Inline.
3036 * exp_util.adb (Build_DIC_Procedure_Body): Do not consider
3037 class-wide types and underlying full views. The first subtype
3038 is used as the working type for all Itypes, not just array base types.
3039 (Build_DIC_Procedure_Declaration): Do not consider
3040 class-wide types and underlying full views. The first subtype
3041 is used as the working type for all Itypes, not just array
3042 base types.
3043 * freeze.adb (Freeze_Entity): Inherit the freeze node of a full
3044 view or an underlying full view without clobbering the attributes
3045 of a previous freeze node.
3046 (Inherit_Freeze_Node): New routine.
3047 * sem_ch3.adb (Build_Derived_Private_Type): Mark an underlying
3048 full view as such.
3049 (Build_Underlying_Full_View): Mark an underlying full view as such.
3050 * sem_ch7.adb (Install_Private_Declarations): Mark an underlying
3051 full view as such.
3052
49779c98
AC
30532017-01-20 Yannick Moy <moy@adacore.com>
3054
3055 * sinfo.ads: Document lack of Do_Division_Check flag
3056 on float exponentiation.
3057
7c323fbe
AC
30582017-01-19 Javier Miranda <miranda@adacore.com>
3059
3060 * ghost.adb (Propagate_Ignored_Ghost_Code): Protect access to the
3061 identifier attribute of a block-statement node. Required to avoid
3062 assertion failure when building the new containers library.
3063
30642017-01-19 Bob Duff <duff@adacore.com>
3065
3066 * exp_ch3.adb: Update comment.
3067
30682017-01-19 Vincent Celier <celier@adacore.com>
3069
3070 * gprep.adb (Gnatprep): Parse the definition file without
3071 "replace in comments" even when switch -C is used.
3072
58d27da9
JS
30732017-01-19 Justin Squirek <squirek@adacore.com>
3074
3075 * exp_ch9.adb (Is_Pure_Barrier): Create function
3076 Is_Count_Attribute to identify an expansion of the 'Count
3077 attribute.
3078
6b1d2413
AC
30792017-01-19 Ed Schonberg <schonberg@adacore.com>
3080
3081 * sem_ch5.adb (Analyze_Loop_Statement): In GNATprove mode the
3082 statements within an element iterator loop are only analyzed
3083 agter the loop is rewritten. Within a generic the analysis must
3084 be performed in any case to complete name capture.
3085
30862017-01-19 Bob Duff <duff@adacore.com>
3087
3088 * sem_prag.adb (Analyze_Pragma): Check for ignored pragmas first,
3089 before checking for unrecognized pragmas.
3090 Initialize Pname on its declarations; that's always good style.
3091
104c99ef
CD
30922017-01-19 Claire Dross <dross@adacore.com>
3093
3094 * exp_ch7.adb (Build_Invariant_Procedure_Body): Semi-insert the
3095 body into the tree for GNATprove by setting its Parent field. The
3096 components invariants of composite types are not checked by
3097 the composite type's invariant procedure in GNATprove mode.
3098 (Build_Invariant_Procedure_Declaration): Semi-insert the
3099 declaration into the tree for GNATprove by setting its Parent
3100 field.
3101 * freeze.adb (Freeze_Arry_Type):In GNATprove mode, do not add
3102 the component invariants to the array type invariant procedure
3103 so that the procedure can be used to check the array type
3104 invariants if any.
3105 (Freeze_Record_Type): In GNATprove mode, do
3106 not add the component invariants to the record type invariant
3107 procedure so that the procedure can be used to check the record
3108 type invariants if any.
3109
374c09e8
AC
31102017-01-19 Hristian Kirtchev <kirtchev@adacore.com>
3111
3112 * lib-xref-spark_specific.adb: Minor reformatting.
3113 * exp_ch7.adb (Add_Parent_Invariants): Do not process array types.
3114
54740d7d
AC
31152017-01-19 Javier Miranda <miranda@adacore.com>
3116
3117 * exp_aggr.adb (Pass_Aggregate_To_Back_End): Renamed as
3118 Build_Back_End_Aggregate.
3119 (Generate_Aggregate_For_Derived_Type): Code cleanup.
3120 (Prepend_Stored_Values): Code cleanup.
3121
31222017-01-19 Ed Schonberg <schonberg@adacore.com>
3123
3124 * sem_ch6.adb (Analyze_Expression_Function): Check for an
3125 incomplete return type after attempting to freeze it, so that
3126 other freeze actiona are generated in the proper order.
3127
31282017-01-19 Ed Schonberg <schonberg@adacore.com>
3129
3130 * sem_aggr.adb (Resolve_Aggregate): If the type is a string
3131 type, ie. a type whose component is a character type, and the
3132 aggregate is positional, do not convert into a string literal
3133 if the index type is not an integer type, because the original
3134 type may be required in an enclosing operation.
3135
31362017-01-19 Bob Duff <duff@adacore.com>
3137
3138 * binde.adb, debug.adb: Enable new elaboration order algorithm
3139 by default. -dp switch reverts to the old algorithm.
3140
31412017-01-19 Hristian Kirtchev <kirtchev@adacore.com>
3142
3143 * sem_ch3.adb Add with and use clauses for Exp_Ch7.
3144 (Analyze_Declarations): Create the DIC and Invariant
3145 procedure bodies s after all freezing has taken place.
3146 (Build_Assertion_Bodies): New routine.
3147 * sem_ch7.adb Remove the with and use clauses for Exp_Ch7
3148 and Exp_Util.
3149 (Analyze_Package_Specification): Remove the
3150 generation of the DIC and Invariant procedure bodies. This is
3151 now done by Analyze_Declarations.
3152 * sem_disp.adb (Check_Dispatching_Operation): DIC and Invariant
3153 procedures are never treated as primitives.
3154
31552017-01-19 Yannick Moy <moy@adacore.com>
3156
3157 * frontend.adb: Analyze inlined bodies and check elaboration
3158 rules in GNATprove mode too.
3159 * sem_elab.adb (Delay_Element): Add Boolean component to save
3160 indication that call is in SPARK code. (Check_Elab_Calls):
3161 Check elaboration rules in GNATprove mode, and correctly set
3162 the current value of SPARK_Mode.
3163 * lib-xref-spark_specific.adb
3164 (Add_SPARK_Xrefs): Simplify iteration over dereferences.
3165
31662017-01-19 Ed Schonberg <schonberg@adacore.com>
3167
3168 * exp_ch4.adb (Expand_Concatenate): Do no enable overflow
3169 checks on the expression for the high bound of concatenation
3170 when checks are disabled, to suppress warnings about potential
3171 constraint errors in restricted runtimes.
3172
138fc6f1
HK
31732017-01-19 Hristian Kirtchev <kirtchev@adacore.com>
3174
3175 * exp_ch3.adb (Expand_Freeze_Enumeration_Type): Mark the
3176 representation-to-position function as inlined.
3177 * sem_cat.adb (Set_Categorization_From_Scope): Do not modify
3178 the purity of an internally generated entity if it has been
3179 explicitly marked as pure for optimization purposes.
3180 * exp_aggr.adb: Minor reformatting.
3181
4f94fa11
AC
31822017-01-19 Javier Miranda <miranda@adacore.com>
3183
3184 * exp_ch6.adb (Expand_Call): Remove side effects on
3185 actuals that are allocators with qualified expression since the
3186 initialization of the object is performed by means of individual
3187 statements (and hence it must be done before the call).
3188
31892017-01-19 Ed Schonberg <schonberg@adacore.com>
3190
3191 * sem_ch3.adb (Analyze_Declarations): Minor reformatting.
3192 (Build_Derived_Enumeration_Type): If the derived type inherits a
3193 dynamic predicate from its parent, the bounds of the type must
3194 freeze because an explicit constraint is constructed for the
3195 type and the corresponding range is elaborated now.
3196
31972017-01-19 Arnaud Charlet <charlet@adacore.com>
3198
3199 * sem_attr.ads: minor fix of inconsistent casing in comment
3200 * lib-writ.ads: minor align comments in columns
3201 * sem_ch3.adb: Minor reformatting.
3202 * spark_xrefs.ads: minor fix typo in SPARK-related comment
3203 * table.ads: minor style fix in comment
3204 * lib-xref-spark_specific.adb
3205 (Add_SPARK_Xrefs): simplify processing of SPARK cross-references.
3206 * sem_ch12.adb: minor whitespace fix
3207 * freeze.adb: Add comment.
3208 * sem_util.adb (Unique_Name): for instances of
3209 generic subprograms ignore the name of the wrapper package.
3210
32112017-01-19 Javier Miranda <miranda@adacore.com>
3212
3213 * exp_aggr.adb (Resolve_Record_Aggregate):
3214 Factorize code needed for aggregates of limited and unlimited
3215 types in a new routine.
3216 (Pass_Aggregate_To_Back_End): New subprogram.
3217
32182017-01-19 Yannick Moy <moy@adacore.com>
3219
3220 * sinfo.adb (Pragma_Name): Only access up to Last_Pair of Pragma_Map.
3221
0929d66b
AC
32222017-01-19 Ed Schonberg <schonberg@adacore.com>
3223
3224 * sem_ch4.ads, sem_ch4.adb (Try_Object_Operation): Make subprogram
3225 public, for use elsewhere.
3226 * sem_ch6.adb (Analyze_Procedure_Call): In SPARK_Mode and within
3227 an Inlined_body, recognize a call that uses object notation
3228 and has not been rewritten as a regular call because regular
3229 expansion has not taken place.
3230
32312017-01-19 Bob Duff <duff@adacore.com>
3232
3233 * checks.adb (Apply_Type_Conversion_Checks): Disable small optimization
3234 in case of generic formal discrete types, because it causes crashes in
3235 the compiler when built with assertions on.
3236
c63a2ad6
AC
32372017-01-19 Hristian Kirtchev <kirtchev@adacore.com>
3238
3239 * lib-xref-spark_specific.adb, sem_util.adb, sem_util.ads,
3240 sem_ch4.adb, sem_ch8.adb, lib-xref.ads: Minor reformatting.
3241
32422017-01-19 Bob Duff <duff@adacore.com>
3243
3244 * bcheck.adb (Check_Consistent_Dynamic_Elaboration_Checking):
3245 Increment Warnings_Detected. It was decrementing, which is
3246 wrong since we just issued a warning message.
3247 * binderr.ads (Errors_Detected, Warnings_Detected): Declare
3248 these variables to be of subtype Nat instead of Int, because
3249 they should never be negative.
3250
32512017-01-19 Javier Miranda <miranda@adacore.com>
3252
3253 * contracts.adb (Build_Postconditions_Procedure): Replace
3254 Generate_C_Code by Modify_Tree_For_C.
3255 * exp_aggr.adb (Build_Record_Aggr_Code, Expand_Array_Aggregate):
3256 Replace Generate_C_Code by Modify_Tree_For_C.
3257 * exp_attr.adb (Float_Valid, Is_GCC_Target): Replace Generate_C_Code by
3258 Modify_Tree_For_C.
3259 * exp_ch11.adb (Expand_N_Exception_Declaration): Replace
3260 Generate_C_Code by Modify_Tree_For_C.
3261 * exp_ch4.adb (Expand_Allocator_Expression): Replace
3262 Generate_C_Code by Modify_Tree_For_C.
3263 * exp_dbug.adb (Qualify_Entity_Name): Replace Generate_C_Code
3264 by Modify_Tree_For_C.
3265 * exp_util.adb (Remove_Side_Effects, Side_Effect_Free): Replace
3266 Generate_C_Code by Modify_Tree_For_C.
3267 * sem_res.adb (Resolve_Type_Conversion): Replace Generate_C_Code
3268 by Modify_Tree_For_C.
3269 * sinfo.ads (Modify_Tree_For_C): Adding documentation.
3270
40bf00b1
AC
32712017-01-19 Javier Miranda <miranda@adacore.com>
3272
3273 * sem_util.ads, sem_util.adb (Expression_Of_Expression_Function): New
3274 subprogram.
3275 (Is_Inlinable_Expression_Function): New subprogram.
3276 * exp_ch6.ads, exp_ch6.adb (Expression_Of_Expression_Function): Moved
3277 to Sem_Util.
3278 (Is_Inlinable_Expression_Function): Moved to Sem_Util.
3279
32802017-01-19 Ed Schonberg <schonberg@adacore.com>
3281
3282 * sem_ch4.adb (Diagnose_Call): Improve error message when a
3283 selected component has a prefix that might be interpreted
3284 as a parameterless function call, but none of the candidate
3285 interpretations is parameterless, and there is a hidden homonym
3286 of the prefix that is a package.
3287 * sem_ch8.adb (Find_Selected_Component): If the prefix might be
3288 interpreted as a parameterless function call and its analysis
3289 fails, do not call Analyze_Selected_Component.
3290
42e2600a
AC
32912017-01-19 Steve Baird <baird@adacore.com>
3292
3293 * sem_util.ads: Add new Use_Full_View Boolean parameter to
3294 Get_Index_Bounds.
3295 * sem_util.adb (Get_Index_Bounds): replace calls to Scalar_Range with
3296 calls to a newly-defined Scalar_Range_Of_Right_View function.
3297
32982017-01-19 Arnaud Charlet <charlet@adacore.com>
3299
3300 * gnat1drv.adb: minor fix of unbalanced parens in comment
3301 * lib-xref.ads (Traverse_Compilation_Unit): declaration moved
3302 to visible part of the package to allow re-use in GNATprove.
3303 * lib-xref-spark_specific.adb (Traverse_Stub): routine refactored
3304 from repeated code of Traverse_Compilation_Unit.
3305 (Traverse_Declaration_Or_Statement): fixed detection of
3306 generic subprograms and packages; also, iteration over case
3307 statement alternatives rewritten to avoid testing if the first
3308 alternative is present (since it must be present due to Ada
3309 syntax restrictions).
3310
d6e1090a
HK
33112017-01-19 Hristian Kirtchev <kirtchev@adacore.com>
3312
3313 * exp_ch6.adb (Expand_N_Subprogram_Body): Mark the spec as
3314 returning by reference not just for subprogram body stubs,
3315 but for all subprogram cases.
3316 * sem_util.adb: Code reformatting.
3317 (Requires_Transient_Scope): Update the call to Results_Differ.
3318 (Results_Differ): Update the parameter profile and the associated
3319 comment on usage.
3320
d9049d04
ES
33212017-01-19 Ed Schonberg <schonberg@adacore.com>
3322
3323 * sem_dim.adb (Analyze_Dimension): Analyze object declaration and
3324 identifier nodes that do not come from source, to handle properly
3325 dimensionality check within an inlined body which inclddes both
3326 original operands and rewritten operands. This removes spurious
3327 dimensionality errors in the presence of front-end inlining,
3328 as well as in SPARK mode.
3329
1c70261c
JJ
33302017-01-16 Jakub Jelinek <jakub@redhat.com>
3331
3332 PR driver/49726
3333 * gcc-interface/lang.opt (gant, gnatO, gnat): Add Driver flag.
3334
b3686dde
RO
33352017-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3336
3337 * gcc-interface/Makefile.in (SPARC/Solaris): Fix typo.
3338
33c51287
AC
33392017-01-13 Arnaud Charlet <charlet@adacore.com>
3340
3341 * doc/gnat_ugn/getting_started_with_gnat.rst,
3342 doc/gnat_ugn/inline_assembler.rst,
3343 doc/gnat_ugn/building_executable_programs_with_gnat.rst,
3344 doc/gnat_ugn/elaboration_order_handling_in_gnat.rst,
3345 doc/gnat_ugn/about_this_guide.rst,
3346 doc/gnat_ugn/platform_specific_information.rst,
3347 doc/gnat_ugn/example_of_binder_output.rst,
3348 doc/gnat_ugn/gnat_and_program_execution.rst,
3349 doc/gnat_ugn/gnat_utility_programs.rst,
3350 doc/gnat_ugn/the_gnat_compilation_model.rst,
3351 doc/gnat_rm/implementation_defined_attributes.rst,
3352 doc/gnat_rm/compatibility_and_porting_guide.rst,
3353 doc/gnat_rm/standard_library_routines.rst,
3354 doc/gnat_rm/standard_and_implementation_defined_restrictions.rst,
3355 doc/gnat_rm/implementation_defined_pragmas.rst,
3356 doc/gnat_rm/the_gnat_library.rst,
3357 doc/gnat_rm/obsolescent_features.rst,
3358 doc/gnat_rm/about_this_guide.rst,
3359 doc/gnat_rm/the_implementation_of_standard_i_o.rst,
3360 doc/gnat_rm/implementation_of_ada_2012_features.rst,
3361 doc/gnat_rm/interfacing_to_other_languages.rst,
3362 doc/gnat_rm/implementation_defined_aspects.rst,
3363 doc/gnat_rm.rst: Update documentation.
3364 * gnat_rm.texi, gnat_ugn.texi: Regenerated.
3365
b5f3c913
AC
33662017-01-13 Ed Schonberg <schonberg@adacore.com>
3367
3368 * einfo.ads: minor grammar fixes in comment of Normalized_Position_Max.
3369 * scil_ll.adb: Minor style fix in comment.
3370 * sem_ch8.adb (Analyze_Expanded_Name): Perform dimension analysis
3371 even if entity is already set, because the node may be renalyzed
3372 after inlining transformations.
3373
33742017-01-13 Javier Miranda <miranda@adacore.com>
3375
3376 * sem_res.adb (Resolve_Call): Do not establish a transient scope
3377 for a call to inlinable expression function (since the call will
3378 be replaced by its returned object).
3379 * exp_ch6.ads (Is_Inlinable_Expression_Function): New subprogram.
3380 * exp_ch6.adb (Expression_Of_Expression_Function): New subprogram.
3381 (Expand_Call): For inlinable expression function call replace the
3382 call by its returned object.
3383 (Is_Inlinable_Expression_Function): New subprogram.
3384
82e5c243
AC
33852017-01-13 Gary Dismukes <dismukes@adacore.com>
3386
3387 * checks.adb: Minor typo fix and reformatting.
3388
33892017-01-13 Javier Miranda <miranda@adacore.com>
3390
3391 * contracts.adb (Contract_Only_Subprograms): Remove formal.
3392 (Copy_Original_Specification): Removed.
3393 (Skip_Contract_Only_Subprogram): Move here checks previously
3394 located in the caller of this routine (to leave the code more clean).
3395 (Build_Contract_Only_Subprogram): Code cleanup.
3396 * scil_ll.ads, scil_ll.adb (Get_Contract_Only_Body_Name): Removed.
3397 (Get_Contract_Only_Missing_Body_Name): Removed.
3398
f8981f19
AC
33992017-01-13 Javier Miranda <miranda@adacore.com>
3400
3401 * sem_ch6.adb (Cloned_Expression): New subprogram.
3402 (Freeze_Expr_Types): Complete previous patch since the expression
3403 of an expression-function may have iterators and loops with
3404 defining identifiers which, as part of the preanalysis of the
3405 expression, may be left decorated with itypes that will not be
3406 available in the tree passed to the backend.
3407
34082017-01-13 Ed Schonberg <schonberg@adacore.com>
3409
3410 * checks.adb (Apply_Type_Conversion_Checks): Optimize a type
3411 conversion to Integer of an expression that is an attribute
3412 reference 'Pos on an enumeration type.
3413
34142017-01-13 Bob Duff <duff@adacore.com>
3415
3416 * atree.ads: Minor comment fix.
3417
996ce809
JS
34182017-01-13 Justin Squirek <squirek@adacore.com>
3419
3420 * sem_ch6.adb (Check_Aggregate_Accessibility): Ignore function
3421 calls in accessibility check on return statement.
3422
36be0082
HK
34232017-01-13 Hristian Kirtchev <kirtchev@adacore.com>
3424
3425 * sem_ch6.adb (Analyze_Subprogram_Body_Helper):
3426 Ensure that the input body is a subprogram body before trying to
3427 determine whether it denoted an expression function. Note that
3428 subprogram body stubs cannot denote expression functions.
3429
804ec349
GD
34302017-01-13 Gary Dismukes <dismukes@adacore.com>
3431
3432 * bindgen.adb, sem_ch6.adb, binde.adb, exp_ch3.adb: Minor reformatting
3433 and typo fixes.
3434
354ae449
AC
34352017-01-13 Javier Miranda <miranda@adacore.com>
3436
3437 * einfo.ads (Component_Bit_Offset): Fix documentation.
3438 * sem_ch13.adb (Check_Record_Representation_Clause): Skip check
3439 on record holes for components with unknown compile-time offsets.
3440
34412017-01-13 Bob Duff <duff@adacore.com>
3442
3443 * ali.ads, ali.adb (Static_Elaboration_Model_Used): Remove unused flag.
3444 * g-locfil.ads: Minor comment fix.
3445
34462017-01-13 Bob Duff <duff@adacore.com>
3447
3448 * binde.adb (Elab_New): New elaboration order algorithm
3449 that is expected to cause fewer ABE issues. This is a work in
3450 progress. The new algorithm is currently disabled, and can be
3451 enable by the -dp switch, or by modifying the Do_Old and Do_New
3452 etc. flags and rebuilding. Experimental code is included to
3453 compare the results of the old and new algorithms.
3454 * binde.ads: Use GNAT.Dynamic_Tables instead of Table, so we
3455 can have multiple of these tables, so the old and new algorithms
3456 can coexist.
3457 * bindgen.ads (Gen_Output_File): Pass Elab_Order as an 'in'
3458 parameter of type array. This avoids the global variable, and
3459 allows bounds checking (which is normally defeated by the tables
3460 packages). It also ensures that the Elab_Order is read-only
3461 to Bindgen.
3462 * bindgen.adb: Pass Elab_Order as an 'in' parameter to all
3463 subprograms that need it, as above.
3464 * debug.adb: Document new -dp switch. Modify doc of old -do
3465 switch.
3466 * gnatbind.adb (Gnatbind): Make use of new interfaces to Binde
3467 and Bindgen. Move writing of closure (-R and -Ra switches)
3468 to Binde; that's more convenient.
3469
34702017-01-13 Ed Schonberg <schonberg@adacore.com>
3471
3472 * sem_ch6.adb (Analyze_Expression_Function): If the expression
3473 function is a completion, all entities referenced in the
3474 expression are frozen. As a consequence, a reference to an
3475 uncompleted private type from an enclosing scope is illegal.
3476
448a1eb3
AC
34772017-01-13 Javier Miranda <miranda@adacore.com>
3478
3479 * sem_ch6.adb (Freeze_Expr_Types): New subprogram.
3480 (Analyze_Subprogram_Body_Helper): At the occurrence of an
3481 expression function declaration that is a completion, its
3482 expression causes freezing (AI12-0103).
3483
34842017-01-13 Vadim Godunko <godunko@adacore.com>
3485
3486 * a-coinho-shared.adb: Fix memory leaks in Constant_Reference and
3487 Reference functions of Ada.Containers.Indefinite_Holders.
3488
34892017-01-13 Bob Duff <duff@adacore.com>
3490
3491 * s-os_lib.ads: Minor comment fixes.
3492
34932017-01-13 Hristian Kirtchev <kirtchev@adacore.com>
3494
3495 * exp_ch3.adb (Default_Initialize_Object): Do not default
3496 initialize an object when it is of a task type and restriction
3497 No_Tasking is in effect because the initialization is obsolete.
3498 * exp_ch9.adb (Build_Master_Entity): Do not generate a master when
3499 restriction No_Tasking is in effect.
3500 (Build_Master_Renaming): Do not rename a master when restriction
3501 No_Tasking is in effect.
3502
b2c1aa8f
AC
35032017-01-13 Ed Schonberg <schonberg@adacore.com>
3504
3505 * sem_aggr.adb (Resolve_Array_Aggregate): The code that verifies
3506 the legality of An others clause applies as well to a choice in
3507 an Iterated_component_ association.
3508 (Resolve_Iterated_Component_Association): An others choice
3509 is legal.
3510 * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): An
3511 Iterated_Component_Association is not static.
3512
35132017-01-13 Hristian Kirtchev <kirtchev@adacore.com>
3514
3515 * exp_ch3.adb (Freeze_Type): Mark the Ghost mode as set in case
3516 control is passed to the expresion handler before the new mode
3517 is set.
3518 * sem_ch12.adb (Analyze_Package_Instantiation,
3519 Analyze_Subprogram_Instantiation): Mark the Ghost mode as set
3520 in case control is passed to the expresion handler before the
3521 new mode is set.
3522
72cdccfa
HK
35232017-01-13 Hristian Kirtchev <kirtchev@adacore.com>
3524
3525 * sem_aggr.adb, sem_ch3.adb, inline.adb, sem_util.adb, exp_ch4.adb,
3526 exp_aggr.adb: Minor reformatting.
3527
fae8eb5b
GD
35282017-01-13 Gary Dismukes <dismukes@adacore.com>
3529
3530 * inline.adb: Minor reformatting and typo fix.
3531
00f45f30
AC
35322017-01-13 Ed Schonberg <schonberg@adacore.com>
3533
3534 * sem_util.ads, sem_util.adb (Choice_List): Move function here
3535 from sem_aggr.adb, for use elsewhere.
3536 * sem_ch3.adb (Analyze_Object_Declaration): Use Choice_List.
3537 * sem_aggr.adb (Resolve_Array_Aggregate): Remove
3538 Iterated_Component_Present.
3539 * exp_aggr.adb: Use Choice_List throughout, to handle
3540 Iterated_Component_Associations.
3541 (Gen_Loop): Generate proper loop for an
3542 Iterated_Component_Association: loop variable has the identifier
3543 of the original association. Generate a loop even for a single
3544 component choice, in order to make loop parameter visible in
3545 expression.
3546 (Flatten): An Iterated_Component_Association is not static.
3547
35482017-01-13 Yannick Moy <moy@adacore.com>
3549
3550 * exp_ch4.adb (Expand_N_Op_Expon): Ensure that the value of
3551 float exponentiation for statically known small negative values
3552 is the reciprocal of the exponentiation for the opposite value
3553 of the exponent.
3554 * s-exnllf.adb (Exn_Float, Exn_Long_Float, Exn_Long_Long_Float):
3555 Ensure that the value of float exponentiation for negative values
3556 is the reciprocal of the exponentiation for the opposite value
3557 of the exponent.
3558 * inline.adb (Expand_Inlined_Call): Fix the count
3559 for the number of generated gotos.
3560
3abbc5c2
AC
35612017-01-13 Yannick Moy <moy@adacore.com>
3562
3563 * inline.adb: Code cleanup.
3564 * sem_util.adb (Is_OK_Volatile_Context): Add
3565 expression in delay statement as OK for volatile context.
3566
35672017-01-13 Ed Schonberg <schonberg@adacore.com>
3568
3569 * sem_aggr.adb (Resolve_Array_Aggregate): In normal compilation
3570 mode a choice that is a subtype with a static predicate is
3571 replaced by the values it covers. This transformation must not
3572 be performed in ASIS mode, to preserve the source for analysis.
3573
35742017-01-13 Justin Squirek <squirek@adacore.com>
3575
3576 * nlists.ads: Correct minor typo.
3577
ef74daea
AC
35782017-01-13 Gary Dismukes <dismukes@adacore.com>
3579
3580 * sem_ch13.adb: Minor reformatting and typo fix.
3581
35822017-01-13 Ed Schonberg <schonberg@adacore.com>
3583
3584 * par-ch4.adb (P_Aggregate_Or_Parent_Expr): An
3585 Iterated_Component_Association is a named association in an
3586 array aggregate.
3587 * sem_aggr.adb (Resolve_Iterated_Component_Association): New
3588 procedure, subsidiary of Resolve_Array_Aggregate, to analyze
3589 and resolve the discrete choices and the expression of the
3590 new construct.
3591 * sinfo.adb, sinfo.ads: In analogy with N_Component_Association,
3592 Loop_Actions and Box_Present are attributes of
3593 N_Iterated_Component_Association nodes. Box_Present is always
3594 False in this case.
3595 * sprint.adb (Sprint_Node): An Iterated_Component_Association
3596 has a Discrete_Choices list, as specified in the RM. A
3597 Component_Association for aggregate uses instead a Choices list.
3598 We have to live with this small inconsistency because the new
3599 construct also has a defining identifier, and there is no way
3600 to merge the two node structures.
3601
da9683f4
AC
36022017-01-13 Yannick Moy <moy@adacore.com>
3603
3604 * inline.adb (Remove_Aspects_And_Pragmas): Add Unused to the
3605 list of pragmas to remove. Remove pragmas from the list of
3606 statements in the body to inline.
3607 * namet.adb, namet.ads (Nam_In): New version with 12 parameters.
3608
36092017-01-13 Ed Schonberg <schonberg@adacore.com>
3610
3611 * sem_ch3.adb (Resolve_Aspects): New procedure, subsidiary of
3612 Analyze_Declarations, to analyze and resolve the expressions of
3613 aspect specifications in the current declarative list, so that
3614 the expressions have proper entity and type info. This is needed
3615 for ASIS when there is no subsequent expansion to generate this
3616 semantic information.
3617 * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Use Etype of
3618 original expression, to suppress cascaded errors when expression
3619 has been constant-folded.
3620 (Resolve_Aspect_Expressions, Resolve_Name): Preserve entities in
3621 ASIS mode, because there is no subsequent expansion to decorate
3622 the tree.
3623
3de3a1be
YM
36242017-01-13 Yannick Moy <moy@adacore.com>
3625
3626 * inline.adb, inline.ads (Call_Can_Be_Inlined_In_GNATprove_Mode):
3627 New function to detect when a call may be inlined or not in
3628 GNATprove mode.
3629 (Expand_Inlined_Call): Ensure that a temporary
3630 is always created in the cases where a type conversion may be
3631 needed on an input parameter in GNATprove mode, so that GNATprove
3632 sees the check to perform.
3633 * sem_res.adb (Resolve_Call): In GNATprove mode, skip inlining
3634 when not applicable due to actual requiring type conversion
3635 with possible check but no temporary value can be copied for
3636 GNATprove to see the check.
3637
d8f43ee6
HK
36382017-01-13 Hristian Kirtchev <kirtchev@adacore.com>
3639
3640 * sem_aggr.adb, par_sco.adb, s-osprim-mingw.adb, exp_ch5.adb,
3641 exp_prag.adb, sem_ch3.adb, xr_tabls.adb, lib-xref-spark_specific.adb,
3642 layout.adb, sem_dist.adb, exp_spark.adb, exp_ch7.adb, gnatcmd.adb,
3643 exp_util.adb, prj-proc.adb, sem_aux.adb, comperr.adb, g-memdum.adb,
3644 exp_attr.adb, s-intman-solaris.adb, exp_ch9.adb, make.adb, live.adb,
3645 g-sercom-linux.adb, sem_dim.adb, mlib-prj.adb, s-intman-posix.adb,
3646 sem_ch9.adb, sem_ch10.adb, prep.adb, einfo.adb, scng.adb, checks.adb,
3647 prj-strt.adb, sem_prag.adb, eval_fat.adb, sem_ch12.adb, sem.adb,
3648 a-numaux-x86.adb, a-stwifi.adb, i-cobol.adb, prj.adb,
3649 get_spark_xrefs.adb, s-tasini.adb, rtsfind.adb, freeze.adb,
3650 g-arrspl.adb, par-ch4.adb, sem_util.adb, sem_res.adb, expander.adb,
3651 sem_attr.adb, exp_dbug.adb, prj-pp.adb, a-stzfix.adb, s-interr.adb,
3652 s-wchcnv.adb, switch-m.adb, gnat1drv.adb, sinput-l.adb, stylesw.adb,
3653 contracts.adb, s-intman-android.adb, g-expect.adb, exp_ch4.adb,
3654 g-comlin.adb, errout.adb, sinput.adb, s-exctra.adb, repinfo.adb,
3655 g-spipat.adb, g-debpoo.adb, exp_ch6.adb, sem_ch4.adb, exp_ch13.adb,
3656 a-wtedit.adb, validsw.adb, pprint.adb, widechar.adb, makeutl.adb,
3657 ali.adb, set_targ.adb, sem_mech.adb, sem_ch6.adb, gnatdll.adb,
3658 get_scos.adb, g-pehage.adb, s-tratas-default.adb, gnatbind.adb,
3659 prj-dect.adb, g-socthi-mingw.adb, par-prag.adb, prj-nmsc.adb,
3660 exp_disp.adb, par-ch12.adb, binde.adb, sem_ch8.adb,
3661 s-tfsetr-default.adb, s-regexp.adb, gprep.adb, s-tpobop.adb,
3662 a-teioed.adb, sem_warn.adb, sem_eval.adb, g-awk.adb, s-io.adb,
3663 a-ztedit.adb, xoscons.adb, exp_intr.adb, sem_cat.adb, sprint.adb,
3664 g-socket.adb, exp_dist.adb, sem_ch13.adb, s-tfsetr-vxworks.adb,
3665 par-ch3.adb, treepr.adb, g-forstr.adb, g-catiio.adb, par-ch5.adb,
3666 uname.adb, osint.adb, exp_ch3.adb, prj-env.adb, a-strfix.adb,
3667 a-stzsup.adb, prj-tree.adb, s-fileio.adb: Update all eligible case
3668 statements to reflect the new style for case alternatives. Various
3669 code clean up and reformatting.
3670
d4bf622f
AC
36712017-01-13 Gary Dismukes <dismukes@adacore.com>
3672
3673 * exp_util.adb: Minor reformatting.
3674
36752017-01-13 Yannick Moy <moy@adacore.com>
3676
3677 * exp_spark.adb: Code cleanup.
3678 * sem_ch9.adb (Analyze_Delay_Until): Resolve
3679 expression so that calls are identified as such inside delay
3680 until.
3681
a702c9b9
ES
36822017-01-13 Ed Schonberg <schonberg@adacore.com>
3683
3684 * exp_util.adb (Insert_Actions): Handle Iterated_Component_Association.
3685 * par-ch3.adb (P_Discrete_Choice_List): An
3686 Iterated_Component_Association is an array aggregate component.
3687 * par-ch4.adb (P_Iterated_Component_Association): New procedure.
3688 (Is_Quantified_Expression): New function that performs a lookahead
3689 to distinguish quantified expressions from iterated component
3690 associations.
3691 (P_Aggregate_Or_Paren_Expr): Recognize iterated component
3692 associations.
3693 (P_Unparen_Cond_Case_Quant_Expression, P_Primary): Ditto.
3694 * sem.adb (Analyze): Handle Iterated_Component_Association.
3695 * sem_aggr.adb (Resolve_Array_Aggregate): Dummy handling of iterated
3696 component associations.
3697 * sinfo.ads, sinfo.adb: Entries for for
3698 N_Iterated_Component_Association and its fields.
3699 * sprint.adb (Sprint_Node_Actual): Handle
3700 N_Iterated_Component_Association.
3701
582dbb53
AC
37022017-01-13 Justin Squirek <squirek@adacore.com>
3703
3704 * sem_ch12.adb (Analyze_Package_Instantiation): Move disabiling
3705 of the style check until after preanalysis of acutals.
3706
37072017-01-13 Yannick Moy <moy@adacore.com>
3708
3709 * sem_ch13.adb: Minor reformatting.
3710 * par-ch11.adb: minor style fix in whitespace
3711 * gnatbind.adb (Gnatbind): Scope of Std_Lib_File
3712 reduced to Add_Artificial_ALI_File; style fix in declaration of
3713 Text; grammar fix in comment.
3714 * osint-c.adb (Read_Library_Info): strip trailing NUL from result.
3715 * freeze.adb: Cleanup to pass pragma instead of
3716 expression to call.
3717 * exp_spark.adb (Expand_SPARK_Attribute_Reference): New procedure to
3718 replace System'To_Address by equivalent call.
3719
e4d04166
AC
37202017-01-13 Arnaud Charlet <charlet@adacore.com>
3721
3722 * bindusg.adb: Improve usage output for -f switch.
3723
37242017-01-13 Hristian Kirtchev <kirtchev@adacore.com>
3725
3726 * frontend.adb, freeze.adb, sem_res.adb, sem_attr.adb, sem_ch8.adb:
3727 Minor reformatting.
3728
37292017-01-13 Ed Schonberg <schonberg@adacore.com>
3730
3731 * sem_ch13.adb (Is_Predicate_Static): Following the intent of the RM,
3732 treat comparisons on strings as legal in a Static_Predicate.
3733 (Is_Predicate_Static, Is_Type_Ref): Predicate also returns true on
3734 a function call that is the expansion of a string comparison.The
3735 function call is built when compiling the corresponding predicate
3736 function, but the expression has been found legal as a static
3737 predicate during earlier analysis.
3738 * sem_eval.adb (Real_Or_String_Static_Predicate_Matches): Handle
3739 properly a function call that is the expansion of a string
3740 comparison operation, in order to recover the Static_Predicate
3741 expression and apply it to a static argument when needed.
3742
66340e0e
AC
37432017-01-13 Tristan Gingold <gingold@adacore.com>
3744
3745 * s-mmap.adb, s-mmap.ads (Open_Read_No_Exception): New function.
3746 (Open_Read): Re-implement using Open_Read_No_Exception.
3747 (Open_Write): Raise exception in case of error.
3748 * s-mmosin-mingw.adb (Open_Common): Do not raise exception.
3749 * s-mmosin-unix.adb (Open_Read, Open_Write): Do not
3750 reaise exception.
3751 * s-mmosin-mingw.ads, s-mmosin-unix.ads (Open_Read): Adjust comment.
3752
37532017-01-13 Yannick Moy <moy@adacore.com>
3754
3755 * checks.adb: Code cleanup.
3756
37572017-01-13 Yannick Moy <moy@adacore.com>
3758
3759 * freeze.adb (Check_Inherited_Conditions): Use analyzed pragma
3760 expression instead of unanalyzed aspect expression for checking
3761 the validity of inheriting an operation. Also copy the expression
3762 being passing it to Build_Class_Wide_Expression, as this call
3763 modifies its argument.
3764 * sem_util.ads Fix comment to reference correct function name
3765 New_Copy_Tree.
3766
37672017-01-13 Javier Miranda <miranda@adacore.com>
3768
3769 * sem_res.adb (Resolve_Generalized_Indexing): Compiling in ASIS mode,
3770 when we propagate information about the indexes back to the original
3771 indexing mode and the prefix of the index is a function call, do not
3772 remove any parameter from such call.
3773
37742017-01-13 Gary Dismukes <dismukes@adacore.com>
3775
3776 * exp_ch6.ads (Needs_BIP_Finalization_Master): Update comment.
3777 * exp_ch6.adb (Needs_BIP_Finalization_Master): Return True for
3778 a build-in-place function whose result type is tagged.
3779
37802017-01-13 Yannick Moy <moy@adacore.com>
3781
3782 * sem_ch8.adb (Analyze_Subprogram_Renaming.Build_Class_Wide_Wrapper):
3783 Do not generate a wrapper when the only candidate is a class-wide
3784 subprogram.
3785 (Analyze_Subprogram_Renaming): Do not freeze the renaming or renamed
3786 inside a generic context.
3787
27bb7941
AC
37882017-01-13 Hristian Kirtchev <kirtchev@adacore.com>
3789
3790 * exp_util.adb (Add_Inherited_Tagged_DIC):
3791 Pass the object parameters of both the parent and the derived
3792 type DIC procedure to the reference replacement circuitry.
3793 (Find_DIC_Type): Modify the circuitry to present the partial
3794 view of a private type in case the private type defines its own
3795 DIC pragma.
3796 (Replace_Object_And_Primitive_References): Add two
3797 optional formal parameters. Update the comment on usage. Update
3798 the replacement of references to object parameters.
3799
38002017-01-13 Gary Dismukes <dismukes@adacore.com>
3801
3802 * einfo.adb, sem_ch6.adb, atree.adb: Minor reformatting and typo fix.
3803
38042017-01-13 Ed Schonberg <schonberg@adacore.com>
3805
3806 * sem_res.adb (Resolve_Actuals): Apply Scalar_Range_Check to
3807 an out parameter that is a type conversion, independently of th
3808 range check that may apply to the expression of the conversion,
3809 for use in GNATProve.
3810
38112017-01-13 Yannick Moy <moy@adacore.com>
3812
3813 * gnat1drv.adb (Gnat1drv): Move the implicit with for System in
3814 GNATprove_Mode here to Frontend.
3815 * frontend.adb (Frontend): Move the implicit with for System
3816 in GNATprove_Mode here as it ismore correct this way; the old
3817 place only worked by chance, since there were no overloaded names.
3818 * rtsfind.ads (RE_Id, RE_Unit_Table): Add RE_Tasking_State.
3819 * sem_attr.adb (Analyze_Attribute): In GNATprove_Mode, for the
3820 four attributes identified in SRM 9(18), add an implicit with
3821 to Ada.Task_Identification.
3822 * sem_ch8.adb (Analyze_Subprogram_Renaming.Build_Class_Wide_Wrapper):
3823 Deal specially with the wrapper introduced for AI05-0071 in GNATprove
3824 mode.
3825 * checks.adb (Apply_Discriminant_Check,
3826 Apply_Selected_Length_Checks, Apply_Selected_Range_Checks):
3827 In GNATprove mode, we do not apply the checks, but we still
3828 analyze the expression to possibly issue errors on SPARK
3829 code when a run-time error can be detected at compile time.
3830 (Selected_Length_Checks, Selected_Range_Checks): Perform analysis
3831 in GNATprove mode.
3832
b0bf18ad
AC
38332017-01-13 Hristian Kirtchev <kirtchev@adacore.com>
3834
3835 * expander.adb (Expand): Add a warning about using return
3836 statements in Ghost management code.
3837 * exp_ch3.adb (Freeze_Type): Add a warning about using return
3838 statements in Ghost management code.
3839 * exp_ch7.adb (Build_Invariant_Procedure_Body,
3840 Build_Invariant_Procedure_Declaration): Add a warning about
3841 using return statements in Ghost management code.
3842 * exp_disp.adb (Make_DT): Add a warning about using return
3843 statements in Ghost management code.
3844 * exp_util.adb (Build_DIC_Procedure_Body,
3845 Build_DIC_Procedure_Declaration, Make_Predicated_Call): Add a
3846 warning about using return statements in Ghost management code.
3847 * freeze.adb (Freeze_Entity): Add a warning about using return
3848 statements in Ghost management code.
3849 * sem.adb (Analyze, Do_Analyze): Add a warning about using return
3850 statements in Ghost management code.
3851 * sem_ch3.adb (Analyze_Object_Declaration, Process_Full_View): Add
3852 a warning about using return statements in Ghost management code.
3853 * sem_ch5.adb (Analyze_Assignment): Add a warning about using
3854 return statements in Ghost management code.
3855 * sem_ch6.adb (Analyze_Procedure_Call,
3856 Analyze_Subprogram_Body_Helper): Add a warning about using return
3857 statements in Ghost management code.
3858 * sem_ch7.adb (Analyze_Package_Body_Helper): Add a warning about
3859 using return statements in Ghost management code.
3860 * sem_ch12.adb (Analyze_Package_Instantiation,
3861 Analyze_Subprogram_Instantiation, Instantiate_Package_Body,
3862 Instantiate_Subprogram_Body): Add a warning about using return
3863 statements in Ghost management code.
3864 * sem_ch13.adb (Build_Predicate_Functions,
3865 Build_Predicate_Function_Declarations): Add a warning about
3866 using return statements in Ghost management code.
3867 * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part,
3868 Analyze_Initial_Condition_In_Decl_Part, Analyze_Pragma,
3869 Analyze_Pre_Post_Condition_In_Decl_Part): Add a warning about
3870 using return statements in Ghost management code.
3871
38722017-01-13 Tristan Gingold <gingold@adacore.com>
3873
3874 * s-mmosin-mingw.adb: Fix pragma import.
3875
38762017-01-13 Arnaud Charlet <charlet@adacore.com>
3877
3878 * gnat1drv.adb (Adjust_Global_Switches): Ignore -gnateE in
3879 codepeer mode.
3880
d65a80fd
HK
38812017-01-13 Hristian Kirtchev <kirtchev@adacore.com>
3882
3883 * atree.adb (Allocate_Initialize_Node): A newly created node is
3884 no longer marked as Ghost at this level.
3885 (Mark_New_Ghost_Node): New routine.
3886 (New_Copy): Mark the copy as Ghost.
3887 (New_Entity): Mark the entity as Ghost.
3888 (New_Node): Mark the node as Ghost.
3889 * einfo.adb (Is_Checked_Ghost_Entity): This attribute can now
3890 apply to unanalyzed entities.
3891 (Is_Ignored_Ghost_Entity): This attribute can now apply to unanalyzed
3892 entities.
3893 (Set_Is_Checked_Ghost_Entity): This attribute now
3894 applies to all entities as well as unanalyzed entities.
3895 (Set_Is_Ignored_Ghost_Entity): This attribute now applies to
3896 all entities as well as unanalyzed entities.
3897 * expander.adb Add with and use clauses for Ghost.
3898 (Expand): Install and revert the Ghost region associated with the node
3899 being expanded.
3900 * exp_ch3.adb (Expand_Freeze_Array_Type): Remove all Ghost-related code.
3901 (Expand_Freeze_Class_Wide_Type): Remoe all Ghost-related code.
3902 (Expand_Freeze_Enumeration_Type): Remove all Ghost-related code.
3903 (Expand_Freeze_Record_Type): Remove all Ghost-related code.
3904 (Freeze_Type): Install and revert the Ghost region associated
3905 with the type being frozen.
3906 * exp_ch5.adb Remove with and use clauses for Ghost.
3907 (Expand_N_Assignment_Statement): Remove all Ghost-related code.
3908 * exp_ch6.adb Remove with and use clauses for Ghost.
3909 (Expand_N_Procedure_Call_Statement): Remove all Ghost-relatd code.
3910 (Expand_N_Subprogram_Body): Remove all Ghost-related code.
3911 * exp_ch7.adb (Build_Invariant_Procedure_Body): Install and revert the
3912 Ghost region of the working type.
3913 (Build_Invariant_Procedure_Declaration): Install and revert
3914 the Ghost region of the working type.
3915 (Expand_N_Package_Body): Remove all Ghost-related code.
3916 * exp_ch8.adb Remove with and use clauses for Ghost.
3917 (Expand_N_Exception_Renaming_Declaration): Remove all Ghost-related
3918 code.
3919 (Expand_N_Object_Renaming_Declaration): Remove all Ghost-related code.
3920 (Expand_N_Package_Renaming_Declaration): Remove all Ghost-related code.
3921 (Expand_N_Subprogram_Renaming_Declaration): Remove all Ghost-related
3922 code.
3923 * exp_ch13.adb Remove with and use clauses for Ghost.
3924 (Expand_N_Freeze_Entity): Remove all Ghost-related code.
3925 * exp_disp.adb (Make_DT): Install and revert the Ghost region of
3926 the tagged type. Move the generation of various entities within
3927 the Ghost region of the type.
3928 * exp_prag.adb Remove with and use clauses for Ghost.
3929 (Expand_Pragma_Check): Remove all Ghost-related code.
3930 (Expand_Pragma_Contract_Cases): Remove all Ghost-related code.
3931 (Expand_Pragma_Initial_Condition): Remove all Ghost-related code.
3932 (Expand_Pragma_Loop_Variant): Remove all Ghost-related code.
3933 * exp_util.adb (Build_DIC_Procedure_Body): Install
3934 and revert the Ghost region of the working types.
3935 (Build_DIC_Procedure_Declaration): Install and revert the
3936 Ghost region of the working type.
3937 (Make_Invariant_Call): Install and revert the Ghost region of the
3938 associated type.
3939 (Make_Predicate_Call): Reimplemented. Install and revert the
3940 Ghost region of the associated type.
3941 * freeze.adb (Freeze_Entity): Install and revert the Ghost region
3942 of the entity being frozen.
3943 (New_Freeze_Node): Removed.
3944 * ghost.adb Remove with and use clauses for Opt.
3945 (Check_Ghost_Completion): Update the parameter profile
3946 and all references to formal parameters.
3947 (Ghost_Entity): Update the comment on usage.
3948 (Install_Ghost_Mode): New routines.
3949 (Is_Ghost_Assignment): New routine.
3950 (Is_Ghost_Declaration): New routine.
3951 (Is_Ghost_Pragma): New routine.
3952 (Is_Ghost_Procedure_Call): New routine.
3953 (Is_Ghost_Renaming): Removed.
3954 (Is_OK_Declaration): Reimplemented.
3955 (Is_OK_Pragma): Reimplemented.
3956 (Is_OK_Statement): Reimplemented.
3957 (Is_Subject_To_Ghost): Update the comment on usage.
3958 (Mark_And_Set_Ghost_Assignment): New routine.
3959 (Mark_And_Set_Ghost_Body): New routine.
3960 (Mark_And_Set_Ghost_Completion): New routine.
3961 (Mark_And_Set_Ghost_Declaration): New routine.
3962 (Mark_And_Set_Ghost_Instantiation): New routine.
3963 (Mark_And_Set_Ghost_Procedure_Call): New routine.
3964 (Mark_Full_View_As_Ghost): Removed.
3965 (Mark_Ghost_Declaration_Or_Body): New routine.
3966 (Mark_Ghost_Pragma): New routine.
3967 (Mark_Ghost_Renaming): New routine.
3968 (Mark_Pragma_As_Ghost): Removed.
3969 (Mark_Renaming_As_Ghost): Removed.
3970 (Propagate_Ignored_Ghost_Code): Update the comment on usage.
3971 (Prune_Node): Freeze nodes no longer need special pruning, they
3972 are processed by the general ignored Ghost code mechanism.
3973 (Restore_Ghost_Mode): New routine.
3974 (Set_Ghost_Mode): Reimplemented.
3975 (Set_Ghost_Mode_From_Entity): Removed.
3976 * ghost.ads Add with and use clauses for Ghost.
3977 (Check_Ghost_Completion): Update the parameter profile
3978 along with the comment on usage.
3979 (Install_Ghost_Mode): New routine.
3980 (Is_Ghost_Assignment): New routine.
3981 (Is_Ghost_Declaration): New routine.
3982 (Is_Ghost_Pragma): New routine.
3983 (Is_Ghost_Procedure_Call): New routine.
3984 (Mark_And_Set_Ghost_Assignment): New routine.
3985 (Mark_And_Set_Ghost_Body): New routine.
3986 (Mark_And_Set_Ghost_Completion): New routine.
3987 (Mark_And_Set_Ghost_Declaration): New routine.
3988 (Mark_And_Set_Ghost_Instantiation): New routine.
3989 (Mark_And_Set_Ghost_Procedure_Call): New routine.
3990 (Mark_Full_View_As_Ghost): Removed.
3991 (Mark_Ghost_Pragma): New routine.
3992 (Mark_Ghost_Renaming): New routine.
3993 (Mark_Pragma_As_Ghost): Removed.
3994 (Mark_Renaming_As_Ghost): Removed.
3995 (Restore_Ghost_Mode): New routine.
3996 (Set_Ghost_Mode): Redefined.
3997 (Set_Ghost_Mode_From_Entity): Removed.
3998 * sem.adb (Analyze): Install and revert the Ghost region of the
3999 node being analyzed.
4000 (Do_Analyze): Change the way a clean Ghost
4001 region is installed and reverted.
4002 * sem_ch3.adb (Analyze_Full_Type_Declaration): Remove
4003 all Ghost-related code.
4004 (Analyze_Incomplete_Type_Decl): Remove all Ghost-related code.
4005 (Analyze_Number_Declaration): Remove all Ghost-related code.
4006 (Analyze_Object_Declaration): Install and revert the Ghost region of
4007 a deferred object declaration's completion.
4008 (Array_Type_Declaration): Remove all Ghost-related code.
4009 (Build_Derived_Type): Update the comment on
4010 the propagation of Ghost attributes from a parent to a derived type.
4011 (Derive_Subprogram): Remove all Ghost-related code.
4012 (Make_Class_Wide_Type): Remove all Ghost-related code.
4013 (Make_Implicit_Base): Remove all Ghost-related code.
4014 (Process_Full_View): Install and revert the Ghost region of
4015 the partial view. There is no longer need to check the Ghost
4016 completion here.
4017 * sem_ch5.adb (Analyze_Assignment): Install and revert the Ghost
4018 region of the left hand side.
4019 * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Remove
4020 all Ghost-related code.
4021 (Analyze_Expression_Function): Remove all Ghost-related code.
4022 (Analyze_Generic_Subprogram_Body): Remove all Ghost-related code.
4023 (Analyze_Procedure_Call): Install and revert the Ghost region of
4024 the procedure being called.
4025 (Analyze_Subprogram_Body_Helper): Install and revert the Ghost
4026 region of the spec or body.
4027 (Analyze_Subprogram_Declaration): Remove all Ghost-related code.
4028 (Build_Subprogram_Declaration): Remove all Ghost-related code.
4029 (Find_Corresponding_Spec): Remove all Ghost-related code.
4030 (Process_Formals): Remove all Ghost-related code.
4031 * sem_ch7.adb (Analyze_Package_Body_Helper): Install and revert
4032 the Ghost region of the spec.
4033 (Analyze_Package_Declaration): Remove all Ghost-related code.
4034 * sem_ch8.adb (Analyze_Exception_Renaming): Mark a renaming as
4035 Ghost when it aliases a Ghost entity.
4036 (Analyze_Generic_Renaming): Mark a renaming as Ghost when it aliases
4037 a Ghost entity.
4038 (Analyze_Object_Renaming): Mark a renaming as Ghost when
4039 it aliases a Ghost entity.
4040 (Analyze_Package_Renaming): Mark a renaming as Ghost when it aliases
4041 a Ghost entity.
4042 (Analyze_Subprogram_Renaming): Mark a renaming as Ghost when it
4043 aliases a Ghost entity.
4044 * sem_ch11.adb Remove with and use clauses for Ghost.
4045 (Analyze_Exception_Declaration): Remove all Ghost-related code.
4046 * sem_ch12.adb (Analyze_Generic_Package_Declaration): Remove all
4047 Ghost-related code.
4048 (Analyze_Generic_Subprogram_Declaration): Remove all Ghost-related
4049 code.
4050 (Analyze_Package_Instantiation): Install and revert the Ghost region
4051 of the package instantiation.
4052 (Analyze_Subprogram_Instantiation): Install
4053 and revert the Ghost region of the subprogram instantiation.
4054 (Instantiate_Package_Body): Code clean up. Install and revert the
4055 Ghost region of the package body.
4056 (Instantiate_Subprogram_Body): Code clean up. Install and revert the
4057 Ghost region of the subprogram body.
4058 * sem_ch13.adb (Build_Predicate_Functions): Install
4059 and revert the Ghost region of the related type.
4060 (Build_Predicate_Function_Declaration): Code clean up. Install
4061 and rever the Ghost region of the related type.
4062 * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part):
4063 Install and revert the Ghost region of the pragma.
4064 (Analyze_Initial_Condition_In_Decl_Part): Install and revert the
4065 Ghost region of the pragma.
4066 (Analyze_Pragma): Install and revert the Ghost region of various
4067 pragmas. Mark a pragma as Ghost when it is related to a Ghost entity
4068 or encloses a Ghost entity.
4069 (Analyze_Pre_Post_Condition): Install and revert the Ghost
4070 region of the pragma.
4071 (Analyze_Pre_Post_Condition_In_Decl_Part): Install and revert the
4072 Ghost region of the pragma.
4073 * sem_res.adb (Resolve): Remove all Ghost-related code.
4074 * sem_util.adb (Is_Declaration): Reimplemented.
4075 (Is_Declaration_Other_Than_Renaming): New routine.
4076 * sem_util.ads (Is_Declaration_Other_Than_Renaming): New routine.
4077 * sinfo.adb (Is_Checked_Ghost_Pragma): New routine.
4078 (Is_Ghost_Pragma): Removed.
4079 (Is_Ignored_Ghost_Pragma): New routine.
4080 (Set_Is_Checked_Ghost_Pragma): New routine.
4081 (Set_Is_Ghost_Pragma): Removed.
4082 (Set_Is_Ignored_Ghost_Pragma): New routine.
4083 * sinfo.ads: Update the documentation on Ghost mode and
4084 Ghost regions. New attributes Is_Checked_Ghost_Pragma
4085 and Is_Ignored_Ghost_Pragma along with usages in nodes.
4086 Remove attribute Is_Ghost_Pragma along with usages in nodes.
4087 (Is_Checked_Ghost_Pragma): New routine along with pragma Inline.
4088 (Is_Ghost_Pragma): Removed along with pragma Inline.
4089 (Is_Ignored_Ghost_Pragma): New routine along with pragma Inline.
4090 (Set_Is_Checked_Ghost_Pragma): New routine along with pragma Inline.
4091 (Set_Is_Ghost_Pragma): Removed along with pragma Inline.
4092 (Set_Is_Ignored_Ghost_Pragma): New routine along with pragma Inline.
4093
ca0eb951
AC
40942017-01-12 Tristan Gingold <gingold@adacore.com>
4095
4096 * s-mmap.ads, s-mmap.adb, s-mmosin-unix.ads, s-mmosin-unix.adb,
4097 s-mmauni-long.ads, s-mmosin-mingw.ads, s-mmosin-mingw.adb: New files.
4098
40992017-01-12 Yannick Moy <moy@adacore.com>
4100
4101 * errout.adb, errout.ads (Initialize): Factor common treatment
4102 in Reset_Warnings.
4103 (Reset_Warnings): New procedure to reset counts related to warnings.
4104 (Record_Compilation_Errors): New variable to store the presence of an
4105 error, used in gnat2why to allow changing the Warning_Mode.
4106 (Compilation_Errors): Use new variable Record_Compilation_Errors to
4107 store the presence of an error.
4108
41092017-01-12 Javier Miranda <miranda@adacore.com>
4110
4111 * sem_ch13.adb (Analyze_Aspect_Specifications):
4112 For Interrupt_Handler and Attach_ Handler aspects, decorate the
4113 internally built reference to the protected procedure as coming
4114 from sources and force its analysis.
4115
41162017-01-12 Ed Schonberg <schonberg@adacore.com>
4117
4118 * sem_ch3.adb (Build_Derived_Type): For a scalar derived type,
4119 inherit predicates if any from the first_subtype of the parent,
4120 not from the anonymous parent type.
4121 * sem_eval.adb (Is_Static_Subtype): A type that inherits a dynamic
4122 predicate is not a static subtype.
4123
41242017-01-12 Gary Dismukes <dismukes@adacore.com>
4125
4126 * freeze.adb (Check_Suspicious_Convention): New procedure
4127 performing a warning check on discriminated record types with
4128 convention C or C++. Factored out of procedure Freeze_Record_Type,
4129 and changed to only apply to base types (to avoid spurious
4130 warnings on subtypes). Minor improvement of warning messages
4131 to refer to discriminated rather than variant record types.
4132 (Freeze_Record_Type): Remove code for performing a suspicious
4133 convention check.
4134 (Freeze_Entity): Only call Freeze_Record_Type
4135 on types that aren't declared within any enclosing generic units
4136 (rather than just excluding the type when the innermost scope
4137 is generic). Call Check_Suspicious_Convention whether or not
4138 the type is declared within a generic unit.
4139 * sem_ch8.adb (In_Generic_Scope): Move this function to Sem_Util.
4140 * sem_util.ads, sem_util.adb (In_Generic_Scope): New function (moved
4141 from Sem_Ch8).
4142
41432017-01-12 Tristan Gingold <gingold@adacore.com>
4144
4145 * sysdep.c, adaint.c, rtinit.c, ming32.h:
4146 (__gnat_current_codepage): Renamed from CurrentCodePage
4147 (__gnat_current_ccs_encoding): Renamed from CurrentCCSEncoding
4148
41492017-01-12 Ed Schonberg <schonberg@adacore.com>
4150
4151 * sem_ch6.adb (Fully_Conformant_Expressions): Handle properly
4152 quantified expressions, following AI12-050: the loop parameters
4153 of two quantified expressions are conformant if they have the
4154 same identifier.
4155
4e41b0e6
AC
41562017-01-12 Arnaud Charlet <charlet@adacore.com>
4157
4158 * gcc-interface/Makefile.in: Clean up VxWorks targets.
4159
0289a8d7
AC
41602017-01-12 Ed Schonberg <schonberg@adacore.com>
4161
4162 * sem_attr.adb (Analyze_Attribute_Reference, case Loop_Entry):
4163 Hnadle properly the attribute reference when it appears as part
4164 of an expression in another loop aspect.
4165
41662017-01-12 Ed Schonberg <schonberg@adacore.com>
4167
4168 * exp_ch3.adb (Check_Predicated_Discriminant): New procedure,
4169 subsidiary of Build_Initialization_Call, to complete generation
4170 of predicate checks on discriminants whose (sub)types have
4171 predicates, and to add checks on variants that do not have an
4172 others clause.
4173 * sem_util.adb (Gather_Components): A missing Others alternative is
4174 not an error when the type of the discriminant is a static predicate
4175 (and coverage has been checked when analyzing the case statement). A
4176 runtime check is generated to verify that a given discriminant
4177 satisfies the predicate (RM 3.8.1. (21.1/2)).
4178
41792017-01-12 Yannick Moy <moy@adacore.com>
4180
4181 * gnat1drv.adb (Adjust_Global_Switches): Only
4182 perform checking of exception mechanism when generating code.
4183
41842017-01-12 Justin Squirek <squirek@adacore.com>
4185
4186 * exp_ch7.adb (Add_Type_Invariants, Process_Array_Component):
4187 Remove handling of access component with invariant.
4188 (Build_Invariant_Procedure_Declaration): Remove return on class
4189 wide type.
4190 * freeze.adb (Freeze_Array_Type, Freeze_Record_Type): Remove
4191 conditional exception for component or array so Has_Own_Invariants
4192 flag is not falsly set.
4193 * sem_ch3.adb (Make_Class_Wide_Type): Initialize copy of class
4194 wide type to have no invariant flags.
4195
2168d7cc
AC
41962017-01-12 Hristian Kirtchev <kirtchev@adacore.com>
4197
4198 * exp_ch9.adb, sem_prag.adb, s-tassta.adb, sem_util.adb, s-tarest.adb,
4199 sem_ch13.adb: Minor reformatting.
4200
42012017-01-12 Hristian Kirtchev <kirtchev@adacore.com>
4202
4203 * exp_aggr.adb (Build_Record_Aggr_Code): Guard against a missing
4204 adjustment primitive when the ancestor type was not properly frozen.
4205 (Gen_Assign): Guard against a missing initialization
4206 primitive when the component type was not properly frozen.
4207 (Initialize_Array_Component): Guard against a missing adjustment
4208 primitive when the component type was not properly frozen.
4209 (Initialize_Record_Component): Guard against a missing adjustment
4210 primitive when the component type was not properly frozen.
4211 (Process_Transient_Component_Completion): The transient object may
4212 not be finalized when its associated type was not properly frozen.
4213 * exp_ch3.adb (Build_Assignment): Guard against a missing
4214 adjustment primitive when the component type was not properly frozen.
4215 (Build_Initialization_Call): Guard against a missing
4216 initialization primitive when the associated type was not properly
4217 frozen.
4218 (Expand_N_Object_Declaration): Guard against a missing
4219 adjustment primitive when the base type was not properly frozen.
4220 (Predefined_Primitive_Bodies): Create an empty Deep_Adjust
4221 body when there is no adjustment primitive available. Create an
4222 empty Deep_Finalize body when there is no finalization primitive
4223 available.
4224 * exp_ch4.adb (Apply_Accessibility_Check): Guard against a
4225 missing finalization primitive when the designated type was
4226 not properly frozen.
4227 (Expand_N_Allocator): Guard against a missing initialization primitive
4228 when the designated type was not properly frozen.
4229 * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add the adjustment call
4230 only when the corresponding adjustment primitive is available.
4231 * exp_ch7.adb (Build_Adjust_Or_Finalize_Statements): Generate the
4232 adjustment/finalization statements only when there is an available
4233 primitive to carry out the action.
4234 (Build_Initialize_Statements): Generate the initialization/finalization
4235 statements only when there is an available primitive to carry out the
4236 action.
4237 (Make_Adjust_Call): Do not generate a call when the underlying
4238 type is not present due to a possible missing full view.
4239 (Make_Final_Call): Do not generate a call when the underlying
4240 type is not present due to a possible missing full view.
4241 (Make_Finalize_Address_Stmts): Generate an empty body when the
4242 designated type lacks a finalization primitive.
4243 (Make_Init_Call): Do not generate a call when the underlying type is
4244 not present due to a possible missing full view.
4245 (Process_Component_For_Adjust): Add the adjustment call only when the
4246 corresponding adjustment primitive is available.
4247 (Process_Component_For_Finalize): Add the finalization call only when
4248 the corresponding finalization primitive is available.
4249 (Process_Object_Declaration): Use a null statement to emulate a
4250 missing call to the finalization primitive of the object type.
4251 * exp_ch7.ads (Make_Adjust_Call): Update the comment on usage.
4252 (Make_Final_Call): Update the comment on usage.
4253 (Make_Init_Call): Update the comment on usage.
4254 * exp_util.adb (Build_Transient_Object_Statements): Code reformatting.
4255
42562017-01-12 Arnaud Charlet <charlet@adacore.com>
4257
4258 * einfo.ads: Update documentation of Address_Taken.
4259 * sem_attr.adb (Analyze_Access_Attribute, Resolve_Attribute
4260 [Access_Attribute]): Only consider 'Access/'Unchecked_Access
4261 for subprograms when setting Address_Taken flag.
4262
42632017-01-12 Patrick Bernardi <bernardi@adacore.com>
4264
4265 * sem_ch10.adb (Analyze_With_Clause): Removed code that turned
4266 Configurable_Run_Time_Mode off when analysing with'ed predefined
4267 libraries.
4268
872fc7b5
GD
42692017-01-12 Gary Dismukes <dismukes@adacore.com>
4270
4271 * sem_prag.adb: Minor reformatting.
4272 * sem_util.adb (Unique_Entity): fix result for
4273 bodies of entry families.
4274
00420f74
JS
42752017-01-12 Justin Squirek <squirek@adacore.com>
4276
4277 * sem_prag.adb (Analyze_Pragma): Add appropriate calls to
4278 Resolve_Suppressible in the pragma Assertion_Policy case.
4279 (Resolve_Suppressible): Created this function to factor out
4280 common code used to resolve Suppress to either Ignore or Check
4281 * snames.ads-tmpl: Add name for Suppressible.
4282
4bfe4a99
GD
42832017-01-12 Gary Dismukes <dismukes@adacore.com>
4284
4285 * exp_ch9.adb, s-secsta.adb, snames.ads-tmpl, exp_ch3.adb: Minor
4286 reformatting.
4287 * debug.adb: Minor comment fixes.
4288
eacfa9bc
AC
42892017-01-12 Arnaud Charlet <charlet@adacore.com>
4290
4291 * sem_util.adb (Unique_Entity): For concurrent
4292 bodies that are defined with stubs and complete a declaration
4293 of a single concurrent object return the entity of an implicit
4294 concurrent type, not the entity of the anonymous concurrent
4295 object.
4296 * debug.adb: -gnatd.J is no longer used.
4297 * make.adb (Globalize): Removed, no longer used.
4298 * sem_ch9.adb: minor typo in comment for entry index
4299
43002017-01-12 Patrick Bernardi <bernardi@adacore.com>
4301
4302 * aspect.adb, aspect.ads: Added new aspect Secondary_Stack_Size.
4303 * exp_ch3.adb (Build_Init_Statements): As part of initialising
4304 the value record of a task, set its _Secondary_Stack_Size field
4305 if present.
4306 * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create
4307 a _Secondary_Stack_Size field in the value record of
4308 the task if a Secondary_Stack_Size rep item is present.
4309 (Make_Task_Create_Call): Include secondary stack size
4310 parameter. If No_Secondary_Stack restriction is in place, passes
4311 stack size of 0.
4312 * par-prag.adb, sem_prag.adb, sem_prag.ads: Added new pragma
4313 Secondary_Stack_Size.
4314 * s-secsta.adb, s-secsta.ads (Minimum_Secondary_Stack_Size): New
4315 function to define the overhead of the secondary stack.
4316 * s-tarest.adb (Create_Restricted_Task,
4317 Create_Restricted_Task_Sequential): Functions now include
4318 Secondary_Stack_Size parameter to pass to Initialize_ATCB.
4319 * s-tarest.adb (Create_Restricted_Task,
4320 Create_Restricted_Task_Sequential): Calls to Initialize_ATCB now
4321 include Secondary_Stack_Size parameter.
4322 (Task_Wrapper): Secondary stack now allocated to the size specified by
4323 the Secondary_Stack_Size parameter in the task's ATCB.
4324 * s-taskin.adb, s-taskin.adb (Common_ATCB, Initialize_ATCB): New
4325 Secondary_Stack_Size component.
4326 * s-tassta.adb, s-tassta.ads (Create_Restricted_Task,
4327 Create_Restricted_Task_Sequential): Function now include
4328 Secondary_Stack_Size parameter.
4329 (Task_Wrapper): Secondary stack now allocated to the size
4330 specified by the Secondary_Stack_Size parameter in the task's
4331 ATCB.
4332 * s-tproft.adb (Register_Foreign_Thread): Amended Initialize_ATCB call
4333 to include Secondary_Stack_Size parameter.
4334 * sem_ch13.adb (Analyze_Aspect_Specification): Add support for
4335 Secondary_Stack_Size aspect, turning the aspect into its corresponding
4336 internal attribute.
4337 (Analyze_Attribute_Definition): Process Secondary_Stack_Size attribute.
4338 * snames.adb-tmpl, snames.ads-tmpl: Added names
4339 Name_Secondary_Stack_Size, Name_uSecondary_Stack_Size,
4340 Attribute_Secondary_Stack_Size and Pragma_Secondary_Stack_Size.
4341
5f325af2
AC
43422017-01-12 Yannick Moy <moy@adacore.com>
4343
4344 * exp_spark.adb (Expand_SPARK_Potential_Renaming): Fix sloc of copied
4345 subtree.
4346
43472017-01-12 Justin Squirek <squirek@adacore.com>
4348
4349 * exp_attr.adb (Expand_N_Attribute_Reference):
4350 Fix Finalization_Size case by properly resolving the type after
4351 rewritting the node.
4352
43532017-01-12 Hristian Kirtchev <kirtchev@adacore.com>
4354
4355 * exp_util.adb (Build_DIC_Procedure_Body): Semi-insert the body into
4356 the tree.
4357 (Build_DIC_Procedure_Declaration): Semi-insert the body into the tree.
4358 * binde.adb, exp_ch5.adb, sem_type.adb, sem.ads, sem_res.adb,
4359 exp_sel.ads: Minor reformatting.
4360
43612017-01-12 Justin Squirek <squirek@adacore.com>
4362
4363 * exp_ch6.adb (Expand_Call): Add guard to prevent
4364 invariant checks from being created for internally generated
4365 subprograms.
4366
43672017-01-12 Bob Duff <duff@adacore.com>
4368
4369 * lib-writ.ads: Remove incorrect comment.
4370
43712017-01-12 Javier Miranda <miranda@adacore.com>
4372
4373 * debug.adb (-gnatd.K): Enable generation of contract-only
4374 procedures in CodePeer mode.
4375 * contracts.adb (Build_And_Analyze_Contract_Only_Subprograms):
4376 New subprogram.
4377 (Analyze_Contracts): Generate contract-only procedures if -gnatdK is
4378 set.
4379 * scil_ll.ads, scil_ll.adb (Get_Contract_Only_Body_Name): New
4380 subprogram.
4381 (Get_Contract_Only_Missing_Body_Name): New subprogram.
4382 (Get_Contract_Only_Body): New subprogram.
4383 (Set_Contract_Only_Body): New subprogram.
4384 (Is_Contract_Only_Body): New subprogram.
4385 (Set_Is_Contract_Only_Body): New subprogram.
4386 (SCIL_Nodes): Replace table by hash-table.
4387
10c2c151
AC
43882017-01-12 Hristian Kirtchev <kirtchev@adacore.com>
4389
4390 * exp_ch6.adb: Minor reformatting.
4391 * spark_xrefs.ads: minor cleanup of comments for SPARK xrefs
4392
43932017-01-12 Bob Duff <duff@adacore.com>
4394
4395 * binde.adb (Forced): New reason for a dependence.
4396 (Force_Elab_Order): Implementation of the new switch.
4397 * binde.ads: Minor comment fixes.
4398 * bindusg.adb: Add -f switch. Apparently, there was an -f switch
4399 long ago that is no longer supported; removed comment about that.
4400 * opt.ads (Force_Elab_Order_File): Name of file specified for
4401 -f switch.
4402 * switch-b.adb: Parse -f switch.
4403
84e13614
JS
44042017-01-12 Justin Squirek <squirek@adacore.com>
4405
4406 * exp_ch6.adb (Check_View_Conversion): Created this function
4407 to properly chain calls to check type invariants that may be
4408 present in a subprogram call after the subprogram.
4409 (Expand_Call): Add a conditional to identify when a view conversion
4410 needs to be checked.
4411 * nlists.adb, nlists.ads (Prepend_New): New routine.
4412 (Prepend_New_To): New routine.
4413
e51102b2
AC
44142017-01-12 Hristian Kirtchev <kirtchev@adacore.com>
4415
4416 * sinfo.ads: Minor reformatting.
4417
44182017-01-12 Gary Dismukes <dismukes@adacore.com>
4419
4420 * exp_util.adb, exp_util.ads, einfo.ads: Minor typo fixes and
4421 reformatting.
4422
44232017-01-12 Hristian Kirtchev <kirtchev@adacore.com>
4424
4425 * exp_ch6.adb (Make_Build_In_Place_Call_In_Anonymous_Context): Add new
4426 variable Definite. Create a local object and pass its 'Access to the
4427 BIP function when the result type is either definite or it does not
4428 require any finalization or secondary stack management.
4429
6e759c2a
BD
44302017-01-12 Bob Duff <duff@adacore.com>
4431
4432 * contracts.adb, einfo.adb, errout.adb, exp_attr.adb,
4433 exp_ch3.adb, exp_ch7.adb, exp_ch9.adb, exp_prag.adb, freeze.adb,
4434 frontend.adb, ghost.adb, inline.adb, lib-writ.adb, lib-xref.adb,
4435 par.adb, par-ch10.adb, par-ch2.adb, par-prag.adb, par_sco.adb,
4436 sem_attr.adb, sem_aux.adb, sem_ch10.adb, sem_ch12.adb,
4437 sem_ch13.adb, sem_ch6.adb, sem_ch8.adb, sem_ch9.adb, sem_elab.adb,
4438 sem_prag.adb, sem_res.adb, sem_util.adb, sem_util.ads,
4439 sem_warn.adb, sinfo.adb, sinfo.ads, sprint.adb (Pragma_Name):
4440 Change name to Pragma_Name_Unmapped.
4441 (Pragma_Name_Mapped): Change name to Pragma_Name.
4442 This is because the "mapped" version should be the usual case.
4443
f63d601b
HK
44442017-01-09 Hristian Kirtchev <kirtchev@adacore.com>
4445
4446 * einfo.ads, einfo.adb: Remove uses of flags Has_Default_Init_Cond,
4447 Is_Default_Init_Cond_Procedure, and
4448 Has_Inherited_Default_Init_Cond. Add uses of flags
4449 Has_Own_DIC, Is_DIC_Procedure, and Has_Inherited_DIC.
4450 (Default_Init_Cond_Procedure): Removed.
4451 (DIC_Procedure): New routine.
4452 (Has_Default_Init_Cond): Removed.
4453 (Has_DIC): New routine.
4454 (Has_Inheritable_Invariants): The attribute applies to the base type.
4455 (Has_Inherited_Default_Init_Cond): Removed.
4456 (Has_Inherited_DIC): New routine.
4457 (Has_Inherited_Invariants): The attribute applies to the base type.
4458 (Has_Own_DIC): New routine.
4459 (Has_Own_Invariants): The attribute applies to the base type.
4460 (Is_Default_Init_Cond_Procedure): Removed.
4461 (Is_DIC_Procedure): New routine.
4462 (Set_Default_Init_Cond_Procedure): Removed.
4463 (Set_DIC_Procedure): New routine.
4464 (Set_Has_Default_Init_Cond): Removed.
4465 (Set_Has_Inheritable_Invariants): The attribute applies
4466 to the base type.
4467 (Set_Has_Inherited_Default_Init_Cond): Removed.
4468 (Set_Has_Inherited_DIC): New routine.
4469 (Set_Has_Inherited_Invariants): The attribute applies to the base type.
4470 (Set_Has_Own_DIC): New routine.
4471 (Set_Has_Own_Invariants): The attribute applies to the base type.
4472 (Set_Is_Default_Init_Cond_Procedure): Removed.
4473 (Set_Is_DIC_Procedure): New routine.
4474 (Write_Entity_Flags): Update the output of all flags related to
4475 default initial condition.
4476 * exp_ch3.adb (Expand_N_Object_Declaration): Update the generation
4477 of the call to the DIC procedure.
4478 (Freeze_Type): Generate the body of the DIC procedure.
4479 * exp_ch7.adb (Build_Invariant_Procedure_Body): Replace
4480 all occurrences of Create_Append with Append_New_To. Do
4481 not generate an invariant procedure for a class-wide type.
4482 The generated body acts as a freeze action of the working type.
4483 (Build_Invariant_Procedure_Declaration): Do not generate an
4484 invariant procedure for a class-wide type.
4485 (Create_Append): Removed.
4486 * exp_util.adb: Add with and use clauses for Sem_Ch3, sem_ch6,
4487 sem_Ch12, Sem_Disp, and GNAT.HTable. Move the handling of
4488 class-wide pre/postcondition description and data structures from
4489 Sem_Prag.
4490 (Build_Class_Wide_Expression): Moved from Sem_Prag.
4491 (Build_DIC_Call): New routine.
4492 (Build_DIC_Procedure_Body): New routine.
4493 (Build_DIC_Procedure_Declaration): New routine.
4494 (Entity_Hash): Moved from Sem_Prag.
4495 (Find_DIC_Type): New routine.
4496 (Update_Primitives_Mapping): Reimplemented.
4497 (Update_Primitives_Mapping_Of_Types): New routine.
4498 * exp_util.ads (Build_Class_Wide_Expression): Moved from Sem_Prag.
4499 (Build_DIC_Call): New routine.
4500 (Build_DIC_Procedure_Body): New routine.
4501 (Build_DIC_Procedure_Declaration): New routine.
4502 (Update_Primitives_Mapping): Moved from Sem_Prag.
4503 (Update_Primitives_Mapping_Of_Types): New routine.
4504 * nlists.adb (Append_New): New routine.
4505 (Append_New_To): New routine.
4506 * nlists.ads (Append_New): New routine.
4507 (Append_New_To): New routine.
4508 * sem_ch3.adb (Analyze_Declarations): Do not generate the bodies
4509 of DIC procedures here. This is now done at the end of the
4510 visible declarations, private declarations, and at the freeze
4511 point of a type.
4512 (Analyze_Private_Extension_Declaration):
4513 A private extension inherits the DIC pragma of a parent type.
4514 (Analyze_Subtype_Declaration): No need to propagate invariant
4515 attributes to a subtype as those apply to the base type.
4516 (Build_Derived_Record_Type): No need to inherit invariants here
4517 as this is now done in Build_Derived_Type.
4518 (Build_Derived_Type): Inherit both the DIC pragma and invariants from
4519 a parent type.
4520 (Process_Full_View): Update the propagation of DIC attributes.
4521 (Propagate_Default_Init_Cond_Attributes): Removed.
4522 * sem_ch7.adb Add with and use clauses for Exp_Util.
4523 (Analyze_Package_Specification): Create the body of the DIC
4524 procedure at the end of the visible and private declarations.
4525 (Preserve_Full_Attributes): Propagate DIC attributes.
4526 * sem_ch9.adb (Analyze_Protected_Type_Declaration): Propagate
4527 DIC attributes.
4528 (Analyze_Task_Type_Declaration): Propagate DIC attributes.
4529 * sem_elab.adb (Check_A_Call): Update the call to
4530 Is_Nontrivial_Default_Init_Cond_Procedure.
4531 * sem_prag.adb Remove the with and use clauses for
4532 GNAT.HTable. Move the handling of class- wide pre/postcondition
4533 description and data structures to Exp_Util.
4534 (Analyze_Pragma): Create the declaration of the DIC procedure. There
4535 is no need to propagate invariant-related attributes at this point
4536 as this is done in Build_Invariant_Procedure_Declaration.
4537 (Build_Class_Wide_Expression): Moved to Exp_Util.
4538 (Entity_Hash): Moved to Exp_Util.
4539 (Update_Primitives_Mapping): Moved to Exp_Util.
4540 * sem_prag.ads (Build_Class_Wide_Expression): Moved to Exp_Util.
4541 (Update_Primitives_Mapping): Moved to Exp_Util.
4542 * sem_util.adb: Remove with and use clauses for Ghost
4543 and Sem_Ch13.
4544 (Build_Default_Init_Cond_Call): Removed.
4545 (Build_Default_Init_Cond_Procedure_Bodies): Removed.
4546 (Build_Default_Init_Cond_Procedure_Declaration): Removed.
4547 (Get_Views): Reimplemented.
4548 (Has_Full_Default_Initialization): Reimplement the section on DIC.
4549 (Inherit_Default_Init_Cond_Procedure): Removed.
4550 (Is_Nontrivial_Default_Init_Cond_Procedure): Removed.
4551 (Is_Nontrivial_DIC_Procedure): New routine.
4552 (Is_Verifiable_DIC_Pragma): New routine.
4553 (Propagate_DIC_Attributes): New routine.
4554 * sem_util.ads (Build_Default_Init_Cond_Call): Removed.
4555 (Build_Default_Init_Cond_Procedure_Bodies): Removed.
4556 (Build_Default_Init_Cond_Procedure_Declaration): Removed.
4557 (Inherit_Default_Init_Cond_Procedure): Removed.
4558 (Is_Nontrivial_Default_Init_Cond_Procedure): Removed.
4559 (Is_Nontrivial_DIC_Procedure): New routine.
4560 (Is_Verifiable_DIC_Pragma): New routine.
4561 (Propagate_DIC_Attributes): New routine.
4562 * sem_warn.adb (Is_OK_Fully_Initialized): Reimplement the section
4563 on DIC.
4564 * sinfo.ads, sinfo.adb: Add new attribute Expression_Copy along with
4565 usage in nodes.
4566 (Expression_Copy): New routine along with pragma Inline.
4567 (Set_Expression_Copy): New routine along with pragma Inline.
4568
b41f45e7
AC
45692017-01-06 Bob Duff <duff@adacore.com>
4570
4571 * bindgen.adb (Gen_Adainit, Gen_Adafinal): Change
4572 "Bind_Main_Program" to "not Bind_For_Library", because otherwise
4573 we won't generate the call to s_stalib_adafinal when the main
4574 is not written in Ada.
4575
45762017-01-06 Bob Duff <duff@adacore.com>
4577
4578 * sem_prag.adb: Minor: remove pragma Warnings.
4579
45802017-01-06 Tristan Gingold <gingold@adacore.com>
4581
4582 * Makefile.rtl: Do not compile s-stchop by default.
4583
eae66578
PB
45842017-01-06 Patrick Bernardi <bernardi@adacore.com>
4585
4586 * aspects.adb, aspects.ads, exp_ch3.adb, exp_ch9.adb, par-prag.adb,
4587 sem_ch13.adb, sem_prag.adb, sem_prag.ads, snames.adb-tmpl,
4588 snames.ads-tmpl, s-secsta.adb, s-secsta.ads, s-tarest.adb,
4589 s-tarest.ads, s-taskin.adb, s-taskin.ads, s-tassta.adb, s-tassta.ads:
4590 Reverted previous change for now.
4591
e666e744
ES
45922017-01-06 Ed Schonberg <schonberg@adacore.com>
4593
4594 * exp_ch3.adb (Build_Initialization_Call): Apply predicate
4595 check to default discriminant value if checks are enabled.
4596 (Build_Assignment): If type of component has static predicate,
4597 apply check to its default value, if any.
4598
73bfca78
PB
45992017-01-06 Patrick Bernardi <bernardi@adacore.com>
4600
4601 * aspect.adb, aspect.ads: Added new aspect Secondary_Stack_Size.
4602 * exp_ch3.adb (Build_Init_Statements): As part of initialising
4603 the value record of a task, set its _Secondary_Stack_Size field
4604 if present.
4605 * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create
4606 a _Secondary_Stack_Size field in the value record of
4607 the task if a Secondary_Stack_Size rep item is present.
4608 (Make_Task_Create_Call): Include secondary stack size
4609 parameter. If No_Secondary_Stack restriction is in place, passes
4610 stack size of 0.
4611 * par-prag.adb, sem_prag.adb, sem_prag.ads: Added new pragma
4612 Secondary_Stack_Size.
4613 * s-secsta.adb, s-secsta.ads (Minimum_Secondary_Stack_Size): New
4614 function to define the overhead of the secondary stack.
4615 * s-tarest.adb (Create_Restricted_Task,
4616 Create_Restricted_Task_Sequential): Functions now include
4617 Secondary_Stack_Size parameter to pass to Initialize_ATCB.
4618 * s-tarest.adb (Create_Restricted_Task,
4619 Create_Restricted_Task_Sequential): Calls to Initialize_ATCB
4620 now include Secondary_Stack_Size parameter.
4621 (Task_Wrapper):
4622 Secondary stack now allocated to the size specified by the
4623 Secondary_Stack_Size parameter in the task's ATCB.
4624 * s-taskin.adb, s-taskin.adb (Common_ATCB, Initialise_ATCB): New
4625 Secondary_Stack_Size component.
4626 * s-tassta.adb, s-tassta.ads (Create_Restricted_Task,
4627 Create_Restricted_Task_Sequential): Function now include
4628 Secondary_Stack_Size parameter.
4629 (Task_Wrapper): Secondary stack
4630 now allocated to the size specified by the Secondary_Stack_Size
4631 parameter in the task's ATCB.
4632 * sem_ch13.adb (Analyze_Aspect_Specification): Add support
4633 for Secondary_Stack_Size aspect, turning the aspect into its
4634 corresponding internal attribute.
4635 (Analyze_Attribute_Definition):
4636 Process Secondary_Stack_Size attribute.
4637 * snames.adb-tmpl, snames.ads-tmpl: Added names
4638 Name_Secondary_Stack_Size, Name_uSecondary_Stack_Size,
4639 Attribute_Secondary_Stack_Size and Pragma_Secondary_Stack_Size.
4640
f6c5454e
PO
46412017-01-06 Pascal Obry <obry@adacore.com>
4642
4643 * a-direio.adb, a-direio.ads, a-sequio.adb, a-sequio.ads: Add Flush to
4644 Sequential_IO and Direct_IO.
4645
533e3abc
BD
46462017-01-06 Bob Duff <duff@adacore.com>
4647
4648 * snames.ads-tmpl (Renamed): New name for the pragma argument.
4649 * par-ch2.adb: Allow the new pragma (with analysis deferred
4650 to Sem_Prag).
4651 * sinfo.ads, sinfo.adb (Map_Pragma_Name, Pragma_Name_Mapped):
4652 Keep a mapping from new pragma names to old names.
4653 * sem_prag.adb: Check legality of pragma Rename_Pragma, and
4654 implement it by calling Map_Pragma_Name.
4655 * checks.adb, contracts.adb, einfo.adb, errout.adb,
4656 * exp_attr.adb, exp_ch3.adb, exp_ch6.adb, exp_ch7.adb, exp_ch9.adb,
4657 * exp_prag.adb, exp_util.adb, freeze.adb, frontend.adb, ghost.adb,
4658 * inline.adb, lib-writ.adb, scans.adb, scans.ads, sem_attr.adb,
4659 * sem_aux.adb, sem_ch10.adb, sem_ch13.adb, sem_ch6.adb, sem_ch9.adb,
4660 * sem_elab.adb, sem_res.adb, sem_util.adb, sem_util.ads,
4661 * sem_warn.adb: Call Pragma_Name_Mapped instead of Pragma_Name
4662 as appropriate.
4663
a62e6287
HK
46642017-01-06 Hristian Kirtchev <kirtchev@adacore.com>
4665
4666 * exp_ch9.adb: Minor reformatting.
4667
dbf2a2d3
TG
46682017-01-06 Tristan Gingold <gingold@adacore.com>
4669
4670 * exp_ch9.ads, exp_ch9.adb (Build_Entry_Names): Remove (unused).
4671 * rtsfind.ads (RE_Task_Entry_Names_Array, RO_ST_Set_Entry_Names)
4672 (RE_Protected_Entry_Names_Array, RO_PE_Set_Entry_Names): Remove
4673 (unused).
4674 * s-taskin.ads, s-taskin.adb (Set_Entry_Names,
4675 Task_Entry_Names_Array, Task_Entry_Names_Access): Remove.
4676 * s-tpoben.ads, s-tpoben.adb (Set_Entry_Names,
4677 Protected_Entry_Names_Array, Protected_Entry_Names_Access): Remove.
4678
0789ef6f
AC
46792017-01-06 Bob Duff <duff@adacore.com>
4680
4681 * sinfo.ads, sinfo.adb (Map_Pragma_Name): Preparation work,
4682 dummy implementation of Map_Pragma_Name.
4683
46842017-01-06 Tristan Gingold <gingold@adacore.com>
4685
4686 * exp_ch9.adb (Expand_N_Protected_Type_Declaration): Make the
4687 entry_body variable constant.
4688 * s-taprob.ads (Entry_Body_Access): Move to s-tposen.
4689 * s-tpoben.ads (Protected_Entry_Body_Access): Now access
4690 to constant.
4691 * s-tposen.ads (Entry_Body_Access): Moved from s-taprob,
4692 now access to constant.
4693
ffa168bc
AC
46942017-01-06 Gary Dismukes <dismukes@adacore.com>
4695
4696 * einfo.ads, sem_res.adb, sem_attr.adb, sem_ch6.adb: Minor
4697 reformatting and typo fixes.
4698
46992017-01-06 Bob Duff <duff@adacore.com>
4700
4701 * snames.ads-tmpl: New names for pragma renaming.
4702 * snames.adb-tmpl (Is_Configuration_Pragma_Name): Minor cleanup.
4703 * par-prag.adb: Add new pragma name to case statement.
4704 * sem_prag.adb (Rename_Pragma): Initial cut at semantic analysis
4705 of the pragma.
4706 * sinfo.ads, sinfo.adb (Pragma_Name_Mapped): Preparation work,
4707 Dummy implementation of Pragma_Name_Mapped.
4708
9ca67d3f
ES
47092017-01-06 Ed Schonberg <schonberg@adacore.com>
4710
4711 * exp_ch6.adb (Expand_Protected_Subprogram_Call): Add guard to
4712 better detect call within an entry_wrapper.
4713 * sem_res.adb (Resolve_Call): A protected call within an
4714 entity_wrapper is analyzed in the context of the protected
4715 object but corresponds to a pre-analysis and is not an access
4716 before elaboration.
4717 * sem_attr.adb: Minor reformatting.
4718
5e127570
AC
47192017-01-06 Justin Squirek <squirek@adacore.com>
4720
4721 * sem_attr.adb (Analyze_Attribute): Modify semantic checks for
4722 Finalization_Size to allow a prefix of any non-class-wide type.
4723 * sem_attr.ads Modify comment for Finalization_Size to include
4724 definite type use case.
4725
47262017-01-06 Ed Schonberg <schonberg@adacore.com>
4727
4728 * einfo.ads, einfo.adb (Is_Entry_Wrapper): New flag, defined
4729 on procedures that are wrappers created for entries that have
4730 preconditions.
4731 * sem_ch6.adb (Analyze_Subrogram_Body_Helper): If the subprogram
4732 body is an entry_wrapper, compile it in the context of the
4733 synchronized type, because a precondition may refer to funtions
4734 of the type.
4735 * exp_ch9.adb (Build_Contract_Wrapper): Set Is_Entry_Wrapper on
4736 body entity.
4737 * exp_ch6.adb (Expand_Protected_Subprogram_Call): if the call is
4738 within an Entry_Wrapper this is an external call whose target
4739 is the synchronized object that is the actual in the call to
4740 the wrapper.
4741
50145b93
AC
47422017-01-06 Yannick Moy <moy@adacore.com>
4743
4744 * sem_attr.adb (Analyze_Attribute/Attribute_Loop_Entry): Analyze node
4745 in tree, which means not analyzing the previous prefix if the node has
4746 been rewritten into its prefix.
4747
47482017-01-06 Gary Dismukes <dismukes@adacore.com>
4749
4750 * s-tpobop.adb: Minor reformatting.
4751
229fa5db
AC
47522017-01-06 Ed Schonberg <schonberg@adacore.com>
4753
4754 * checks.adb (Ensure_Valid): Do not generate a validity check
4755 within a generated predicate function, validity checks will have
4756 been applied earlier when required.
4757
47582017-01-06 Tristan Gingold <gingold@adacore.com>
4759
4760 * s-tpoben.ads (Protection_Entries): Add comment and reorder
4761 components for performances.
4762 * s-tpobop.adb (PO_Do_Or_Queue): Implement Max_Queue_Length runtime
4763 semantic.
4764
d9c59db4
AC
47652017-01-06 Ed Schonberg <schonberg@adacore.com>
4766
4767 * sem_eval.adb (Check_Expression_Against_Static_Predicate):
4768 If expression is compile-time known and obeys a static predicate
4769 it must be labelled as static, to prevent spurious warnings and
4770 run-time errors, e.g. in case statements. This is relevant when
4771 the expression is the result of constant-folding a type conversion
4772 whose expression is a variable with a known static value.
4773
47742017-01-06 Hristian Kirtchev <kirtchev@adacore.com>
4775
4776 * exp_attr.adb, sem_attr.ads: Minor reformatting.
4777
f68d3344
JS
47782017-01-06 Justin Squirek <squirek@adacore.com>
4779
4780 * exp_attr.adb (Expand_N_Attribute_Reference): Add entry for
4781 expansion of Finalization_Size attribute.
4782 * sem_attr.adb (Analyze_Attribute): Add entry to check the
4783 semantics of Finalization_Size.
4784 (Eval_Attribute): Add null entry for Finalization_Size.
4785 * sem_attr.ads: Add Finalization_Size to the implementation
4786 dependent attribute list.
4787 * snames.ads-tmpl: Add name entry for Finalization_Size attribute.
4788
e11b776b
AC
47892017-01-06 Ed Schonberg <schonberg@adacore.com>
4790
4791 * sem_ch5.adb (Analyze_Loop_Statement): If the loop includes an
4792 iterator specification with a serious syntactic error, transform
4793 construct into an infinite loop in order to continue analysis
4794 and prevent a compiler abort.
4795
47962017-01-06 Tristan Gingold <gingold@adacore.com>
4797
4798 * exp_ch9.adb (Expand_N_Protected_Type_Declaration): Do not generate
4799 max_queue_lengths_array if unused.
4800
48012017-01-06 Bob Duff <duff@adacore.com>
4802
4803 * errout.adb (Set_Msg_Text): Protect against out-of-bounds
4804 array access, in case "\" is at the end of Text.
4805 * stylesw.adb (Set_Style_Check_Options): Don't include input
4806 characters in the error message template, because they could
4807 be control characters such as "\", which Errout will try to
4808 interpret.
4809
48102017-01-06 Ed Schonberg <schonberg@adacore.com>
4811
4812 * sem_ch4.adb (Find_Indexing_Operations, Inspect_Declarations):
4813 For a private type examine the visible declarations that follow
4814 the partial view, not just the private declarations that follow
4815 the full view.
4816
48172017-01-06 Hristian Kirtchev <kirtchev@adacore.com>
4818
4819 * exp_ch5.adb, sem_ch3.adb, checks.adb: Minor reformatting and
4820 code cleanup.
4821
6eca51ce
ES
48222017-01-06 Ed Schonberg <schonberg@adacore.com>
4823
4824 * exp_ch5.adb (Get_Default_Iterator): For a derived type, the
4825 alias of the inherited op is the parent iterator, no need to
4826 examine dispatch table positions which might not be established
4827 yet if type is not frozen.
4828 * sem_disp.adb (Check_Controlling_Formals): The formal of a
4829 predicate function may be a subtype of a tagged type.
4830 * sem_ch3.adb (Complete_Private_Subtype): Adjust inheritance
4831 of representation items for the completion of a type extension
4832 where a predicate applies to the partial view.
4833 * checks.ads, checks.adb (Apply_Predicate_Check): Add optional
4834 parameter that designates function whose actual receives a
4835 predicate check, to improve warning message when the check will
4836 lead to infinite recursion.
4837 * sem_res.adb (Resolve_Actuals): Pass additional parameter to
4838 Apply_Predicate_Check.
4839
07b3e137
AC
48402017-01-06 Tristan Gingold <gingold@adacore.com>
4841
4842 * s-rident.ads (Profile_Info): Remove No_Entry_Queue from
4843 Gnat_Extended_Ravenscar.
4844 * exp_ch9.adb, s-tpoben.adb, s-tpoben.ads: Fix spelling.
4845
48462017-01-06 Gary Dismukes <dismukes@adacore.com>
4847
4848 * sem_util.ads: Minor typo fix and reformatting.
4849
ac8380d5
AC
48502017-01-06 Yannick Moy <moy@adacore.com>
4851
4852 * ghost.adb Minor fixing of references to SPARK RM.
4853 (Check_Ghost_Context): Check whether reference is to a lvalue
4854 before issuing an error about violation of SPARK RM 6.9(13)
4855 when declaration has Ghost policy Check and reference has Ghost
4856 policy Ignore.
4857 * sem_util.adb Minor indentation.
4858 * sem_ch10.adb (Analyze_Package_Body_Stub, Analyze_Protected_Body_Stub,
4859 Analyze_Task_Body_Stub): Set Ekind of the defining identifier.
4860 * sem_util.ads (Unique_Defining_Entity): Document the result
4861 for package body stubs.
4862
48632017-01-06 Tristan Gingold <gingold@adacore.com>
4864
4865 * raise-gcc.c (abort): Macro to call Abort_Propagation.
4866 * s-tpoben.ads (Protected_Entry_Queue_Max_Access): Make it access
4867 constant.
4868 * exp_ch9.adb (Expand_N_Protected_Type_Declaration):
4869 Do not generate the Entry_Max_Queue_Lengths_Array if all default
4870 values.
4871 * exp_util.adb (Corresponding_Runtime_Package): Consider
4872 Max_Queue_Length pragma.
4873
7727a9c1
AC
48742017-01-06 Justin Squirek <squirek@adacore.com>
4875
4876 * exp_ch9.adb (Expand_N_Protected_Type_Declaration):
4877 Remove declaration generation in the case of
4878 System_Tasking_Protected_Objects_Single_Entry being used,
4879 and add a warning message when this is detected to occur.
4880 (Make_Initialize_Protection): Remove reference pass in the case
4881 of System_Tasking_Protected_Objects_Single_Entry.
4882 * rtsfind.ads: Remove RE_Protected_Entry_Queue_Max
4883 * s-tposen.adb (Initialize_Protection_Entry): Remove
4884 Entry_Queue_Max parameter.
4885 * s-tposen.ads: Remove the types use to store the entry queue
4886 maximum.
4887 * sem_prag.adb (Analyze_Pragma): Remove entry families restriction
4888
48892017-01-06 Yannick Moy <moy@adacore.com>
4890
4891 * sem_util.adb, sem_util.ads (Get_Enum_Lit_From_Pos): Strengthen
4892 behavior of function, to also accept out of range positions
4893 and raise Constraint_Error in such case, and to copy sloc from
4894 literal if No_Location passed as location.
4895 * uintp.adb, uintp.ads (UI_To_Int, UI_To_CC): Strengthen behavior
4896 of functions to raise Constraint_Error in case of value not in
4897 appropriate range.
4898
48992017-01-06 Tristan Gingold <gingold@adacore.com>
4900
4901 * sem_util.adb, s-taprop-linux.adb (Finalize_TCB): Remove call to
4902 Invalidate_Stack_Cache.
4903
49042017-01-06 Eric Botcazou <ebotcazou@adacore.com>
4905
4906 * s-os_lib.adb: Minor fix to the signature of Readlink.
4907
49082017-01-06 Javier Miranda <miranda@adacore.com>
4909
4910 * sem_ch6.adb (Conforming_Types): Handle another
4911 confusion between views in a nested instance with an actual
4912 private type whose full view is not in scope.
4913
49142017-01-06 Arnaud Charlet <charlet@adacore.com>
4915
4916 * exp_ch5.adb (Expand_N_If_Statement): Obey existing comment and
4917 mark a rewritten if statement as explicit (Comes_From_Source).
4918
ea1135b8
GD
49192017-01-06 Gary Dismukes <dismukes@adacore.com>
4920
4921 * sem_prag.adb, rtsfind.adb, sem_util.adb: Minor typo fixes.
4922
442d1abb
AC
49232017-01-06 Tristan Gingold <gingold@adacore.com>
4924
4925 * ada.ads, a-unccon.ads: Add pragma No_Elaboration_Code_All.
4926
49272017-01-06 Hristian Kirtchev <kirtchev@adacore.com>
4928
4929 * sem_case.adb: Minor reformatting.
4930
49312017-01-06 Thomas Quinot <quinot@adacore.com>
4932
4933 * g-socthi-mingw.adb: Remove now extraneous USE TYPE clause
4934
49352017-01-06 Justin Squirek <squirek@adacore.com>
4936
4937 * aspects.adb: Register aspect in Canonical_Aspect.
4938 * aspects.ads: Associate qualities of Aspect_Max_Queue_Length
4939 into respective tables.
4940 * einfo.ads, einfo.adb: Add a new attribute for
4941 handling the parameters for Pragma_Max_Entry_Queue
4942 (Entry_Max_Queue_Lengths_Array) in E_Protected_Type. Subprograms
4943 for accessing and setting were added as well.
4944 * par-prag.adb (Prag): Register Pramga_Max_Entry_Queue.
4945 * exp_ch9.adb (Expand_N_Protected_Type_Declaration): Emit
4946 declaration for pramga arguments and store them in the protected
4947 type node.
4948 (Make_Initialize_Protection): Pass a reference to
4949 the Entry_Max_Queue_Lengths_Array in the protected type node to
4950 the runtime.
4951 * rtsfind.adb: Minor grammar fix.
4952 * rtsfind.ads: Register new types taken from the
4953 runtime libraries RE_Protected_Entry_Queue_Max and
4954 RE_Protected_Entry_Queue_Max_Array
4955 * s-tposen.adb, s-tpoben.adb
4956 (Initialize_Protection_Entry/Initialize_Protection_Entries):
4957 Add extra parameter and add assignment to local object.
4958 * s-tposen.ads, s-tpoben.ads: Add new types to
4959 store entry queue maximums and a field to the entry object record.
4960 * sem_ch13.adb (Analyze_Aspect_Specifications): Add case statement
4961 for Aspect_Max_Queue_Length.
4962 (Check_Aspect_At_Freeze_Point):
4963 Add aspect to list of aspects that don't require delayed analysis.
4964 * sem_prag.adb (Analyze_Pragma): Add case statement for
4965 Pragma_Max_Queue_Length, check semantics, and register arugments
4966 in the respective entry nodes.
4967 * sem_util.adb, sem_util.ads Add functions Get_Max_Queue_Length
4968 and Has_Max_Queue_Length
4969 * snames.ads-tmpl: Add constant for the new aspect-name
4970 Name_Max_Queue_Length and corrasponding pragma.
4971
49722017-01-06 Hristian Kirtchev <kirtchev@adacore.com>
4973
4974 * exp_util.adb (Is_Controlled_Function_Call):
4975 Reimplemented. Consider any node which has an entity as the
4976 function call may appear in various ways.
4977
ed3fe8cc
AC
49782017-01-06 Hristian Kirtchev <kirtchev@adacore.com>
4979
4980 * exp_attr.adb (Rewrite_Stream_Proc_Call): Use
4981 an unchecked type conversion when performing a view conversion
4982 to/from a private type. In all other cases use a regular type
4983 conversion to ensure that any relevant checks are properly
4984 installed.
4985
49862017-01-06 Hristian Kirtchev <kirtchev@adacore.com>
4987
4988 * sem_prag.adb, sem_ch8.adb: Minor reformatting.
4989
49902017-01-06 Ed Schonberg <schonberg@adacore.com>
4991
4992 * sem_case.adb (Explain_Non_Static_Bound): Suppress cascaded
4993 error on case expression that is an entity, when coverage is
4994 incomplete and entity has a static value obtained by local
4995 propagation.
4996 (Handle_Static_Predicate): New procedure, subsidiary of
4997 Check_Choices, to handle case alternatives that are either
4998 subtype names or subtype indications involving subtypes that
4999 have static predicates.
5000
50012017-01-06 Thomas Quinot <quinot@adacore.com>
5002
5003 * s-oscons-tmplt.c, g-socket.adb, g-socket.ads, g-sothco.ads:
5004 (GNAT.Socket): Add support for Busy_Polling and Generic_Option
5005
50062017-01-06 Bob Duff <duff@adacore.com>
5007
5008 * sem_elab.adb (Activate_Elaborate_All_Desirable): Don't add
5009 Elaborate_All(P) to P itself. That could happen in obscure cases,
5010 and always introduced a cycle (P body must be elaborated before
5011 P body).
5012 * lib-writ.ads: Comment clarification.
5013 * ali-util.ads: Minor comment fix.
5014 * ali.adb: Minor reformatting.
5015
50162017-01-06 Tristan Gingold <gingold@adacore.com>
5017
5018 * a-exexpr-gcc.adb: Improve comment.
5019
47f2abdd
JC
50202017-01-03 James Cowgill <James.Cowgill@imgtec.com>
5021
5022 * s-linux-mips.ads: Use correct signal and errno constants.
5023 (sa_handler_pos, sa_mask_pos): Fix offsets for 64-bit MIPS.
5024
1b5593c0
JC
50252017-01-03 James Cowgill <James.Cowgill@imgtec.com>
5026
5027 * s-linux-mips.ads: Rename from s-linux-mipsel.ads.
5028 * gcc-interface/Makefile.in (MIPS/Linux): Merge mips and mipsel
5029 sections.
5030
613be1c8
EB
50312017-01-01 Eric Botcazou <ebotcazou@adacore.com>
5032
5033 * gnatvsn.ads: Bump copyright year.
5034
c1a9c369 50352017-01-01 Jakub Jelinek <jakub@redhat.com>
21fa2a29
JJ
5036
5037 * gnat_ugn.texi: Bump @copying's copyright year.
5038 * gnat_rm.texi: Likewise.
ad41bd84 5039\f
c1a9c369 5040Copyright (C) 2017 Free Software Foundation, Inc.
ad41bd84
JM
5041
5042Copying and distribution of this file, with or without modification,
5043are permitted in any medium without royalty provided the copyright
5044notice and this notice are preserved.
This page took 3.237215 seconds and 5 git commands to generate.