]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ada/ChangeLog
[6/77] Make GET_MODE_WIDER return an opt_mode
[thirdparty/gcc.git] / gcc / ada / ChangeLog
CommitLineData
490d0f6c
RS
12017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
2 Alan Hayward <alan.hayward@arm.com>
3 David Sherwood <david.sherwood@arm.com>
4
5 * gcc-interface/decl.c (validate_size): Update use of
6 GET_MODE_WIDER_MODE, forcing a wider mode to exist.
7
c94843d2
RS
82017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
9 Alan Hayward <alan.hayward@arm.com>
10 David Sherwood <david.sherwood@arm.com>
11
12 * gcc-interface/misc.c (fp_prec_to_size): Use new mode iterators.
13 (fp_size_to_prec): Likewise.
14
0694da45
ML
152017-08-29 Martin Liska <mliska@suse.cz>
16
17 PR other/39851
18 * gcc-interface/trans.c (Pragma_to_gnu): Set argument to NULL.
19
314e6352
ML
202017-08-08 Martin Liska <mliska@suse.cz>
21
22 * gcc-interface/trans.c: Include header files.
23
e071b767
JJ
242017-07-29 Jakub Jelinek <jakub@redhat.com>
25
26 * gcc-interface/utils.c (gnat_write_global_declarations): Pass false
27 as new argument to the imported_module_or_decl debug hook.
28
a8697b27
EB
292017-07-25 Javier Miranda <miranda@adacore.com>
30
31 * checks.adb (Apply_Divide_Checks): Ensure that operands are not
32 evaluated twice.
33
77011afe
JJ
342017-07-19 Jakub Jelinek <jakub@redhat.com>
35
36 * gcc-interface/ada-tree.h (TYPE_OBJECT_RECORD_TYPE,
37 TYPE_GCC_MIN_VALUE): Use TYPE_MIN_VALUE_RAW instead of TYPE_MINVAL.
38 (TYPE_GCC_MAX_VALUE): Use TYPE_MAX_VALUE_RAW instead of TYPE_MAXVAL.
39
b34a929a
MF
402017-07-18 Mike Frysinger <vapier@chromium.org>
41
0574d9ae
EB
42 * gcc-interface/Makefile.in (../../gnatmake$(exeext)): Delete $(P).
43 (../../gnatlink$(exeext)): Likewise.
b34a929a 44
049e7774
JPAG
452017-07-15 John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
46
47 PR ada/81446
48 * system-linux-m68k.ads: Add pragma No_Elaboration_Code_All.
49 (Backend_Overflow_Checks): Set to True.
50
aa9ace3e
JJ
512017-06-23 Jakub Jelinek <jakub@redhat.com>
52
0574d9ae 53 * gcc-interface/trans.c (gnat_to_gnu): Initialize sync to false.
aa9ace3e 54
ff9baa5f
PMR
552017-06-21 Pierre-Marie de Rodat <derodat@adacore.com>
56
57 * gcc-interface/ada-tree.h (DECL_FUNCTION_IS_DEF): Update copyright
58 notice. New macro.
59 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Tag the subprogram
60 as a definition.
61 (Compilation_Unit_to_gnu): Tag the elaboration procedure as a
62 definition.
63 * gcc-interface/decl.c (gnat_to_gnu_entity): Tag declarations of
64 imported subprograms for the current compilation unit as
65 definitions. Disable debug info for references to variables.
66 * gcc-interface/gigi.h (create_subprog_decl): Update declaration.
67 * gcc-interface/utils.c (gnat_pushdecl): Add external DECLs that are
68 not built-in functions to their binding scope.
69 (create_subprog_decl): Add a DEFINITION parameter. If it is true, tag
70 the function as a definition. Update all callers.
71 (gnat_write_global_declarations): Emit debug info for imported
72 functions. Filter out external variables for which debug info
73 is disabled.
74
cb55f77d
NB
752017-06-15 Nicolas Boulenguez <nicolas.boulenguez@free.fr>
76
77 PR ada/81105
78 * gcc-interface/Makefile.in (x86 kfreebsd): Adjust system.ads setting.
79 (i[3456]86-pc-gnu): Likewise.
80 (x86_64 kfreebsd): Likewise.
81
3b387bff
EB
822017-06-12 Eric Botcazou <ebotcazou@adacore.com>
83
84 PR bootstrap/80897
85 * exp_ch3.adb (Make_Predefined_Primitive_Specs): Use Positive index.
86
cdf2dd41
EB
872017-06-12 Eric Botcazou <ebotcazou@adacore.com>
88
89 PR ada/81070
90 * s-interr-hwint.adb: Reinstate.
91 * gcc-interface/Makefile.in (RTEMS): Use it again.
92
724faf7b
OH
932017-06-08 Olivier Hainque <hainque@adacore.com>
94
95 * vx_crtbegin_auto.c: Update year in copyright notice.
96 * vx_crtbegin.c: Likewise.
97 * vx_crtbegin.inc: Likewise.
98 * vx_crtend.c: Likewise.
99
e059725b
SH
1002017-06-07 Sebastian Huber <sebastian.huber@embedded-brains.de>
101
102 * Makefile.in (rtems): Use TLS implementation for s-tpopsp.adb.
103 * s-tpopsp-rtems.adb: Delete.
104
f8763042
OH
1052017-06-02 Olivier Hainque <hainque@adacore.com>
106
107 * vx_crtbegin_auto.c: New file.
108 * vx_crtbegin.c: New file.
109 * vx_crtbegin.inc: New file.
110 * vx_crtend.c: New file.
111
bb5faf73
JW
1122017-05-25 Jonathan Wakely <jwakely@redhat.com>
113
114 * gcc-interface/utils2.c (compare_elmt_bitpos): Remove redundant
115 const qualifiers that cause -Wignored-qualifiers warnings.
116
fbb1c7d4
EB
1172017-05-22 Eric Botcazou <ebotcazou@adacore.com>
118
119 * gcc-interface/decl.c (gnat_to_gnu_entity): Skip regular processing
120 for Itypes that are E_Access_Subtype.
121 <E_Access_Subtype>: Use the DECL of the base type directly.
122
d3271136
EB
1232017-05-22 Ed Schonberg <schonberg@adacore.com>
124 Eric Botcazou <ebotcazou@adacore.com>
125
126 * sem_ch4.adb (Analyze_Call): In Ada2012 an incomplete type from a
127 limited view may appear in the profile of a function, and a call to
128 that function in another unit in which the full view is available must
129 use this full view to spurious type errors at the point of call.
130 * inline.adb (Analyze_Inlined_Bodies): Remove restriction on loading
131 of parent body with a with clause for the main unit.
132 * gcc-interface/decl.c (defer_limited_with_list): Document new usage.
133 (gnat_to_gnu_entity) <E_Access_Type>: Handle completed Taft Amendment
134 types declared in external units like types from limited with clauses.
135 Adjust final processing of defer_limited_with_list accordingly.
136 * gcc-interface/trans.c (gnat_to_gnu) < N_Selected_Component>: Try
137 again to translate the prefix after the field if it is incomplete.
138
4c24ec6d
EB
1392017-05-22 Eric Botcazou <ebotcazou@adacore.com>
140
141 * gcc-interface/decl.c (gnat_to_gnu_field): Do not enforce strict
142 alignment for simple volatile fields and remove associated errors.
143
7543c8b6
EB
1442017-05-15 Eric Botcazou <ebotcazou@adacore.com>
145
146 * gcc-interface/gigi.h (get_elaboration_procedure): Delete.
147 * gcc-interface/trans.c (get_elaboration_procedure): Make static.
148
0d5a0a33
PMR
1492017-05-15 Pierre-Marie de Rodat <derodat@adacore.com>
150
151 * gcc-interface/utils.c (can_materialize_object_renaming_p):
152 Synchronize with GNAT's Exp_Dbug.Debug_Renaming_Declaration:
153 process Original_Node instead of expanded names.
154
13b6b773
EB
1552017-05-15 Eric Botcazou <ebotcazou@adacore.com>
156
157 * gcc-interface/trans.c (return_value_ok_for_nrv_p): Only apply the
158 addressability check in the constrained case.
159
3946f000
EB
1602017-05-15 Eric Botcazou <ebotcazou@adacore.com>
161
162 * gcc-interface/trans.c (Identifier_to_gnu): Also accept incomplete
163 types not coming from a limited context.
164
0c09a01e
EB
1652017-05-15 Eric Botcazou <ebotcazou@adacore.com>
166
167 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Skip subprograms on
168 the inlined list that are not public.
169 * gcc-interface/utils.c (create_subprog_decl): Clear TREE_PUBLIC if
170 there is a pragma Inline_Always on the subprogram.
171
b1b2b511
EB
1722017-05-15 Eric Botcazou <ebotcazou@adacore.com>
173
174 * gcc-interface/trans.c (gnat_to_gnu) <N_Aggregate>: Fix formatting.
175 <N_Allocator>: Use properly typed constants.
176 (extract_values): Move around.
177 (pos_to_constructor): Minor tweaks.
178 (Sloc_to_locus): Fix formatting.
179 * gcc-interface/utils.c (process_deferred_decl_context): Minor tweaks.
180 * gcc-interface/gigi.h (MARK_VISITED): Remove blank line.
181 (Gigi_Equivalent_Type): Adjust head comment.
182 * gcc-interface/decl.c (Gigi_Equivalent_Type): Likewise.
183
04bc3c93
EB
1842017-05-15 Eric Botcazou <ebotcazou@adacore.com>
185
186 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: When there
187 is a representation clause on an extension, propagate the alignment of
188 the parent type only if the platform requires strict alignment.
189
9dd19976
EB
1902017-05-12 Eric Botcazou <ebotcazou@adacore.com>
191
192 * system-linux-arm.ads (Memory_Size): Use Long_Integer'Size
193 instead of Word_Size.
194
195 Revert
196 2017-03-28 Andreas Schwab <schwab@suse.de>
197
198 PR ada/80117
199 * system-linux-aarch64-ilp32.ads: New file.
200 * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS_COMMON): Rename
201 from LIBGNAT_TARGET_PAIRS.
202 (LIBGNAT_TARGET_PAIRS_32, LIBGNAT_TARGET_PAIRS_64): Define.
203 (LIBGNAT_TARGET_PAIRS): Use LIBGNAT_TARGET_PAIRS_COMMON, and
204 LIBGNAT_TARGET_PAIRS_64 or LIBGNAT_TARGET_PAIRS_32 for -mabi=lp64
205 or -mabi=ilp32, resp.
206
6071bbaa
L
2072017-05-10 H.J. Lu <hongjiu.lu@intel.com>
208
209 PR ada/80626
210 * system-linux-x86.ads (Memory_Size): Use Long_Integer'Size
211 instead of Word_Size.
212
a997fff5
BE
2132017-05-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
214
215 * raise-gcc.c (exception_class_eq): Make ec parameter const.
216
2bf54d93
RB
2172017-05-02 Richard Biener <rguenther@suse.de>
218
219 * gcc-interface/misc.c (gnat_post_options): Do not set
220 -fstrict-overflow.
221
4ec7c4ec
EB
2222017-05-02 Eric Botcazou <ebotcazou@adacore.com>
223
224 * gcc-interface/trans.c (assoc_to_constructor): Make sure
225 Corresponding_Discriminant is only called on discriminants.
226 Skip the saving of the result only for them.
227 (gnat_to_gnu) <N_Selected_Component>: Likewise.
228 <N_Unchecked_Type_Conversion>: Translate the result type first.
229 (gigi): Set TREE_NOTHROW on Begin_Handler.
230 (stmt_list_cannot_raise_p): New predicate.
231 (Exception_Handler_to_gnu_gcc): Emit a simple final call instead of
232 a cleanup if the statements of the handler cannot raise.
233 (process_freeze_entity): Use Is_Record_Type.
234 (process_type): Likewise.
235
05dbb83f
AC
2362017-05-02 Eric Botcazou <ebotcazou@adacore.com>
237
238 * einfo.ads (Corresponding_Record_Component): New alias
239 for Node21 used for E_Component and E_Discriminant.
240 * einfo.adb (Corresponding_Record_Component): New function.
241 (Set_Corresponding_Record_Component): New procedure.
242 (Write_Field21_Name): Handle Corresponding_Record_Component.
243 * sem_ch3.adb (Inherit_Component): Set
244 Corresponding_Record_Component for every component in
245 the untagged case. Clear it afterwards for non-girder
246 discriminants.
247 * gcc-interface/decl.c (gnat_to_gnu_entity)
248 <E_Record_Type>: For a derived untagged type with discriminants
249 and constraints, apply the constraints to the layout of the
250 parent type to deduce the layout.
251 (field_is_aliased): Delete.
252 (components_to_record): Test DECL_ALIASED_P directly.
253 (annotate_rep): Check that fields are present except for
254 an extension.
255 (create_field_decl_from): Add DEBUG_INFO_P
256 parameter and pass it in recursive and other calls. Add guard
257 for the manual CSE on the size.
258 (is_stored_discriminant): New predicate.
259 (copy_and_substitute_in_layout): Consider only
260 stored discriminants and check that original fields are present
261 in the old type. Deal with derived types. Adjust call to
262 create_variant_part_from.
263
2642017-05-02 Ed Schonberg <schonberg@adacore.com>
265
266 * exp_ch6.adb (Expand_Call_Helper): When locating the
267 accessibility entity created for an access parameter, handle
268 properly a reference to a formal of an enclosing subprogram. if
269 the reference appears in an inherited class-wide condition, it
270 is the rewriting of the reference in the ancestor expression,
271 but the accessibility entity must be that of the current formal.
272
2732017-05-02 Javier Miranda <miranda@adacore.com>
274
275 * exp_ch4.adb (Expand_Non_Binary_Modular_Op): New subprogram.
276 (Expand_N_Op_Add, Expand_N_Op_Divide, Expand_N_Op_Minus,
277 Expand_N_Op_Multiply, Expand_N_Op_Or, Expand_N_Op_Subtract):
278 Call Expand_Non_Binary_Modular_Op.
279
f934fd02
EB
2802017-05-02 Eric Botcazou <ebotcazou@adacore.com>
281
282 * sem_ch3.adb (Build_Derived_Private_Type): If the parent type
283 has discriminants, do not override the Stored_Constraint list of
284 the full view of the derived type with that of the derived type.
285
d6fd1f07
AC
2862017-05-02 Bob Duff <duff@adacore.com>
287
288 * sem_attr.adb (Attribute_Enum_Rep): Disallow T'Enum_Rep.
289
2902017-05-02 Vasiliy Fofanov <fofanov@adacore.com>
291
292 * s-os_lib.ads: Minor typo fix.
293
2942017-05-02 Vasiliy Fofanov <fofanov@adacore.com>
295
296 * gnatls.adb: Merge and refactor code from Prj.Env and remove
297 this deprecated dependency.
298
2992017-05-02 Ed Schonberg <schonberg@adacore.com>
300
301 * exp_util.ads: minor comment addition.
302
3032017-05-02 Eric Botcazou <ebotcazou@adacore.com>
304
305 * sem_ch3.adb (Build_Derived_Record_Type): Fix a few typos and
306 pastos in part #3 of the head comment.
307
3082017-05-02 Ed Schonberg <schonberg@adacore.com>
309
310 * exp_ch3.adb (Freeze_Type): Do not generate an invariant
311 procedure body for a local (sub)type declaration within a
312 predicate function. Invariant checks do not apply to these, and
313 the expansion of the procedure will happen in the wrong scope,
314 leading to misplaced freeze nodes.
315
3162017-05-02 Ed Schonberg <schonberg@adacore.com>
317
318 * exp_util.adb (Insert_Library_Level_Action): Use proper scope
319 to analyze generated actions. If the main unit is a body,
320 the required scope is that of the corresponding unit declaration.
321
3222017-05-02 Arnaud Charlet <charlet@adacore.com>
323
324 * einfo.adb (Declaration_Node): flip branches of
325 an IF statement to avoid repeated negations in its condition;
326 no change in semantics, only to improve readability.
327
2d249f52
AC
3282017-05-02 Arnaud Charlet <charlet@adacore.com>
329
330 * sem_case.adb: Remove extra spaces in parameter declarations.
331
3322017-05-02 Justin Squirek <squirek@adacore.com>
333
334 * usage.adb: Replace space with hyphen ("run time" -> "run-time")
335 in usage line for new -gnatwE switch.
336
3372017-05-02 Claire Dross <dross@adacore.com>
338
339 * a-cofuve.ads (Remove): Remove unnecessary
340 conditions in precondition.
341
3422017-05-02 Vasiliy Fofanov <fofanov@adacore.com>
343
344 * a-stream.ads, exp_imgv.adb, sem_ch10.adb,
345 sem_attr.adb, s-finmas.ads, osint.adb: Minor typo fix.
346
b55993b3
AC
3472017-05-02 Justin Squirek <squirek@adacore.com>
348
349 * sem_ch4.adb (Analyze_Case_Expression): Add check for valid
350 alternative expression.
351 * sem_res.adb (Resolve_Case_Expression): Ditto.
352
3532017-05-02 Ed Schonberg <schonberg@adacore.com>
354
355 * exp_disp.adb (Set_All_DT_Position, In_Predef_Prim_DT):
356 Refine predicate for the case where the primitive operation
357 is a renaming of equality. An overriding operation that is
358 a user-defined renaming of predefined equality inherits its
359 slot from the overridden operation. Otherwise it is treated
360 as a predefined op and occupies the same predefined slot as
361 equality. A call to it is transformed into a call to its alias,
362 which is the predefined equality. A dispatching call thus uses
363 the proper slot if operation is further inherited and called
364 with class-wide arguments.
365
3662017-05-02 Justin Squirek <squirek@adacore.com>
367
368 * errout.adb (Set_Msg_Text): Add a case to switch the message
369 type when the character '[' is detected signifying a warning
370 about a run-time exception.
371 * opt.ads Add a new Warning_Mode value for new switch
372 * switch-b.adb (Scan_Binder_Switches): Add case for the binder
373 to handle new warning mode
374 * usage.adb (Usage): Add usage entry for -gnatwE
375 * warnsw.adb (Set_Warning_Switch): Add case for the new switch
376
3772017-05-02 Ed Schonberg <schonberg@adacore.com>
378
379 * sem_prag.adb (Process_Conversion): Reject an intrinsic operator
380 declaration that operates on some fixed point type.
381
3822017-05-02 Justin Squirek <squirek@adacore.com>
383
384 * a-crbtgo.adb, s-taasde.adb: Remove unused use-type clauses.
385
a6354842
AC
3862017-05-02 Hristian Kirtchev <kirtchev@adacore.com>
387
388 * sem_ch6.adb (Analyze_Null_Procedure): Revert previous change.
389
3902017-05-02 Justin Squirek <squirek@adacore.com>
391
392 * sem_ch4.adb (Analyze_Case_Expression): Add check for valid
393 expression (Analyze_If_Expression): Add check for valid condition
394 * sem_eval.adb (Eval_Case_Expression): Add check for error posted
395 on case-expression
396 * sem_res.adb (Resolve_If_Expression): Add check for valid
397 condition and then-expression.
398
1804faa4
AC
3992017-05-02 Ed Schonberg <schonberg@adacore.com>
400
401 * exp_ch3.adb (Build_Initialization_Call): Generate a null
402 statement if the initialization call is a null procedure, as
403 can happen with a controlled type with no explicit Initialize
404 procedure, or an array of such.
405 * exp_ch7.adb (Process_Object_Declaration): For a type with
406 controlled components that has a trivial Initialize procedure,
407 insert declaration for finalization counter after object
408 declaration itself.
409 (Make_Deep_Array_Body, Build_Initialize_statements): Do not create
410 finalization block and attendant declarations if component has
411 a trivial Initialize procedure.
412 (Make_Init_Call): Do not generate a call if controlled type has
413 a trivial Initialize procedure.
414
4152017-05-02 Eric Botcazou <ebotcazou@adacore.com>
416
417 * g-forstr.ads (Data): Move Format component last.
418 * g-forstr.adb ("+"): Adjust for above change.
419 * g-rewdat.ads (Buffer): Move Buffer, Current, Pattern and Value last.
420 * g-sechas.ads (Context): Move Key last.
421 * g-socket.ads (Service_Entry_Type): Move Aliases last.
422 * s-fileio.adb (Temp_File_Record): Move Name last.
423 * s-regexp.adb (Regexp_Value): Move Case_Sensitive last.
424 * xr_tabls.ads (Project_File): Move Src_Dir and Obj_Dir last.
425
4262017-05-02 Jerome Lambourg <lambourg@adacore.com>
427
428 * bindusg.adb, bindgen.adb, gnatbind.adb, opt.ads: Remove the -nognarl
429 switch introduced recently. finally not needed.
430
4312017-05-02 Hristian Kirtchev <kirtchev@adacore.com>
432
433 * sem_ch6.adb (Analyze_Null_Procedure): Set the
434 Corresponding_Body link for a null procedure declaration.
435
62d40a7a
AC
4362017-05-02 Eric Botcazou <ebotcazou@adacore.com>
437
438 * atree.h (Flag290): Add missing terminating parenthesis.
439 * einfo.adb (Is_Class_Wide_Clone): Use Flag290.
440 (Set_Is_Class_Wide_Clone): Likewise.
441 * einfo.ads (Is_Class_Wide_Clone): Likewise.
442
4432017-05-02 Gary Dismukes <dismukes@adacore.com>
444
445 * checks.ads (Null_Exclusion_Static_Checks): Add Boolean
446 parameter Array_Comp to indicate the case of an array object
447 with null-excluding components.
448 * checks.adb (Null_Exclusion_Static_Checks):
449 Call Compile_Time_Constraint_Error instead of
450 Apply_Compile_Time_Constraint_Error in the component case. Also
451 call that when Array_Comp is True, with an appropriate warning for
452 the array component case. Only create an explicit initialization
453 by null in the case of an object of a null-excluding access type
454 (and no longer do that in the component case).
455 * sem_ch3.adb (Check_Component): Add a Boolean parameter
456 Array_Comp defaulted to False. Pass Empty for the Comp
457 actual when calling Null_Exclusion_Static_Checks in the case
458 where Comp_Decl matches Object_Decl, because we don't have a
459 component in that case. In the case of an object or component
460 of an array type, pass True for Array_Comp on the recursive call
461 to Check_Component.
462
d86fb53f
AC
4632017-05-02 Bob Duff <duff@adacore.com>
464
465 * s-taprop-linux.adb (Prio_To_Linux_Prio): New function to correctly
466 compute the linux priority from the Ada priority. Call this everywhere
467 required. In particular, the previous version was not doing this
468 computation when setting the ceiling priority in various places. It
469 was just converting to C.int, which results in a ceiling that is off
470 by 1.
471
4722017-05-02 Ed Schonberg <schonberg@adacore.com>
473
474 * sem_ch3.adb: Comment predicate inheritance.
475
c5b4738f
AC
4762017-05-02 Tristan Gingold <gingold@adacore.com>
477
478 * s-trasym.ads: Add comment.
479
4802017-05-02 Bob Duff <duff@adacore.com>
481
482 * sem_elab.adb, sem_elab.ads: Minor comment fixes.
483 * sem_ch4.adb: Minor reformatting.
484 * s-taprop-linux.adb, s-taspri-posix.ads: Code refactoring.
485 * s-taspri-posix-noaltstack.ads: Minor refactoring.
486 * sinput.ads: Minor typo fix.
487
4882017-05-02 Ed Schonberg <schonberg@adacore.com>
489
490 * exp_ch9.adb (Discriminated_Size): Moved to sem_util.
491 * sem_util.ads, sem_util.adb (Discriminated_Size): Predicate moved
492 here from exp_ch9, to recognize objects whose creation requires
493 dynamic allocation, so that the proper warning can be emitted
494 when restriction No_Implicit_Heap_Allocation is in effect.
495 * sem_ch3.adb (Analyze_Object_Declaration): Use Discriminated_Size
496 to emit proper warning when an object that requires dynamic
497 allocation is declared.
498
05b95f63
TG
4992017-05-02 Tristan Gingold <gingold@adacore.com>
500
501 * s-trasym.ads, s-trasym.adb (Enable_Cache): New.
502
6fdc25c4
AC
5032017-05-02 Ed Schonberg <schonberg@adacore.com>
504
505 * sem_ch4.adb (Find_Equality_Types, Try_One_Interp): The same relaxed
506 visibility rules for equality operators that apply within an
507 instantiation apply within an inlined body.
508 * sem_type.adb (Add_One_Interp): ditto.
509
5102017-05-02 Hristian Kirtchev <kirtchev@adacore.com>
511
512 * sem_prag.adb (Analyze_Pragma): Forbid pragma Contract_Cases on null
513 procedures.
514
5152017-05-02 Eric Botcazou <ebotcazou@adacore.com>
516
517 * snames.ads-tmpl
518 (Name_Assume, Name_Attribute_Definition, Name_Loop_Optimize,
519 Name_No_Tagged_Streams): Move to regular pragmas. Add
520 placeholders for Default_Scalar_Storage_Order, Dispatching_Domain,
521 and Secondary_Stack_Size.
522 (Pragma_Id): Move Pragma_Assume,
523 Pragma_Attribute_Definition, Pragma_Loop_Optimize and
524 Pragma_No_Tagged_Streams to second part.
525
c0e938d0
AC
5262017-05-02 Hristian Kirtchev <kirtchev@adacore.com>
527
528 * exp_attr.adb: Minor reformatting.
529
5302017-05-02 Ed Schonberg <schonberg@adacore.com>
531
532 * sem_ch4.adb (Analyze_Selected_Component): Improve error
533 detection for illegal references to private components or
534 operations of a protected type in the body of the type.
535
99bba92c
AC
5362017-05-02 Eric Botcazou <ebotcazou@adacore.com>
537
538 * opt.ads: Add missing GNAT markers in comments.
539 * opt.adb (Set_Opt_Config_Switches): Do not override earlier
540 settings of Optimize_Alignment at the end.
541
5422017-05-02 Hristian Kirtchev <kirtchev@adacore.com>
543
544 * checks.adb (Apply_Constraint_Check): Do not apply
545 a discriminant check when the associated type is a constrained
546 subtype created for an unconstrained nominal type.
547 * exp_attr.adb: Minor reformatting.
548
5492017-05-02 Bob Duff <duff@adacore.com>
550
551 * sem_ch3.adb (OK_For_Limited_Init_In_05): Handle correctly
552 the N_Raise_Expression case.
553 * sem_ch6.adb (Check_Limited_Return): Minor: clarify comment,
554 and add assertions.
555
5562017-05-02 Yannick Moy <moy@adacore.com>
557
558 * exp_ch4.adb (Expand_N_Op_Ne): Do not bump parenthese level and
559 optimize length comparison in GNATprove mode.
560 * exp_spark.adb (Expand_SPARK_Op_Ne): New function to rewrite
561 operator /= into negation of operator = when needed.
562 (Expand_SPARK): Call new
563 function to expand operator /=.
564
5652017-05-02 Ed Schonberg <schonberg@adacore.com>
566
567 * exp_fixd.adb (Expand_Divide_Fixed_By_Fixed_Giving_Fixed):
568 Simplify the expression for a fixed-fixed division to remove
569 divisions by constants whenever possible, as an optimization
570 for restricted targets.
571
31e358e1
AC
5722017-05-02 Hristian Kirtchev <kirtchev@adacore.com>
573
574 * checks.adb, sem_ch3.adb, sem_ch6.adb: Minor reformatting.
575
5762017-05-02 Bob Duff <duff@adacore.com>
577
578 * exp_attr.adb (Callable, Identity, Terminated): Use Find_Prim_Op
579 to find primitive ops, instead of using an Identifier that will
580 later be looked up. This is necessary because these ops are not
581 necessarily visible at all places where we need to call them.
582 * exp_util.ads: Minor comment fix.
583
d59179b1
AC
5842017-05-02 Ed Schonberg <schonberg@adacore.com>
585
586 * sem_ch6.adb (Fully_Conformant_Expressions): Two entity
587 references are fully conformant if they are both expansions
588 of the discriminant of a protected type, within one of the
589 protected operations. One occurrence may be expanded into a
590 constant declaration while the other is an input parameter to
591 the corresponding generated subprogram.
592
5932017-05-02 Justin Squirek <squirek@adacore.com>
594
595 * sem_ch3.adb (Check_For_Null_Excluding_Components): Created for
596 recursivly searching composite-types for null-excluding access
597 types and verifying them.
598 (Analyze_Object_Declaration): Add a
599 call to Check_Null_Excluding_Components for static verification
600 of non-initialized objects.
601 * checks.adb, checks.ads (Null_Exclusion_Static_Checks): Added
602 a parameter for a composite-type's component and an extra case
603 for printing component information.
604
6052017-05-02 Yannick Moy <moy@adacore.com>
606
607 * sem_ch10.adb (Analyze_Subunit): Take
608 configuration pragma into account when restoring appropriate
609 pragma for analysis of subunit.
610
6112017-05-02 Justin Squirek <squirek@adacore.com>
612
613 * s-tasren.adb, s-tasini.adb, s-taprop-linux.adb,
614 s-mudido-affinity.adb,, a-exetim-posix.adb, a-direio.adb,
615 g-socket.adb, s-taenca.adb, s-fileio.adb: Remove unused use-type
616 clauses from the runtime.
617
42fe76e0
AC
6182017-05-02 Eric Botcazou <ebotcazou@adacore.com>
619
620 * freeze.adb (Check_Component_Storage_Order): Do not treat bit-packed
621 array components specially.
622
6232017-05-02 Ed Schonberg <schonberg@adacore.com>
624
625 * sem_ch8.adb (Premature_Usage): If the premature usage of
626 an entity is as the expression in its own object decaration,
627 rewrite the reference as Any_Id to prevent cascaded errors or
628 compiler loops when such an entity is used in an address clause.
629
f16b9dc2
EB
6302017-05-01 Eric Botcazou <ebotcazou@adacore.com>
631
632 * gcc-interface/decl.c (components_to_record): Add missing guard.
633
0a69d9bd
EB
6342017-05-01 Eric Botcazou <ebotcazou@adacore.com>
635
636 * gcc-interface/decl.c (components_to_record): Add more comments.
637 Put back pending fields onto the regular list if the misalignment
638 happens to cancel itself.
639
40b4bc2d
AC
6402017-04-28 Ed Schonberg <schonberg@adacore.com>
641
642 * sem_ch4.adb (Complete_Object_Operation): When rewriting the
643 controlling actual in a prefixed call, preserve the original node
644 information if the prefix itself has been rewritten, for ASIS use.
645
6462017-04-28 Hristian Kirtchev <kirtchev@adacore.com>
647
648 * exp_ch6.adb (Insert_Post_Call_Actions):
649 Code clean up. Insert the post-call actions after an enclosing
650 procedure call when N denotes a function call and appears as an
651 actual parameter in the procedure call.
652
6532017-04-28 Eric Botcazou <ebotcazou@adacore.com>
654
655 * freeze.adb (Check_Component_Storage_Order): If there is a clause
656 for the component, also reject the attribute if the component
657 doesn't end on a byte boundary and its scalar storage order is
658 different from that of the enclosing record type.
659
66c19cd4
AC
6602017-04-28 Javier Miranda <miranda@adacore.com>
661
662 * atree.ads (Info_Messages): Removed.
663 (Warning_Info_Messages): New counter.
664 (Report_Info_Messages): New counter.
665 * err_vars.ads Update documentation.
666 * errout.adb (Delete_Warning_And_Continuations): Update
667 Info_Message occurrences.
668 (Error_Msg_Internal): Update Info_Message occurrences.
669 (Delete_Warning): Update Info_Message occurrences.
670 (Write_Error_Summary): Update Info_Message occurrences.
671 (Output_Messages): Update Info_Message occurrences.
672 (To_Be_Removed): Update Info_Message occurrences.
673 (Reset_Warnings): Update Info_Message occurrences.
674 * errutil.adb (Error_Msg): Update Info_Message occurrences.
675 (Finalize): Update Info_Message occurrences.
676 (Initialize): Update Info_Message occurrences.
677 * erroutc.adb (Delete_Msg): Update Info_Message occurrences.
678 (Compilation_Errors): Update Info_Message_Occurences.
679
6802017-04-28 Eric Botcazou <ebotcazou@adacore.com>
681
682 * exp_ch3.adb (Build_Init_Statements): Likewise on Nam.
683 * freeze.adb (Check_Component_Storage_Order): And on Comp_Byte_Aligned.
684 * sem_aggr.adb (Resolve_Record_Aggregate): Initialize Box_Node.
685 * sem_attr.adb (Loop_Entry): Initialize Encl_Loop.
686 * sem_ch12.adb (Build_Operator_Wrapper): Add pragma Warnings on Expr.
687 * sem_ch13.adb (Validate_Address_Clauses): Initialize Y_Alignment and
688 Y_Size.
689 * sem_eval.adb (Why_Not_Static): Initialize Typ.
690 * sem_prag.adb (Analyze_Pragma): Add pragma Warnings on Str.
691
85be939e
AC
6922017-04-28 Bob Duff <duff@adacore.com>
693
694 * sem_util.ads, sem_util.adb (Might_Raise): New function
695 that replaces Is_Exception_Safe, but has the opposite
696 sense. Is_Exception_Safe was missing various cases -- calls inside
697 a pragma Debug, calls inside an 'if' or assignment statement,
698 etc. Might_Raise now walks the entire subtree looking for things
699 that can raise.
700 * exp_ch9.adb (Is_Exception_Safe): Remove.
701 (Build_Protected_Subprogram_Body): Replace call to
702 Is_Exception_Safe with "not Might_Raise". Misc cleanup (use
703 constants where possible).
704 * exp_ch7.adb: Rename Is_Protected_Body -->
705 Is_Protected_Subp_Body. A protected_body is something different
706 in the grammar.
707
7082017-04-28 Eric Botcazou <ebotcazou@adacore.com>
709
710 * inline.adb (Expand_Inlined_Call): Initialize Targ1 variable.
711 * par-ch3.adb (P_Component_Items): Initialize Decl_Node variable.
712 (P_Discrete_Choice_List): Initialize Expr_Node variable.
713 * par-ch9.adb (P_Task): Initialize Aspect_Sloc variable.
714 (P_Protected): Likewise.
715 * sem_case.adb (Check_Duplicates):
716 Add pragma Warnings on variable.
717 * sem_ch12.adb (Preanalyze_Actuals): Initialize Vis variable.
718 * sem_ch4.adb (List_Operand_Interps): Add pragma Warnings on variable.
719 * sem_ch5.adb (Analyze_Assignment): Initialize Save_Full_Analysis.
720 (Analyze_Exit_Statement): Initialize Scope_Id variable.
721 (Analyze_Iterator_Specification): Initialize Bas variable.
722 * sem_ch9.adb (Allows_Lock_Free_Implementation): Initialize
723 Error_Count (Satisfies_Lock_Free_Requirements): Likewise.
724 (Analyze_Accept_Statement): Initialize Task_Nam.
725
7262017-04-28 Hristian Kirtchev <kirtchev@adacore.com>
727
728 * checks.adb (Install_Primitive_Elaboration_Check):
729 Do not generate an elaboration check if all checks have been
730 suppressed.
731
7322017-04-28 Ed Schonberg <schonberg@adacore.com>
733
734 * sem_ch13.adb (Analyze_Aspect_Specifications, case
735 Interrupt_Handler and Attach_Handler): Generate reference
736 to protected operation to prevent spurious warnings about
737 unreferenced entities. Previous scheme failed with style checks
738 enabled.
739
7402017-04-28 Ed Schonberg <schonberg@adacore.com>
741
742 * sem_prag.adb (Relocate_Pragmas_To_Body): A pragma Warnings
743 that follows an expression function must not be relocated to
744 the generated body, because it applies to the code that follows.
745
99f8abb6
AC
7462017-04-28 Gary Dismukes <dismukes@adacore.com>
747
748 * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): Test
749 Relaxed_RM_Semantics to avoid having CodePeer issue errors on
750 code that might violate the more stringent checking for 'Access
751 introduced in Ada 2005.
752
7532017-04-28 Arnaud Charlet <charlet@adacore.com>
754
755 * a-cforse.adb: minor style fix in comment.
756
1f8766d3
AC
7572017-04-28 Eric Botcazou <ebotcazou@adacore.com>
758
759 * exp_ch9.adb (Build_Lock_Free_Unprotected_Subprogram_Body): Also
760 initialize Block_Decls variable.
761 (Expand_Entry_Barrier): Add pragma Warnings on Func_Body variable.
762 (Build_Dispatching_Requeue): Add pragma Warnings on Op variable.
763 * exp_disp.adb (Expand_Interface_Actuals): Initialize
764 Formal_DDT and Actual_DDT variables.
765 (Expand_Interface_Thunk): Initialize Iface_Formal.
766 (Make_DT): Initialize Size_Comp.
767 (Make_Select_Specific_Data_Table): Initialize Decls.
768 * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies):
769 Also initialize more RPC_Receiver_* variables.
770 (Build_To_Any_Function): Initialize Cstr_Formal.
771 * exp_prag.adb (Expand_Pragma_Contract_Cases): Initialize Msg_Str.
772
7732017-04-28 Ed Schonberg <schonberg@adacore.com>
774
775 * sem_ch6.adb (Freeze_Type_Refs): For an interface conversion
776 node between access types, freeze the designated type as well,
777 so that dispatch table pointers are created in the proper scope,
778 and not in the constructed body of the expression function.
779
7802017-04-28 Bob Duff <duff@adacore.com>
781
782 * alloc.ads (Nodes_Initial): Go back to previous value. The large
783 value makes large compilations faster, but small compilations slower.
784
7852017-04-28 Arnaud Charlet <charlet@adacore.com>
786
787 * sem_util.adb: minor typos in Is_Child_Or_Sibling.
788
7892017-04-28 Hristian Kirtchev <kirtchev@adacore.com>
790
791 * erroutc.adb (Compilation_Errors): Do not consider info messages
792 as suitable warnings when warnings must be treated as errors.
793 * sem_ch7.adb (Analyze_Package_Specification): Do not consider
794 internally-generated packages when outputting completion
795 information.
796 * errout.adb (Output_Messages): Do not consider info messages as
797 suitable warnings when warnings must be treated as errors.
798 * errutil.adb (Finalize): Do not consider info messages as
799 suitable warnings when warnings must be treated as errors.
800
1f8766d3
AC
8012017-04-28 Eric Botcazou <ebotcazou@adacore.com>
802
803 * warnsw.ads: Minor fix for incorrect wording in comment.
804
8052017-04-28 Ed Schonberg <schonberg@adacore.com>
806
807 * sem_res.adb (In_Instance_Code): New predicate in
808 Valid_Conversion, to determine whether a type conversion appears
809 as (or within) an actual for a formal object. Type conversions
810 in instances are not rechecked in Valid_Conversion because
811 visibility changes between generic location andi instance may
812 lead to spurious errors, but conversions within an actual must be
813 fully checked, and they are not fully resolved when pre-analyzing
814 the actuals.
815
d5fa5335
HK
8162017-04-28 Hristian Kirtchev <kirtchev@adacore.com>
817
818 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Use
819 New_Copy_Tree instead of Relocate_Node as any subsequent copies
820 of the relocated node will have mangled Parent pointers.
821 * sem_util.adb (Build_NCT_Hash_Tables): Reset both hash
822 tables used in conjunction with entity and itype replication.
823 (Visit_Entity): Rewrite the restriction on which entities
824 require duplication. The restriction now includes all types.
825
8262017-04-28 Hristian Kirtchev <kirtchev@adacore.com>
827
828 * a-cofuse.ads, a-cfdlli.ads, a-cfhase.adb, a-cfhase.ads, a-cfinve.adb,
829 a-cfinve.ads, a-cforma.adb, a-cforma.ads, a-cofuma.adb, a-cofuma.ads,
830 a-cfhama.adb, a-cfhama.ads, a-cforse.adb: Minor reformatting and code
831 cleanups.
832
ef952fd5
HK
8332017-04-28 Hristian Kirtchev <kirtchev@adacore.com>
834
835 * exp_util.adb, g-dyntab.adb, par-ch4.adb, sem_util.adb, sem_attr.adb,
836 gnat1drv.adb, exp_disp.adb, namet.adb, alloc.ads: Minor reformatting.
837
dc99d241 8382017-04-28 Gary Dismukes <dismukes@adacore.com>
e6326de5
AC
839
840 * exp_util.adb: Minor reformatting.
841
dc99d241 8422017-04-28 Ed Schonberg <schonberg@adacore.com>
e6326de5
AC
843
844 * sem_ch4.adb: Fix copy/pasto.
845
a96eb6f2
TG
8462017-04-27 Tristan Gingold <gingold@adacore.com>
847
848 * gcc-interface/Make-lang.in: Define EH_MECHANISM while building
849 raise-gcc.c. Fix include search path for raise-gcc.c
850
8ab31c0c
AC
8512017-04-27 Eric Botcazou <ebotcazou@adacore.com>
852
853 * fe.h (Warn_On_Questionable_Layout): Declare.
854 * warnsw.ads (Warn_On_Record_Holes): Move down.
855 (Warn_On_Questionable_Layout): New boolean variable.
856 (Warning_Record): Add Warn_On_Questionable_Layout field.
857 * warnsw.adb (All_Warnings): Set Warn_On_Questionable_Layout.
858 (Restore_Warnings): Likewise.
859 (Save_Warnings): Likewise.
860 (Set_Dot_Warning_Switch): Handle 'q' and 'Q' letters.
861 * gcc-interface/decl.c (gnat_to_gnu_entity): Adjust call to
862 components_to_record.
863 (gnu_field_to_gnat): New function.
864 (warn_on_field_placement): Likewise.
865 (components_to_record): Add GNAT_RECORD_TYPE and remove REORDER
866 parameters. Rename local variables and adjust recursive call.
867 Rework final scan of the field list and implement warnings on the
868 problematic placement of specific sorts of fields.
869
8702017-04-27 Bob Duff <duff@adacore.com>
871
872 * errout.adb, exp_aggr.adb, exp_attr.adb, exp_code.adb, fname.adb,
873 * fname.ads, freeze.adb, inline.adb, lib.adb, lib.ads, lib-list.adb,
874 * lib-load.adb, lib-writ.adb, par.adb, restrict.adb, rtsfind.adb,
875 * sem.adb, sem_cat.adb, sem_ch10.adb, sem_ch12.adb, sem_ch3.adb,
876 * sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, sem_ch9.adb, sem_elab.adb,
877 * sem_intr.adb, sem_res.adb, sem_util.adb, sem_warn.adb, sprint.adb:
878 For efficiency, cache results of Is_Internal_File_Name and
879 Is_Predefined_File_Name in the Units table. This avoids a lot
880 of repeated text processing.
881
8822017-04-27 Emmanuel Briot <briot@adacore.com>
883
884 * g-comlin.adb (Sort_Sections): remove useless test.
885
8862017-04-27 Claire Dross <dross@adacore.com>
887
888 * a-cfhase.adb, a-cfhase.ads (=): Generic parameter removed to
889 allow the use of regular equality over elements in contracts.
890 (Formal_Model): Ghost package containing model functions that are
891 used in subprogram contracts.
892 (Current_To_Last): Removed, model functions should be used instead.
893 (First_To_Previous): Removed, model functions should be used instead.
894 (Strict_Equal): Removed, model functions should be used instead.
895 (No_Overlap): Removed, model functions should be used instead.
896 (Equivalent_Keys): Functions over cursors are removed. They were
897 awkward with explicit container parameters.
898 * a-cforse.adb, a-cforse.ads (=): Generic parameter removed to
899 allow the use of regular equality over elements in contracts.
900 (Formal_Model): Ghost package containing model functions that
901 are used in subprogram contracts.
902 (Current_To_Last): Removed, model functions should be used instead.
903 (First_To_Previous): Removed, model functions should be used instead.
904 (Strict_Equal): Removed, model functions should be used instead.
905 (No_Overlap): Removed, model functions should be used instead.
906
9072017-04-27 Yannick Moy <moy@adacore.com>
908
909 * gnat1drv.adb: Code cleanup.
910
9112017-04-27 Ed Schonberg <schonberg@adacore.com>
912
913 * exp_util.adb (Replace_Entity): The prefix of a 'Result
914 attribute reference in a post- condition is the subprogram to
915 which the condition applies. If the condition is inherited
916 by a type extension, the prefix becomes a reference to the
917 inherited operation, but there is no need to create a wrapper
918 for this operation, because 'Result is expanded independently
919 when elaborating the postconditions.
920
a2168462
BD
9212017-04-27 Bob Duff <duff@adacore.com>
922
923 * sinput.adb: Minor code cleanup.
924 * namet.adb (Append): Create faster versions of
925 Append(String) and Append(Name_Id) by using slice assignment
926 instead of loops.
927 * sem_util.adb (In_Instance): Speed this up by removing
928 unnecessary tests; Is_Generic_Instance is defined for all
929 entities.
930 * sem_util.ads, sem_util.adb (In_Parameter_Specification):
931 Remove unused function.
932 * alloc.ads (Nodes_Initial): Use a much larger value, because
933 the compiler was spending a lot of time copying the nodes table
934 when it grows. This number was chosen in 1996, so is rather out
935 of date with current memory sizes. Anyway, it's virtual memory.
936 Get rid of Orig_Nodes_...; use Node_... instead.
937 * atree.adb (Lock): Do not release the Nodes tables; it's a
938 waste of time.
939 Orig_Nodes_ ==> Nodes_
940 * nlists.adb: Orig_Nodes_ ==> Nodes_
941 * g-table.adb: Remove unused "with" clause.
942 * g-table.ads, table.ads: Remove Big_Table_Type, which should
943 not be used by clients.
944 * g-dyntab.adb (Last_Allocated): New function
945 to encapsulate T.P.Last_Allocated, which I'm thinking of changing.
946
304757d2
AC
9472017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
948
949 * sem_eval.adb (Subtypes_Statically_Compatible): Remove duplicated
950 check.
951 (Subtypes_Statically_Match): Remove duplicate check.
952 * sem_prag.adb (Check_Arg_Is_External_Name): Remove duplicate check.
953
9542017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
955
956 * exp_aggr.adb (Replace_Type): Remove the special processing
957 for selected components.
958 * exp_attr.adb (Expand_N_Attribute_Reference): Merge the
959 processing for attributes Fixed_Value and Integer_Value.
960 * exp_util.adb (Side_Effect_Free): Merge the processing for
961 qualified expressions, type conversions, and unchecked type
962 conversions.
963 * g-comlin.adb (Is_In_Config): Merge the processing for No_Space
964 and Optional.
965 * par-ch3.adb (P_Declarative_Items): Merge the processing for
966 tokens function, not, overriding, and procedure.
967 * sem_ch6.adb (Fully_Conformant_Expressions): Merge the processing
968 for qualified expressions, type conversions, and unchecked
969 type conversions.
970 * sem_util.adb (Compile_Time_Constraint_Error): Merge the
971 processing for Ada 83 and instances.
972 (Object_Access_Level): Merge the processing for indexed components
973 and selected components.
974 * uname.adb (Add_Node_Name): Merge the processing for stubs.
975
9762017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
977
978 * checks.adb (Install_Primitive_Elaboration_Check):
979 Do not generate the check when restriction No_Elaboration_Code
980 is in effect.
981
9822017-04-27 Ed Schonberg <schonberg@adacore.com>
983
984 * exp_disp.adb (Build_Class_Wide_Check): New subsidiary
985 of Expand_Dispatching_Call. If the denoted subprogram has a
986 class-wide precondition, this is the only precondition that
987 applies to the call, rather that the class-wide preconditions
988 that may apply to the body that is executed. (This is specified
989 in AI12-0195).
990
bfc37f37
AC
9912017-04-27 Yannick Moy <moy@adacore.com>
992
993 * gnat1drv.adb (Adjust_Global_Switches): Issue
994 a warning in GNATprove mode if the runtime library does not
995 support IEEE-754 floats.
996
9972017-04-27 Ed Schonberg <schonberg@adacore.com>
998
999 * sem_prag.adb (Inherit_Class_Wide_Pre): If the parent operation
1000 is itself inherited it does not carry any contract information,
1001 so examine its parent operation which is its Alias.
1002
9dd8f36f
AC
10032017-04-27 Ed Schonberg <schonberg@adacore.com>
1004
1005 * sem_attr.adb (Analyze_Attribute, case 'Image): In Ada2012 the
1006 prefix can be an object reference in which case Obj'Image (X)
1007 can only be interpreted as an indexing of the parameterless
1008 version of the attribute.
1009 * par-ch4.adb (P_Name): An attribute reference can be the prefix of
1010 an indexing or a slice operation if the attribute does not require
1011 parameters. In Ada2012 'Image also belongs in this category,
1012 and A'Image (lo .. hi) is legal and must be parsed as a slice.
1013
10142017-04-27 Yannick Moy <moy@adacore.com>
1015
1016 * exp_ch4.adb: Minor reformatting.
1017 * gnat1drv.adb (Adjust_Global_Switches): When in GNATprove mode,
1018 disable the CodePeer and C generation modes. Similar to the
1019 opposite actions done in CodePeer mode.
1020
7327f5c2
AC
10212017-04-27 Yannick Moy <moy@adacore.com>
1022
1023 * sem_res.adb: Remove duplicate code.
1024 * sem_attr.adb: Delete duplicate code.
1025
10262017-04-27 Bob Duff <duff@adacore.com>
1027
1028 * g-dyntab.adb: Reduce the amount of copying in
1029 Release. No need to copy items past Last.
1030
10312017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
1032
1033 * checks.adb Add with and use clauses for Sem_Disp.
1034 (Install_Primitive_Elaboration_Check): New routine.
1035 * checks.ads (Install_Primitive_Elaboration_Check): New routine.
1036 * exp_attr.adb (Expand_N_Attribute_Reference): Clean up the
1037 processing of 'Elaborated.
1038 * exp_ch6.adb (Expand_N_Subprogram_Body): Install a primitive
1039 elaboration check.
1040
7494697b
BD
10412017-04-27 Bob Duff <duff@adacore.com>
1042
1043 * g-dyntab.ads, g-dyntab.adb, g-table.ads: Remove incorrect assertion.
1044 If the table grows and then shrinks back to empty, we won't necessarily
1045 point back to the empty array. Code cleanups.
1046 * sinput.ads: Add 'Base to Size clause to match the declared
1047 component subtypes.
1048
f2acfbce
CD
10492017-04-27 Claire Dross <dross@adacore.com>
1050
1051 * a-cforma.adb, a-cforma.ads (=): Generic parameter removed to
1052 allow the use of regular equality over elements in contracts.
1053 (Formal_Model): Ghost package containing model functions that
1054 are used in subprogram contracts.
1055 (Current_To_Last): Removed, model functions should be used instead.
1056 (First_To_Previous): Removed, model functions should be used instead.
1057 (Strict_Equal): Removed, model functions should be used instead.
1058 (No_Overlap): Removed, model functions should be used instead.
1059 * a-cofuma.adb, a-cofuma.ads (Enable_Handling_Of_Equivalence)
1060 Boolean generic parameter to disable contracts for equivalence
1061 between keys.
1062 (Witness): Create a witness of a key that is used for handling of
1063 equivalence between keys.
1064 (Has_Witness): Check whether a witness is contained in a map.
1065 (W_Get): Get the element associated to a witness.
1066 (Lift_Equivalent_Keys): Removed, equivalence between keys is handled
1067 directly.
1068 * a-cofuse.adb, a-cofuse.ads (Enable_Handling_Of_Equivalence)
1069 Boolean generic parameter to disable contracts for equivalence
1070 between keys.
1071 * a-cfhama.adb, a-cfhama.ads (Formal_Model.P) Disable handling
1072 of equivalence on functional maps.
1073 * a-cfdlli.adb, a-cfdlli.ads (Formal_Model.P) Disable handling
1074 of equivalence on functional maps.
1075
3b2249aa
HK
10762017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
1077
1078 * exp_ch9.adb (Expand_Entry_Barrier): Code
1079 cleanup. Do not perform the optimization which removes the
1080 declarations of the discriminant and component renamings when
1081 validity checks on operands and attributes are in effect.
1082
10832017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
1084
1085 * exp_spark.adb, exp_util.adb, sem_ch7.adb, g-dyntab.adb, g-dyntab.ads,
1086 freeze.adb, a-cfinve.ads, a-cofuma.adb, a-cofuma.ads, a-cfhama.adb,
1087 a-cfhama.ads, a-cofove.ads: Minor reformatting.
1088
10892017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
1090
1091 * g-debpoo.adb (Dump_Gnatmem): Protect against a possible null
1092 pointer dereference.
1093 * g-spipat.adb (Dump): Code clean up. Protect against a possible
1094 null pointer dereference.
1095
a3ef4e65
BD
10962017-04-27 Bob Duff <duff@adacore.com>
1097
1098 * g-dyntab.ads, g-dyntab.adb: Default for Table_Low_Bound.
1099 Rename Empty --> Empty_Table_Ptr, and don't duplicate code for it.
1100 Free renames Init, since they do the same thing.
1101 * g-table.ads: Default for Table_Low_Bound.
1102 * table.ads: Default for Table_Low_Bound, Table_Initial, and
1103 Table_Increment.
1104
de33eb38
AC
11052017-04-27 Bob Duff <duff@adacore.com>
1106
1107 * g-dyntab.ads, g-dyntab.adb: Add assertions to subprograms that
1108 can reallocate.
1109 * atree.adb, elists.adb, fname-uf.adb, ghost.adb, inline.adb,
1110 * lib.adb, namet.adb, nlists.adb, sem.adb, sinput.adb, stringt.adb:
1111 Reorder code so that above assertions do not fail.
1112 * table.ads: Remove obsolete comment on Locked.
1113
11142017-04-27 Claire Dross <dross@adacore.com>
1115
1116 * a-cfdlli.ads: Code cleanup.
1117
11182017-04-27 Yannick Moy <moy@adacore.com>
1119
1120 * exp_spark.adb (Expand_SPARK_Freeze_Type): Build a DIC procedure
1121 when needed for proof. (Expand_SPARK): Call the new procedure.
1122 * exp_util.ads Fix typo.
1123
11242017-04-27 Gary Dismukes <dismukes@adacore.com>
1125
1126 * a-cofuma.ads, a-cfhama.ads: Minor reformatting, grammar, and typo
1127 fixes.
1128
a6d25cad
AC
11292017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
1130
1131 * sem_elab.adb Add new type Visited_Element
1132 and update the contents of table Elab_Visited. Various code clean up.
1133 (Check_Elab_Call): Determine whether a prior call to
1134 the same subprogram was already examined within the same context.
1135 (Check_Internal_Call_Continue): Register the subprogram being
1136 called as examined within a particular context. Do not suppress
1137 elaboration warnings.
1138
11392017-04-27 Gary Dismukes <dismukes@adacore.com>
1140
1141 * xoscons.adb, osint.ads: Minor reformatting.
1142
11432017-04-27 Bob Duff <duff@adacore.com>
1144
1145 * g-dyntab.ads, g-dyntab.adb: Misc cleanup. Rename
1146 Table_Count_Type --> Table_Last_Type, because the name
1147 was confusing (a "count" usually starts at zero). Add
1148 functionality supported or needed by other tables packages
1149 (Move, Release_Threshold).
1150 * g-table.ads, g-table.adb: This is now just a thin wrapper
1151 around g-dyntab.ads/g-dyntab.adb. Add functionality supported
1152 or needed by other tables packages (Save, Restore).
1153 * table.ads, table.adb: This is now just a thin wrapper around
1154 * g-table.ads/g-table.adb.
1155 * namet.h, scos.h, uintp.h: These files are reaching into the
1156 private data of some instances of g-table, whose names changed,
1157 so the above change requires some adjustment here. It now uses
1158 public interfaces.
1159
11602017-04-27 Bob Duff <duff@adacore.com>
1161
1162 * namet.adb, namet.ads: Minor: remove unused procedures.
1163
11642017-04-27 Eric Botcazou <ebotcazou@adacore.com>
1165
1166 * checks.adb (Apply_Scalar_Range_Check): Initialize Ok variable too.
1167 (Minimize_Eliminate_Overflows): Initialize Llo and Lhi.
1168 Add pragma Warnings on Rtype variable in nested block. *
1169 * exp_ch3.adb (Build_Init_Statements): Initialize VAR_LOC.
1170 * exp_ch4.adb (Expand_Concatenate): Initialize 3 variables.
1171 (Size_In_Storage_Elements): Add pragma Warnings on Res variable.
1172 * exp_ch7.adb (Build_Adjust_Statements): Initialize Bod_Stmts.
1173 (Process_Component_List_For_Finalize): Initialize Counter_Id.
1174 (Build_Finalize_Statements): Initialize Bod_Stmts.
1175 * exp_disp.adb (Expand_Dispatching_Call): Initialize SCIL_Node.
1176
11772017-04-27 Claire Dross <dross@adacore.com>
1178
1179 * a-cfhama.adb, a-cfhamai.ads (=): Generic parameter removed to
1180 allow the use of regular equality over elements in contracts.
1181 (Formal_Model): Ghost package containing model functions that are
1182 used in subprogram contracts.
1183 (Current_To_Last): Removed, model
1184 functions should be used instead.
1185 (First_To_Previous): Removed, model functions should be used instead.
1186 (Strict_Equal): Removed, model functions should be used instead.
1187 (No_Overlap): Removed, model functions should be used instead.
1188 (Equivalent_Keys): Functions over cursors are removed. They were
1189 awkward with explicit container parameters.
1190 * a-cofuma.adb, a-cofuma.ads (Lift_Equivalent_Keys): New lemma
1191 (proof only) procedure to help GNATprove when equivalence over
1192 keys is not equality.
1193
27eaddda
HK
11942017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
1195
1196 * exp_util.adb, a-cfdlli.adb, a-cfdlli.ads, exp_ch9.adb, g-dyntab.adb,
1197 sem_dim.adb, a-cfinve.adb, a-cfinve.ads, a-cofove.adb, a-cofove.ads:
1198 Minor reformatting and code cleanups.
1199
6dd86c75
AC
12002017-04-27 Ed Schonberg <schonberg@adacore.com>
1201
1202 * freeze.adb (Build_Inherited_Condition_Pragmas): New procedure,
1203 subsidiary of Check_Inherited_Conditions, to build pragmas for an
1204 operation whose ancestor has classwide pre/postconditions. This
1205 is used both to check the legality of the inheritance in Ada
1206 and in SPARK, and to determine whether a wrapper is needed for
1207 an inherited operation.
1208 * exp_util.adb (Build_Class_Wide_Expression, Replace_Entity):
1209 Improve placement of error message for inherited classwide
1210 conditions that become illegal on type derivation.
1211
12122017-04-27 Yannick Moy <moy@adacore.com>
1213
1214 * sem_ch12.adb (Analyze_Generic_Package_Declaration): Set
1215 SPARK_Mode from context on generic package.
1216 * sem_ch7.adb (Analyze_Package_Declaration): Simplify code to remove
1217 useless test.
1218
12192017-04-27 Claire Dross <dross@adacore.com>
1220
1221 * a-cofuve.ads (Range_Shifted): Rewrite precondition to avoid
1222 overflows in computations.
1223 * a-cofove.ads (Capacity_Range): Rewrite last bound to avoid
1224 overflows in computations.
1225 (Insert): Rewrite precondition to avoid overflows in computations.
1226 * a-cfinve.ads (Capacity_Range): Rewrite last bound to avoid
1227 overflows in computations.
1228 (Insert): Rewrite precondition to avoid overflows in computations.
1229
f2474523
AC
12302017-04-27 Steve Baird <baird@adacore.com>
1231
1232 * exp_ch9.adb (Expand_N_Asynchronous_Select): Initialize the Cancel
1233 flag when it is declared in order to avoid confusing CodePeer about
1234 the possibility of an uninitialized variable read.
1235
12362017-04-27 Ed Schonberg <schonberg@adacore.com>
1237
1238 * sem_dim.adb (Analyze_Dimension_Object_Declaration): There is
1239 no dimensionality error if the subtype of the expression is
1240 identical to the nominal subtype in the declaration, even though
1241 the expression itself may have been constant-folded and lack a
1242 dimension vector.
1243 * sem_dim.ads: Add comments on setting of dimension vectors and
1244 its interaction with node rewritings and side-effect removal.
1245
12462017-04-27 Bob Duff <duff@adacore.com>
1247
1248 * debug.adb: Minor comment correction.
1249 * sem_dim.ads: Minor reformatting and typo fixes.
1250
12512017-04-27 Bob Duff <duff@adacore.com>
1252
1253 * g-table.adb, g-table.adsa, scos.h: From the C side, access First and
1254 Last of the tables via function calls, rather than relying on layout
1255 of data structures.
1256
12572017-04-27 Ed Schonberg <schonberg@adacore.com>
1258
1259 * exp_util.adb: No wrapper in GNATprove mode.
1260
12612017-04-27 Yannick Moy <moy@adacore.com>
1262
1263 * sem_res.adb (Resolve_Comparison_Op): Always
1264 evaluate comparisons between values of universal types.
1265
12662017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
1267
1268 * sem_elab.adb (Check_Internal_Call_Continue): Do not generate
1269 an elaboration counter nor a check when in GNATprove mode.
1270 * sem_util.adb (Build_Elaboration_Entity): Do not create an
1271 elaboration counter when in GNATprove mode.
1272
78f2b7ce
AC
12732017-04-27 Ed Schonberg <schonberg@adacore.com>
1274
1275 * freeze.adb: copy-paste typo.
1276
12772017-04-27 Yannick Moy <moy@adacore.com>
1278
1279 * sem_prag.adb (Analyze_Pre_Post_In_Decl_Part):
1280 Use correct test to detect call in GNATprove mode instead of
1281 compilation.
1282
12832017-04-27 Claire Dross <dross@adacore.com>
1284
1285 * a-cfdlli.adb, a-cfdlli.ads (Formal_Model.M_Elements_In_Union):
1286 New property function expressing that the element of a
1287 sequence are contained in the union of two sequences.
1288 (Formal_Model.M_Elements_Included): New property function
1289 expressing that the element of a sequence are another sequence.
1290 (Generic_Sorting): Use new property functions to state that
1291 elements are preserved by Sort and Merge.
1292 * a-cofove.adb, a-cofove.ads (=): Generic parameter removed to
1293 allow the use of regular equality over elements in contracts.
1294 (Formal_Model): Ghost package containing model functions
1295 that are used in subprogram contracts. (Capacity):
1296 On unbounded containers, return the maximal capacity.
1297 (Current_To_Last): Removed, model functions should be used instead.
1298 (First_To_Previous): Removed, model functions should be used instead.
1299 (Append): Default parameter value replaced
1300 by new wrapper to allow more precise contracts.
1301 (Insert): Subprogram restored, it seems it was useful to users even if
1302 it is inefficient.
1303 (Delete): Subprogram restored, it seems it was useful to users even if
1304 it is inefficient.
1305 (Prepend): Subprogram restored, it seems it was useful to users even
1306 if it is inefficient.
1307 (Delete_First): Subprogram restored, it seems it
1308 was useful to users even if it is inefficient. (Delete_Last):
1309 Default parameter value replaced by new wrapper to allow more
1310 precise contracts.
1311 (Generic_Sorting.Merge): Subprogram restored.
1312 * a-cfinve.adb, a-cfinve.ads (=): Generic parameter removed to
1313 allow the use of regular equality over elements in contracts.
1314 (Formal_Model): Ghost package containing model functions
1315 that are used in subprogram contracts. (Capacity):
1316 On unbounded containers, return the maximal capacity.
1317 (Current_To_Last): Removed, model functions should be used
1318 instead.
1319 (First_To_Previous): Removed, model functions should be used instead.
1320 (Append): Default parameter value replaced
1321 by new wrapper to allow more precise contracts.
1322 (Insert): Subprogram restored, it seems it was useful to users even if
1323 it is inefficient.
1324 (Delete): Subprogram restored, it seems it was useful to users even if
1325 it is inefficient.
1326 (Prepend): Subprogram restored, it seems it was useful to users even
1327 if it is inefficient.
1328 (Delete_First): Subprogram restored, it seems it
1329 was useful to users even if it is inefficient. (Delete_Last):
1330 Default parameter value replaced by new wrapper to allow more
1331 precise contracts.
1332 (Generic_Sorting.Merge): Subprogram restored.
1333 (Vector): Do not reuse formal vectors, as it is no longer possible
1334 to supply them with an equality function over elements.
1335
13362017-04-27 Bob Duff <duff@adacore.com>
1337
1338 * g-dyntab.adb (Release): When allocating the new
1339 table, use the correct slice of the old table to initialize it.
1340
02848684
AC
13412017-04-27 Eric Botcazou <ebotcazou@adacore.com>
1342
1343 * einfo.ads: Minor fixes in comments.
1344
13452017-04-27 Ed Schonberg <schonberg@adacore.com>
1346
1347 * sem_prag.adb: disable clones in SPARK_Mode.
1348
13492017-04-27 Gary Dismukes <dismukes@adacore.com>
1350
1351 * sem_util.ads, contracts.adb: Minor reformatting.
1352
aaa0a838
ES
13532017-04-27 Ed Schonberg <schonberg@adacore.com>
1354
1355 * sem_util.adb, sem_util.ads (Build_Class_Wide_Clone_Body):
1356 Build body of subprogram that has a class-wide condition that
1357 contains calls to other primitives.
1358 (Build_Class_Wide_Clone_Call); Build a call to the common
1359 class-wide clone of a subprogram with classwide conditions. The
1360 body of the subprogram becomes a wrapper for a call to the
1361 clone. The inherited operation becomes a similar wrapper to which
1362 modified conditions apply, and the call to the clone includes
1363 the proper conversion in a call the parent operation.
1364 (Build_Class_Wide_Clone_Decl (Spec_Id : Entity_Id): For a
1365 subprogram that has a classwide condition that contains calls to
1366 other primitives, build an internal subprogram that is invoked
1367 through a type-specific wrapper for all inherited subprograms
1368 that may have a modified condition.
1369 * sem_prag.adb (Check_References): If subprogram has a classwide
1370 condition, create entity for corresponding clone, to be invoked
1371 through wrapper subprograns.
1372 (Analyze_Pre_Post_Condition_In_Decl_Part): Do not emit error
1373 message about placement if pragma isi internally generated.
1374 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): If subprogram has
1375 a classwide clone, build body of clone as copy of original body,
1376 and rewrite original body as a wrapper as a wrapper for a call to
1377 the clone, so that it incorporates the original pre/postconditions
1378 of the subprogram.
1379 * freeze.adb (Check_Inherited_Conditions): For an inherited
1380 subprogram that inherits a classwide condition, build spec and
1381 body of corresponding wrapper so that call to inherited operation
1382 gets the modified conditions.
1383 * contracts.adb (Analyze_Contracts): If analysis of classwide
1384 condition has created a clone for a primitive operation, analyze
1385 declaration of clone.
1386
c1025b4e
AC
13872017-04-27 Steve Baird <baird@adacore.com>
1388
1389 * exp_util.adb (Build_Allocate_Deallocate_Proc):
1390 Add "Suppress => All_Checks" to avoid generating unnecessary
1391 checks.
1392
13932017-04-27 Yannick Moy <moy@adacore.com>
1394
1395 * debug.adb: Reserve debug flag 'm' for no inlining in GNATprove.
1396 * sem_ch6.adb (Anayze_Subprogram_Body_Helper): Skip creation of
1397 inlining body in GNATprove mode when switch -gnatdm used.
1398 * sem_res.adb (Resolve_Call): Skip detection of lack of inlining
1399 in GNATprove mode when switch -gnatdm used.
1400
14012017-04-27 Arnaud Charlet <charlet@adacore.com>
1402
1403 * sem_ch13.adb (Analyze_Attribute_Definition_Clause
1404 [Attribute_Address]): Call Set_Address_Taken when ignoring rep
1405 clauses, so that we keep an indication of the address clause
1406 before removing it from the tree.
1407
cd5acda5
YM
14082017-04-27 Yannick Moy <moy@adacore.com>
1409
1410 * exp_util.ads, exp_util.adb (Evaluate_Name): Force evaluation
1411 of expression being qualified, when not an object name, or else
1412 evaluate the underlying name.
1413
7e6060af
AC
14142017-04-27 Jerome Lambourg <lambourg@adacore.com>
1415
1416 * bindusg.adb, bindgen.adb, gnatbind.adb, opt.ads: add -nognarl switch.
1417
14182017-04-27 Justin Squirek <squirek@adacore.com>
1419
1420 * exp_ch7.adb (Build_Finalize_Statements): Move Num_Comps to
1421 Process_Component_List_For_Finalization as a local variable.
1422 (Process_Component_For_Finalize): Add an extra parameter to avoid
1423 global references.
1424 (Process_Component_List_For_Finalization): Correct calls to
1425 Process_Component_For_Finalize to take Num_Comps as a parameter.
1426
522aa6ee
AC
14272017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
1428
1429 * sem_ch8.adb (Find_Direct_Name): Account for the case where
1430 a use-visible entity is defined within a nested scope of an
1431 instance when giving priority to entities which were visible in
1432 the original generic.
1433 * sem_util.ads, sem_util.adb (Nearest_Enclosing_Instance): New routine.
1434
14352017-04-27 Tristan Gingold <gingold@adacore.com>
1436
1437 * raise-gcc.c: Don't use unwind.h while compiling
1438 for the frontend, but mimic host behavior.
1439
14402017-04-27 Javier Miranda <miranda@adacore.com>
1441
1442 * sem_ch3.adb (Build_Discriminated_Subtype):
1443 Propagate Has_Pragma_Unreferenced_Objects to the built subtype.
1444
14452017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
1446
1447 * sem_prag.adb (Analyze_Global_Item):
1448 Do not consider discriminants because they are not "entire
1449 objects". Remove the discriminant-related checks because they are
1450 obsolete.
1451 (Analyze_Input_Output): Do not consider discriminants
1452 because they are not "entire objects".
1453
14542017-04-27 Ed Schonberg <schonberg@adacore.com>
1455
1456 * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Do not
1457 perform check if the current scope does not come from source,
1458 as is the case for a rewritten task body, because check has
1459 been performed already, and may not be doable because of changed
1460 visibility.
1461
b63d61f7
AC
14622017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
1463
1464 * a-cofuse.adb, a-cfdlli.adb, a-cofuse.ads, a-cfdlli.ads, a-cofuve.adb,
1465 a-cofuve.ads, a-cofuma.adb, a-cofuma.ads, sem_eval.adb, a-cofuba.adb:
1466 Minor reformatting.
1467
14682017-04-27 Ed Schonberg <schonberg@adacore.com>
1469
1470 * sem_ch4.adb (Analyze_Call): If the return type of a function
1471 is incomplete in an context in which the full view is available,
1472 replace the type of the call by the full view, to prevent spurious
1473 type errors.
1474 * exp_disp.adb (Check_Premature_Freezing): Disable check on an
1475 abstract subprogram so that compiler does not reject a parameter
1476 of a primitive operation of a tagged type being frozen, when
1477 the untagged type of that parameter cannot be frozen.
1478
14792017-04-27 Bob Duff <duff@adacore.com>
1480
1481 * sem_attr.adb (Compute_Type_Key): Don't walk
1482 representation items for irrelevant types, which could be in a
1483 different source file.
1484
14852017-04-27 Steve Baird <baird@adacore.com>
1486
1487 * exp_attr.adb (Expand_N_Attribute_Reference):
1488 Don't expand Image, Wide_Image, Wide_Wide_Image attributes
1489 for CodePeer.
1490
bb9e2aa2
AC
14912017-04-27 Yannick Moy <moy@adacore.com>
1492
1493 * exp_unst.ads: Fix typos in comments.
1494
14952017-04-27 Ed Schonberg <schonberg@adacore.com>
1496
1497 * sem_eval.adb (Choice_Matches): Handle properly a real literal
1498 whose type has a defined static predicate.
1499
15002017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
1501
1502 * exp_ch4.adb (Insert_Dereference_Action):
1503 Do not adjust the address of a controlled object when the
1504 associated access type is subject to pragma No_Heap_Finalization.
1505 Code reformatting.
1506
ed8cbbaf
PMR
15072017-04-27 Pierre-Marie de Rodat <derodat@adacore.com>
1508
1509 * gcc-interface/utils.c (gnat_type_for_size): Set
1510 TYPE_ARTIFICIAL on created types.
1511
6cbfce7e
AC
15122017-04-27 Claire Dross <dross@adacore.com>
1513
1514 * a-cfdlli.adb, a-cfdlli.ads (Formal_Model): Adapt to
1515 modifications in functional containers.
1516 * a-cofuba.ads, a-cofuma.ads, a-cofuse.ads, a-cofuve.ads Reformat
1517 to improve readablity. Subprograms are separated between basic
1518 operations, constructors and properties. Universally quantified
1519 formulas in contracts are factorized in independant functions
1520 with a name and a comment. Names of parameters are improved.
1521
15222017-04-27 Gary Dismukes <dismukes@adacore.com>
1523
1524 * exp_spark.adb, sem_elab.adb: Minor reformatting and typo fix.
1525
15262017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
1527
1528 * sem_res.adb (Resolve_Type_Conversion): Do not
1529 install a predicate check here since this is already done during
1530 the expansion phase. Verify whether the operand satisfies the
1531 static predicate (if any) of the target type.
1532 * sem_ch3.adb (Analyze_Object_Declaration): Do
1533 not install a predicate check if the object is initialized by
1534 means of a type conversion because the conversion is subjected
1535 to the same check.
1536
15372017-04-27 Tristan Gingold <gingold@adacore.com>
1538
1539 * raise.c (__gnat_builtin_longjmp): Remove.
1540 (__gnat_bracktrace):
1541 Add a dummy definition for the compiler (__gnat_eh_personality,
1542 __gnat_rcheck_04, __gnat_rcheck_10) (__gnat_rcheck_19,
1543 __gnat_rcheck_20, __gnat_rcheck_21) (__gnat_rcheck_30,
1544 __gnat_rcheck_31, __gnat_rcheck_32): Likewise.
1545 * a-exexpr.adb: Renamed from a-exexpr-gcc.adb
1546 * a-except.ads, a-except.adb: Renamed from a-except-2005.ads
1547 and a-except-2005.adb.
1548 * raise-gcc.c: Allow build in compiler, compiled as a C++
1549 file.
1550 (__gnat_Unwind_ForcedUnwind): Adjust prototype.
1551 (db): Constify msg_format.
1552 (get_call_site_action_for): Don't use void arithmetic.
1553 * system.ads (Frontend_Exceptions): Set to False.
1554 (ZCX_By_Default): Set to True.
1555 (GCC_ZC_Support): Set to True.
1556 * gcc-interface/Makefile.in: No more variants for a-exexpr.adb and
1557 a-except.ad[sb].
1558 * gcc-interface/Make-lang.in: Add support for backend zcx exceptions
1559 in gnat1 and gnatbind.
1560 * gnat1, gnatbind: link with raise-gcc.o, a-exctra.o, s-addima.o,
1561 s-excmac.o, s-imgint.o, s-traceb.o, s-trasym.o, s-wchstw.o
1562 * s-excmac.ads, s-excmac.adb: Copy of variants.
1563 * a-except.o: Adjust preequisites.
1564 Add handling of s-excmac-arm.adb and s-excmac-gcc.adb.
1565
15662017-04-27 Claire Dross <dross@adacore.com>
1567
1568 * a-cfdlli.adb, a-cfdlli.ads (Formal_Model): Adapt to
1569 modifications in functional containers.
1570 * a-cofuba.ads, a-cofuma.ads, a-cofuse.ads, a-cofuve.ads Reformat
1571 to improve readablity. Subprograms are separated between basic
1572 operations, constructors and properties. Universally quantified
1573 formulas in contracts are factorized in independant functions
1574 with a name and a comment. Names of parameters are improved.
1575
15762017-04-27 Gary Dismukes <dismukes@adacore.com>
1577
1578 * exp_spark.adb, sem_elab.adb: Minor reformatting and typo fix.
1579
15802017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
1581
1582 * sem_res.adb (Resolve_Type_Conversion): Do not
1583 install a predicate check here since this is already done during
1584 the expansion phase. Verify whether the operand satisfies the
1585 static predicate (if any) of the target type.
1586 * sem_ch3.adb (Analyze_Object_Declaration): Do
1587 not install a predicate check if the object is initialized by
1588 means of a type conversion because the conversion is subjected
1589 to the same check.
1590
15912017-04-27 Tristan Gingold <gingold@adacore.com>
1592
1593 * a-except.ads, a-except.adb, a-exexpr.adb: Removed (will be
1594 replaced by their variants).
1595
e77e2429
AC
15962017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
1597
1598 * exp_prag.adb, a-cofuse.adb, a-cofuse.ads, einfo.adb, sem_prag.adb,
1599 cstand.adb, par-prag.adb, a-cofuve.adb, a-cofuve.ads, a-cofuma.adb,
1600 a-cofuma.ads, a-cofuba.adb, a-cofuba.ads: Minor reformatting.
1601
16022017-04-27 Tristan Gingold <gingold@adacore.com>
1603
1604 * s-excmac-gcc.ads, s-excmac-gcc.adb,
1605 s-excmac-arm.ads, s-excmac-arm.adb (New_Occurrence): Rewrite it in
1606 Ada95.
1607
16082017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
1609
1610 * exp_ch7.adb (Establish_Transient_Scope): Rewrite
1611 the loop which detects potential enclosing transient scopes. The
1612 loop now terminates much earlier as transient scopes are bounded
1613 by packages and subprograms.
1614
16152017-04-27 Claire Dross <dross@adacore.com>
1616
1617 * a-cfdlli.adb, a-cfdlli.ads (=): Generic parameter removed to
1618 allow the use of regular equality over elements in contracts.
1619 (Cursor): Type is now public so that it can be used in
1620 model functions.
1621 (Formal_Model): Ghost package containing
1622 model functions that are used in subprogram contracts.
1623 (Current_To_Last): Removed, model functions should be used
1624 instead.
1625 (First_To_Previous): Removed, model functions should
1626 be used instead.
1627 (Strict_Equal): Removed, model functions
1628 should be used instead.
1629 (Append): Default parameter value
1630 replaced by new wrapper to allow more precise contracts.
1631 (Insert): Default parameter value replaced by new wrapper to
1632 allow more precise contracts.
1633 (Delete): Default parameter
1634 value replaced by new wrapper to allow more precise contracts.
1635 (Prepend): Default parameter value replaced by new wrapper to
1636 allow more precise contracts.
1637 (Delete_First): Default parameter
1638 value replaced by new wrapper to allow more precise contracts.
1639 (Delete_Last): Default parameter value replaced by new wrapper
1640 to allow more precise contracts.
1641
16422017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
1643
1644 * exp_spark.adb (Expand_SPARK): Perform specialized expansion
1645 for object declarations.
1646 (Expand_SPARK_N_Object_Declaration): New routine.
1647 * sem_elab.adb (Check_A_Call): Include calls to the
1648 Default_Initial_Condition procedure of a type under the SPARK
1649 elaboration checks umbrella.
1650
7a71a7c4
AC
16512017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
1652
1653 * sem.adb (Analyze): Diagnose an illegal iterated component
1654 association.
1655 * sem_util.ads, sem_util.adb
1656 (Diagnose_Iterated_Component_Association): New routine.
1657
16582017-04-27 Bob Duff <duff@adacore.com>
1659
1660 * adaint.c (__gnat_get_current_dir): Return 0 in length if
1661 getcwd fails.
1662 * a-direct.adb, g-dirope.adb, osint.adb, s-os_lib.adb: Raise
1663 exception if getcwd failed.
1664
16652017-04-27 Yannick Moy <moy@adacore.com>
1666
1667 * exp_dbug.adb, exp_dbug.ads (Get_External_Name): Prefix ghost
1668 entities with special prefix.
1669
16702017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
1671
1672 * debug.adb Change the documentation of switch -gnatd.s.
1673 * exp_ch7.adb (Make_Transient_Block): Transient blocks do not need
1674 to manage the secondary stack when an enclosing scope already
1675 performs this functionality (aka relaxed management). Switch
1676 -gnatd.s may be used to force strict management in which case
1677 the block will manage the secondary stack unconditionally. Add
1678 a guard to stop the traversal when encountering a package or a
1679 subprogram scope.
1680
16812017-04-27 Ed Schonberg <schonberg@adacore.com>
1682
1683 * sem_res.adb (Resolve_Call): Refine further the handling of
1684 limited views of return types in function calls. If the function
1685 that returns a limited view appears in the current unit,
1686 we do not replace its type by the non-limited view because
1687 this transformation is performed int the back-end. However,
1688 the type of the call itself must be the non-limited view, to
1689 prevent spurious resolution errors.
1690
16912017-04-27 Ed Schonberg <schonberg@adacore.com>
1692
1693 * einfo,ads, einfo.adb (Class_Wide_Preconds, Class_Wide_Postconds):
1694 Removed, proposed implementation using generics for class-wide
1695 preconditions proved impractical.
1696 (Class_Wide_Clone): New attribute of subprogram. Designates
1697 subprogram created for primitive operations with class-wide
1698 pre/postconditions that contain calls to other primitives. The
1699 clone holds the body of the original primitive, but the
1700 pre/postonditions do not apply to it. The original body is
1701 rewritten as a wrapper for a call to the clone.
1702 (Is_Class_Wide_Clone): New flag to identify a Class_Wide_Clone. If
1703 the flag is set, no code for the corresponding pre/postconditions
1704 is inserted into its body.
1705
17062017-04-27 Bob Duff <duff@adacore.com>
1707
1708 * exp_prag.adb, par-prag.adb, sem_ch13.adb: Ignore
1709 Scalar_Storage_Order if -gnatI is given.
1710 * sem_prag.adb (Analyze_Pragma): Ignore
1711 Default_Scalar_Storage_Order if -gnatI is given.
1712
394fa9f5
CD
17132017-04-27 Claire Dross <dross@adacore.com>
1714
1715 * a-cofuba.ads (Add): Take as an additional input parameter
1716 the position where the element should be inserted.
1717 (Remove): New function that removes an element from the container.
1718 * a-cofuma.ads (Add): Adapt to the new API of Base.Add.
1719 * a-cofuse.ads (Add): Adapt to the new API of Base.Add.
1720 (Remove): New function that removes an element from a set.
1721 * a-cofuve.ads (Add): Adapt to the new API of Base.Add.
1722 (Remove): New function that removes an element from a sequence.
1723 (Insert): New function that adds anywhere in a sequence.
1724
11775988
AC
17252017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
1726
1727 * checks.adb (Generate_Range_Check): Revert previous change.
1728
17292017-04-27 Gary Dismukes <dismukes@adacore.com>
1730
1731 * sem_util.adb: Minor reformatting/rewording.
1732
17332017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
1734
1735 * lib-xref.adb (Generate_Reference): The use
1736 of attribute 'Result is not considered a violation of pragma
1737 Unreferenced.
1738
17392017-04-27 Justin Squirek <squirek@adacore.com>
1740
1741 * cstand.adb (Create_Standard): Correctly set
1742 Directly_Designated_Type for Any_Access.
1743 * sem_type.adb (Covers): Minor grammar fixes.
1744
17452017-04-27 Bob Duff <duff@adacore.com>
1746
1747 * sem_attr.adb: Minor cleanup.
1748
17492017-04-27 Claire Dross <dross@adacore.com>
1750
1751 * a-cofuba.ads, a-cofuba.adb (Ada.Containers.Functional_Base): New
1752 private child of Ada.Containers used to implement all functional
1753 containers.
1754 * a-cofuma.ads, a-cofuma.adb (Ada.Containers.Functional_Maps): New
1755 child of Ada.Containers. It provides functional indefinite unbounded
1756 maps which can be used as high level models for specification
1757 of data structures.
1758 * a-cofuse.ads, a-cofuse.adb (Ada.Containers.Functional_Sets): New
1759 child of Ada.Containers. It provides functional indefinite unbounded
1760 sets which can be used as high level models for specification
1761 of data structures.
1762 * a-cofuve.ads, a-cofuve.adb (Ada.Containers.Functional_Vectors): New
1763 child of Ada.Containers. It provides functional indefinite unbounded
1764 vectors which can be used as high level models for specification
1765 of data structures.
1766 * Makefile.rtl: Add new packages.
1767 * impunit.adb: Add new packages.
1768
f32eb591
AC
17692017-04-27 Gary Dismukes <dismukes@adacore.com>
1770
1771 * sem_ch4.adb: Minor reformatting.
1772
17732017-04-27 Ed Schonberg <schonberg@adacore.com>
1774
1775 * sem_ch12.adb (Analyze_Associations): minor reformatting.
1776 (Check_Fixed_Point_Actual): Do not emit a warning on a fixed
1777 point type actual that has user-defined arithmetic primitives,
1778 when there is a previous actual for a formal package that defines
1779 a fixed-point type with the parent user-defined operator.
1780
17812017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
1782
1783 * checks.adb (Generate_Range_Check): Reinstate part of previous change.
1784 * sem_attr.adb (Resolve_Attribute): Generate a range check when
1785 the component type allows range checks.
1786
17872017-04-27 Ed Schonberg <schonberg@adacore.com>
1788
1789 * sem_aux.adb (Is_Generic_Formal): Use original node to locate
1790 corresponding declaration, because formal derived types are
1791 rewritten as private extensions.
1792
17932017-04-27 Ed Schonberg <schonberg@adacore.com>
1794
1795 * sem_dim.adb (Analyze_Dimension_Binary_Op): Do not check
1796 dimensions of operands if node has been analyzed already, because
1797 previous analysis and dimension checking will have removed the
1798 dimension information from the operands.
1799
18002017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
1801
1802 * debug.adb: Document the use of switch -gnatd.s.
1803 * einfo.ads Update the documentation on attribute
1804 Sec_Stack_Needed_For_Return and attribute Uses_Sec_Stack. Remove
1805 the uses of these attributes from certain entities.
1806 * exp_ch7.adb (Make_Transient_Block): Reimplement the circuitry
1807 which determines whether the block should continue to manage
1808 the secondary stack.
1809 (Manages_Sec_Stack): New routine.
1810
18112017-04-27 Bob Duff <duff@adacore.com>
1812
1813 * atree.ads: Minor edit.
1814
18152017-04-27 Hristian Kirtchev <kirtchev@adacore.com>
1816
1817 * sinfo.ads: Update the section on Ghost mode. Add
1818 a section on SPARK mode. Update the placement of section on
1819 expression functions.
1820
18212017-04-27 Bob Duff <duff@adacore.com>
1822
1823 * sinput.adb (Get_Source_File_Index): Don't
1824 assert that S is in the right range in the case where this is
1825 a .dg file under construction.
1826
18272017-04-27 Yannick Moy <moy@adacore.com>
1828
1829 * sem_util.adb (Check_Result_And_Post_State):
1830 Handle more precisely each conjunct in expressions formed by
1831 and'ing sub-expressions.
1832
0c3ef0cc
GD
18332017-04-27 Gary Dismukes <dismukes@adacore.com>
1834
1835 * exp_ch4.adb, sem_ch4.adb: Minor typo fix and reformatting.
1836
9c533e7d
AC
18372017-04-25 Arnaud Charlet <charlet@adacore.com>
1838
1839 * gnat_rm.texi, gnat_ugn.texi,
1840 doc/gnat_ugn/building_executable_programs_with_gnat.rst,
1841 doc/gnat_ugn/platform_specific_information.rst,
1842 doc/gnat_ugn/gnat_and_program_execution.rst,
1843 doc/gnat_ugn/gnat_utility_programs.rst,
1844 doc/gnat_ugn/the_gnat_compilation_model.rst,
1845 doc/gnat_rm/implementation_defined_attributes.rst,
1846 doc/gnat_rm/the_gnat_library.rst,
1847 doc/gnat_rm/implementation_defined_pragmas.rst,
1848 doc/gnat_rm/representation_clauses_and_pragmas.rst,
1849 doc/gnat_rm/implementation_of_specific_ada_features.rst,
1850 doc/gnat_rm/implementation_defined_aspects.rst,
1851 doc/gnat_rm/implementation_defined_characteristics.rst: Update
1852 documentation.
1853
211e7410
AC
18542017-04-25 Arnaud Charlet <charlet@adacore.com>
1855
1856 * exp_ch4.adb (Expand_N_Case_Expression): Emit error message when
1857 generating C code on complex case expressions.
1858
18592017-04-25 Arnaud Charlet <charlet@adacore.com>
1860
1861 * sem_prag.adb (Analyze_Pragma): Generate a warning instead
1862 of silently ignoring pragma Ada_xxx in Latest_Ada_Only mode.
1863 * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Use
1864 Ada_2012 instead of Ada_2005 to be compatible with the above
1865 change.
1866 * bindgen.adb: Silence new warning on pragma Ada_95.
1867
18682017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
1869
1870 * checks.adb (Generate_Range_Check): Revert part of previous change.
1871
18722017-04-25 Ed Schonberg <schonberg@adacore.com>
1873
1874 * sem_ch4.adb (Try_Container_Indexing): Handle properly a
1875 container indexing operation that appears as a an actual in a
1876 parameter association in a procedure call.
1877
18782017-04-25 Olivier Ramonat <ramonat@adacore.com>
1879
1880 * prj-proc.adb, sem_util.adb, s-stposu.adb, sem_attr.adb, prj-conf.ads:
1881 Fix spelling mistakes.
1882
18832017-04-25 Bob Duff <duff@adacore.com>
1884
1885 * types.ads, osint.adb, sinput-c.adb, sinput-d.adb, sinput-l.adb,
1886 * sinput-p.adb: Use regular fat pointers, with bounds checking,
1887 for source buffers. Fix misc obscure bugs.
1888 * sinput.ads, sinput.adb: Use regular fat pointers, with bounds
1889 checking, for source buffers. Modify representation clause for
1890 Source_File_Record as appropriate. Move Source_File_Index_Table
1891 from spec to body, because it is not used outside the body.
1892 Move Set_Source_File_Index_Table into the private part, because
1893 it is used only in the body and in children. Use trickery to
1894 modify the dope in the generic instantiation case. It's ugly,
1895 but not as ugly as the previous method. Fix documentation.
1896 Remove obsolete code.
1897 * fname-sf.adb, targparm.adb: Fix misc out-of-bounds
1898 indexing in source buffers.
1899 * fmap.adb: Avoid conversions from one string type to another.
1900 Remove a use of global name buffer.
1901 * osint.ads, sfn_scan.ads, sfn_scan.adb, sinput-c.ads: Comment
1902 fixes.
1903
e0666fc6
AC
19042017-04-25 Gary Dismukes <dismukes@adacore.com>
1905
1906 * exp_util.adb, exp_ch4.adb: Minor reformatting.
1907
19082017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
1909
1910 * checks.adb: Code clean up in various routines.
1911 (Generate_Range_Check): Do not generate a range check when the
1912 expander is not active or when index/range checks are suppressed
1913 on the target type.
1914 (Insert_List_After_And_Analyze, Insert_List_Before_And_Analyze):
1915 Remove variants that include a Supress parameter. These routines
1916 are never used, and were introduced before the current scope-based
1917 check suppression method.
1918
19192017-04-25 Vasiliy Fofanov <fofanov@adacore.com>
1920
1921 * prj-part.adb, cstreams.c, osint.adb, osint.ads: Remove VMS specific
1922 code and some subprogram calls that are now noop.
1923
e44e8a5e
AC
19242017-04-25 Arnaud Charlet <charlet@adacore.com>
1925
1926 * exp_ch4.adb (Expand_N_Case_Expression): Take
1927 Minimize_Expression_With_Actions into account when possible.
1928
bf604a5e
AC
19292017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
1930
1931 * exp_util.adb (Known_Non_Null): Moved to Sem_Util.
1932 (Known_Null): Moved to Sem_Util.
1933 * exp_util.ads (Known_Non_Null): Moved to Sem_Util.
1934 (Known_Null): Moved to Sem_Util.
1935 * sem_util.adb Add new enumeration type Null_Status_Kind.
1936 (Known_Non_Null): Moved from Exp_Util. Most of the logic in
1937 this routine is now carried out by Null_Status.
1938 (Known_Null): Moved from Exp_Util. Most of the logic in this routine
1939 is now carried out by Null_Status.
1940 (Null_Status): New routine.
1941 * sem_util.ads (Known_Non_Null): Moved from Exp_Util.
1942 (Known_Null): Moved from Exp_Util.
1943
19442017-04-25 Ed Schonberg <schonberg@adacore.com>
1945
1946 * sem_ch6.adb (Analyze_Expression_Function): Do not report an
1947 error on the return type of an expression function that is a
1948 completion, if the type is derived from a generic formal type.
1949
19502017-04-25 Ed Schonberg <schonberg@adacore.com>
1951
1952 * sem_dim.adb (Dimensions_Of_Operand): The dimensions of a type
1953 conversion are those of the target type.
1954
19552017-04-25 Bob Duff <duff@adacore.com>
1956
1957 * a-clrefi.adb: Minor cleanup.
1958
178c3cba
GD
19592017-04-25 Gary Dismukes <dismukes@adacore.com>
1960
1961 * exp_util.adb, exp_util.ads, types.ads: Minor reformatting.
1962
0f96fd14
BD
19632017-04-25 Bob Duff <duff@adacore.com>
1964
1965 * err_vars.ads, fmap.adb, fmap.ads, comperr.adb, fname-sf.adb,
1966 types.adb, types.ads, types.h, sinput-l.adb, targparm.adb,
1967 errout.adb, sinput.adb, sinput.ads, cstand.adb, scn.adb,
1968 scn.ads, gnatls.adb: Eliminate the vestigial Internal_Source_File and
1969 the Internal_Source buffer. This removes the incorrect call to "="
1970 the customer noticed.
1971 Wrap remaining calls to "=" in Null_Source_Buffer_Ptr. We
1972 eventually need to eliminate them altogether. Or else get rid
1973 of zero-origin addressing.
1974
28ccbd3f
AC
19752017-04-25 Claire Dross <dross@adacore.com>
1976
1977 * exp_util.ads (Expression_Contains_Primitives_Calls_Of): New
1978 function used in GNATprove to know if an expression contains
1979 non-dispatching calls on primitives of a tagged type.
1980
19812017-04-25 Bob Duff <duff@adacore.com>
1982
1983 * rtsfind.adb (Initialize): Initialize
1984 First_Implicit_With. Building the compiler with Normalize_Scalars
1985 and validity checking finds this being used as an uninitialized
1986 variable.
1987
f9a8f910
HK
19882017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
1989
1990 * contracts.adb (Analyze_Entry_Or_Subprogram_Body_Contract):
1991 Add a warning about SPARK mode management. The routine now
1992 saves and restores both the mode and associated pragma.
1993 (Analyze_Entry_Or_Subprogram_Contract): Add a warning about
1994 SPARK mode management. The routine now saves and restores both
1995 the mode and associated pragma.
1996 (Analyze_Object_Contract):
1997 Add a warning about SPARK mode management. The routine
1998 now saves and restores both the mode and associated pragma.
1999 (Analyze_Package_Body_Contract): Add a warning about SPARK mode
2000 management. The routine now saves and restores both the mode
2001 and associated pragma. (Analyze_Package_Contract): Add a warning
2002 about SPARK mode management. The routine now saves and restores
2003 both the mode and associated pragma.
2004 (Analyze_Task_Contract):
2005 Add a warning about SPARK mode management. The routine now saves
2006 and restores both the mode and associated pragma.
2007 * expander.adb (Expand): Change the way the Ghost mode is saved
2008 and restored.
2009 * exp_ch3.adb (Freeze_Type): Change the way the Ghost mode is
2010 saved and restored.
2011 * exp_disp.adb (Make_DT): Change the way the Ghost mode is saved
2012 and restored.
2013 * exp_util.adb (Build_DIC_Procedure_Body):
2014 Change the way the Ghost mode is saved and restored.
2015 (Build_DIC_Procedure_Declaration): Change the way the Ghost
2016 mode is saved and restored.
2017 (Build_Invariant_Procedure_Body):
2018 Change the way the Ghost mode is saved and restored.
2019 (Build_Invariant_Procedure_Declaration): Change the way the Ghost
2020 mode is saved and restored.
2021 (Make_Predicate_Call): Change the
2022 way the Ghost mode is saved and restored.
2023 * freeze.adb (Freeze_Entity): Change the way the Ghost mode is
2024 saved and restored.
2025 * ghost.adb (Mark_And_Set_Ghost_Assignment): Remove parameter Mode
2026 and its assignment.
2027 (Mark_And_Set_Ghost_Body): Remove parameter
2028 Mode and its assignment.
2029 (Mark_And_Set_Ghost_Completion):
2030 Remove parameter Mode and its assignment.
2031 (Mark_And_Set_Ghost_Declaration): Remove parameter Mode and its
2032 assignment.
2033 (Mark_And_Set_Ghost_Instantiation): Remove parameter
2034 Mode and its assignment.
2035 (Mark_And_Set_Ghost_Procedure_Call):
2036 Remove parameter Mode and its assignment.
2037 (Set_Ghost_Mode):
2038 Remove parameter Mode and its assignment.
2039 * ghost.ads (Mark_And_Set_Ghost_Assignment): Remove parameter Mode
2040 and update the comment on usage.
2041 (Mark_And_Set_Ghost_Body):
2042 Remove parameter Mode and update the comment on usage.
2043 (Mark_And_Set_Ghost_Completion): Remove parameter Mode and
2044 update the comment on usage.
2045 (Mark_And_Set_Ghost_Declaration):
2046 Remove parameter Mode and update the comment on usage.
2047 (Mark_And_Set_Ghost_Instantiation): Remove parameter Mode and
2048 update the comment on usage.
2049 (Mark_And_Set_Ghost_Procedure_Call):
2050 Remove parameter Mode and update the comment on usage.
2051 (Set_Ghost_Mode): Remove parameter Mode and update the comment
2052 on usage.
2053 * lib.ads Remove obsolete fields SPARK_Mode_Pragma from various
2054 types.
2055 * lib-load.adb (Create_Dummy_Package_Unit): Remove the assignment
2056 of obsolete field SPARK_Mode_Pragma.
2057 (Load_Main_Source): Remove
2058 the assignment of obsolete field SPARK_Mode_Pragma.
2059 (Load_Unit): Remove the assignment of obsolete field SPARK_Mode_Pragma.
2060 * lib-writ.adb (Add_Preprocessing_Dependency): Remove
2061 the assignment of obsolete field SPARK_Mode_Pragma.
2062 (Ensure_System_Dependency): Remove the assignment of obsolete
2063 field SPARK_Mode_Pragma.
2064 * rtsfind.adb (Load_RTU): Add a warning about Ghost and SPARK
2065 mode management. Change the way Ghost and SPARK modes are saved
2066 and restored.
2067 * sem.adb (Analyze): Change the way the Ghost mode is saved
2068 and restored.
2069 * sem_ch3.adb (Analyze_Object_Declaration): Change the way the
2070 Ghost mode is saved and restored.
2071 (Process_Full_View): Change
2072 the way the Ghost mode is saved and restored.
2073 * sem_ch5.adb (Analyze_Assignment): Change the way the Ghost
2074 mode is saved and restored.
2075 * sem_ch6.adb (Analyze_Procedure_Call): Change the way the Ghost
2076 mode is saved and restored.
2077 (Analyze_Subprogram_Body_Helper):
2078 Change the way the Ghost mode is saved and restored.
2079 * sem_ch7.adb (Analyze_Package_Body_Helper): Change the way the
2080 Ghost mode is saved and restored.
2081 * sem_ch10.adb (Analyze_Subunit): Add a warning about SPARK mode
2082 management. Save the SPARK mode-related data prior to any changes
2083 to the scope stack and contexts. The mode is then reinstalled
2084 before the subunit is analyzed in order to restore the original
2085 view of the subunit.
2086 * sem_ch12.adb (Analyze_Package_Instantiation): Update the
2087 warning on region management. Change the way the Ghost and
2088 SPARK modes are saved and restored.
2089 (Inline_Instance_Body):
2090 Add a warning about SPARK mode management. Code clean up.
2091 (Analyze_Subprogram_Instantiation): Update the warning on region
2092 management. Change the way the Ghost and SPARK modes are saved
2093 and restored.
2094 (Instantiate_Package_Body): Update the warning
2095 on region management. Change the way the Ghost and SPARK modes
2096 are saved and restored.
2097 (Instantiate_Subprogram_Body): Update
2098 the warning on region management. Change the way the Ghost and
2099 SPARK modes are saved and restored.
2100 (Set_Instance_Env): Add a
2101 warning about SPARK mode management. Change the way SPARK mode
2102 is saved and restored.
2103 * sem_ch13.adb (Build_Predicate_Functions):
2104 Change the way the Ghost mode is saved and restored.
2105 (Build_Predicate_Function_Declaration): Change the way the Ghost
2106 mode is saved and restored.
2107 * sem_elab.adb (Check_Elab_Calls): Add a warning about SPARK
2108 mode management. Change the way SPARK mode is saved and restored.
2109 * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part):
2110 Change the way the Ghost mode is saved and restored.
2111 (Analyze_Initial_Condition_In_Decl_Part): Change the way
2112 the Ghost mode is saved and restored.
2113 (Analyze_Pragma):
2114 Change the way the Ghost mode is saved and restored.
2115 (Analyze_Pre_Post_Condition_In_Decl_Part): Change the way the
2116 Ghost mode is saved and restored.
2117 * sem_util.adb (Install_SPARK_Mode): New routine.
2118 (Restore_SPARK_Mode): New routine.
2119 (Save_SPARK_Mode_And_Set): Removed.
2120 (Set_SPARK_Mode): New routine.
2121 * sem_util.ads (Install_SPARK_Mode): New routine.
2122 (Restore_SPARK_Mode): New routine.
2123 (Save_SPARK_Mode_And_Set): Removed.
2124 (Set_SPARK_Mode): New routine.
2125
e1691d7e
ES
21262017-04-25 Ed Schonberg <schonberg@adacore.com>
2127
2128 * sem_util.adb, sem_util.ads (From_Nested_Package): New predicate
2129 to determine whether a type is declared in a local package that
2130 has not yet been frozen.
2131 * freeze.adb (Freeze_Before): Use new predicate to determine
2132 whether a local package must be installed on the scope stack
2133 in order to evaluate in the proper scope actions generated by
2134 aspect specifications, such as Predicate
2135 * sem_ch13.adb: Simplify code in Analyze_Aspects_At_Freeze_Point
2136 using new predicate.
2137
57f6e00c
AC
21382017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
2139
2140 * sem_warn.adb (Warn_On_Constant_Valid_Condition): Do not consider
2141 comparisons between non- scalar expressions expressions because
2142 their values cannot be invalidated.
2143 * sem_warn.ads (Warn_On_Constant_Valid_Condition): Update the
2144 comment on usage.
2145
21462017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
2147
2148 * par_sco.adb: Minor reformatting.
2149
21502017-04-25 Ed Schonberg <schonberg@adacore.com>
2151
2152 * sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): If entity
2153 is a type from an unfrozen local package, install package to
2154 complete the analysis of delayed aspects of the type.
2155
21562017-04-25 Tristan Gingold <gingold@adacore.com>
2157
2158 * bingen.adb (System_Version_Control_Used): New variable.
2159 (Resolve_Binder_Options): Set the above variable.
2160 (Gen_Output_File_Ada): Conditionally call Gen_Versions.
2161 (Gen_Elab_Order): Emit blank line before.
2162
21632017-04-25 Justin Squirek <squirek@adacore.com>
2164
2165 * sem_cat.adb (Validate_RT_RAT_Component): Added
2166 an extra check to ignore incomplete types.
2167
62807842
AC
21682017-04-25 Thomas Quinot <quinot@adacore.com>
2169
2170 * sem_prag.adb (Analyze_Pragma, case Pragma_Check): Remove
2171 bogus circuitry for the case where Name is Predicate.
2172
21732017-04-25 Thomas Quinot <quinot@adacore.com>
2174
2175 * par_sco.adb(Traverse_Declarations_Or_Statements.Traverse_Aspects):
2176 Create SCOs for Predicate aspects in disabled
2177 state initially, to be enabled later on by...
2178 * sem_ch13.adb (Build_Predicate_Functions.Add_Predicates): Mark
2179 SCO for predicate as enabled.
2180
21812017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
2182
2183 * comperr.adb (Compiler_Abort): Remove now obsolete pair of
2184 pragmas Warnings Off / On.
2185 * namet.adb (Finalize): Remove now obsolete pair of pragmas
2186 Warnings Off / On.
2187 * output.adb: Remove now obsolete pair of pragmas Warnings Off / On.
2188 * sem_warn.adb (Warn_On_Constant_Valid_Condition): Do not
2189 consider comparisons between static expressions because their
2190 values cannot be invalidated.
2191 * urealp.adb (Tree_Read): Remove now obsolete pair of pragmas
2192 Warnings Off / On.
2193 (Tree_Write): Remove now obsolete pair of pragmas Warnings Off / On.
2194 * usage.adb Remove now obsolete pair of pragmas Warnings Off / On.
2195
21962017-04-25 Bob Duff <duff@adacore.com>
2197
2198 * sem_elab.adb (In_Task_Activation): Trace internal calls in
2199 task bodies.
2200
2da8c8e2
GD
22012017-04-25 Gary Dismukes <dismukes@adacore.com>
2202
2203 * sem_prag.adb, sem_warn.adb, sem_eval.adb: Minor reformatting and
2204 typo fixes.
2205
634a926b
AC
22062017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
2207
2208 * comperr.adb (Compiler_Abort): Add a pair of pragma Warnings
2209 On/Off to defend against a spurious warning in conditional
2210 compilation.
2211 * exp_ch4.adb (Rewrite_Comparison): Reimplemented.
2212 * namet.adb (Finalize): Add a pair of pragma Warnings On/Off to
2213 defend against a spurious warning in conditional compilation.
2214 * output.adb Add a pair of pragma Warnings On/Off to defend
2215 against a spurious warning in conditional compilation.
2216 * sem_eval.adb (Eval_Relational_Op): Major code clean up.
2217 (Fold_General_Op): New routine.
2218 (Fold_Static_Real_Op): New routine.
2219 (Test_Comparison): New routine.
2220 * sem_eval.ads (Test_Comparison): New routine.
2221 * sem_warn.adb (Is_Attribute_Constant_Comparison): New routine.
2222 (Warn_On_Constant_Valid_Condition): New routine.
2223 (Warn_On_Known_Condition): Use Is_Attribute_Constant_Comparison
2224 to detect a specific case.
2225 * sem_warn.adb (Warn_On_Constant_Valid_Condition): New routine.
2226 * urealp.adb (Tree_Read): Add a pair of pragma Warnings On/Off
2227 to defend against a spurious warning in conditional compilation.
2228 (Tree_Write): Add a pair of pragma Warnings On/Off to defend
2229 against a spurious warning in conditional compilation.
2230 * usage.adb Add a pair of pragma Warnings On/Off to defend
2231 against a spurious warning in conditional compilation.
2232
22332017-04-25 Arnaud Charlet <charlet@adacore.com>
2234
2235 * sinfo.ads, sem_ch13.adb: Update comment.
2236
1f70c47f
AC
22372017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
2238
2239 * sem_util.adb (Is_Post_State): A reference to a
2240 generic in out parameter is considered a change in the post-state
2241 of a subprogram.
2242
22432017-04-25 Ed Schonberg <schonberg@adacore.com>
2244
2245 * sem_ch12.adb (Load_Parent_Of_Generic); When retrieving the
2246 declaration of a subprogram instance within its wrapper package,
2247 skip over null statements that may result from the rewriting of
2248 ignored pragmas.
2249
22502017-04-25 Ed Schonberg <schonberg@adacore.com>
2251
2252 * exp_attr.adb (Expand_Attribute_Reference, case 'Read):
2253 If the type is an unchecked_union, replace the attribute with
2254 a Raise_Program_Error (rather than inserting such before the
2255 attribute reference) to handle properly the case where we are
2256 processing a component of a larger record, and we need to prevent
2257 further expansion for the unchecked union.
2258 (Expand_Attribute_Reference, case 'Write): If the type is
2259 an unchecked_union, check whether enclosing scope is a Write
2260 subprogram. Replace attribute with a Raise_Program_Error if the
2261 discriminants of the unchecked_union type have not default values
2262 because such a use is erroneous..
2263
22642017-04-25 Tristan Gingold <gingold@adacore.com>
2265
2266 * exp_ch9.adb (Expand_N_Task_Type_Declaration):
2267 Add relative_deadline to task record on edf profile.
2268 (Make_Initialize_Protection): Pass deadline_floor value on edf profile.
2269 (Make_Task_Create_Call): Pass relative_deadline value.
2270 * par-prag.adb (Prag): Handle Pragma_Deadline_Floor.
2271 * s-rident.ads (Profile_Name): Add GNAT_Ravenscar_EDF.
2272 (Profile_Info): Add info for GNAT_Ravenscar_EDF.
2273 * sem_prag.adb (Set_Ravenscar_Profile): Handle
2274 GNAT_Ravenscar_EDF (set scheduling policy).
2275 (Analyze_Pragma): Handle GNAT_Ravenscar_EDF profile and Deadline_Floor
2276 pragma.
2277 (Sig_Flags): Add choice for Pragma_Deadline_Floor.
2278 * snames.ads-tmpl (Name_Deadline_Floor, Name_Gnat_Ravenscar_EDF):
2279 New names.
2280 (Pragma_Deadline_Floor): New pragma.
2281 * targparm.adb (Get_Target_Parameters): Recognize
2282 GNAT_Ravenscar_EDF profile.
2283
daad20d6
AC
22842017-04-25 Arnaud Charlet <charlet@adacore.com trojanek>
2285
2286 * gnatvsn.ads (Library_Version): Bump to 8. Update comment.
2287
e7c25229
AC
22882017-04-25 Ed Schonberg <schonberg@adacore.com>
2289
2290 * sem_aux.adb (Nearest_Ancestor): Use original node of type
2291 declaration to locate nearest ancestor, because derived
2292 type declarations for record types are rewritten as record
2293 declarations.
2294 * sem_ch13.adb (Add_Call): Use an unchecked conversion to handle
2295 properly derivations that are completions of private types.
2296 (Add_Predicates): If type is private, examine rep. items of full
2297 view, which may include inherited predicates.
2298 (Build_Predicate_Functions): Ditto.
2299
23002017-04-25 Javier Miranda <miranda@adacore.com>
2301
2302 * sem_util.adb (New_Copy_Tree.Visit_Entity): Extend previous change
2303 to generate new entities for subtype declarations located in
2304 Expression_With_Action nodes.
2305
23062017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
2307
2308 * sem_elab.adb (Check_A_Call): Remove
2309 local variables Is_DIC_Proc and Issue_In_SPARK. Verify the
2310 need for Elaborate_All when SPARK elaboration checks are
2311 required. Update the checks for instances, variables, and calls
2312 to Default_Initial_Condition procedures.
2313
23142017-04-25 Ed Schonberg <schonberg@adacore.com>
2315
2316 * aspects.ads, aspects.adb: Make the GNAT-specific pragma No_Inline
2317 into a boolean aspect, in analogy with the Ada aspect No_Return.
2318
a267d8cc
AC
23192017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
2320
2321 * exp_ch6.adb, sem_ch13.adb, sem_ch6.adb: Minor reformatting.
2322
23232017-04-25 Bob Duff <duff@adacore.com>
2324
2325 * sem_res.adb (Resolve_Actuals): Under -gnatd.q, reset
2326 Is_True_Constant for an array variable that is passed to a
2327 foreign function as an 'in' parameter.
2328 * debug.adb: Document -gnatd.q.
2329
241f328c
ES
23302017-04-25 Ed Schonberg <schonberg@adacore.com>
2331
2332 * sem_ch6.adb (Analyze_Expression_Function): If expression function
2333 is completion and return type is an access type do not freeze
2334 designated type: this will be done in the process of freezing
2335 the expression if needed.
2336 (Freeze_Expr_Types): Check whether type is complete before
2337 creating freeze node, to provide a better error message if
2338 reference is premature.
2339 * sem_ch13.adb (Check_Indexing_Functions): Ignore inherited
2340 functions created by type derivations.
2341
cccb761b
AC
23422017-04-25 Pascal Obry <obry@adacore.com>
2343
2344 * g-sercom.ads: Add simple usage of GNAT.Serial_Communication.
2345
23462017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
2347
2348 * sem_res.adb (Resolve_Type_Conversion):
2349 When resolving against any fixed type, set the type of the
2350 operand as universal real when the operand is a multiplication
2351 or a division where both operands are of any fixed type.
2352 (Unique_Fixed_Point_Type): Add local variable ErrN. Improve the
2353 placement of an error message by pointing to the operand of a
2354 type conversion rather than the conversion itself.
2355
23562017-04-25 Thomas Quinot <quinot@adacore.com>
2357
2358 * sem_ch13.adb (Build_Predicate_Function_Declaration): Set
2359 Needs_Debug_Info when producing SCOs.
2360
23612017-04-25 Thomas Quinot <quinot@adacore.com>
2362
2363 * exp_ch6.adb (Add_Finalization_Master_Actual_To_Build_In_Place_Call):
2364 Always pass a null finalization master for a library level named access
2365 type to which a pragme No_Heap_Finalization applies.
2366
9dd958d2
AC
23672017-04-25 Arnaud Charlet <charlet@adacore.com trojanek>
2368
2369 PR ada/78845
2370
2371 * a-ngcoar.adb, a-ngrear.adb (Inverse): call Unit_Matrix with First_1
2372 set to A'First(2) and vice versa.
2373
7738270b
AC
23742017-04-25 Yannick Moy <moy@adacore.com>
2375
2376 * freeze.adb (Freeze_Record_Type): Remove obsolete
2377 rule on volatile tagged record restriction on SPARK code.
2378
23792017-04-25 Yannick Moy <moy@adacore.com>
2380
2381 * sem_prag.adb (minor) Fix SPARK RM reference.
2382
23832017-04-25 Yannick Moy <moy@adacore.com>
2384
2385 * sem_util.adb, sem_util.ads (Unique_Defining_Entity): Update
2386 comment to reflect which entity is chosen as unique entity.
2387 (Unique_Entity): Return full view instead of private spec for
2388 protected type or task type. Fix possible incorrect access when
2389 called on entry.
2390
23912017-04-25 Eric Botcazou <ebotcazou@adacore.com>
2392
2393 * sem_res.adb (Set_Slice_Subtype): Treat specially bit-packed
2394 array types only instead of all packed array types.
2395
23962017-04-25 Ed Schonberg <schonberg@adacore.com>
2397
2398 * sem_ch6.adb (Conforming_Types): If type of formal as a specified
2399 dimension system, verify that dimensions of both match.
2400 (Check_Conformance): Add error message in case of dimension
2401 mismatch.
2402 * sem_dim.ads, sem_dim.adb (Dimensions_Match): New utility
2403 predicate.
2404
24052017-04-25 Arnaud Charlet <charlet@adacore.com trojanek>
2406
2407 * gnatxref.adb, gnatfind.adb: Avoid using the term project file,
2408 confusing.
2409
e4b1cd76
YM
24102017-04-25 Yannick Moy <moy@adacore.com>
2411
2412 * sem_util.adb: Minor refactoring.
2413 * freeze.adb (Freeze_Record_Type): Fix checking of SPARK RM 7.1.3(5).
2414
3e3bc136
AC
24152017-04-25 Claire Dross <dross@adacore.com>
2416
2417 * sem_prag.adb (Collect_Inherited_Class_Wide_Conditions): Go to
2418 ultimate alias when accessing overridden operation. Indeed, if the
2419 overridden operation is itself inherited, it won't have any explicit
2420 contract.
2421
24222017-04-25 Ed Schonberg <schonberg@adacore.com>
2423
2424 * sem_warn.adb (Warn_On_Overlapping_Actuals): There can be no
2425 overlap if the two formals have different types, because formally
2426 the corresponding actuals cannot designate the same objects.
2427
24282017-04-25 Ed Schonberg <schonberg@adacore.com>
2429
2430 * sem_dim.adb (Dimensions_Of_Operand): minot cleanups: a) If
2431 dimensions are present from context, use them. b) If operand is
2432 a static constant rewritten as a literal, obtain the dimensions
2433 from the original declaration, otherwise use dimensions of type
2434 established from context.
2435
24362017-04-25 Yannick Moy <moy@adacore.com>
2437
2438 * sem_util.adb (Is_Effectively_Volatile): Protect against base type
2439 of array that is private.
2440
ca0b6141
AC
24412017-04-25 Gary Dismukes <dismukes@adacore.com>
2442
2443 * sem_ch3.adb, exp_util.adb, sem_prag.adb, exp_ch4.adb: Minor
2444 reformatting.
2445
24462017-04-25 Yannick Moy <moy@adacore.com>
2447
2448 * a-ngelfu.adb, a-ngelfu.ads: Add SPARK_Mode On on spec, Off
2449 on body.
2450
5f8d3dd5
AC
24512017-04-25 Ed Schonberg <schonberg@adacore.com>
2452
2453 * sem_disp.adb (Check_Dispatching_Context): Add guard to refine
2454 the check that recognizes a call to a private overridding and
2455 replaces the called subprogram with its alias.
2456
24572017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
2458
2459 * exp_util.adb: Minor reformatting.
2460
b554177a
AC
24612017-04-25 Justin Squirek <squirek@adacore.com>
2462
2463 * exp_ch3.adb (Freeze_Type): Add condition to always treat
2464 interface types as a partial view of a private type for the
2465 generation of invariant procedure bodies.
2466 * exp_util.adb, exp_util.ads (Add_Inherited_Invariants):
2467 Add a condition to get the Corresponding_Record_Type for
2468 concurrent types, add condition to return in the absence of a
2469 class in the pragma, remove call to Replace_Type_References,
2470 and add call to Replace_References.
2471 (Add_Interface_Invariatns),
2472 (Add_Parent_Invariants): Modify call to Add_Inherited_Invariants
2473 to including the working type T.
2474 (Add_Own_Invariants): Remove
2475 legacy condition for separate units, remove dispatching for ASIS
2476 and save a copy of the expression in the pragma expression.
2477 (Build_Invariant_Procedure_Body): Default initalize vars,
2478 remove return condition on interfaces, always use the
2479 private type for interfaces, and move the processing of types
2480 until after the processing of invariants for the full view.
2481 (Build_Invariant_Procedure_Declaration): Remove condition
2482 to return if an interface type is encountered and add
2483 condition to convert the formal parameter to its class-wide
2484 counterpart if Work_Typ is abstract.
2485 (Replace_Type): Add call to Remove_Controlling_Arguments.
2486 (Replace_Type_Ref): Remove class-wide dispatching for the current
2487 instance of the type.
2488 (Replace_Type_References): Remove parameter "Derived"
2489 (Remove_Controlling_Arguments): Created in order to removing
2490 the controlliong argument from calls to primitives in the case
2491 of the formal parameter being an class-wide abstract type.
2492 * sem_ch3.adb (Build_Assertion_Bodies_For_Type): Almost identical
2493 to the change made to Freeze_Type in exp_ch3. Add a condition
2494 to treat interface types as a partial view.
2495 * sem_prag.adb (Analyze_Pragma): Modify parameters in the call
2496 to Build_Invariant_Procedure_Declaration to properly generate a
2497 "partial" invariant procedure when Typ is an interface.
2498
24992017-04-25 Bob Duff <duff@adacore.com>
2500
2501 * a-numeri.ads: Go back to using brackets encoding for the Greek
2502 letter pi.
2503
904a2ae4
AC
25042017-04-25 Ed Schonberg <schonberg@adacore.com>
2505
2506 * sem_ch3.adb (Derive_Subprogram): Implement rule in RM 6.1.1
2507 (10-15): if derived type T with progenitors is abstract,
2508 and primitive P of this type inherits non-trivial classwide
2509 preconditions from both a parent operation and from an interface
2510 operation, then the inherited operation is abstract if the parent
2511 operation is not null.
2512 * sem_disp.ads, sem_disp.adb: replace function Covers_Some_Interface
2513 with Covered_Interface_Op to yield the actual interface operation
2514 that is implemented by a given inherited operation.
2515
25162017-04-25 Javier Miranda <miranda@adacore.com>
2517
2518 * exp_ch4.adb (Expand_N_Op_Expon): Relocate left
2519 and right operands after performing the validity checks. Required
2520 because validity checks may remove side effects from the operands.
2521
25222017-04-25 Javier Miranda <miranda@adacore.com>
2523
2524 * exp_attr.adb (Attribute_Unrestricted_Access):
2525 Do not disable implicit type conversion. Required to generate
2526 code that displaces the pointer to reference the secondary
2527 dispatch table.
2528
25292017-04-25 Pascal Obry <obry@adacore.com>
2530
2531 * prj-attr.adb, snames.ads-tmpl: Add package Install's
2532 Required_Artifacts attribute.
2533
8f34c90b
AC
25342017-04-25 Ed Schonberg <schonberg@adacore.com>
2535
2536 * sem_util.adb (Same_Value): String literals are compile-time
2537 values, and comparing them must use Expr_Value_S.
2538
25392017-04-25 Ed Schonberg <schonberg@adacore.com>
2540
2541 * sem_ch4.adb (Complete_Object_Interpretation): If an explicit
2542 dereference is introduced for the object, and the object is
2543 overloaded, do not check whether it is aliased, because it may
2544 include an implicit dereference.
2545 * sem_type.adb (Disambiguate): If two interpretations are access
2546 attribute types with the same designated type keep either of
2547 them and do not report an ambiguity. A true ambiguity will be
2548 reported elsewhere.
2549
25502017-04-25 Bob Duff <duff@adacore.com>
2551
2552 * a-numeri.ads: Change the encoding of Greek letter Pi from
2553 brackets encoding to UTF-8. Use pragma Wide_Character_Encoding
2554 to indicate the encoding. We considered using a byte order mark
2555 (BOM), but that causes various trouble (misc software eats the
2556 BOM, if you have a patch with a BOM, then it's not at the start
2557 of the patch, so it's not a BOM, the BOM affects with-ing files,
2558 etc.).
2559 * scng.adb, s-wchcnv.adb: Minor.
2560
25612017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
2562
2563 * sem_ch3.adb, sem_ch8.adb, sem_disp.adb: Minor reformatting.
321c24f7
AC
25642017-04-25 Ed Schonberg <schonberg@adacore.com>
2565
2566 * sem_ch3.adb (Add_Internal_Interface_Entities): Move
2567 Has_Non_Trivial_Precondition to sem_util. for use elsewhere.
2568 Improve error message on operations that inherit non-conforming
2569 classwide preconditions from ancestor and progenitor.
2570 * sem_util.ads, sem_util.adb (Has_Non_Trivial_Precondition):
2571 moved here from sem_ch3.
2572 * sem_ch8.adb (Analyze_Subprogram_Renaming): Implement legality
2573 check given in RM 6.1.1 (17) concerning renamings of overriding
2574 operations that inherits class-wide preconditions from ancestor
2575 or progenitor.
2576
25772017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
2578
2579 * exp_ch7.adb (Build_Adjust_Or_Finalize_Statements): Code cleanup.
2580 (Build_Adjust_Statements): Code cleanup.
2581 (Build_Finalizer): Update the initialization of
2582 Exceptions_OK.
2583 (Build_Finalize_Statements): Code cleanup.
2584 (Build_Initialize_Statements): Code cleanup.
2585 (Make_Deep_Array_Body): Update the initialization of
2586 Exceptions_OK.
2587 (Make_Deep_Record_Body): Update the initialization of Exceptions_OK.
2588 (Process_Object_Declaration): Generate a null exception handler only
2589 when exceptions are allowed.
2590 (Process_Transients_In_Scope): Update the initialization of
2591 Exceptions_OK.
2592 * exp_util.ads, exp_util.adb (Exceptions_In_Finalization_OK): New
2593 routine.
2594 * sem_ch11.adb (Analyze_Exception_Handlers): Do not check any
2595 restrictions when the handler is internally generated and the
2596 mode is warnings.
2597
25982017-04-25 Ed Schonberg <schonberg@adacore.com>
2599
2600 * sem_ch3.adb (Has_Non_Trivial_Precondition): New predicate to
2601 enforce legality rule on classwide preconditions inherited from
2602 both an ancestor and a progenitor (RM 6.1.1 (10-13).
2603 * sem_disp.adb (Check_Dispatching_Context): A call to an abstract
2604 subprogram need not be dispatching if it appears in a precondition
2605 for an abstract or null subprogram.
2606
26072017-04-25 Gary Dismukes <dismukes@adacore.com>
2608
2609 * sem_ch10.adb: Minor typo fix.
2610
6948bc18
AC
26112017-04-25 Arnaud Charlet <charlet@adacore.com>
2612
2613 * gcc-interface/Makefile.in: Cleanup VxWorks targets.
2614
457cee0b
AC
26152017-04-25 Eric Botcazou <ebotcazou@adacore.com>
2616
2617 * fname.adb (Is_Internal_File_Name): Arrange for the slices to
2618 have a length which is a power of 2.
2619 (Is_Predefined_File_Name): Likewise. Adjust comment.
2620
26212017-04-25 Bob Duff <duff@adacore.com>
2622
2623 * exp_aggr.adb (Component_Count): Protect the
2624 arithmetic from attempting to convert a value >= 2**31 to Int,
2625 which would otherwise raise Constraint_Error.
2626
26272017-04-25 Bob Duff <duff@adacore.com>
2628
2629 * opt.ads (Locking_Policy): Fix incorrect documentation. The
2630 first character of the policy name is not unique.
2631
26322017-04-25 Bob Duff <duff@adacore.com>
2633
2634 * s-fileio.adb (Name): Raise Use_Error if the file is a temp file.
2635 * s-ficobl.ads (Is_Temporary_File): Remove incorrect comment
2636 about this flag not being used. It was already used, and it is
2637 now used more.
2638
cf9a473e
AC
26392017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
2640
2641 * einfo.adb Flag301 is now known as Ignore_SPARK_Mode_Pragmas.
2642 (Ignore_SPARK_Mode_Pragmas): New routine.
2643 (Set_Ignore_SPARK_Mode_Pragmas): New routine.
2644 (Write_Entity_Flags): Add an entry for Ignore_SPARK_Mode_Pragmas.
2645 * einfo.ads Add new attribute Ignore_SPARK_Mode_Pragmas and update
2646 related entities.
2647 (Ignore_SPARK_Mode_Pragmas): New routine
2648 along with pragma Inline.
2649 (Set_Ignore_SPARK_Mode_Pragmas): New routine along with pragma Inline.
2650 * opt.ads Rename flag Ignore_Pragma_SPARK_Mode to
2651 Ignore_SPARK_Mode_Pragmas_In_Instance.
2652 * sem_ch6.adb (Analyze_Subprogram_Body_Helper):
2653 Save and restore the value of global flag
2654 Ignore_SPARK_Mode_Pragmas_In_Instance. Set or reinstate the value
2655 of global flag Ignore_SPARK_Mode_Pragmas_In_Instance when either
2656 the corresponding spec or the body must ignore all SPARK_Mode
2657 pragmas found within.
2658 (Analyze_Subprogram_Declaration): Mark
2659 the spec when it needs to ignore all SPARK_Mode pragmas found
2660 within to allow the body to infer this property in case it is
2661 instantiated or inlined later.
2662 * sem_ch7.adb (Analyze_Package_Body_Helper): Save and restore the
2663 value of global flag Ignore_SPARK_Mode_Pragmas_In_Instance. Set
2664 the value of global flag Ignore_SPARK_Mode_Pragmas_In_Instance
2665 when the corresponding spec also ignored all SPARK_Mode pragmas
2666 found within.
2667 (Analyze_Package_Declaration): Mark the spec when
2668 it needs to ignore all SPARK_Mode pragmas found within to allow
2669 the body to infer this property in case it is instantiated or
2670 inlined later.
2671 * sem_ch12.adb (Analyze_Formal_Package_Declaration):
2672 Save and restore the value of flag
2673 Ignore_SPARK_Mode_Pragmas_In_Instance. Mark the
2674 formal spec when it needs to ignore all SPARK_Mode
2675 pragmas found within to allow the body to infer this
2676 property in case it is instantiated or inlined later.
2677 (Analyze_Package_Instantiation): Save and restore the value
2678 of global flag Ignore_SPARK_Mode_Pragmas_In_Instance. Mark
2679 the instance spec when it needs to ignore all SPARK_Mode
2680 pragmas found within to allow the body to infer this
2681 property in case it is instantiated or inlined later.
2682 (Analyze_Subprogram_Instantiation): Save and restore the value
2683 of global flag Ignore_SPARK_Mode_Pragmas_In_Instance. Mark the
2684 instance spec and anonymous package when they need to ignore
2685 all SPARK_Mode pragmas found within to allow the body to infer
2686 this property in case it is instantiated or inlined later.
2687 (Instantiate_Package_Body): Save and restore the value of global
2688 flag Ignore_SPARK_Mode_Pragmas_In_Instance. Set the value of
2689 global flag Ignore_SPARK_Mode_Pragmas_In_Instance when the
2690 corresponding instance spec also ignored all SPARK_Mode pragmas
2691 found within.
2692 (Instantiate_Subprogram_Body): Save and restore the
2693 value of global flag Ignore_SPARK_Mode_Pragmas_In_Instance. Set
2694 the value of global flag Ignore_SPARK_Mode_Pragmas_In_Instance
2695 when the corresponding instance spec also ignored all SPARK_Mode
2696 pragmas found within.
2697 * sem_prag.adb (Analyze_Pragma): Update the reference to
2698 Ignore_Pragma_SPARK_Mode.
2699 * sem_util.adb (SPARK_Mode_Is_Off): A construct which ignored
2700 all SPARK_Mode pragmas defined within yields mode "off".
2701
27022017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
2703
2704 * bindgen.adb, exp_dbug.adb, errout.adb, fname.adb: Minor reformatting.
2705
27062017-04-25 Bob Duff <duff@adacore.com>
2707
2708 * exp_atag.adb (Build_CW_Membership): Add "Suppress =>
2709 All_Checks" to avoid generating unnecessary checks.
2710 * exp_ch4.adb (Expand_N_In, Make_Tag_Check): Add "Suppress =>
2711 All_Checks".
2712 * sem.ads: Fix comment.
2713 * expander.ads: Fix comment.
2714 * exp_atag.ads: Fix comment: "Index = 0" should be
2715 "Index >= 0".
2716
27172017-04-25 Gary Dismukes <dismukes@adacore.com>
2718
2719 * s-taprop-linux.adb: Minor editorial fixes.
2720
1f0bcd44
AC
27212017-04-25 Eric Botcazou <ebotcazou@adacore.com>
2722
2723 * sem_util.adb (New_Copy_Tree): Put back the declarations of the
2724 hash tables at library level. Reinstate the NCT_Hash_Tables_Used
2725 variable and set it to True whenever the main hash table is
2726 populated. Short- circuit the Assoc function if it is false
2727 and add associated guards.
2728
27292017-04-25 Olivier Hainque <hainque@adacore.com>
2730
2731 * bindgen.adb (Gen_Elab_Calls): Also update counter of lone
2732 specs without elaboration code that have an elaboration counter
2733 nevertheless, e.g. when compiled with -fpreserve-control-flow.
2734 * sem_ch10.adb (Analyze_Compilation_Unit):
2735 Set_Elaboration_Entity_Required when requested to preserve
2736 control flow, to ensure the unit elaboration is materialized at
2737 bind time, resulting in the inclusion of the unit object file
2738 in the executable closure at link time.
2739
27402017-04-25 Pierre-Marie de Rodat <derodat@adacore.com>
2741
2742 * exp_dbug.adb: In Debug_Renaming_Declaration,
2743 when dealing with indexed component, accept to produce a renaming
2744 symbol when the index is an IN parameter or when it is a name
2745 defined in an outer scope.
2746
27472017-04-25 Yannick Moy <moy@adacore.com>
2748
2749 * errout.adb (Error_Msg): Adapt continuation
2750 message in instantiations and inlined bodies for info messages.
2751
27522017-04-25 Eric Botcazou <ebotcazou@adacore.com>
2753
2754 * fname.adb (Has_Internal_Extension): Add pragma Inline.
2755 Use direct 4-character slice comparisons.
2756 (Has_Prefix): Add
2757 pragma Inline. (Has_Suffix): Delete.
2758 (Is_Internal_File_Name):
2759 Test Is_Predefined_File_Name first.
2760 (Is_Predefined_File_Name):
2761 Use direct slice comparisons as much as possible and limit all
2762 comparisons to at most 8 characters.
2763
62e45e3e
HK
27642017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
2765
2766 * checks.adb (Insert_Valid_Check): Code cleanup.
2767 * exp_ch6.adb (Add_Validation_Call_By_Copy_Code): New routine.
2768 (Expand_Actuals): Generate proper copy-back for a validation
2769 variable when it acts as the argument of a type conversion.
2770 * sem_util.adb (Is_Validation_Variable_Reference): Augment the
2771 predicate to operate on type qualifications.
2772
ec40b86c
HK
27732017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
2774
2775 * sem_prag.adb, exp_ch6.adb, binde.adb, sem_disp.adb, s-fileio.adb:
2776 Minor reformatting.
2777
ca1f6b29
BD
27782017-04-25 Bob Duff <duff@adacore.com>
2779
2780 * sem_prag.adb (No_Return): Give an error if the pragma applies
2781 to a body. Specialize the error for the specless body case,
2782 as is done for (e.g.) pragma Convention.
2783 * debug.adb: Add switch -gnatd.J to disable the above legality
2784 checks. This is mainly for use in our test suite, to avoid
2785 rewriting a lot of illegal (but working) code. It might also
2786 be useful to customers. Under this switch, if a pragma No_Return
2787 applies to a body, and the procedure raises an exception (as it
2788 should), the pragma has no effect. If the procedure does return,
2789 execution is erroneous.
2790
27912017-04-25 Bob Duff <duff@adacore.com>
2792
2793 * exp_ch6.adb (Expand_Actuals): This is the
2794 root of the problem. It took N as an 'in out' parameter, and in
2795 some cases, rewrote N, but then set N to Original_Node(N). So
2796 the node returned in N had no Parent. The caller continued
2797 processing of this orphaned node. In some cases that caused a
2798 crash (e.g. Remove_Side_Effects climbs up Parents in a loop,
2799 and trips over the Empty Parent). The solution is to make N an
2800 'in' parameter. Instead of rewriting it, return the list of
2801 post-call actions, so the caller can do the rewriting later,
2802 after N has been fully processed.
2803 (Expand_Call_Helper): Move most of Expand_Call here. It has
2804 too many premature 'return' statements, and we want to do the
2805 rewriting on return.
2806 (Insert_Post_Call_Actions): New procedure to insert the post-call
2807 actions in the appropriate place. In the problematic case,
2808 that involves rewriting N as an Expression_With_Actions.
2809 (Expand_Call): Call the new procedures Expand_Call_Helper and
2810 Insert_Post_Call_Actions.
2811
36357cf3
AC
28122017-04-25 Ed Schonberg <schonberg@adacore.com>
2813
2814 * sem_prag.adb (Inherits_Class_Wide_Pre): Cleanup code, handle
2815 properly type derived from generic formal types, to handle
2816 properly modified version of ACATS 4.1B B611017.
2817
28182017-04-25 Javier Miranda <miranda@adacore.com>
2819
2820 * exp_unst.adb (Subp_Index): Adding missing
2821 support for renamings and functions that return a constrained
2822 array type (i.e. functions for which the frontend built a
2823 procedure with an extra out parameter).
2824
28252017-04-25 Pascal Obry <obry@adacore.com>
2826
2827 * s-string.adb: Minor code clean-up.
2828
28292017-04-25 Bob Duff <duff@adacore.com>
2830
2831 * s-os_lib.ads, s-os_lib.adb (Non_Blocking_Wait_Process): New
2832 procedure.
2833 * adaint.h, adaint.c (__gnat_portable_no_block_wait): C support
2834 function for Non_Blocking_Wait_Process.
2835
28362017-04-25 Bob Duff <duff@adacore.com>
2837
2838 * prep.adb (Preprocess): Remove incorrect
2839 Assert. Current character can be ASCII.CR.
2840
48c8c473
AC
28412017-04-25 Ed Schonberg <schonberg@adacore.com>
2842
2843 * sem_prag.adb (Set_Convention_From_Pragma): Cleanup code for
2844 convention Stdcall, which has a number of exceptions. Convention
2845 is legal on a component declaration whose type is an anonymous
2846 access to subprogram.
2847
28482017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
2849
2850 * sem_ch4.adb: sem_ch4.adb Various reformattings.
2851 (Try_One_Prefix_Interpretation): Use the base type when dealing
2852 with a subtype created for purposes of constraining a private
2853 type with discriminants.
2854
28552017-04-25 Javier Miranda <miranda@adacore.com>
2856
2857 * einfo.ads, einfo.adb (Has_Private_Extension): new attribute.
2858 * warnsw.ads, warnsw.adb (All_Warnings): Set warning on late
2859 dispatching primitives (Restore_Warnings): Restore warning on
2860 late dispatching primitives (Save_Warnings): Save warning on late
2861 dispatching primitives (Do_Warning_Switch): Use -gnatw.j/-gnatw.J
2862 to enable/disable this warning.
2863 (WA_Warnings): Set warning on late dispatching primitives.
2864 * sem_ch3.adb (Analyze_Private_Extension_Declaration): Remember
2865 that its parent type has a private extension.
2866 * sem_disp.adb (Warn_On_Late_Primitive_After_Private_Extension):
2867 New subprogram.
2868 * usage.adb: Document -gnatw.j and -gnatw.J.
2869
94295b25
AC
28702017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
2871
2872 * exp_ch7.adb, checks.adb, sem_prag.adb, eval_fat.adb: Minor
2873 reformatting.
2874
28752017-04-25 Bob Duff <duff@adacore.com>
2876
2877 * binde.adb (Validate): Do not pass dynamic strings
2878 to pragma Assert, because older compilers do not support that.
2879
28802017-04-25 Bob Duff <duff@adacore.com>
2881
2882 * s-fileio.adb (Close): When a temp file is
2883 closed, delete it and clean up its Temp_File_Record immediately,
2884 rather than waiting until later.
2885 (Temp_File_Record): Add File
2886 component, so Close can know which Temp_File_Record corresponds
2887 to the file being closed.
2888 (Delete): Don't delete temp files,
2889 because they are deleted by Close.
2890 (Open): Set the File component
2891 of Temp_File_Record. This requires moving the creation of the
2892 Temp_File_Record to the end, after the AFCB has been created.
2893
b0cd50fd
AC
28942017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
2895
2896 * checks.adb (Insert_Valid_Check): Do not generate
2897 a validity check when inside a generic.
2898
28992017-04-25 Yannick Moy <moy@adacore.com>
2900
2901 * sem_res.adb (Resolve_Type_Conversion): Fix bad logic.
2902
29032017-04-25 Arnaud Charlet <charlet@adacore.com>
2904
2905 * snames.ads-tmpl (Snames): More names for detecting predefined
2906 potentially blocking subprograms.
2907
29082017-04-25 Ed Schonberg <schonberg@adacore.com>
2909
2910 * sem_prag.adb (Analyze_Pre_Post_Condition): The rules
2911 concerning inheritance of class-wide preconditions do not apply
2912 to postconditions.
2913
29142017-04-25 Bob Duff <duff@adacore.com>
2915
2916 * s-ficobl.ads: Minor comment fix.
2917
d8ee014f
YM
29182017-04-25 Yannick Moy <moy@adacore.com>
2919
2920 * checks.adb (Apply_Scalar_Range_Check): Analyze precisely
2921 conversions from float to integer in GNATprove mode.
2922 (Apply_Type_Conversion_Checks): Make sure in GNATprove mode
2923 to call Apply_Type_Conversion_Checks, so that range checks
2924 are properly positioned when needed on conversions, including
2925 when converting from float to integer. (Determine_Range): In
2926 GNATprove mode, take into account the possibility of conversion
2927 from float to integer.
2928 * sem_res.adb (Resolve_Type_Conversion): Only enforce range
2929 check on conversions from fixed-point to integer, not anymore
2930 on conversions from floating-point to integer, when in GNATprove
2931 mode.
2932
3c77943e
YM
29332017-04-25 Yannick Moy <moy@adacore.com>
2934
2935 * checks.adb (Determine_Range_R): Special case type conversions
2936 from integer to float in order to get bounds in that case too.
2937 * eval_fat.adb (Machine): Avoid issuing warnings in GNATprove
2938 mode, for computations involved in interval checking.
2939
89b6c83e
AC
29402017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
2941
2942 * checks.adb (Insert_Valid_Check): Partially reimplement validity
2943 checks.
2944 * einfo.adb Node36 is now used as Validated_Object.
2945 (Validated_Object): New routine.
2946 (Set_Validated_Object): New routine.
2947 (Write_Field36_Name): Add an entry for Validated_Object.
2948 * einfo.ads Add new attribute Validated_Object along with
2949 usage in entities.
2950 (Validated_Object): New routine along with pragma Inline.
2951 (Set_Validated_Object): New routine along with pragma Inline.
2952 * exp_attr.adb (Make_Range_Test): Add processing for validation
2953 variables to avoid extra reads and copies of the prefix.
2954 * exp_ch6.adb (Expand_Actuals): Add copy-back for validation
2955 variables in order to reflect any changes done in the variable
2956 back into the original object.
2957 * sem_util.adb (Is_Validation_Variable_Reference): New routine.
2958 * sem_util.ads (Is_Validation_Variable_Reference): New routine.
2959
29602017-04-25 Steve Baird <baird@adacore.com>
2961
2962 * exp_ch7.adb (Build_Array_Deep_Procs,
2963 Build_Record_Deep_Procs, Make_Finalize_Address_Body): Don't
2964 generate Finalize_Address routines for CodePeer.
2965
29662017-04-25 Ed Schonberg <schonberg@adacore.com>
2967
2968 * sem_prag.adb (Inherits_Class_Wide_Pre): subsidiary of
2969 Analyze_Pre_Post_Condition, to implement the legality checks
2970 mandated by AI12-0131: Pre'Class shall not be specified for an
2971 overriding primitive subprogram of a tagged type T unless the
2972 Pre'Class aspect is specified for the corresponding primitive
2973 subprogram of some ancestor of T.
2974
c6840e83
AC
29752017-04-25 Bob Duff <duff@adacore.com>
2976
2977 * sem_ch8.adb (Use_One_Type): If a use_type_clause
2978 is redundant, set its Used_Operations to empty. This is only
2979 necessary for use clauses that appear in the parent of a generic
2980 child unit, because those use clauses get reanalyzed when we
2981 instantiate the generic, and we don't want the Used_Operations
2982 carried over from the original context (where it was probably
2983 not redundant).
2984
29852017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
2986
2987 * exp_ch6.adb: Minor reformatting.
2988
f2a54683
AC
29892017-04-25 Bob Duff <duff@adacore.com>
2990
2991 * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
2992 Use Source_Index (Current_Sem_Unit) to find the correct casing.
2993 * exp_prag.adb (Expand_Pragma_Check): Use Source_Index
2994 (Current_Sem_Unit) to find the correct casing.
2995 * par.adb (Par): Null out Current_Source_File, to ensure that
2996 the above bugs won't rear their ugly heads again.
2997
29982017-04-25 Ed Schonberg <schonberg@adacore.com>
2999
3000 * sem_ch8.adb (Find_Type): For an attribute reference
3001 'Class, if prefix type is synchronized and previous errors
3002 have suppressed the creation of the corresponding record type,
3003 create a spurious class-wide for the synchonized type itself,
3004 to catch other misuses of the attribute
3005
30062017-04-25 Steve Baird <baird@adacore.com>
3007
3008 * exp_ch6.adb (Expand_Simple_Function_Return): if CodePeer_Mode
3009 is True, then don't generate the accessibility check for the
3010 tag of a tagged result.
3011 * exp_intr.adb (Expand_Dispatching_Constructor_Call):
3012 if CodePeer_Mode is True, then don't generate the
3013 tag checks for the result of call to an instance of
3014 Ada.Tags.Generic_Dispatching_Constructor (i.e., both the "is a
3015 descendant of" check and the accessibility check).
3016
30172017-04-25 Ed Schonberg <schonberg@adacore.com>
3018
3019 * sem_ch13.adb: Code cleanups.
3020 * a-strbou.ads: minor whitespace fix in Trim for bounded strings.
3021 * sem_ch8.ads: Minor comment fix.
3022
2df23f66
AC
30232017-04-25 Eric Botcazou <ebotcazou@adacore.com>
3024
3025 * exp_ch4.adb (Library_Level_Target): New function.
3026 (Expand_Concatenate): When optimization is enabled, also expand
3027 the operation out-of-line if the concatenation is present within
3028 the expression of the declaration of a library-level object and
3029 not only if it is the expression of the declaration.
3030
30312017-04-25 Bob Duff <duff@adacore.com>
3032
3033 * freeze.adb (Freeze_Object_Declaration): Do
3034 not Remove_Side_Effects if there is a pragma Linker_Section,
3035 because in that case we want static initialization in the
3036 appropriate section.
3037
30382017-04-25 Gary Dismukes <dismukes@adacore.com>
3039
3040 * exp_dbug.adb: Minor rewording and reformatting.
3041
30422017-04-25 Ed Schonberg <schonberg@adacore.com>
3043
3044 * sem_attr.adb (Statically_Denotes_Object): New predicate, to
3045 handle the proposed changes to rules concerning potentially
3046 unevaluated expressions, to include selected components that
3047 do not depend on discriminants, and indexed components with
3048 static indices.
3049 * sem_util.adb (Is_Potentially_Unevaluated): Add check for
3050 predicate in quantified expression, and fix bugs in the handling
3051 of case expressions and membership test.
3052 (Analyze_Attribute_Old_Result): use new predicate.
3053 (Analyze_Attribute, case Loop_Entry): ditto.
3054
d9049849
AC
30552017-04-25 Bob Duff <duff@adacore.com>
3056
3057 * s-secsta.adb (SS_Info): Add a comment
3058 explaining why we don't need to walk all the chunks in order to
3059 compute the total size.
3060
30612017-04-25 Bob Duff <duff@adacore.com>
3062
3063 * namet.ads, namet.adb (Global_Name_Buffer): Increase the length
3064 of the global name buffer to 4*Max_Line_Length.
3065
30662017-04-25 Javier Miranda <miranda@adacore.com>
3067
3068 * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): When creating a
3069 renaming entity for debug information, mark the entity as needing debug
3070 info if it comes from sources.
3071
30722017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
3073
3074 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Remove the
3075 restriction converning the use of 'Address where the prefix is
3076 of a controlled type.
3077
30782017-04-25 Pierre-Marie de Rodat <derodat@adacore.com>
3079
3080 * exp_dbug.adb: In Debug_Renaming_Declaration,
3081 skip slices that are made redundant by an indexed component
3082 access.
3083 * atree.h: New definition for Original_Node.
3084
db78cb81
HK
30852017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
3086
3087 * sem_prag.adb, sem_prag.ads: Minor reformatting.
3088
0c85534d
ES
30892017-04-25 Ed Schonberg <schonberg@adacore.com>
3090
3091 * sem_ch3.adb (Check_Entry_Contract): Call
3092 Preanalyze_Spec_Expression so that resolution takes place as well.
3093 * sem_util.adb (Check_Internal_Protected_Use): Reject properly
3094 internal calls that appear in preconditions of protected
3095 operations, in default values for same, and in contract guards
3096 for contract cases in SPARK.
3097
be3416c6
AC
30982017-04-25 Eric Botcazou <ebotcazou@adacore.com>
3099
3100 * a-numaux.ads: Fix description of a-numaux-darwin
3101 and a-numaux-x86.
3102 (Double): Define to Long_Float.
3103 * a-numaux-vxworks.ads (Double): Likewise.
3104 * a-numaux-darwin.ads
3105 (Double): Likewise.
3106 * a-numaux-libc-x86.ads (Double): Define to Long_Long_Float.
3107 * a-numaux-x86.ads: Fix package description.
3108 * a-numaux-x86.adb (Is_Nan): Minor tweak.
3109 (Reduce): Adjust and complete description. Call Is_Nan instead of
3110 testing manually. Use an integer temporary to hold rounded value.
3111 * a-numaux-darwin.adb (Reduce): Likewise.
3112 (Is_Nan): New function.
3113
31142017-04-25 Ed Schonberg <schonberg@adacore.com>
3115
3116 * sem_ch4.adb (Analyze_Selected_Component): Additional refinement
3117 on analysis of prefix whose type is a current instance of a
3118 synchronized type, but where the prefix itself is an entity that
3119 is an object.
3120
31212017-04-25 Ed Schonberg <schonberg@adacore.com>
3122
3123 * exp_ch5.adb (Replace_Target): When rewriting the RHS, preserve
3124 the identity of callable entities therein, because they have been
3125 properly resolved, and prefixed calls may have been rewritten
3126 as normal calls.
3127
31282017-04-25 Patrick Bernardi <bernardi@adacore.com>
3129
3130 * exp_ch3.adb (Build_Init_Statements): Convert
3131 the expression of the pragma/aspect Secondary_Stack_Size to
3132 internal type System.Parameters.Size_Type before assigning
3133 it to the Secondary_Stack_Size component of the task type's
3134 corresponding record.
3135
31362017-04-25 Eric Botcazou <ebotcazou@adacore.com>
3137
3138 * sem_eval.adb (Compile_Time_Compare): Reinstate the expr+literal
3139 (etc) optimizations when the type is modular and the offsets
3140 are equal.
3141
31422017-04-25 Eric Botcazou <ebotcazou@adacore.com>
3143
3144 * s-osinte-freebsd.ads: Minor comment tweaks
3145
31462017-04-25 Javier Miranda <miranda@adacore.com>
3147
3148 * urealp.adb (UR_Write): Reverse previous patch
3149 adding documentation on why we generate multiplications instead
3150 of divisions (needed to avoid expressions whose computation with
3151 large numbers may cause division by 0).
3152
31532017-04-25 Bob Duff <duff@adacore.com>
3154
3155 * erroutc.adb (Set_Specific_Warning_Off,
3156 Set_Warnings_Mode_Off): Use the correct source file for
3157 Stop. Was using Current_Source_File, which is only valid during
3158 parsing. Current_Source_File will have a leftover value from
3159 whatever file happened to be parsed last, because of a with_clause
3160 or something.
3161
31622017-04-25 Bob Duff <duff@adacore.com>
3163
3164 * lib.ads, lib.adb (In_Internal_Unit): New functions similar
3165 to In_Predefined_Unit, but including GNAT units.
3166 * sem_util.ads, sem_util.adb (Should_Ignore_Pragma): Replace
3167 with Should_Ignore_Pragma_Par and Should_Ignore_Pragma_Sem,
3168 because Should_Ignore_Pragma was not working reliably outside
3169 the parser, because Current_Source_File is not valid.
3170 * sem_prag.adb, exp_prag.adb: Call Should_Ignore_Pragma_Sem.
3171 * par-prag.adb: Call Should_Ignore_Pragma_Par.
3172
f4f5851e
AC
31732017-04-25 Arnaud Charlet <charlet@adacore.com trojanek>
3174
3175 * gnat1drv.adb (Gnat1Drv): Disable Generate_Processed_File in
3176 codepeer mode.
3177
31782017-04-25 Javier Miranda <miranda@adacore.com>
3179
3180 * urealp.adb (UR_Write): Fix output of constants with a base other
3181 that 10.
3182
31832017-04-25 Justin Squirek <squirek@adacore.com>
3184
3185 * sem_ch13.adb (Get_Interfacing_Aspects): Moved to sem_util.adb.
3186 * sem_prag.adb (Analyze_Pragma, Process_Import_Or_Interface):
3187 Add extra parameter for Process_Interface_Name.
3188 (Process_Interface_Name): Add parameter for pragma to analyze
3189 corresponding aspect.
3190 * sem_util.ads, sem_util.adb (Get_Interfacing_Aspects): Added
3191 from sem_ch13.adb
3192
ded462b0
AC
31932017-04-25 Gary Dismukes <dismukes@adacore.com>
3194
3195 * exp_ch7.adb, einfo.ads, sem_prag.adb: Minor reformatting and typo
3196 correction.
3197
31982017-04-25 Yannick Moy <moy@adacore.com>
3199
3200 * sem_res.adb (Resolve_Comparison_Op): Do not
3201 attempt evaluation of relational operations inside assertions.
3202
32032017-04-25 Justin Squirek <squirek@adacore.com>
3204
3205 * exp_util.adb (Add_Interface_Invariants):
3206 Restored, code moved back from Build_Invariant_Procedure_Body.
3207 (Add_Parent_Invariants): Restored, code moved back from
3208 Build_Invariant_Procedure_Body.
3209 (Build_Invariant_Procedure_Body):
3210 Remove refactored calls and integrated code from
3211 Add_Parent_Invariants and Add_Interface_Invariants.
3212
32132017-04-25 Johannes Kanig <kanig@adacore.com>
3214
3215 * errout.adb (Output_Messages): Adjust computation of total
3216 errors
3217 * erroutc.adb (Error_Msg): In statistics counts, deal
3218 correctly with informational messages that are not warnings.
3219 * errutil.adb (Finalize): adjust computation of total errors.
3220
32212017-04-25 Arnaud Charlet <charlet@adacore.com trojanek>
3222
3223 * terminals.c (__gnat_terminate_pid): New.
3224 * g-exptty.ads (Terminate_Process): New. Update comments.
3225
d1eb8a82
AC
32262017-04-25 Arnaud Charlet <charlet@adacore.com>
3227
3228 * a-cfinve.ads, a-cofove.ads (Empty_Vector): add Global contract.
3229
32302017-04-25 Justin Squirek <squirek@adacore.com>
3231
3232 * sem_ch3.adb (Analyze_Declarations): Minor
3233 correction to comments, move out large conditional and scope
3234 traversal into a predicate.
3235 (Uses_Unseen_Lib_Unit_Priv): Predicate function made from extracted
3236 logic.
3237
32382017-04-25 Ed Schonberg <schonberg@adacore.com>
3239
3240 * sem_ch4.adb (Analyze_Selected_Component): Refine analysis
3241 of prefix whose type is a current instance of a synchronized
3242 type. If the prefix is an object this is an external call (or
3243 requeue) that can only access public operations of the object. The
3244 previous predicate was too restrictive, and did not allow public
3245 protected operations, only task entries.
3246
32472017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
3248
3249 * sem_ch5.adb, fname.adb: Minor reformatting.
3250
32512017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
3252
3253 * einfo.adb (Is_Anonymous_Access_Type): New routine.
3254 * einfo.ads Update the placement of
3255 E_Anonymous_Access_Subprogram_Type along with all subtypes that
3256 mention the ekind.
3257 (Is_Anonymous_Access_Type): New routine.
3258 * exp_ch7.adb (Allows_Finalization_Master): Do not generate a
3259 master for an access type subject to pragma No_Heap_Finalization.
3260 * exp_util.adb (Build_Allocate_Deallocate_Proc): An object being
3261 allocated or deallocated does not finalization actions if the
3262 associated access type is subject to pragma No_Heap_Finalization.
3263 * opt.ads Add new global variable No_Heap_Finalization_Pragma.
3264 * par-prag.adb Pragma No_Heap_Finalization does not need special
3265 processing from the parser.
3266 * sem_ch6.adb (Check_Return_Subtype_Indication): Remove ancient
3267 ??? comments. Use the new predicate Is_Anonymous_Access_Type.
3268 * sem_prag.adb Add an entry in table Sig_Flags for pragma
3269 No_Heap_Finalization.
3270 (Analyze_Pragma): Add processing for
3271 pragma No_Heap_Finalization. Update various error messages to
3272 use Duplication_Error.
3273 * sem_util.ads, sem_util.adb (No_Heap_Finalization): New routine.
3274 * snames.ads-tmpl: Add new predefined name No_Heap_Finalization
3275 and corresponding pragma id.
3276
820f1162
AC
32772017-04-25 Bob Duff <duff@adacore.com>
3278
3279 * freeze.adb (Freeze_Record_Type): Use the
3280 underlying type of the component type to determine whether it's
3281 elementary. For representation clause purposes, a private type
3282 should behave the same as its full type.
3283 * fname.ads, fname.adb (Is_Predefined_File_Name):
3284 Make sure things like "system.ali" are recognized as predefined.
3285
32862017-04-25 Javier Miranda <miranda@adacore.com>
3287
3288 * debug.adb: Update documentation of -gnatd.6.
3289
32902017-04-25 Ed Schonberg <schonberg@adacore.com>
3291
3292 * sem_ch5.adb (Preanalyze_Range): Handle properly an Ada2012
3293 element iterator when the name is an overloaded function call,
3294 one of whose interpretations yields an array.
3295
998429d6
AC
32962017-04-25 Bob Duff <duff@adacore.com>
3297
3298 * uname.ads, uname.adb (Is_Predefined_Unit_Name,
3299 Is_Internal_Unit_Name): New functions for operating on unit
3300 names, as opposed to file names. There's some duplicated code
3301 with fname.adb, which is unfortunate, but it seems like we don't
3302 want to add dependencies here.
3303 * fname-uf.adb (Get_File_Name): Change Is_Predefined_File_Name
3304 to Is_Predefined_Unit_Name; the former was wrong, because Uname
3305 is not a file name at all.
3306 * fname.ads, fname.adb: Document the fact that
3307 Is_Predefined_File_Name and Is_Internal_File_Name can be called
3308 for ALI files, and fix the code so it works properly for ALI
3309 files. E.g. these should return True for "system.ali".
3310
33112017-04-25 Justin Squirek <squirek@adacore.com>
3312
3313 * exp_util.adb (Add_Invariant): Removed,
3314 code moved to Add_Invariant_Check, Add_Inherited_Invariant,
3315 and Add_Own_Invariant. (Add_Invariant_Check): Used
3316 for adding runtime checks from any kind of invariant.
3317 (Add_Inherited_Invariant): Generates invariant checks for
3318 class-wide invariants (Add_Interface_Invariants): Removed, code
3319 moved to Build_Invariant_Procedure_Body (Add_Own_Invariant):
3320 Create a types own invariant procedure (Add_Parent_Invariants):
3321 Removed, code moved to Build_Invariant_Procedure_Body
3322 (Build_Invariant_Procedure_Body): Add refactored calls
3323 and integrated code from Add_Parent_Invariants and
3324 Add_Interface_Invariants.
3325 (Process_Type): Removed, the
3326 relavant code was inlined into both Add_Own_Invariant and
3327 Add_Inherited_Invariant.
3328
94d3a18d
AC
33292017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
3330
3331 * make.adb, par-ch2.adb, sem_util.adb, scans.ads, sem_ch8.adb,
3332 scn.adb, osint.adb, fname.adb: Minor reformatting.
3333
33342017-04-25 Pascal Obry <obry@adacore.com>
3335
3336 * s-taprop-mingw.adb: Do not check for CloseHandle in
3337 Finalize_TCB.
3338
51148dda
AC
33392017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
3340
3341 * sem_util.adb (Check_Part_Of_Reference):
3342 Continue to examine the context if the reference appears within
3343 an expression function.
3344
33452017-04-25 Justin Squirek <squirek@adacore.com>
3346
3347 * exp_ch7.adb, exp_ch7.ads Remove Build_Invariant_Procedure_Body
3348 and Build_Invariant_Procedure_Declaration.
3349 * exp_util.ads, exp_util.adb Add Build_Invariant_Procedure_Body
3350 and Build_Invariant_Procedure_Declaration from exp_ch7
3351 and break-out Is_Untagged_Private_Derivation from
3352 Build_Invariant_Procedure_Body.
3353 (Replace_Type_References):
3354 Append an extra parameter to allow for dispatching replacements
3355 and add the corrasponding logic.
3356 (Type_Invariant): Remove
3357 Replace_Typ_Refs and replace its references with calls to
3358 Replace_Type_References.
3359 * sem_ch3.adb, sem_prag.adb: Remove with and use of exp_ch7.
3360
b043ae01
AC
33612017-04-25 Bob Duff <duff@adacore.com>
3362
3363 * sem_util.ads, sem_util.adb (Should_Ignore_Pragma): New function
3364 that returns True when appropriate.
3365 * par-prag.adb, exp_prag.adb, sem_prag.adb: Do not ignore pragmas
3366 when compiling predefined files.
3367 * fname.ads, fname.adb (Is_Predefined_File_Name): Fix bug:
3368 "gnat.adc" should not be considered a predefined file name.
3369 That required (or at least encouraged) a lot of cleanup of global
3370 variable usage. We shouldn't be communicating information via
3371 the global name buffer.
3372 * bindgen.adb, errout.adb, fname-uf.adb, lib-load.adb, make.adb,
3373 * restrict.adb, sem_ch10.adb, sem_ch6.adb, sem_ch8.adb: Changes
3374 required by the above-mentioned cleanup.
3375
33762017-04-25 Ed Schonberg <schonberg@adacore.com>
3377
3378 * osint.adb (Find_File): Handle properly a request for a
3379 configuration file whose name is a directory.
3380
b6e6a4e3
AC
33812017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
3382
3383 * sem_attr.adb, sem_ch5.adb: Minor reformatting.
3384
33852017-04-25 Bob Duff <duff@adacore.com>
3386
3387 * types.ads: Minor: Fix '???' comment.
3388 * sem_ch8.adb: Minor comment fix.
3389
33902017-04-25 Bob Duff <duff@adacore.com>
3391
3392 * sem_prag.adb: Remove suspicious uses of Name_Buf.
3393 * stringt.ads, stringt.adb, exp_dbug.adb, sem_dim.adb: Remove
3394 Add_String_To_Name_Buffer, to avoid using the global Name_Buf.
3395 Add String_To_Name with no side effects.
3396
33972017-04-25 Justin Squirek <squirek@adacore.com>
3398
3399 * sem_ch3.adb (Analyze_Declarations): Add
3400 additional condition for edge case.
3401
34022017-04-25 Bob Duff <duff@adacore.com>
3403
3404 * par-ch2.adb, scans.ads, scn.adb: Do not give an error for
3405 reserved words inside pragmas. This is necessary to allow the
3406 pragma name Interface to be used in pragma Ignore_Pragma.
3407 * par.adb: Minor comment fix.
3408
34092017-04-25 Javier Miranda <miranda@adacore.com>
3410
3411 * a-tags.ads, a-tags.adb (Type_Is_Abstract): Renamed as Is_Abstract.
3412 * rtsfind.ads (RE_Type_Is_Abstract): Renamed as Is_Abstract.
3413 * exp_disp.adb (Make_DT): Update occurrences of RE_Type_Is_Abstract.
3414 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Update
3415 occurrences of RE_Type_Is_Abstract
3416
34172017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
3418
3419 * exp_util.adb (Build_Chain): Account for ancestor
3420 subtypes while traversing the derivation chain.
3421
f8a21934
AC
34222017-04-25 Ed Schonberg <schonberg@adacore.com>
3423
3424 * sem_attr.adb: minor reformatting.
3425
34262017-04-25 Doug Rupp <rupp@adacore.com>
3427
3428 * sigtramp-vxworks-target.inc [PPC64]: Add a .localentry pseudo-op.
3429
34302017-04-25 Ed Schonberg <schonberg@adacore.com>
3431
3432 * sem_ch5.adb (Analyze_Assignment): Reset Full_Analysis flag on
3433 the first pass over an assignment statement with target names,
3434 to prevent the generation of subtypes (such as discriminated
3435 record components)that may carry the target name outside of the
3436 tree for the assignment. The subtypes will be generated when
3437 the assignment is reanalyzed in full.
3438 (Analyze_Target_Name): Handle properly class-wide types.
3439
b619c88e
AC
34402017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
3441
3442 * elists.ads, elists.adb (Prepend_Unique_Elmt): New routine.
3443 * exp_ch3.adb (Freeze_Type): Signal the DIC body is created for
3444 the purposes of freezing.
3445 * exp_util.adb Update the documentation and structure of the
3446 type map used in class-wide semantics of assertion expressions.
3447 (Add_Inherited_Tagged_DIC): There is really no need to preanalyze
3448 and resolve the triaged expression because all substitutions
3449 refer to the proper entities. Update the replacement of
3450 references.
3451 (Build_DIC_Procedure_Body): Add formal parameter
3452 For_Freeze. Add local variable Build_Body. Inherited DIC pragmas
3453 are now only processed when freezing occurs. Build a body only
3454 when one is needed.
3455 (Entity_Hash): Removed.
3456 (Map_Types): New routine.
3457 (Replace_Object_And_Primitive_References): Removed.
3458 (Replace_References): New routine.
3459 (Replace_Type_References): Moved to the library level of Exp_Util.
3460 (Type_Map_Hash): New routine.
3461 (Update_Primitives_Mapping): Update the mapping call.
3462 (Update_Primitives_Mapping_Of_Types): Removed.
3463 * exp_util.ads (Build_DIC_Procedure_Body): Add formal
3464 parameter For_Freeze and update the comment on usage.
3465 (Map_Types): New routine.
3466 (Replace_References): New routine.
3467 (Replace_Type_References): Moved to the library level of Exp_Util.
3468 (Update_Primitives_Mapping_Of_Types): Removed.
3469 * sem_ch7.adb (Preserve_Full_Attributes): Propagate the DIC
3470 properties of the private type to the full view in case the full
3471 view derives from a parent type and inherits a DIC pragma.
3472 * sem_prag.adb (Analyze_Pragma): Guard against a case where a
3473 DIC pragma is placed at the top of a declarative region.
3474
34752017-04-25 Arnaud Charlet <charlet@adacore.com trojanek>
3476
3477 * a-tasatt.adb: Complete previous change and use an unsigned
3478 int to avoid overflow checks.
3479
34802017-04-25 Ed Schonberg <schonberg@adacore.com>
3481
3482 * sem_attr.adb (Analyze_Attribute, case 'Access): Specialize
3483 the error message when the attribute reference is an actual in
3484 a call to a subprogram inherited from a generic formal type with
3485 unknown discriminants, which makes the subprogram and its formal
3486 parameters intrinsic (see RM 6.3.1 (8) and (13)).
3487
2bb988bb
AC
34882017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
3489
3490 * sem_aggr.adb, inline.adb, einfo.adb, einfo.ads, scng.adb,
3491 sem_prag.adb: Minor reformatting.
3492
34932017-04-25 Bob Duff <duff@adacore.com>
3494
3495 * sem_attr.adb (Type_Key): Add code in the
3496 recursive Compute_Type_Key to protect against fetching the source
3497 code for Standard, in case a component of the type is declared
3498 in Standard. There was already code to do this for the original
3499 type, but not for its components.
3500
b03d3f73
AC
35012017-04-25 Javier Miranda <miranda@adacore.com>
3502
3503 * exp_ch3.adb (Build_Initialization_Call): Handle
3504 subtypes of private types when searching for the underlying full
3505 view of a private type.
3506
35072017-04-25 Javier Miranda <miranda@adacore.com>
3508
3509 * sem_res.adb (Set_Mixed_Mode_Operand): A universal
3510 real conditional expression can appear in a fixed-type context
3511 and must be resolved with that context to facilitate the code
3512 generation to the backend.
3513
35142017-04-25 Ed Schonberg <schonberg@adacore.com>
3515
3516 * einfo.adb, einfo.ads (Body_Needed_For_Inlining): New flag,
3517 to indicate whether during inline processing, when some unit U1
3518 appears in the context of a unit U2 compiled for instantiation
3519 or inlining purposes, the body of U1 needs to be compiled as well.
3520 * sem_prag.adb (Process_Inline): Set Body_Needed_For_Inlining if
3521 context is a package declaration.
3522 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration,
3523 Analyze_Generic_Package_Declaration): ditto.
3524 * inline.adb (Analyze_Inlined_Bodies): Check
3525 Body_Needed_For_Inlining.
3526
35272017-04-25 Ed Schonberg <schonberg@adacore.com>
3528
3529 * par.adb (Current_Assign_Node): Global variable use to record
3530 the presence of a target_name in the right hand side of the
3531 assignment being parsed.
3532 * par-ch4.adb (P_Name): If the name is a target_name, mark the
3533 enclosing assignment node accordingly.
3534 * par-ch5.adb (P_Assignment_Statement): Set Current_Assign_Node
3535 appropriately.
3536 * sem_ch5.adb (Analyze_Assignment): Disable expansion before
3537 analyzing RHS if the statement has target_names.
3538 * sem_aggr.adb (Resolve_Iterated_Component_Association): Handle
3539 properly choices that are subtype marks.
3540 * exp_ch5.adb: Code cleanup.
3541
35422017-04-25 Bob Duff <duff@adacore.com>
3543
3544 * s-memory.adb: Add a comment regarding efficiency.
3545 * atree.adb: Fix the assertion, and combine 2 assertions into one,
3546 "the source has an extension if and only if the destination does."
3547 * sem_ch3.adb, sem_ch13.adb: Address ??? comments.
3548
35492017-04-25 Arnaud Charlet <charlet@adacore.com trojanek>
3550
3551 * a-tasatt.adb (Set_Value): Fix handling of 32bits -> 64bits
3552 conversion.
3553
35542017-04-25 Doug Rupp <rupp@adacore.com>
3555
3556 * init.c (__gnat_error_handler) [vxworks]: Turn on sigtramp
3557 handling for ppc64-vx7.
3558 * sigtramp-vxworks-target.inc
3559 [SIGTRAMP_BODY]: Add section for ppc64-vx7.
3560
18e82947
AC
35612017-04-25 Arnaud Charlet <charlet@adacore.com>
3562
3563 * ada_get_targ.adb: New file.
3564
f607cacf
BD
35652017-04-25 Bob Duff <duff@adacore.com>
3566
3567 * uintp.adb (Most_Sig_2_Digits): In case Direct (Right), fetch
3568 Direct_Val (Right), instead of the incorrect Direct_Val (Left).
3569 (UI_GCD): Remove ??? comment involving possible efficiency
3570 improvements. This just isn't important after all these years.
3571 Also minor cleanup.
3572 * uintp.ads: Minor cleanup.
3573
28ad2460
HK
35742017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
3575
3576 * exp_util.adb, exp_util.ads, sem_ch7.adb, sem_prag.adb, exp_ch3.adb:
3577 Revert previous changes.
3578 * scng.adb: Minor reformatting.
3579 * s-stratt.ads: Fix unbalanced parens in comment.
3580
b41c731f
AC
35812017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
3582
3583 * sem_ch3.adb, exp_util.adb, sem_prag.adb, freeze.adb, sem_util.adb:
3584 Minor reformatting.
3585
35862017-04-25 Ed Schonberg <schonberg@adacore.com>
3587
3588 * scng.adb (Scan): Handle '@' appropriately.
3589 * sem_ch5.adb: Code cleanup.
3590
b5360737
AC
35912017-04-25 Ed Schonberg <schonberg@adacore.com>
3592
3593 * freeze.adb (Check_Expression_Function): Do not check for the
3594 use of deferred constants if the freezing of the expression
3595 function is triggered by its generated body, rather than a
3596 premature use.
3597
35982017-04-25 Javier Miranda <miranda@adacore.com>
3599
3600 * exp_attr.adb (Rewrite_Stream_Proc_Call): Handle
3601 subtypes of private types when performing the view conversion.
3602
36032017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
3604
3605 * exp_ch3.adb (Freeze_Type): Signal the DIC body is created for
3606 the purposes of freezing.
3607 * exp_util.adb Update the documentation and structure of the
3608 type map used in class-wide semantics of assertion expressions.
3609 (Add_Inherited_Tagged_DIC): There is really no need to preanalyze
3610 and resolve the triaged expression because all substitutions
3611 refer to the proper entities. Update the replacement of
3612 references.
3613 (Build_DIC_Procedure_Body): Add formal parameter
3614 For_Freeze. Add local variable Build_Body. Inherited DIC pragmas
3615 are now only processed when freezing occurs. Build a body only
3616 when one is needed.
3617 (Entity_Hash): Removed.
3618 (Map_Types): New routine.
3619 (Replace_Object_And_Primitive_References): Removed.
3620 (Replace_References): New routine.
3621 (Replace_Type_References): Moved to the library level of Exp_Util.
3622 (Type_Map_Hash): New routine.
3623 (Update_Primitives_Mapping): Update the mapping call.
3624 (Update_Primitives_Mapping_Of_Types): Removed.
3625 * exp_util.ads (Build_DIC_Procedure_Body): Add formal
3626 parameter For_Freeze and update the comment on usage.
3627 (Map_Types): New routine.
3628 (Replace_References): New routine.
3629 (Replace_Type_References): Moved to the library level of Exp_Util.
3630 (Update_Primitives_Mapping_Of_Types): Removed.
3631 * sem_ch7.adb (Preserve_Full_Attributes): Propagate the DIC
3632 properties of the private type to the full view in case the full
3633 view derives from a parent type and inherits a DIC pragma.
3634 * sem_prag.adb (Analyze_Pragma): Guard against a case where a
3635 DIC pragma is placed at the top of a declarative region.
3636
a187206c
AC
36372017-04-25 Tristan Gingold <gingold@adacore.com>
3638
3639 * s-mmap.ads (Data): Add pragma Inline.
3640
36412017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
3642
3643 * checks.adb (Insert_Valid_Check): Do not use
3644 a renaming to alias a volatile name because this will lead to
3645 multiple evaluations of the volatile name. Use a constant to
3646 capture the value instead.
3647
36482017-04-25 Doug Rupp <rupp@adacore.com>
3649
3650 * init.c [VxWorks Section]: Disable sigtramp for ppc64-vx7.
3651
36522017-04-25 Ed Schonberg <schonberg@adacore.com>
3653
3654 * exp_util.adb, exp_util.ads (Build_Class_Wide_Expression):
3655 Add out parameter to indicate to caller that a wrapper must
3656 be constructed for an inherited primitive whose inherited
3657 pre/postcondition has called to overridden primitives.
3658 * freeze.adb (Check_Inherited_Conditions): Build wrapper body
3659 for inherited primitive that requires it.
3660 * sem_disp.adb (Check_Dispatching_Operation): Such wrappers are
3661 legal primitive operations and belong to the list of bodies
3662 generated after the freeze point of a type.
3663 * sem_prag.adb (Build_Pragma_Check_Equivalent): Use new signature
3664 of Build_Class_Wide_Expression.
3665 * sem_util.adb, sem_util.ads (Build_Overriding_Spec): New procedure
3666 to construct the specification of the wrapper subprogram created
3667 for an inherited operation.
3668
15fc8cb7
AC
36692017-04-25 Bob Duff <duff@adacore.com>
3670
3671 * s-osinte-linux.ads (pthread_mutexattr_setprotocol,
3672 pthread_mutexattr_setprioceiling): Add new interfaces for these
3673 pthread operations.
3674 * s-taprop-linux.adb (Initialize_Lock, Initialize_TCB): Set
3675 protocols as appropriate for Locking_Policy 'C' and 'I'.
3676 * s-taprop-posix.adb: Minor reformatting to make it more similar
3677 to s-taprop-linux.adb.
3678
36792017-04-25 Ed Schonberg <schonberg@adacore.com>
3680
3681 * sem_ch3.adb (Get_Discriminant_Value, Search_Derivation_Levels):
3682 Handle properly a multi- level derivation involving both renamed
3683 and constrained parent discriminants, when the type to be
3684 constrained has fewer discriminants that the ultimate ancestor.
3685
36862017-04-25 Bob Duff <duff@adacore.com>
3687
3688 * sem_util.adb (Is_Object_Reference): In the
3689 case of N_Explicit_Dereference, return False if it came from a
3690 conditional expression.
3691
36922017-04-25 Bob Duff <duff@adacore.com>
3693
3694 * par-ch4.adb (P_Case_Expression): If a semicolon
3695 is followed by "when", assume that ";" was meant to be ",".
3696
605afee8
GD
36972017-04-25 Gary Dismukes <dismukes@adacore.com>
3698
3699 * sem_ch9.adb, sem_ch10.adb, sem_util.adb: Minor reformatting and typo
3700 fixes.
3701
b912db16
AC
37022017-04-25 Arnaud Charlet <charlet@adacore.com>
3703
3704 * rtsfind.ads (SPARK_Implicit_Load): New procedure for forced
3705 loading of an entity.
3706 * rtsfind.adb (SPARK_Implicit_Load): Body with a pattern
3707 previously repeated in the analysis.
3708 * sem_ch9.adb (Analyze_Protected_Type_Declaration): use new
3709 procedure SPARK_Implicit_Load. (Analyze_Task_Type_Declaration):
3710 use new procedure SPARK_Implicit_Load.
3711 * sem_ch10.adb (Analyze_Compilation_Unit): Use new procedure
3712 SPARK_Implicit_Load.
3713
37142017-04-25 Javier Miranda <miranda@adacore.com>
3715
3716 * sem_util.adb (New_Copy_Tree): By default
3717 copying of defining identifiers is prohibited because
3718 this would introduce an entirely new entity into the
3719 tree. This patch introduces an exception to this general
3720 rule: the declaration of constants and variables located in
3721 Expression_With_Action nodes.
3722 (Copy_Itype_With_Replacement): Renamed as Copy_Entity_With_Replacement.
3723 (In_Map): New subprogram.
3724 (Visit_Entity): New subprogram.
3725 (Visit_Node): Handle EWA_Level,
3726 EWA_Inner_Scope_Level, and take care of defining entities defined
3727 in Expression_With_Action nodes.
3728
37292017-04-25 Thomas Quinot <quinot@adacore.com>
3730
3731 * exp_ch6.adb: minor comment edit.
3732 * sinfo.ads, sinfo.adb: New Null_Statement attribute for null
3733 procedure specifications that come from source.
3734 * par-ch6.adb (P_Subprogram, case of a null procedure): Set new
3735 Null_Statement attribute.
3736 * par_sco.adb (Traverse_Declarations_Or_Statements): For a null
3737 procedure, generate statement SCO for the generated NULL statement.
3738 * sem_ch6.adb (Analyze_Null_Procedure): Use null statement from
3739 parser, if available.
3740
d90175a4
AK
37412017-04-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3742
3743 * system-linux-s390.ads: Use Long_Integer'Size to define
3744 Memory_Size.
3745
4c439306
EB
37462017-04-04 Eric Botcazou <ebotcazou@adacore.com>
3747
3748 * sem_ch3.adb (Build_Derived_Record_Type): Fix long line.
3749
5764ee3c
JW
37502017-04-03 Jonathan Wakely <jwakely@redhat.com>
3751
3752 * doc/gnat_ugn/gnat_and_program_execution.rst: Fix typo.
3753 * g-socket.adb (To_Host_Entry): Fix typo in comment.
3754 * gnat_ugn.texi: Fix typo.
3755 * raise.c (_gnat_builtin_longjmp): Fix capitalization in comment.
3756 * s-stposu.adb (Allocate_Any_Controlled): Fix typo in comment.
3757 * sem_ch3.adb (Build_Derived_Record_Type): Likewise.
3758 * sem_util.adb (Mark_Coextensions): Likewise.
3759 * sem_util.ads (Available_Full_View_Of_Component): Likewise.
3760
41f44717
AS
37612017-03-28 Andreas Schwab <schwab@suse.de>
3762
3763 PR ada/80117
3764 * system-linux-aarch64-ilp32.ads: New file.
3765 * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS_COMMON): Rename
3766 from LIBGNAT_TARGET_PAIRS.
3767 (LIBGNAT_TARGET_PAIRS_32, LIBGNAT_TARGET_PAIRS_64): Define.
3768 (LIBGNAT_TARGET_PAIRS): Use LIBGNAT_TARGET_PAIRS_COMMON, and
3769 LIBGNAT_TARGET_PAIRS_64 or LIBGNAT_TARGET_PAIRS_32 for -mabi=lp64
3770 or -mabi=ilp32, resp.
3771
e3e8f22f
JC
37722017-03-14 James Cowgill <James.Cowgill@imgtec.com>
3773
3774 * s-osinte-linux.ads (struct_sigaction): Use correct type for sa_flags.
3775
2ff555ff
TT
37762017-03-08 Thanassis Tsiodras <ttsiodras@gmail.com>
3777
3778 PR ada/79903
3779 * socket.c (__gnat_gethostbyaddr): Add missing test for __rtems__.
3780
4f8fe72b
EB
37812017-03-08 Eric Botcazou <ebotcazou@adacore.com>
3782
3783 PR ada/79945
3784 * system-linux-ppc.ads (Default_Bit_Order): Use Standard's setting.
3785
3786 * system-linux-arm.ads (Default_Bit_Order): Likewise.
3787 * system-linux-mips.ads (Default_Bit_Order): Likewise.
3788 * system-linux-armeb.ads: Delete.
3789 * system-linux-mipsel.ads: Likewise.
3790 * gcc-interface/Makefile.in (MIPS/Linux): Adjust.
3791 (ARM/Linux): Likewise.
3792
b9822443
JJ
37932017-02-24 Jakub Jelinek <jakub@redhat.com>
3794
3795 PR c/79677
3796 * gcc-interface/misc.c (gnat_handle_option): Pass true to
3797 handle_generated_option GENERATED_P.
3798
741bd9b1
EB
37992017-02-24 Eric Botcazou <ebotcazou@adacore.com>
3800
3801 * gcc-interface/decl.c (gnat_to_gnu_field): Do not remove the wrapper
3802 around a justified modular type if it doesn't have the same scalar
3803 storage order as the enclosing record type.
3804
830815b9
EB
38052017-02-24 Eric Botcazou <ebotcazou@adacore.com>
3806
3807 * gcc-interface/trans.c (gnat_to_gnu): Do not apply special handling
3808 of boolean rvalues to function calls.
3809
491527af
EB
38102017-02-24 Eric Botcazou <ebotcazou@adacore.com>
3811
3812 * gcc-interface/utils.c (fold_bit_position): New function.
3813 (rest_of_record_type_compilation): Call it instead of bit_position to
3814 compute the field position and remove the call to remove_conversions.
3815 (compute_related_constant): Factor out the multiplication in both
3816 operands, if any, and streamline the final test.
3817
0b9cdb9a
EB
38182017-02-24 Eric Botcazou <ebotcazou@adacore.com>
3819
3820 * gcc-interface/trans.c (return_value_ok_for_nrv_p): Add sanity check.
3821
59909673
EB
38222017-02-24 Eric Botcazou <ebotcazou@adacore.com>
3823
3824 * gcc-interface/decl.c: Include demangle.h.
3825 (is_cplusplus_method): Return again true for a primitive operation
3826 only if it is dispatching. For a subprogram with an interface name,
3827 call the demangler to get the number of C++ parameters and compare it
3828 with the number of Ada parameters.
3829
8ff873dc
EB
38302017-02-24 Eric Botcazou <ebotcazou@adacore.com>
3831
3832 * gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu): If
3833 there is no end label, put the location of the At_End procedure on
3834 the call to the procedure.
3835
38362017-02-24 Eric Botcazou <ebotcazou@adacore.com>
3837
3838 * gcc-interface/misc.c (gnat_type_max_size): Try to return a meaningful
3839 value for array types with TYPE_INDEX_TYPE set on their domain type.
3840 * gcc-interface/utils.c (max_size): For operations and expressions, do
3841 not build a new node if the operands have not changed or are missing.
3842
4af362a9
EB
38432017-02-24 Eric Botcazou <ebotcazou@adacore.com>
3844
3845 * gcc-interface/utils.c (max_size) <tcc_expression>: Flip the second
3846 argument when recursing on TRUTH_NOT_EXPR.
3847
19fc3f9a
JM
38482017-02-12 John Marino <gnugcc@marino.st>
3849
3850 * system-freebsd-x86.ads: Rename into...
3851 * system-freebsd.ads: ...this.
3852 (Default_Bit_Order): Define using Standard'Default_Bit_Order.
3853 * gcc-interface/Makefile.in: Support aarch64-freebsd.
3854 (x86-64/FreeBSD): Adjust to above renaming.
3855 (i386/FreeBSD): Likewise.
3856
b5811a69
GP
38572017-02-09 Gerald Pfeifer <gerald@pfeifer.com>
3858
3859 * comperr.adb: Update FSF bug reporting URL.
3860
372db67b
EB
38612017-02-01 Eric Botcazou <ebotcazou@adacore.com>
3862 Jakub Jelinek <jakub@redhat.com>
3863
3864 PR ada/79309
3865 * adaint.c (__gnat_killprocesstree): Fix broken string handling.
3866
e5e391d6
MO
38672017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com>
3868
3869 PR lto/79061
3870 * gcc-interface/utils.c (get_global_context): Pass main_input_filename
3871 to build_translation_unit_decl.
3872
b4fad9fa
JM
38732017-01-23 Javier Miranda <miranda@adacore.com>
3874
3875 * sem_util.adb (New_Copy_Tree): Code cleanup:
3876 removal of the internal map (ie. variable Actual_Map, its
3877 associated local variables, and all the code handling it).
3878 * sem_ch9.adb (Analyze_Task_Type_Declaration): in GNATprove mode
3879 force loading of the System package when processing a task type.
3880 (Analyze_Protected_Type_Declaration): in GNATprove mode force
3881 loading of the System package when processing a protected type.
3882 * sem_ch10.adb (Analyze_Compilation_Unit): in GNATprove mode
3883 force loading of the System package when processing compilation
3884 unit with a main-like subprogram.
3885 * frontend.adb (Frontend): remove forced loading of the System
3886 package.
3887
d268147d
ES
38882017-01-23 Ed Schonberg <schonberg@adacore.com>
3889
3890 * sem_prag.adb (Default_Initial_Condition): If the desired type
3891 declaration is a derived type declaration with discriminants,
3892 it is rewritten as a private type declaration.
3893 * sem_ch13.adb (Replace_Type_References_Generic,
3894 Visible_Component): A discriminated private type with descriminnts
3895 has components that must be rewritten as selected components
3896 if they appear as identifiers in an aspect expression such as
3897 a Default_Initial_Condition.
3898 * sem_util.adb (Defining_Entity): support N_Iterator_Specification
3899 nodes.
3900
dafe11cd
HK
39012017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
3902
3903 * ghost.ads, ghost.adb (Is_Ignored_Ghost_Unit): New routine.
3904 * gnat1drv.adb Generate an empty object file for an ignored
3905 Ghost compilation unit.
3906 * inline.adb, sem_util.adb, sem_ch4.adb: Minor reformatting.
3907
bfaf8a97
AC
39082017-01-23 Yannick Moy <moy@adacore.com>
3909
3910 * sem_ch4.adb (Analyze_Indexed_Component_Form):
3911 Adapt to inlined prefix with string literal subtype.
3912 * inline.adb (Expand_Inlined_Call): Keep unchecked
3913 conversion inside inlined call when formal type is constrained.
3914
39152017-01-23 Javier Miranda <miranda@adacore.com>
3916
3917 * sem_util.adb (New_Copy_Tree): Code cleanup:
3918 removal of global variables. All the global variables, global
3919 functions and tables of this subprogram are now declared locally.
3920
9313a26a
AC
39212017-01-23 Gary Dismukes <dismukes@adacore.com>
3922
3923 * exp_strm.ads: Minor reformatting and typo fixes.
3924
39252017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
3926
3927 * sem_aggr.adb, par_sco.adb, exp_util.adb, sem.adb, sem_ch4.adb,
3928 exp_aggr.adb: Minor reformatting.
3929 * g-diopit.adb: minor grammar/punctuation fix in comment.
3930 * g-byorma.ads: minor fix of unbalanced parens in comment.
3931
39322017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
3933
3934 * par.adb: Update the documentation of component Labl.
3935 * par-ch6.adb (P_Return_Statement): Set the expected label of
3936 an extended return statement to Error.
3937
39382017-01-23 Tristan Gingold <gingold@adacore.com>
3939
3940 * s-boustr.ads, s-boustr.adb (Is_Full): New function.
3941
39422017-01-23 Ed Schonberg <schonberg@adacore.com>
3943
3944 * expander.adb: Handle N_Delta_Aggregate.
3945
39462017-01-23 Javier Miranda <miranda@adacore.com>
3947
3948 * exp_ch6.adb (Expand_Call): Improve the code that
3949 checks if some formal of the called subprogram is a class-wide
3950 interface, to handle subtypes of class-wide interfaces.
3951
39522017-01-23 Javier Miranda <miranda@adacore.com>
3953
3954 * checks.adb (Apply_Parameter_Aliasing_Checks):
3955 Remove side effects of the actuals before generating the overlap
3956 check.
3957
4b7fd131
AC
39582017-01-23 Justin Squirek <squirek@adacore.com>
3959
3960 * exp_strm.ads, exp_strm.ads
3961 (Build_Record_Or_Elementary_Input_Function): Add an extra parameter so
3962 as to avoid getting the underlying type by default.
3963 * exp_attr.adb (Expand_N_Attribute_Reference): Remove use of
3964 underlying type in the Iiput and output attribute cases when
3965 building their respective functions.
3966
39672017-01-23 Gary Dismukes <dismukes@adacore.com>
3968
3969 * scng.adb: Minor reformatting of error message.
3970
39712017-01-23 Ed Schonberg <schonberg@adacore.com>
3972
3973 * sem_ch6.adb (Analyze_Expression_Function): Do not attempt
3974 to freeze the return type of an expression funxtion that is a
3975 completion, if the type is a limited view and the non-limited
3976 view is available.
3977
9eb8d5b4
AC
39782017-01-23 Ed Schonberg <schonberg@adacore.com>
3979
3980 * par-ch4.adb (P_Aggregate_Or_Parent_Expr): Recognize delta
3981 aggregate construct.
3982 (P_Record_Or_Array_Component_Association): An array aggregate
3983 can start with an Iterated_Component_Association.
3984 * scng.adb: Modify error message on improper use of @ in earlier
3985 versions of the language.
3986 * sinfo.ads: New node kind N_Delta_Aggregate.
3987 * sinfo.adb: An N_Delta_Aggregate has component associations and
3988 an expression.
3989 * sem_res.adb (Resolve): Call Resolve_Delta_Aggregate.
3990 * sem_aggr.ads, sem_aggr.adb (Resolve_Iterated_Component_Association):
3991 Create a new index for each one of the choices in the association,
3992 to prevent spurious homonyms in the scope.
3993 (Resolve_Delta_Aggregate): New.
3994 * sem.adb: An N_Delta_Aggregate is analyzed like an aggregate.
3995 * exp_util.adb (Insert_Actions): Take into account
3996 N_Delta_Aggregate.
3997 * exp_aggr.ads: New procedure Expand_N_Delta_Aggregate.
3998 * exp_aggr.adb: New procedure Expand_N_Delta_Aggregate,
3999 and local procedures Expand_Delta_Array_Aggregate and
4000 expand_Delta_Record_Aggregate.
4001 * sprint.adb: Handle N_Delta_Aggregate.
4002
40032017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
4004
4005 * exp_ch11.adb (Expand_N_Exception_Declaration): Generate an
4006 empty name when the exception declaration is subject to pragma
4007 Discard_Names.
4008 (Null_String): New routine.
4009
40102017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
4011
4012 * par-ch9.adb (P_Protected_Definition): Parse
4013 any optional and potentially illegal pragmas which appear in
4014 a protected operation declaration list.
4015 (P_Task_Items): Parse
4016 any optional and potentially illegal pragmas which appear in a
4017 task item list.
4018
a51368fa
AC
40192017-01-23 Pascal Obry <obry@adacore.com>
4020
4021 * s-taprop-mingw.adb (Enter_Task): Initialize the Thread handle which
4022 is needed when a foreign thread call a Win32 API using a thread handle
4023 like GetThreadTimes() for example.
4024
40252017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
4026
4027 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Do not
4028 allow an 'Address clause to be specified on a prefix of a
4029 class-wide type.
4030
40312017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
4032
4033 * checks.adb (Insert_Valid_Check): Ensure that the prefix of
4034 attribute 'Valid is a renaming of the original expression when
4035 the expression denotes a name. For all other kinds of expression,
4036 use a constant to capture the value.
4037 * exp_util.adb (Is_Name_Reference): Moved to Sem_Util.
4038 * sem_util.ads, sem_util.adb (Is_Name_Reference): Moved from Exp_Util.
4039
40402017-01-23 Justin Squirek <squirek@adacore.com>
4041
4042 * sem_eval.adb (Eval_Integer_Literal): Add special
4043 case to avoid optimizing out check if the literal appears in
4044 an if-expression.
4045
40462017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
4047
4048 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Do not
4049 allow an 'Address clause to be specified on a prefix of a
4050 class-wide type.
4051
40522017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
4053
4054 * checks.adb (Insert_Valid_Check): Ensure that the prefix of
4055 attribute 'Valid is a renaming of the original expression when
4056 the expression denotes a name. For all other kinds of expression,
4057 use a constant to capture the value.
4058 * exp_util.adb (Is_Name_Reference): Moved to Sem_Util.
4059 * sem_util.ads, sem_util.adb (Is_Name_Reference): Moved from Exp_Util.
4060
40612017-01-23 Justin Squirek <squirek@adacore.com>
4062
4063 * sem_eval.adb (Eval_Integer_Literal): Add special
4064 case to avoid optimizing out check if the literal appears in
4065 an if-expression.
4066
913e4b36
ES
40672017-01-23 Ed Schonberg <schonberg@adacore.com>
4068
4069 * sem_ch4.adb (Try_Primitive_Operations,
4070 Is_Valid_First_Argument_Of): argument is valid if it is a derived
4071 type with unknown discriminants that matches its underlying
4072 record view.
4073 * exp_util.adb (Expand_Subtype_From_Expr): Do not expand
4074 expression if its type is derived from a limited type with
4075 unknown discriminants, because the expansion (which is a call)
4076 must be expanded in the enclosing context to add the proper build-
4077 in-place parameters to the call.
4078 * lib.ads, exp_ch9.adb: Minor fixes in comments.
4079
a77152ca
AC
40802017-01-23 Yannick Moy <moy@adacore.com>
4081
4082 * frontend.adb (Frontend): Do not load runtime
4083 unit for GNATprove when parsing failed.
4084 * exp_ch9.adb: minor removal of extra whitespace
4085 * exp_ch6.adb: minor typo in comment
4086 * sem_util.adb: Code cleanup.
4087 * exp_ch9.ads, par-ch2.adb: minor style fixes in whitespace and comment
4088 * a-ngcefu.adb: minor style fix in whitespace
4089
40902017-01-23 Thomas Quinot <quinot@adacore.com>
4091
4092 * scos.ads: Document usage of 'd' as default SCO kind for
4093 declarations.
4094 * par_sco.adb (Traverse_Declarations_Or_Statements.
4095 Traverse_Degenerate_Subprogram): New supporting routine for expression
4096 functions and null procedures.
4097 (Traverse_Declarations_Or_Statements.Traverse_One): Add
4098 N_Expression_Function to the subprogram case; add required
4099 support for null procedures and expression functions.
4100
41012017-01-23 Bob Duff <duff@adacore.com>
4102
4103 * namet.ads (Bounded_String): Decrease the size of type
4104 Bounded_String to avoid running out of stack space.
4105 * namet.ads (Append): Don't ignore buffer overflow; raise
4106 Program_Error instead.
4107
d43584ca
AC
41082017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
4109
4110 * exp_ch5.adb, freeze.adb, par-ch4.adb, scng.adb, sem_ch13.adb,
4111 sem_ch3.adb, sem_ch5.adb, sem_ch5.ads, sem_util.adb, sinfo.ads: Minor
4112 reformatting.
4113 * exp_ch9.adb: minor style fix in comment.
4114
41152017-01-23 Ed Schonberg <schonberg@adacore.com>
4116
4117 * sem_ch4.adb (Analyze_Allocator): Handle properly a type derived
4118 for a limited record extension with unknown discriminants whose
4119 full view has no discriminants.
4120
41212017-01-23 Yannick Moy <moy@adacore.com>
4122
4123 * exp_spark.adb: Alphabetize with clauses.
4124
0f83b044
AC
41252017-01-23 Yannick Moy <moy@adacore.com>
4126
4127 * sem_util.adb (Has_Enabled_Property): Treat
4128 protected objects and variables differently from other variables.
4129
52b70b1b
TQ
41302017-01-23 Thomas Quinot <quinot@adacore.com>
4131
4132 * sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
4133 Split original Ada 95 part off into new subprogram
4134 below. Call that subprogram (instead of proceeding with
4135 AI95-0133 behaviour) if debug switch -gnatd.p is in use.
4136 (Adjust_Record_For_Reverse_Bit_Order_Ada_95): ... new subprogram
4137 * debug.adb Document new switch -gnatd.p
4138 * freeze.adb (Freeze_Entity.Freeze_Record_Type): Do not adjust
4139 record for reverse bit order if an error has already been posted
4140 on the record type. This avoids generating extraneous "info:"
4141 messages for illegal code.
4142
2a02fa98
JS
41432017-01-23 Justin Squirek <squirek@adacore.com>
4144
4145 * sem_ch3.adb (Analyze_Declarations): Correct comments
4146 * freeze.adb (Find_Constant): Add detection of deferred constants
4147 so they are not incorrectly flagged as premature.
4148
ae33543c
ES
41492017-01-23 Ed Schonberg <schonberg@adacore.com>
4150
4151 * scans.ads: New token At_Sign. Remove '@' from list of illegal
4152 characters for future version of the language. '@' is legal name.
4153 * scng.ads, scng.adb (Scan): Handle '@' appropriately.
4154 * scn.adb (Scan_Reserved_Identifier): An occurrence of '@'
4155 denotes a Target_Name.
4156 * par-ch4.adb (P_Name, P_Primary): Handle Target_Name.
4157 * sinfo.ads, sinfo.adb (N_Target_Name): New non-terminal node.
4158 (Has_Target_Names): New flag on N_Assignment_Statement, to
4159 indicate that RHS has occurrences of N_Target_Name.
4160 * sem.adb: Call Analyze_Target_Name.
4161 * sem_ch5.ads, sem_ch5.adb (Analyze_Target_Name): New subpogram.
4162 (urrent_LHS): Global variable that denotes LHS of assignment,
4163 used in the analysis of Target_Name nodes.
4164 * sem_res.adb (Resolve_Target_Name): New procedure.
4165 * exp_ch5.adb (Expand_Assign_With_Target_Names): (AI12-0125):
4166 N is an assignment statement whose RHS contains occurences of @
4167 that designate the value of the LHS of the assignment. If the
4168 LHS is side-effect free the target names can be replaced with
4169 a copy of the LHS; otherwise the semantics of the assignment
4170 is described in terms of a procedure with an in-out parameter,
4171 and expanded as such.
4172 (Expand_N_Assignment_Statement): Call
4173 Expand_Assign_With_Target_Names when needed.
4174 * exp_util.adb (Insert_Actions): Take into account N_Target_Name.
4175 * sprint.adb: Handle N_Target_Name.
4176
13230c68
AC
41772017-01-23 Eric Botcazou <ebotcazou@adacore.com>
4178
4179 * checks.adb: Minor fix in comment.
4180
41812017-01-23 Philippe Gil <gil@adacore.com>
4182
4183 * g-debpoo.adb (Do_Report) remove freed chunks from chunks
4184 count in Sort = Memory_Usage or Allocations_Count
4185
41862017-01-23 Justin Squirek <squirek@adacore.com>
4187
4188 * sem_ch3.adb: Code cleanup.
4189
41902017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
4191
4192 * sem_prag.adb (Analyze_Refined_Depends_In_Decl_Part): Move all global
4193 variables to the local variable section. Update the profile
4194 of various nested routine that previously had visibility
4195 of those globals. One the matching phase has completed,
4196 remove certain classes of clauses which are considered noise.
4197 (Check_Dependency_Clause): Properly detect a match between two
4198 'Result attributes. Update the various post-match cases to use
4199 Is_Already_Matched as this routine now automatically recognizes
4200 a previously matched 'Result attribute.
4201 (Is_Already_Matched): New routine.
4202 (Remove_Extra_Clauses): New routine.
4203 (Report_Extra_Clauses): Remove the detection of ... => null
4204 clauses as this is now done in Remove_Extra_Clauses.
4205
6adb6030
AC
42062017-01-23 Ed Schonberg <schonberg@adacore.com>
4207
4208 * sem_aggr.adb (Resolve_Array_Aggregate): In ASIS mode do not
4209 report on spurious overlaps between values involving a subtype
4210 with a static predicate, because the expansion of such a subtype
4211 into individual ranges in inhibited in ASIS mode.
4212
42132017-01-23 Justin Squirek <squirek@adacore.com>
4214
4215 * sem_ch3.adb (Analyze_Declarations): Add detection
4216 of an edge case and delay freezing if it is present.
4217
f991bd8e
HK
42182017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
4219
4220 * sem_ch3.adb, exp_spark.adb, exp_attr.adb, sem_ch9.adb, sem_prag.adb,
4221 sem_util.adb, sem_warn.adb, exp_ch3.adb: Minor reformatting.
4222
42232017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
4224
4225 * freeze.adb (Freeze_Subprogram): Ensure that all anonymous
4226 access-to-subprogram types inherit the convention of the
4227 associated subprogram. (Set_Profile_Convention): New routine.
4228 * sem_ch6.adb (Check_Conformance): Do not compare the conventions
4229 of the two entities directly, use Conventions_Match to account
4230 for anonymous access-to-subprogram and subprogram types.
4231 (Conventions_Match): New routine.
4232
d553a695
CD
42332017-01-23 Claire Dross <dross@adacore.com>
4234
4235 * exp_spark.adb (Expand_SPARK_Attribute_Reference): For attributes
4236 which return Universal_Integer, force the overflow check flag for
4237 Length and Range_Length for types as big as Long_Long_Integer.
4238
6d67bea9
AC
42392017-01-23 Claire Dross <dross@adacore.com>
4240
4241 * exp_spark.adb (Expand_SPARK_Attribute_Reference): For
4242 attributes which return Universal_Integer, introduce a conversion
4243 to the expected type with the appropriate check flags set.
4244 * sem_res.adb (Resolve_Range): The higher bound can be in Typ's
4245 base type if the range is null. It may still be invalid if it
4246 is higher than the lower bound. This is checked later in the
4247 context in which the range appears.
4248
42492017-01-23 Pierre-Marie de Rodat <derodat@adacore.com>
4250
4251 * scos.ads: Introduce a constant to represent ignored
4252 dependencies in SCO_Unit_Table_Entry.
4253
64a4f612
AC
42542017-01-23 Hristian Kirtchev <kirtchev@adacore.com>
4255
4256 * exp_ch9.adb (Expand_N_Protected_Type_Declaration): Remove extra
4257 spaces from error messages.
4258
42592017-01-23 Ed Schonberg <schonberg@adacore.com>
4260
4261 * exp_ch3.adb (Check_Large_Modular_Array): New procedure,
4262 subsidiary to Expand_N_Object_ Declaration, to compute a guard on
4263 an object declaration for an array type with a modular index type
4264 with the size of Long_Long_Integer. Special processing is needed
4265 in this case to compute reliably the size of the object, and
4266 eventually to raise Storage_Error, when wrap-around arithmetic
4267 might compute a meangingless size for the object.
4268
42692017-01-23 Justin Squirek <squirek@adacore.com>
4270
4271 * a-wtenau.adb, par-endh.adb, sem_prag.adb,
4272 sem_type.adb: Code cleanups.
4273
be4e989c
BD
42742017-01-23 Bob Duff <duff@adacore.com>
4275
4276 * sem_res.adb (Resolve_Call): In the part of the code where
4277 it is deciding whether to turn the call into an indexed
4278 component, avoid doing so if the call is to an instance of
4279 Unchecked_Conversion. Otherwise, the compiler turns it into an
4280 indexed component, and resolution of that turns it back into a
4281 function call, and so on, resulting in infinite recursion.
4282 * sem_util.adb (Needs_One_Actual): If the first formal has a
4283 default, then return False.
4284
22564ca9
EB
42852017-01-21 Eric Botcazou <ebotcazou@adacore.com>
4286
4287 * sem_eval.adb (Compile_Time_Compare): Reinstate the expr+literal (etc)
4288 optimizations when the type is modular and the offsets are equal.
4289
0a3ec628
AC
42902017-01-20 Thomas Quinot <quinot@adacore.com>
4291
4292 * sem_warn.adb (Warn_On_Useless_Assignment): Adjust wording of warning
4293 message.
4294
42952017-01-20 Nicolas Roche <roche@adacore.com>
4296
4297 * terminals.c: Ignore failures on setpgid and tcsetpgrp commands.
4298
42992017-01-20 Bob Duff <duff@adacore.com>
4300
4301 * sem_eval.adb (Compile_Time_Compare): Disable the expr+literal
4302 (etc) optimizations when the type is modular.
4303
43042017-01-20 Yannick Moy <moy@adacore.com>
4305
4306 * sem_ch6.adb (Move_Pragmas): move some pragmas,
4307 but copy the SPARK_Mode pragma instead of moving it.
4308 (Build_Subprogram_Declaration): Ensure that the generated spec
4309 and original body share the same SPARK_Pragma aspect/pragma.
4310 * sem_util.adb, sem_util.ads (Copy_SPARK_Mode_Aspect): New
4311 procedure to copy SPARK_Mode aspect.
4312
43132017-01-20 Bob Duff <duff@adacore.com>
4314
4315 * sem_ch3.adb (Analyze_Declarations): Disable Resolve_Aspects
4316 even in ASIS mode.
4317 * sem_ch13.adb (Resolve_Name): Enable setting the entity to
4318 Empty even in ASIS mode.
4319
be42aa71
AC
43202017-01-20 Hristian Kirtchev <kirtchev@adacore.com>
4321
4322 * exp_ch9.adb: minor style fixes in comments.
4323 * sem_ch9.adb (Analyze_Delay_Relative): in GNATprove mode a delay
4324 relative statement introduces an implicit dependency on
4325 Ada.Real_Time.Clock_Time.
4326 * sem_util.adb: Minor reformatting.
4327
43282017-01-20 Ed Schonberg <schonberg@adacore.com>
4329
4330 * sem_ch13.adb (Analyze_Aspect_Specifications): Aspect Alignment
4331 must be treated as delayed aspect even if the expression is
4332 a literal, because the aspect affects the freezing and the
4333 elaboration of the object to which it applies.
4334
43352017-01-20 Tristan Gingold <gingold@adacore.com>
4336
4337 * s-osinte-vxworks.ads (Interrup_Range): New subtype.
4338
43392017-01-20 Ed Schonberg <schonberg@adacore.com>
4340
4341 * lib-xref.adb (Generate_Reference): Do not warn about the
4342 presence of a pragma Unreferenced if the entity appears as the
4343 actual in a procedure call that does not come from source.
4344
43452017-01-20 Pascal Obry <obry@adacore.com>
4346
4347 * expect.c, terminals.c: Fix some warnings about unused variables.
4348 * gsocket.h, adaint.c, adaint.h: Fix some more warnings in the C part
4349 of the runtime.
4350
43512017-01-20 Bob Duff <duff@adacore.com>
4352
4353 * exp_attr.adb (Constrained): Apply an access check (check that
4354 the prefix is not null) when the prefix denotes an object of an
4355 access type; that is, when there is an implicit dereference.
4356
43572017-01-20 Gary Dismukes <dismukes@adacore.com>
4358
4359 * s-rident.ads (constant Profile_Info): Remove
4360 No_Calendar from GNAT_Extended_Ravenscar restrictions.
4361
43622017-01-20 Tristan Gingold <gingold@adacore.com>
4363
4364 * s-maccod.ads: Add pragma No_Elaboration_Code_All
4365
6e9e35e1
AC
43662017-01-20 Hristian Kirtchev <kirtchev@adacore.com>
4367
4368 * ghost.adb (Mark_Ghost_Clause): New routine.
4369 (Prune_Node): Do not prune compilation unit nodes.
4370 (Remove_Ignored_Ghost_Code): Prune the compilation unit node directly.
4371 This does not touch the node itself, but does prune all its fields.
4372 * ghost.ads (Mark_Ghost_Clause): New routine.
4373 * sem_ch8.adb (Analyze_Use_Package): Emit an error when a use
4374 package clause mentions Ghost and non-Ghost packages. Mark a
4375 use package clause as Ghost when it mentions a Ghost package.
4376 (Analyze_Use_Type): Emit an error when a use type clause mentions
4377 Ghost and non-Ghost types. Mark a use type clause as Ghost when
4378 it mentions a Ghost type.
4379 * sem_ch10.adb (Analyze_With_Clause): Mark a with clause as
4380 Ghost when it withs a Ghost unit.
4381
43822017-01-20 Javier Miranda <miranda@adacore.com>
4383
4384 * sem_res.adb (Resolve_Call): If a function call
4385 returns a limited view of a type and at the point of the call the
4386 function is not declared in the extended main unit then replace
4387 it with the non-limited view, which must be available. If the
4388 called function is in the extended main unit then no action is
4389 needed since the back-end handles this case.
4390
43912017-01-20 Eric Botcazou <ebotcazou@adacore.com>
4392
4393 * sem_ch7.adb (Contains_Subp_Or_Const_Refs): Rename into...
4394 (Contains_Subprograms_Refs): ...this. Adjust comment
4395 for constants. (Is_Subp_Or_Const_Ref): Rename into...
4396 (Is_Subprogram_Ref): ...this.
4397 (Has_Referencer): Rename Has_Non_Subp_Const_Referencer variable into
4398 Has_Non_Subprograms_Referencer and adjust comment. Remove
4399 incorrect shortcut for package declarations and bodies.
4400
44012017-01-20 Ed Schonberg <schonberg@adacore.com>
4402
4403 * sem_ch3.adb (Complete_Private_Subtype): If the scope of the
4404 base type differs from that of the completion and the private
4405 subtype is an itype (created for a constraint on an access
4406 type e.g.), set Delayed_Freeze on both to prevent out-of-scope
4407 anomalies in gigi.
4408
44092017-01-20 Hristian Kirtchev <kirtchev@adacore.com>
4410
4411 * sem_ch6.adb (Analyze_Subprogram_Body_Helper):
4412 When inheriting the SPARK_Mode of a prior expression function,
4413 look at the properly resolved entity rather than the initial
4414 candidate which may denote a homonym.
4415
44162017-01-20 Ed Schonberg <schonberg@adacore.com>
4417
4418 * sem_prag.adb (Rewrite_Assertion_Kind): If the name is
4419 Precondition or Postcondition, and the context is pragma
4420 Check_Policy, indicate that this Pre-Ada2012 usage is deprecated
4421 and suggest the standard names Assertion_Policy /Pre /Post
4422 instead.
4423
7124d1a5
HK
44242017-01-20 Hristian Kirtchev <kirtchev@adacore.com>
4425
4426 * sem_ch10.adb, sem_cat.adb: Minor reformatting.
4427
89a53f83
AC
44282017-01-20 Javier Miranda <miranda@adacore.com>
4429
4430 * sem_ch3.adb (Access_Type_Declaration): Protect access to the
4431 Entity attribute.
4432 * sem_ch10.adb (Install_Siblings): Skip processing malformed trees.
4433 * sem_cat.adb (Validate_Categoriztion_Dependency): Skip processing
4434 malformed trees.
4435
44362017-01-20 Ed Schonberg <schonberg@adacore.com>
4437
4438 * sem_ch13.adb (Analyze_Aspect_Specification, case
4439 Dynamic_Predicate): If the entity E is a subtype that inherits
4440 a static predicate for its parent P,, the inherited and the
4441 new predicate combine in the generated predicate function,
4442 and E only has a dynamic predicate.
4443
44442017-01-20 Tristan Gingold <gingold@adacore.com>
4445
4446 * s-boustr.ads, s-boustr.adb: New package.
4447 * Makefile.rtl: Add s-boustr.
4448
44492017-01-20 Hristian Kirtchev <kirtchev@adacore.com>
4450
4451 * inline.adb (Process_Formals): Qualify the
4452 expression of a return statement when it yields a universal type.
4453
44542017-01-20 Hristian Kirtchev <kirtchev@adacore.com>
4455
4456 * freeze.adb (Freeze_All): Freeze the default
4457 expressions of all eligible formal parameters that appear in
4458 entries, entry families, and protected subprograms.
4459
f68fc405
AC
44602017-01-20 Ed Schonberg <schonberg@adacore.com>
4461
4462 * sem_ch3.adb (Check_Nonoverridable_Aspects); Refine check
4463 for illegal inherited Implicit_Dereference aspects with renamed
4464 discriminants.
4465
44662017-01-20 Javier Miranda <miranda@adacore.com>
4467
4468 * debug.adb (switch d.6): do not avoid declaring unreferenced itypes.
4469 * nlists.ads (Lock_Lists, Unlock_Lists): New subprograms.
4470 * nlists.adb (Lock_Lists, Unlock_Lists): New subprograms.
4471 (Set_First, Set_Last, Set_List_Link, Set_Next, Set_Parent,
4472 Set_Prev, Tree_Read): Adding assertion.
4473 * atree.ads (Lock_Nodes, Unlock_Nodes): New subprograms.
4474 * atree.adb (Lock_Nodes, Unlock_Nodes): New subprograms.
4475 (Set_Analyzed, Set_Check_Actuals, Set_Comes_From_Source,
4476 Set_Ekind, Set_Error_Posted, Set_Has_Aspects,
4477 Set_Is_Ignored_Ghost_Node, Set_Original_Node, Set_Paren_Count,
4478 Set_Parent, Set_Sloc, Set_Nkind, Set_FieldNN, Set_NodeNN,
4479 Set_ListNN, Set_ElistNN, Set_NameN, Set_StrN, Set_UintNN,
4480 Set_UrealNN, Set_FlagNNN, Set_NodeN_With_Parent,
4481 Set_ListN_With_Parent): Adding assertion.
4482
44832017-01-20 Ed Schonberg <schonberg@adacore.com>
4484
4485 * sem_prag.adb (Process_Convention): Diagnose properly a pragma
4486 import that applies to several homograph subprograms. when one
4487 of them is declared by a subprogram body.
4488
44892017-01-20 Justin Squirek <squirek@adacore.com>
4490
4491 * exp_ch6.adb (Expand_Call): Remove optimization
4492 that nulls out calls to null procedures.
4493
f4ef7b06
AC
44942017-01-20 Yannick Moy <moy@adacore.com>
4495
4496 * inline.adb (Expand_Inlined_Call): Keep more
4497 precise type of actual for inlining whenever possible. In
4498 particular, do not switch to the formal type in GNATprove mode in
4499 some case where the GNAT backend might require it for visibility.
4500
45012017-01-20 Ed Schonberg <schonberg@adacore.com>
4502
4503 * sem_ch3.adb (Check_Non_Overridable_Aspects): An inherited
4504 aspect Implicit_Dereference can be inherited by a full view if
4505 the partial view has no discriminants, because there is no way
4506 to apply the aspect to the partial view.
4507 (Build_Derived_Record_Type): If derived type renames discriminants
4508 of the parent, the new discriminant inherits the aspect from
4509 the old one.
4510 * sem_ch4.adb (Analyze_Call): Handle properly a parameterless
4511 call through an access discriminant designating a subprogram.
4512 * sem_ch5.adb (Analyze_Assignment): (Analyze_Call): Handle
4513 properly a parameterless call through an access discriminant on
4514 the left-hand side of an assignment.
4515 * sem_res.adb (resolve): If an interpreation involves a
4516 discriminant with an implicit dereference and the expression is an
4517 entity, resolution takes place later in the appropriate routine.
4518 * sem_ch13.adb (Analyze_Aspect_Implicit_Dereference): Recognize
4519 access discriminants that designate a subprogram type.
4520
45212017-01-20 Pascal Obry <obry@adacore.com>
4522
4523 * a-locale.adb, a-locale.ads: Update Ada.Locales for RM 2012 COR:1:2016
4524
ce06d641
AC
45252017-01-20 Yannick Moy <moy@adacore.com>
4526
4527 * sem_ch10.adb (Check_No_Elab_Code_All): Do not issue an error
4528 on implicitly with'ed units in GNATprove mode.
4529 * sinfo.ads (Implicit_With): Document use of flag for implicitly
4530 with'ed units in GNATprove mode.
4531
45322017-01-20 Ed Schonberg <schonberg@adacore.com>
4533
4534 * sem_cat.adb (Validate_Static_Object_Name): In a preelaborated
4535 unit Do not report an error on a non-static entity that appears
4536 in the context of a spec expression, such as an aspect expression.
4537
45382017-01-20 Hristian Kirtchev <kirtchev@adacore.com>
4539
4540 * einfo.adb: Flag298 now denotes Is_Underlying_Full_View.
4541 (Is_Underlying_Full_View): New routine.
4542 (Set_Is_Underlying_Full_View): New routine.
4543 (Write_Entity_Flags): Add an entry for Is_Underlying_Full_View.
4544 * einfo.ads Add new attribute Is_Underlying_Full_View.
4545 (Is_Underlying_Full_View): New routine along with pragma Inline.
4546 (Set_Is_Underlying_Full_View): New routine along with pragma Inline.
4547 * exp_util.adb (Build_DIC_Procedure_Body): Do not consider
4548 class-wide types and underlying full views. The first subtype
4549 is used as the working type for all Itypes, not just array base types.
4550 (Build_DIC_Procedure_Declaration): Do not consider
4551 class-wide types and underlying full views. The first subtype
4552 is used as the working type for all Itypes, not just array
4553 base types.
4554 * freeze.adb (Freeze_Entity): Inherit the freeze node of a full
4555 view or an underlying full view without clobbering the attributes
4556 of a previous freeze node.
4557 (Inherit_Freeze_Node): New routine.
4558 * sem_ch3.adb (Build_Derived_Private_Type): Mark an underlying
4559 full view as such.
4560 (Build_Underlying_Full_View): Mark an underlying full view as such.
4561 * sem_ch7.adb (Install_Private_Declarations): Mark an underlying
4562 full view as such.
4563
49779c98
AC
45642017-01-20 Yannick Moy <moy@adacore.com>
4565
4566 * sinfo.ads: Document lack of Do_Division_Check flag
4567 on float exponentiation.
4568
7c323fbe
AC
45692017-01-19 Javier Miranda <miranda@adacore.com>
4570
4571 * ghost.adb (Propagate_Ignored_Ghost_Code): Protect access to the
4572 identifier attribute of a block-statement node. Required to avoid
4573 assertion failure when building the new containers library.
4574
45752017-01-19 Bob Duff <duff@adacore.com>
4576
4577 * exp_ch3.adb: Update comment.
4578
45792017-01-19 Vincent Celier <celier@adacore.com>
4580
4581 * gprep.adb (Gnatprep): Parse the definition file without
4582 "replace in comments" even when switch -C is used.
4583
58d27da9
JS
45842017-01-19 Justin Squirek <squirek@adacore.com>
4585
4586 * exp_ch9.adb (Is_Pure_Barrier): Create function
4587 Is_Count_Attribute to identify an expansion of the 'Count
4588 attribute.
4589
6b1d2413
AC
45902017-01-19 Ed Schonberg <schonberg@adacore.com>
4591
4592 * sem_ch5.adb (Analyze_Loop_Statement): In GNATprove mode the
4593 statements within an element iterator loop are only analyzed
4594 agter the loop is rewritten. Within a generic the analysis must
4595 be performed in any case to complete name capture.
4596
45972017-01-19 Bob Duff <duff@adacore.com>
4598
4599 * sem_prag.adb (Analyze_Pragma): Check for ignored pragmas first,
4600 before checking for unrecognized pragmas.
4601 Initialize Pname on its declarations; that's always good style.
4602
104c99ef
CD
46032017-01-19 Claire Dross <dross@adacore.com>
4604
4605 * exp_ch7.adb (Build_Invariant_Procedure_Body): Semi-insert the
4606 body into the tree for GNATprove by setting its Parent field. The
4607 components invariants of composite types are not checked by
4608 the composite type's invariant procedure in GNATprove mode.
4609 (Build_Invariant_Procedure_Declaration): Semi-insert the
4610 declaration into the tree for GNATprove by setting its Parent
4611 field.
4612 * freeze.adb (Freeze_Arry_Type):In GNATprove mode, do not add
4613 the component invariants to the array type invariant procedure
4614 so that the procedure can be used to check the array type
4615 invariants if any.
4616 (Freeze_Record_Type): In GNATprove mode, do
4617 not add the component invariants to the record type invariant
4618 procedure so that the procedure can be used to check the record
4619 type invariants if any.
4620
374c09e8
AC
46212017-01-19 Hristian Kirtchev <kirtchev@adacore.com>
4622
4623 * lib-xref-spark_specific.adb: Minor reformatting.
4624 * exp_ch7.adb (Add_Parent_Invariants): Do not process array types.
4625
54740d7d
AC
46262017-01-19 Javier Miranda <miranda@adacore.com>
4627
4628 * exp_aggr.adb (Pass_Aggregate_To_Back_End): Renamed as
4629 Build_Back_End_Aggregate.
4630 (Generate_Aggregate_For_Derived_Type): Code cleanup.
4631 (Prepend_Stored_Values): Code cleanup.
4632
46332017-01-19 Ed Schonberg <schonberg@adacore.com>
4634
4635 * sem_ch6.adb (Analyze_Expression_Function): Check for an
4636 incomplete return type after attempting to freeze it, so that
4637 other freeze actiona are generated in the proper order.
4638
46392017-01-19 Ed Schonberg <schonberg@adacore.com>
4640
4641 * sem_aggr.adb (Resolve_Aggregate): If the type is a string
4642 type, ie. a type whose component is a character type, and the
4643 aggregate is positional, do not convert into a string literal
4644 if the index type is not an integer type, because the original
4645 type may be required in an enclosing operation.
4646
46472017-01-19 Bob Duff <duff@adacore.com>
4648
4649 * binde.adb, debug.adb: Enable new elaboration order algorithm
4650 by default. -dp switch reverts to the old algorithm.
4651
46522017-01-19 Hristian Kirtchev <kirtchev@adacore.com>
4653
4654 * sem_ch3.adb Add with and use clauses for Exp_Ch7.
4655 (Analyze_Declarations): Create the DIC and Invariant
4656 procedure bodies s after all freezing has taken place.
4657 (Build_Assertion_Bodies): New routine.
4658 * sem_ch7.adb Remove the with and use clauses for Exp_Ch7
4659 and Exp_Util.
4660 (Analyze_Package_Specification): Remove the
4661 generation of the DIC and Invariant procedure bodies. This is
4662 now done by Analyze_Declarations.
4663 * sem_disp.adb (Check_Dispatching_Operation): DIC and Invariant
4664 procedures are never treated as primitives.
4665
46662017-01-19 Yannick Moy <moy@adacore.com>
4667
4668 * frontend.adb: Analyze inlined bodies and check elaboration
4669 rules in GNATprove mode too.
4670 * sem_elab.adb (Delay_Element): Add Boolean component to save
4671 indication that call is in SPARK code. (Check_Elab_Calls):
4672 Check elaboration rules in GNATprove mode, and correctly set
4673 the current value of SPARK_Mode.
4674 * lib-xref-spark_specific.adb
4675 (Add_SPARK_Xrefs): Simplify iteration over dereferences.
4676
46772017-01-19 Ed Schonberg <schonberg@adacore.com>
4678
4679 * exp_ch4.adb (Expand_Concatenate): Do no enable overflow
4680 checks on the expression for the high bound of concatenation
4681 when checks are disabled, to suppress warnings about potential
4682 constraint errors in restricted runtimes.
4683
138fc6f1
HK
46842017-01-19 Hristian Kirtchev <kirtchev@adacore.com>
4685
4686 * exp_ch3.adb (Expand_Freeze_Enumeration_Type): Mark the
4687 representation-to-position function as inlined.
4688 * sem_cat.adb (Set_Categorization_From_Scope): Do not modify
4689 the purity of an internally generated entity if it has been
4690 explicitly marked as pure for optimization purposes.
4691 * exp_aggr.adb: Minor reformatting.
4692
4f94fa11
AC
46932017-01-19 Javier Miranda <miranda@adacore.com>
4694
4695 * exp_ch6.adb (Expand_Call): Remove side effects on
4696 actuals that are allocators with qualified expression since the
4697 initialization of the object is performed by means of individual
4698 statements (and hence it must be done before the call).
4699
47002017-01-19 Ed Schonberg <schonberg@adacore.com>
4701
4702 * sem_ch3.adb (Analyze_Declarations): Minor reformatting.
4703 (Build_Derived_Enumeration_Type): If the derived type inherits a
4704 dynamic predicate from its parent, the bounds of the type must
4705 freeze because an explicit constraint is constructed for the
4706 type and the corresponding range is elaborated now.
4707
47082017-01-19 Arnaud Charlet <charlet@adacore.com>
4709
4710 * sem_attr.ads: minor fix of inconsistent casing in comment
4711 * lib-writ.ads: minor align comments in columns
4712 * sem_ch3.adb: Minor reformatting.
4713 * spark_xrefs.ads: minor fix typo in SPARK-related comment
4714 * table.ads: minor style fix in comment
4715 * lib-xref-spark_specific.adb
4716 (Add_SPARK_Xrefs): simplify processing of SPARK cross-references.
4717 * sem_ch12.adb: minor whitespace fix
4718 * freeze.adb: Add comment.
4719 * sem_util.adb (Unique_Name): for instances of
4720 generic subprograms ignore the name of the wrapper package.
4721
47222017-01-19 Javier Miranda <miranda@adacore.com>
4723
4724 * exp_aggr.adb (Resolve_Record_Aggregate):
4725 Factorize code needed for aggregates of limited and unlimited
4726 types in a new routine.
4727 (Pass_Aggregate_To_Back_End): New subprogram.
4728
47292017-01-19 Yannick Moy <moy@adacore.com>
4730
4731 * sinfo.adb (Pragma_Name): Only access up to Last_Pair of Pragma_Map.
4732
0929d66b
AC
47332017-01-19 Ed Schonberg <schonberg@adacore.com>
4734
4735 * sem_ch4.ads, sem_ch4.adb (Try_Object_Operation): Make subprogram
4736 public, for use elsewhere.
4737 * sem_ch6.adb (Analyze_Procedure_Call): In SPARK_Mode and within
4738 an Inlined_body, recognize a call that uses object notation
4739 and has not been rewritten as a regular call because regular
4740 expansion has not taken place.
4741
47422017-01-19 Bob Duff <duff@adacore.com>
4743
4744 * checks.adb (Apply_Type_Conversion_Checks): Disable small optimization
4745 in case of generic formal discrete types, because it causes crashes in
4746 the compiler when built with assertions on.
4747
c63a2ad6
AC
47482017-01-19 Hristian Kirtchev <kirtchev@adacore.com>
4749
4750 * lib-xref-spark_specific.adb, sem_util.adb, sem_util.ads,
4751 sem_ch4.adb, sem_ch8.adb, lib-xref.ads: Minor reformatting.
4752
47532017-01-19 Bob Duff <duff@adacore.com>
4754
4755 * bcheck.adb (Check_Consistent_Dynamic_Elaboration_Checking):
4756 Increment Warnings_Detected. It was decrementing, which is
4757 wrong since we just issued a warning message.
4758 * binderr.ads (Errors_Detected, Warnings_Detected): Declare
4759 these variables to be of subtype Nat instead of Int, because
4760 they should never be negative.
4761
47622017-01-19 Javier Miranda <miranda@adacore.com>
4763
4764 * contracts.adb (Build_Postconditions_Procedure): Replace
4765 Generate_C_Code by Modify_Tree_For_C.
4766 * exp_aggr.adb (Build_Record_Aggr_Code, Expand_Array_Aggregate):
4767 Replace Generate_C_Code by Modify_Tree_For_C.
4768 * exp_attr.adb (Float_Valid, Is_GCC_Target): Replace Generate_C_Code by
4769 Modify_Tree_For_C.
4770 * exp_ch11.adb (Expand_N_Exception_Declaration): Replace
4771 Generate_C_Code by Modify_Tree_For_C.
4772 * exp_ch4.adb (Expand_Allocator_Expression): Replace
4773 Generate_C_Code by Modify_Tree_For_C.
4774 * exp_dbug.adb (Qualify_Entity_Name): Replace Generate_C_Code
4775 by Modify_Tree_For_C.
4776 * exp_util.adb (Remove_Side_Effects, Side_Effect_Free): Replace
4777 Generate_C_Code by Modify_Tree_For_C.
4778 * sem_res.adb (Resolve_Type_Conversion): Replace Generate_C_Code
4779 by Modify_Tree_For_C.
4780 * sinfo.ads (Modify_Tree_For_C): Adding documentation.
4781
40bf00b1
AC
47822017-01-19 Javier Miranda <miranda@adacore.com>
4783
4784 * sem_util.ads, sem_util.adb (Expression_Of_Expression_Function): New
4785 subprogram.
4786 (Is_Inlinable_Expression_Function): New subprogram.
4787 * exp_ch6.ads, exp_ch6.adb (Expression_Of_Expression_Function): Moved
4788 to Sem_Util.
4789 (Is_Inlinable_Expression_Function): Moved to Sem_Util.
4790
47912017-01-19 Ed Schonberg <schonberg@adacore.com>
4792
4793 * sem_ch4.adb (Diagnose_Call): Improve error message when a
4794 selected component has a prefix that might be interpreted
4795 as a parameterless function call, but none of the candidate
4796 interpretations is parameterless, and there is a hidden homonym
4797 of the prefix that is a package.
4798 * sem_ch8.adb (Find_Selected_Component): If the prefix might be
4799 interpreted as a parameterless function call and its analysis
4800 fails, do not call Analyze_Selected_Component.
4801
42e2600a
AC
48022017-01-19 Steve Baird <baird@adacore.com>
4803
4804 * sem_util.ads: Add new Use_Full_View Boolean parameter to
4805 Get_Index_Bounds.
4806 * sem_util.adb (Get_Index_Bounds): replace calls to Scalar_Range with
4807 calls to a newly-defined Scalar_Range_Of_Right_View function.
4808
48092017-01-19 Arnaud Charlet <charlet@adacore.com>
4810
4811 * gnat1drv.adb: minor fix of unbalanced parens in comment
4812 * lib-xref.ads (Traverse_Compilation_Unit): declaration moved
4813 to visible part of the package to allow re-use in GNATprove.
4814 * lib-xref-spark_specific.adb (Traverse_Stub): routine refactored
4815 from repeated code of Traverse_Compilation_Unit.
4816 (Traverse_Declaration_Or_Statement): fixed detection of
4817 generic subprograms and packages; also, iteration over case
4818 statement alternatives rewritten to avoid testing if the first
4819 alternative is present (since it must be present due to Ada
4820 syntax restrictions).
4821
d6e1090a
HK
48222017-01-19 Hristian Kirtchev <kirtchev@adacore.com>
4823
4824 * exp_ch6.adb (Expand_N_Subprogram_Body): Mark the spec as
4825 returning by reference not just for subprogram body stubs,
4826 but for all subprogram cases.
4827 * sem_util.adb: Code reformatting.
4828 (Requires_Transient_Scope): Update the call to Results_Differ.
4829 (Results_Differ): Update the parameter profile and the associated
4830 comment on usage.
4831
d9049d04
ES
48322017-01-19 Ed Schonberg <schonberg@adacore.com>
4833
4834 * sem_dim.adb (Analyze_Dimension): Analyze object declaration and
4835 identifier nodes that do not come from source, to handle properly
4836 dimensionality check within an inlined body which inclddes both
4837 original operands and rewritten operands. This removes spurious
4838 dimensionality errors in the presence of front-end inlining,
4839 as well as in SPARK mode.
4840
1c70261c
JJ
48412017-01-16 Jakub Jelinek <jakub@redhat.com>
4842
4843 PR driver/49726
4844 * gcc-interface/lang.opt (gant, gnatO, gnat): Add Driver flag.
4845
b3686dde
RO
48462017-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4847
4848 * gcc-interface/Makefile.in (SPARC/Solaris): Fix typo.
4849
33c51287
AC
48502017-01-13 Arnaud Charlet <charlet@adacore.com>
4851
4852 * doc/gnat_ugn/getting_started_with_gnat.rst,
4853 doc/gnat_ugn/inline_assembler.rst,
4854 doc/gnat_ugn/building_executable_programs_with_gnat.rst,
4855 doc/gnat_ugn/elaboration_order_handling_in_gnat.rst,
4856 doc/gnat_ugn/about_this_guide.rst,
4857 doc/gnat_ugn/platform_specific_information.rst,
4858 doc/gnat_ugn/example_of_binder_output.rst,
4859 doc/gnat_ugn/gnat_and_program_execution.rst,
4860 doc/gnat_ugn/gnat_utility_programs.rst,
4861 doc/gnat_ugn/the_gnat_compilation_model.rst,
4862 doc/gnat_rm/implementation_defined_attributes.rst,
4863 doc/gnat_rm/compatibility_and_porting_guide.rst,
4864 doc/gnat_rm/standard_library_routines.rst,
4865 doc/gnat_rm/standard_and_implementation_defined_restrictions.rst,
4866 doc/gnat_rm/implementation_defined_pragmas.rst,
4867 doc/gnat_rm/the_gnat_library.rst,
4868 doc/gnat_rm/obsolescent_features.rst,
4869 doc/gnat_rm/about_this_guide.rst,
4870 doc/gnat_rm/the_implementation_of_standard_i_o.rst,
4871 doc/gnat_rm/implementation_of_ada_2012_features.rst,
4872 doc/gnat_rm/interfacing_to_other_languages.rst,
4873 doc/gnat_rm/implementation_defined_aspects.rst,
4874 doc/gnat_rm.rst: Update documentation.
4875 * gnat_rm.texi, gnat_ugn.texi: Regenerated.
4876
b5f3c913
AC
48772017-01-13 Ed Schonberg <schonberg@adacore.com>
4878
4879 * einfo.ads: minor grammar fixes in comment of Normalized_Position_Max.
4880 * scil_ll.adb: Minor style fix in comment.
4881 * sem_ch8.adb (Analyze_Expanded_Name): Perform dimension analysis
4882 even if entity is already set, because the node may be renalyzed
4883 after inlining transformations.
4884
48852017-01-13 Javier Miranda <miranda@adacore.com>
4886
4887 * sem_res.adb (Resolve_Call): Do not establish a transient scope
4888 for a call to inlinable expression function (since the call will
4889 be replaced by its returned object).
4890 * exp_ch6.ads (Is_Inlinable_Expression_Function): New subprogram.
4891 * exp_ch6.adb (Expression_Of_Expression_Function): New subprogram.
4892 (Expand_Call): For inlinable expression function call replace the
4893 call by its returned object.
4894 (Is_Inlinable_Expression_Function): New subprogram.
4895
82e5c243
AC
48962017-01-13 Gary Dismukes <dismukes@adacore.com>
4897
4898 * checks.adb: Minor typo fix and reformatting.
4899
49002017-01-13 Javier Miranda <miranda@adacore.com>
4901
4902 * contracts.adb (Contract_Only_Subprograms): Remove formal.
4903 (Copy_Original_Specification): Removed.
4904 (Skip_Contract_Only_Subprogram): Move here checks previously
4905 located in the caller of this routine (to leave the code more clean).
4906 (Build_Contract_Only_Subprogram): Code cleanup.
4907 * scil_ll.ads, scil_ll.adb (Get_Contract_Only_Body_Name): Removed.
4908 (Get_Contract_Only_Missing_Body_Name): Removed.
4909
f8981f19
AC
49102017-01-13 Javier Miranda <miranda@adacore.com>
4911
4912 * sem_ch6.adb (Cloned_Expression): New subprogram.
4913 (Freeze_Expr_Types): Complete previous patch since the expression
4914 of an expression-function may have iterators and loops with
4915 defining identifiers which, as part of the preanalysis of the
4916 expression, may be left decorated with itypes that will not be
4917 available in the tree passed to the backend.
4918
49192017-01-13 Ed Schonberg <schonberg@adacore.com>
4920
4921 * checks.adb (Apply_Type_Conversion_Checks): Optimize a type
4922 conversion to Integer of an expression that is an attribute
4923 reference 'Pos on an enumeration type.
4924
49252017-01-13 Bob Duff <duff@adacore.com>
4926
4927 * atree.ads: Minor comment fix.
4928
996ce809
JS
49292017-01-13 Justin Squirek <squirek@adacore.com>
4930
4931 * sem_ch6.adb (Check_Aggregate_Accessibility): Ignore function
4932 calls in accessibility check on return statement.
4933
36be0082
HK
49342017-01-13 Hristian Kirtchev <kirtchev@adacore.com>
4935
4936 * sem_ch6.adb (Analyze_Subprogram_Body_Helper):
4937 Ensure that the input body is a subprogram body before trying to
4938 determine whether it denoted an expression function. Note that
4939 subprogram body stubs cannot denote expression functions.
4940
804ec349
GD
49412017-01-13 Gary Dismukes <dismukes@adacore.com>
4942
4943 * bindgen.adb, sem_ch6.adb, binde.adb, exp_ch3.adb: Minor reformatting
4944 and typo fixes.
4945
354ae449
AC
49462017-01-13 Javier Miranda <miranda@adacore.com>
4947
4948 * einfo.ads (Component_Bit_Offset): Fix documentation.
4949 * sem_ch13.adb (Check_Record_Representation_Clause): Skip check
4950 on record holes for components with unknown compile-time offsets.
4951
49522017-01-13 Bob Duff <duff@adacore.com>
4953
4954 * ali.ads, ali.adb (Static_Elaboration_Model_Used): Remove unused flag.
4955 * g-locfil.ads: Minor comment fix.
4956
49572017-01-13 Bob Duff <duff@adacore.com>
4958
4959 * binde.adb (Elab_New): New elaboration order algorithm
4960 that is expected to cause fewer ABE issues. This is a work in
4961 progress. The new algorithm is currently disabled, and can be
4962 enable by the -dp switch, or by modifying the Do_Old and Do_New
4963 etc. flags and rebuilding. Experimental code is included to
4964 compare the results of the old and new algorithms.
4965 * binde.ads: Use GNAT.Dynamic_Tables instead of Table, so we
4966 can have multiple of these tables, so the old and new algorithms
4967 can coexist.
4968 * bindgen.ads (Gen_Output_File): Pass Elab_Order as an 'in'
4969 parameter of type array. This avoids the global variable, and
4970 allows bounds checking (which is normally defeated by the tables
4971 packages). It also ensures that the Elab_Order is read-only
4972 to Bindgen.
4973 * bindgen.adb: Pass Elab_Order as an 'in' parameter to all
4974 subprograms that need it, as above.
4975 * debug.adb: Document new -dp switch. Modify doc of old -do
4976 switch.
4977 * gnatbind.adb (Gnatbind): Make use of new interfaces to Binde
4978 and Bindgen. Move writing of closure (-R and -Ra switches)
4979 to Binde; that's more convenient.
4980
49812017-01-13 Ed Schonberg <schonberg@adacore.com>
4982
4983 * sem_ch6.adb (Analyze_Expression_Function): If the expression
4984 function is a completion, all entities referenced in the
4985 expression are frozen. As a consequence, a reference to an
4986 uncompleted private type from an enclosing scope is illegal.
4987
448a1eb3
AC
49882017-01-13 Javier Miranda <miranda@adacore.com>
4989
4990 * sem_ch6.adb (Freeze_Expr_Types): New subprogram.
4991 (Analyze_Subprogram_Body_Helper): At the occurrence of an
4992 expression function declaration that is a completion, its
4993 expression causes freezing (AI12-0103).
4994
49952017-01-13 Vadim Godunko <godunko@adacore.com>
4996
4997 * a-coinho-shared.adb: Fix memory leaks in Constant_Reference and
4998 Reference functions of Ada.Containers.Indefinite_Holders.
4999
50002017-01-13 Bob Duff <duff@adacore.com>
5001
5002 * s-os_lib.ads: Minor comment fixes.
5003
50042017-01-13 Hristian Kirtchev <kirtchev@adacore.com>
5005
5006 * exp_ch3.adb (Default_Initialize_Object): Do not default
5007 initialize an object when it is of a task type and restriction
5008 No_Tasking is in effect because the initialization is obsolete.
5009 * exp_ch9.adb (Build_Master_Entity): Do not generate a master when
5010 restriction No_Tasking is in effect.
5011 (Build_Master_Renaming): Do not rename a master when restriction
5012 No_Tasking is in effect.
5013
b2c1aa8f
AC
50142017-01-13 Ed Schonberg <schonberg@adacore.com>
5015
5016 * sem_aggr.adb (Resolve_Array_Aggregate): The code that verifies
5017 the legality of An others clause applies as well to a choice in
5018 an Iterated_component_ association.
5019 (Resolve_Iterated_Component_Association): An others choice
5020 is legal.
5021 * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): An
5022 Iterated_Component_Association is not static.
5023
50242017-01-13 Hristian Kirtchev <kirtchev@adacore.com>
5025
5026 * exp_ch3.adb (Freeze_Type): Mark the Ghost mode as set in case
5027 control is passed to the expresion handler before the new mode
5028 is set.
5029 * sem_ch12.adb (Analyze_Package_Instantiation,
5030 Analyze_Subprogram_Instantiation): Mark the Ghost mode as set
5031 in case control is passed to the expresion handler before the
5032 new mode is set.
5033
72cdccfa
HK
50342017-01-13 Hristian Kirtchev <kirtchev@adacore.com>
5035
5036 * sem_aggr.adb, sem_ch3.adb, inline.adb, sem_util.adb, exp_ch4.adb,
5037 exp_aggr.adb: Minor reformatting.
5038
fae8eb5b
GD
50392017-01-13 Gary Dismukes <dismukes@adacore.com>
5040
5041 * inline.adb: Minor reformatting and typo fix.
5042
00f45f30
AC
50432017-01-13 Ed Schonberg <schonberg@adacore.com>
5044
5045 * sem_util.ads, sem_util.adb (Choice_List): Move function here
5046 from sem_aggr.adb, for use elsewhere.
5047 * sem_ch3.adb (Analyze_Object_Declaration): Use Choice_List.
5048 * sem_aggr.adb (Resolve_Array_Aggregate): Remove
5049 Iterated_Component_Present.
5050 * exp_aggr.adb: Use Choice_List throughout, to handle
5051 Iterated_Component_Associations.
5052 (Gen_Loop): Generate proper loop for an
5053 Iterated_Component_Association: loop variable has the identifier
5054 of the original association. Generate a loop even for a single
5055 component choice, in order to make loop parameter visible in
5056 expression.
5057 (Flatten): An Iterated_Component_Association is not static.
5058
50592017-01-13 Yannick Moy <moy@adacore.com>
5060
5061 * exp_ch4.adb (Expand_N_Op_Expon): Ensure that the value of
5062 float exponentiation for statically known small negative values
5063 is the reciprocal of the exponentiation for the opposite value
5064 of the exponent.
5065 * s-exnllf.adb (Exn_Float, Exn_Long_Float, Exn_Long_Long_Float):
5066 Ensure that the value of float exponentiation for negative values
5067 is the reciprocal of the exponentiation for the opposite value
5068 of the exponent.
5069 * inline.adb (Expand_Inlined_Call): Fix the count
5070 for the number of generated gotos.
5071
3abbc5c2
AC
50722017-01-13 Yannick Moy <moy@adacore.com>
5073
5074 * inline.adb: Code cleanup.
5075 * sem_util.adb (Is_OK_Volatile_Context): Add
5076 expression in delay statement as OK for volatile context.
5077
50782017-01-13 Ed Schonberg <schonberg@adacore.com>
5079
5080 * sem_aggr.adb (Resolve_Array_Aggregate): In normal compilation
5081 mode a choice that is a subtype with a static predicate is
5082 replaced by the values it covers. This transformation must not
5083 be performed in ASIS mode, to preserve the source for analysis.
5084
50852017-01-13 Justin Squirek <squirek@adacore.com>
5086
5087 * nlists.ads: Correct minor typo.
5088
ef74daea
AC
50892017-01-13 Gary Dismukes <dismukes@adacore.com>
5090
5091 * sem_ch13.adb: Minor reformatting and typo fix.
5092
50932017-01-13 Ed Schonberg <schonberg@adacore.com>
5094
5095 * par-ch4.adb (P_Aggregate_Or_Parent_Expr): An
5096 Iterated_Component_Association is a named association in an
5097 array aggregate.
5098 * sem_aggr.adb (Resolve_Iterated_Component_Association): New
5099 procedure, subsidiary of Resolve_Array_Aggregate, to analyze
5100 and resolve the discrete choices and the expression of the
5101 new construct.
5102 * sinfo.adb, sinfo.ads: In analogy with N_Component_Association,
5103 Loop_Actions and Box_Present are attributes of
5104 N_Iterated_Component_Association nodes. Box_Present is always
5105 False in this case.
5106 * sprint.adb (Sprint_Node): An Iterated_Component_Association
5107 has a Discrete_Choices list, as specified in the RM. A
5108 Component_Association for aggregate uses instead a Choices list.
5109 We have to live with this small inconsistency because the new
5110 construct also has a defining identifier, and there is no way
5111 to merge the two node structures.
5112
da9683f4
AC
51132017-01-13 Yannick Moy <moy@adacore.com>
5114
5115 * inline.adb (Remove_Aspects_And_Pragmas): Add Unused to the
5116 list of pragmas to remove. Remove pragmas from the list of
5117 statements in the body to inline.
5118 * namet.adb, namet.ads (Nam_In): New version with 12 parameters.
5119
51202017-01-13 Ed Schonberg <schonberg@adacore.com>
5121
5122 * sem_ch3.adb (Resolve_Aspects): New procedure, subsidiary of
5123 Analyze_Declarations, to analyze and resolve the expressions of
5124 aspect specifications in the current declarative list, so that
5125 the expressions have proper entity and type info. This is needed
5126 for ASIS when there is no subsequent expansion to generate this
5127 semantic information.
5128 * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Use Etype of
5129 original expression, to suppress cascaded errors when expression
5130 has been constant-folded.
5131 (Resolve_Aspect_Expressions, Resolve_Name): Preserve entities in
5132 ASIS mode, because there is no subsequent expansion to decorate
5133 the tree.
5134
3de3a1be
YM
51352017-01-13 Yannick Moy <moy@adacore.com>
5136
5137 * inline.adb, inline.ads (Call_Can_Be_Inlined_In_GNATprove_Mode):
5138 New function to detect when a call may be inlined or not in
5139 GNATprove mode.
5140 (Expand_Inlined_Call): Ensure that a temporary
5141 is always created in the cases where a type conversion may be
5142 needed on an input parameter in GNATprove mode, so that GNATprove
5143 sees the check to perform.
5144 * sem_res.adb (Resolve_Call): In GNATprove mode, skip inlining
5145 when not applicable due to actual requiring type conversion
5146 with possible check but no temporary value can be copied for
5147 GNATprove to see the check.
5148
d8f43ee6
HK
51492017-01-13 Hristian Kirtchev <kirtchev@adacore.com>
5150
5151 * sem_aggr.adb, par_sco.adb, s-osprim-mingw.adb, exp_ch5.adb,
5152 exp_prag.adb, sem_ch3.adb, xr_tabls.adb, lib-xref-spark_specific.adb,
5153 layout.adb, sem_dist.adb, exp_spark.adb, exp_ch7.adb, gnatcmd.adb,
5154 exp_util.adb, prj-proc.adb, sem_aux.adb, comperr.adb, g-memdum.adb,
5155 exp_attr.adb, s-intman-solaris.adb, exp_ch9.adb, make.adb, live.adb,
5156 g-sercom-linux.adb, sem_dim.adb, mlib-prj.adb, s-intman-posix.adb,
5157 sem_ch9.adb, sem_ch10.adb, prep.adb, einfo.adb, scng.adb, checks.adb,
5158 prj-strt.adb, sem_prag.adb, eval_fat.adb, sem_ch12.adb, sem.adb,
5159 a-numaux-x86.adb, a-stwifi.adb, i-cobol.adb, prj.adb,
5160 get_spark_xrefs.adb, s-tasini.adb, rtsfind.adb, freeze.adb,
5161 g-arrspl.adb, par-ch4.adb, sem_util.adb, sem_res.adb, expander.adb,
5162 sem_attr.adb, exp_dbug.adb, prj-pp.adb, a-stzfix.adb, s-interr.adb,
5163 s-wchcnv.adb, switch-m.adb, gnat1drv.adb, sinput-l.adb, stylesw.adb,
5164 contracts.adb, s-intman-android.adb, g-expect.adb, exp_ch4.adb,
5165 g-comlin.adb, errout.adb, sinput.adb, s-exctra.adb, repinfo.adb,
5166 g-spipat.adb, g-debpoo.adb, exp_ch6.adb, sem_ch4.adb, exp_ch13.adb,
5167 a-wtedit.adb, validsw.adb, pprint.adb, widechar.adb, makeutl.adb,
5168 ali.adb, set_targ.adb, sem_mech.adb, sem_ch6.adb, gnatdll.adb,
5169 get_scos.adb, g-pehage.adb, s-tratas-default.adb, gnatbind.adb,
5170 prj-dect.adb, g-socthi-mingw.adb, par-prag.adb, prj-nmsc.adb,
5171 exp_disp.adb, par-ch12.adb, binde.adb, sem_ch8.adb,
5172 s-tfsetr-default.adb, s-regexp.adb, gprep.adb, s-tpobop.adb,
5173 a-teioed.adb, sem_warn.adb, sem_eval.adb, g-awk.adb, s-io.adb,
5174 a-ztedit.adb, xoscons.adb, exp_intr.adb, sem_cat.adb, sprint.adb,
5175 g-socket.adb, exp_dist.adb, sem_ch13.adb, s-tfsetr-vxworks.adb,
5176 par-ch3.adb, treepr.adb, g-forstr.adb, g-catiio.adb, par-ch5.adb,
5177 uname.adb, osint.adb, exp_ch3.adb, prj-env.adb, a-strfix.adb,
5178 a-stzsup.adb, prj-tree.adb, s-fileio.adb: Update all eligible case
5179 statements to reflect the new style for case alternatives. Various
5180 code clean up and reformatting.
5181
d4bf622f
AC
51822017-01-13 Gary Dismukes <dismukes@adacore.com>
5183
5184 * exp_util.adb: Minor reformatting.
5185
51862017-01-13 Yannick Moy <moy@adacore.com>
5187
5188 * exp_spark.adb: Code cleanup.
5189 * sem_ch9.adb (Analyze_Delay_Until): Resolve
5190 expression so that calls are identified as such inside delay
5191 until.
5192
a702c9b9
ES
51932017-01-13 Ed Schonberg <schonberg@adacore.com>
5194
5195 * exp_util.adb (Insert_Actions): Handle Iterated_Component_Association.
5196 * par-ch3.adb (P_Discrete_Choice_List): An
5197 Iterated_Component_Association is an array aggregate component.
5198 * par-ch4.adb (P_Iterated_Component_Association): New procedure.
5199 (Is_Quantified_Expression): New function that performs a lookahead
5200 to distinguish quantified expressions from iterated component
5201 associations.
5202 (P_Aggregate_Or_Paren_Expr): Recognize iterated component
5203 associations.
5204 (P_Unparen_Cond_Case_Quant_Expression, P_Primary): Ditto.
5205 * sem.adb (Analyze): Handle Iterated_Component_Association.
5206 * sem_aggr.adb (Resolve_Array_Aggregate): Dummy handling of iterated
5207 component associations.
5208 * sinfo.ads, sinfo.adb: Entries for for
5209 N_Iterated_Component_Association and its fields.
5210 * sprint.adb (Sprint_Node_Actual): Handle
5211 N_Iterated_Component_Association.
5212
582dbb53
AC
52132017-01-13 Justin Squirek <squirek@adacore.com>
5214
5215 * sem_ch12.adb (Analyze_Package_Instantiation): Move disabiling
5216 of the style check until after preanalysis of acutals.
5217
52182017-01-13 Yannick Moy <moy@adacore.com>
5219
5220 * sem_ch13.adb: Minor reformatting.
5221 * par-ch11.adb: minor style fix in whitespace
5222 * gnatbind.adb (Gnatbind): Scope of Std_Lib_File
5223 reduced to Add_Artificial_ALI_File; style fix in declaration of
5224 Text; grammar fix in comment.
5225 * osint-c.adb (Read_Library_Info): strip trailing NUL from result.
5226 * freeze.adb: Cleanup to pass pragma instead of
5227 expression to call.
5228 * exp_spark.adb (Expand_SPARK_Attribute_Reference): New procedure to
5229 replace System'To_Address by equivalent call.
5230
e4d04166
AC
52312017-01-13 Arnaud Charlet <charlet@adacore.com>
5232
5233 * bindusg.adb: Improve usage output for -f switch.
5234
52352017-01-13 Hristian Kirtchev <kirtchev@adacore.com>
5236
5237 * frontend.adb, freeze.adb, sem_res.adb, sem_attr.adb, sem_ch8.adb:
5238 Minor reformatting.
5239
52402017-01-13 Ed Schonberg <schonberg@adacore.com>
5241
5242 * sem_ch13.adb (Is_Predicate_Static): Following the intent of the RM,
5243 treat comparisons on strings as legal in a Static_Predicate.
5244 (Is_Predicate_Static, Is_Type_Ref): Predicate also returns true on
5245 a function call that is the expansion of a string comparison.The
5246 function call is built when compiling the corresponding predicate
5247 function, but the expression has been found legal as a static
5248 predicate during earlier analysis.
5249 * sem_eval.adb (Real_Or_String_Static_Predicate_Matches): Handle
5250 properly a function call that is the expansion of a string
5251 comparison operation, in order to recover the Static_Predicate
5252 expression and apply it to a static argument when needed.
5253
66340e0e
AC
52542017-01-13 Tristan Gingold <gingold@adacore.com>
5255
5256 * s-mmap.adb, s-mmap.ads (Open_Read_No_Exception): New function.
5257 (Open_Read): Re-implement using Open_Read_No_Exception.
5258 (Open_Write): Raise exception in case of error.
5259 * s-mmosin-mingw.adb (Open_Common): Do not raise exception.
5260 * s-mmosin-unix.adb (Open_Read, Open_Write): Do not
5261 reaise exception.
5262 * s-mmosin-mingw.ads, s-mmosin-unix.ads (Open_Read): Adjust comment.
5263
52642017-01-13 Yannick Moy <moy@adacore.com>
5265
5266 * checks.adb: Code cleanup.
5267
52682017-01-13 Yannick Moy <moy@adacore.com>
5269
5270 * freeze.adb (Check_Inherited_Conditions): Use analyzed pragma
5271 expression instead of unanalyzed aspect expression for checking
5272 the validity of inheriting an operation. Also copy the expression
5273 being passing it to Build_Class_Wide_Expression, as this call
5274 modifies its argument.
5275 * sem_util.ads Fix comment to reference correct function name
5276 New_Copy_Tree.
5277
52782017-01-13 Javier Miranda <miranda@adacore.com>
5279
5280 * sem_res.adb (Resolve_Generalized_Indexing): Compiling in ASIS mode,
5281 when we propagate information about the indexes back to the original
5282 indexing mode and the prefix of the index is a function call, do not
5283 remove any parameter from such call.
5284
52852017-01-13 Gary Dismukes <dismukes@adacore.com>
5286
5287 * exp_ch6.ads (Needs_BIP_Finalization_Master): Update comment.
5288 * exp_ch6.adb (Needs_BIP_Finalization_Master): Return True for
5289 a build-in-place function whose result type is tagged.
5290
52912017-01-13 Yannick Moy <moy@adacore.com>
5292
5293 * sem_ch8.adb (Analyze_Subprogram_Renaming.Build_Class_Wide_Wrapper):
5294 Do not generate a wrapper when the only candidate is a class-wide
5295 subprogram.
5296 (Analyze_Subprogram_Renaming): Do not freeze the renaming or renamed
5297 inside a generic context.
5298
27bb7941
AC
52992017-01-13 Hristian Kirtchev <kirtchev@adacore.com>
5300
5301 * exp_util.adb (Add_Inherited_Tagged_DIC):
5302 Pass the object parameters of both the parent and the derived
5303 type DIC procedure to the reference replacement circuitry.
5304 (Find_DIC_Type): Modify the circuitry to present the partial
5305 view of a private type in case the private type defines its own
5306 DIC pragma.
5307 (Replace_Object_And_Primitive_References): Add two
5308 optional formal parameters. Update the comment on usage. Update
5309 the replacement of references to object parameters.
5310
53112017-01-13 Gary Dismukes <dismukes@adacore.com>
5312
5313 * einfo.adb, sem_ch6.adb, atree.adb: Minor reformatting and typo fix.
5314
53152017-01-13 Ed Schonberg <schonberg@adacore.com>
5316
5317 * sem_res.adb (Resolve_Actuals): Apply Scalar_Range_Check to
5318 an out parameter that is a type conversion, independently of th
5319 range check that may apply to the expression of the conversion,
5320 for use in GNATProve.
5321
53222017-01-13 Yannick Moy <moy@adacore.com>
5323
5324 * gnat1drv.adb (Gnat1drv): Move the implicit with for System in
5325 GNATprove_Mode here to Frontend.
5326 * frontend.adb (Frontend): Move the implicit with for System
5327 in GNATprove_Mode here as it ismore correct this way; the old
5328 place only worked by chance, since there were no overloaded names.
5329 * rtsfind.ads (RE_Id, RE_Unit_Table): Add RE_Tasking_State.
5330 * sem_attr.adb (Analyze_Attribute): In GNATprove_Mode, for the
5331 four attributes identified in SRM 9(18), add an implicit with
5332 to Ada.Task_Identification.
5333 * sem_ch8.adb (Analyze_Subprogram_Renaming.Build_Class_Wide_Wrapper):
5334 Deal specially with the wrapper introduced for AI05-0071 in GNATprove
5335 mode.
5336 * checks.adb (Apply_Discriminant_Check,
5337 Apply_Selected_Length_Checks, Apply_Selected_Range_Checks):
5338 In GNATprove mode, we do not apply the checks, but we still
5339 analyze the expression to possibly issue errors on SPARK
5340 code when a run-time error can be detected at compile time.
5341 (Selected_Length_Checks, Selected_Range_Checks): Perform analysis
5342 in GNATprove mode.
5343
b0bf18ad
AC
53442017-01-13 Hristian Kirtchev <kirtchev@adacore.com>
5345
5346 * expander.adb (Expand): Add a warning about using return
5347 statements in Ghost management code.
5348 * exp_ch3.adb (Freeze_Type): Add a warning about using return
5349 statements in Ghost management code.
5350 * exp_ch7.adb (Build_Invariant_Procedure_Body,
5351 Build_Invariant_Procedure_Declaration): Add a warning about
5352 using return statements in Ghost management code.
5353 * exp_disp.adb (Make_DT): Add a warning about using return
5354 statements in Ghost management code.
5355 * exp_util.adb (Build_DIC_Procedure_Body,
5356 Build_DIC_Procedure_Declaration, Make_Predicated_Call): Add a
5357 warning about using return statements in Ghost management code.
5358 * freeze.adb (Freeze_Entity): Add a warning about using return
5359 statements in Ghost management code.
5360 * sem.adb (Analyze, Do_Analyze): Add a warning about using return
5361 statements in Ghost management code.
5362 * sem_ch3.adb (Analyze_Object_Declaration, Process_Full_View): Add
5363 a warning about using return statements in Ghost management code.
5364 * sem_ch5.adb (Analyze_Assignment): Add a warning about using
5365 return statements in Ghost management code.
5366 * sem_ch6.adb (Analyze_Procedure_Call,
5367 Analyze_Subprogram_Body_Helper): Add a warning about using return
5368 statements in Ghost management code.
5369 * sem_ch7.adb (Analyze_Package_Body_Helper): Add a warning about
5370 using return statements in Ghost management code.
5371 * sem_ch12.adb (Analyze_Package_Instantiation,
5372 Analyze_Subprogram_Instantiation, Instantiate_Package_Body,
5373 Instantiate_Subprogram_Body): Add a warning about using return
5374 statements in Ghost management code.
5375 * sem_ch13.adb (Build_Predicate_Functions,
5376 Build_Predicate_Function_Declarations): Add a warning about
5377 using return statements in Ghost management code.
5378 * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part,
5379 Analyze_Initial_Condition_In_Decl_Part, Analyze_Pragma,
5380 Analyze_Pre_Post_Condition_In_Decl_Part): Add a warning about
5381 using return statements in Ghost management code.
5382
53832017-01-13 Tristan Gingold <gingold@adacore.com>
5384
5385 * s-mmosin-mingw.adb: Fix pragma import.
5386
53872017-01-13 Arnaud Charlet <charlet@adacore.com>
5388
5389 * gnat1drv.adb (Adjust_Global_Switches): Ignore -gnateE in
5390 codepeer mode.
5391
d65a80fd
HK
53922017-01-13 Hristian Kirtchev <kirtchev@adacore.com>
5393
5394 * atree.adb (Allocate_Initialize_Node): A newly created node is
5395 no longer marked as Ghost at this level.
5396 (Mark_New_Ghost_Node): New routine.
5397 (New_Copy): Mark the copy as Ghost.
5398 (New_Entity): Mark the entity as Ghost.
5399 (New_Node): Mark the node as Ghost.
5400 * einfo.adb (Is_Checked_Ghost_Entity): This attribute can now
5401 apply to unanalyzed entities.
5402 (Is_Ignored_Ghost_Entity): This attribute can now apply to unanalyzed
5403 entities.
5404 (Set_Is_Checked_Ghost_Entity): This attribute now
5405 applies to all entities as well as unanalyzed entities.
5406 (Set_Is_Ignored_Ghost_Entity): This attribute now applies to
5407 all entities as well as unanalyzed entities.
5408 * expander.adb Add with and use clauses for Ghost.
5409 (Expand): Install and revert the Ghost region associated with the node
5410 being expanded.
5411 * exp_ch3.adb (Expand_Freeze_Array_Type): Remove all Ghost-related code.
5412 (Expand_Freeze_Class_Wide_Type): Remoe all Ghost-related code.
5413 (Expand_Freeze_Enumeration_Type): Remove all Ghost-related code.
5414 (Expand_Freeze_Record_Type): Remove all Ghost-related code.
5415 (Freeze_Type): Install and revert the Ghost region associated
5416 with the type being frozen.
5417 * exp_ch5.adb Remove with and use clauses for Ghost.
5418 (Expand_N_Assignment_Statement): Remove all Ghost-related code.
5419 * exp_ch6.adb Remove with and use clauses for Ghost.
5420 (Expand_N_Procedure_Call_Statement): Remove all Ghost-relatd code.
5421 (Expand_N_Subprogram_Body): Remove all Ghost-related code.
5422 * exp_ch7.adb (Build_Invariant_Procedure_Body): Install and revert the
5423 Ghost region of the working type.
5424 (Build_Invariant_Procedure_Declaration): Install and revert
5425 the Ghost region of the working type.
5426 (Expand_N_Package_Body): Remove all Ghost-related code.
5427 * exp_ch8.adb Remove with and use clauses for Ghost.
5428 (Expand_N_Exception_Renaming_Declaration): Remove all Ghost-related
5429 code.
5430 (Expand_N_Object_Renaming_Declaration): Remove all Ghost-related code.
5431 (Expand_N_Package_Renaming_Declaration): Remove all Ghost-related code.
5432 (Expand_N_Subprogram_Renaming_Declaration): Remove all Ghost-related
5433 code.
5434 * exp_ch13.adb Remove with and use clauses for Ghost.
5435 (Expand_N_Freeze_Entity): Remove all Ghost-related code.
5436 * exp_disp.adb (Make_DT): Install and revert the Ghost region of
5437 the tagged type. Move the generation of various entities within
5438 the Ghost region of the type.
5439 * exp_prag.adb Remove with and use clauses for Ghost.
5440 (Expand_Pragma_Check): Remove all Ghost-related code.
5441 (Expand_Pragma_Contract_Cases): Remove all Ghost-related code.
5442 (Expand_Pragma_Initial_Condition): Remove all Ghost-related code.
5443 (Expand_Pragma_Loop_Variant): Remove all Ghost-related code.
5444 * exp_util.adb (Build_DIC_Procedure_Body): Install
5445 and revert the Ghost region of the working types.
5446 (Build_DIC_Procedure_Declaration): Install and revert the
5447 Ghost region of the working type.
5448 (Make_Invariant_Call): Install and revert the Ghost region of the
5449 associated type.
5450 (Make_Predicate_Call): Reimplemented. Install and revert the
5451 Ghost region of the associated type.
5452 * freeze.adb (Freeze_Entity): Install and revert the Ghost region
5453 of the entity being frozen.
5454 (New_Freeze_Node): Removed.
5455 * ghost.adb Remove with and use clauses for Opt.
5456 (Check_Ghost_Completion): Update the parameter profile
5457 and all references to formal parameters.
5458 (Ghost_Entity): Update the comment on usage.
5459 (Install_Ghost_Mode): New routines.
5460 (Is_Ghost_Assignment): New routine.
5461 (Is_Ghost_Declaration): New routine.
5462 (Is_Ghost_Pragma): New routine.
5463 (Is_Ghost_Procedure_Call): New routine.
5464 (Is_Ghost_Renaming): Removed.
5465 (Is_OK_Declaration): Reimplemented.
5466 (Is_OK_Pragma): Reimplemented.
5467 (Is_OK_Statement): Reimplemented.
5468 (Is_Subject_To_Ghost): Update the comment on usage.
5469 (Mark_And_Set_Ghost_Assignment): New routine.
5470 (Mark_And_Set_Ghost_Body): New routine.
5471 (Mark_And_Set_Ghost_Completion): New routine.
5472 (Mark_And_Set_Ghost_Declaration): New routine.
5473 (Mark_And_Set_Ghost_Instantiation): New routine.
5474 (Mark_And_Set_Ghost_Procedure_Call): New routine.
5475 (Mark_Full_View_As_Ghost): Removed.
5476 (Mark_Ghost_Declaration_Or_Body): New routine.
5477 (Mark_Ghost_Pragma): New routine.
5478 (Mark_Ghost_Renaming): New routine.
5479 (Mark_Pragma_As_Ghost): Removed.
5480 (Mark_Renaming_As_Ghost): Removed.
5481 (Propagate_Ignored_Ghost_Code): Update the comment on usage.
5482 (Prune_Node): Freeze nodes no longer need special pruning, they
5483 are processed by the general ignored Ghost code mechanism.
5484 (Restore_Ghost_Mode): New routine.
5485 (Set_Ghost_Mode): Reimplemented.
5486 (Set_Ghost_Mode_From_Entity): Removed.
5487 * ghost.ads Add with and use clauses for Ghost.
5488 (Check_Ghost_Completion): Update the parameter profile
5489 along with the comment on usage.
5490 (Install_Ghost_Mode): New routine.
5491 (Is_Ghost_Assignment): New routine.
5492 (Is_Ghost_Declaration): New routine.
5493 (Is_Ghost_Pragma): New routine.
5494 (Is_Ghost_Procedure_Call): New routine.
5495 (Mark_And_Set_Ghost_Assignment): New routine.
5496 (Mark_And_Set_Ghost_Body): New routine.
5497 (Mark_And_Set_Ghost_Completion): New routine.
5498 (Mark_And_Set_Ghost_Declaration): New routine.
5499 (Mark_And_Set_Ghost_Instantiation): New routine.
5500 (Mark_And_Set_Ghost_Procedure_Call): New routine.
5501 (Mark_Full_View_As_Ghost): Removed.
5502 (Mark_Ghost_Pragma): New routine.
5503 (Mark_Ghost_Renaming): New routine.
5504 (Mark_Pragma_As_Ghost): Removed.
5505 (Mark_Renaming_As_Ghost): Removed.
5506 (Restore_Ghost_Mode): New routine.
5507 (Set_Ghost_Mode): Redefined.
5508 (Set_Ghost_Mode_From_Entity): Removed.
5509 * sem.adb (Analyze): Install and revert the Ghost region of the
5510 node being analyzed.
5511 (Do_Analyze): Change the way a clean Ghost
5512 region is installed and reverted.
5513 * sem_ch3.adb (Analyze_Full_Type_Declaration): Remove
5514 all Ghost-related code.
5515 (Analyze_Incomplete_Type_Decl): Remove all Ghost-related code.
5516 (Analyze_Number_Declaration): Remove all Ghost-related code.
5517 (Analyze_Object_Declaration): Install and revert the Ghost region of
5518 a deferred object declaration's completion.
5519 (Array_Type_Declaration): Remove all Ghost-related code.
5520 (Build_Derived_Type): Update the comment on
5521 the propagation of Ghost attributes from a parent to a derived type.
5522 (Derive_Subprogram): Remove all Ghost-related code.
5523 (Make_Class_Wide_Type): Remove all Ghost-related code.
5524 (Make_Implicit_Base): Remove all Ghost-related code.
5525 (Process_Full_View): Install and revert the Ghost region of
5526 the partial view. There is no longer need to check the Ghost
5527 completion here.
5528 * sem_ch5.adb (Analyze_Assignment): Install and revert the Ghost
5529 region of the left hand side.
5530 * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Remove
5531 all Ghost-related code.
5532 (Analyze_Expression_Function): Remove all Ghost-related code.
5533 (Analyze_Generic_Subprogram_Body): Remove all Ghost-related code.
5534 (Analyze_Procedure_Call): Install and revert the Ghost region of
5535 the procedure being called.
5536 (Analyze_Subprogram_Body_Helper): Install and revert the Ghost
5537 region of the spec or body.
5538 (Analyze_Subprogram_Declaration): Remove all Ghost-related code.
5539 (Build_Subprogram_Declaration): Remove all Ghost-related code.
5540 (Find_Corresponding_Spec): Remove all Ghost-related code.
5541 (Process_Formals): Remove all Ghost-related code.
5542 * sem_ch7.adb (Analyze_Package_Body_Helper): Install and revert
5543 the Ghost region of the spec.
5544 (Analyze_Package_Declaration): Remove all Ghost-related code.
5545 * sem_ch8.adb (Analyze_Exception_Renaming): Mark a renaming as
5546 Ghost when it aliases a Ghost entity.
5547 (Analyze_Generic_Renaming): Mark a renaming as Ghost when it aliases
5548 a Ghost entity.
5549 (Analyze_Object_Renaming): Mark a renaming as Ghost when
5550 it aliases a Ghost entity.
5551 (Analyze_Package_Renaming): Mark a renaming as Ghost when it aliases
5552 a Ghost entity.
5553 (Analyze_Subprogram_Renaming): Mark a renaming as Ghost when it
5554 aliases a Ghost entity.
5555 * sem_ch11.adb Remove with and use clauses for Ghost.
5556 (Analyze_Exception_Declaration): Remove all Ghost-related code.
5557 * sem_ch12.adb (Analyze_Generic_Package_Declaration): Remove all
5558 Ghost-related code.
5559 (Analyze_Generic_Subprogram_Declaration): Remove all Ghost-related
5560 code.
5561 (Analyze_Package_Instantiation): Install and revert the Ghost region
5562 of the package instantiation.
5563 (Analyze_Subprogram_Instantiation): Install
5564 and revert the Ghost region of the subprogram instantiation.
5565 (Instantiate_Package_Body): Code clean up. Install and revert the
5566 Ghost region of the package body.
5567 (Instantiate_Subprogram_Body): Code clean up. Install and revert the
5568 Ghost region of the subprogram body.
5569 * sem_ch13.adb (Build_Predicate_Functions): Install
5570 and revert the Ghost region of the related type.
5571 (Build_Predicate_Function_Declaration): Code clean up. Install
5572 and rever the Ghost region of the related type.
5573 * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part):
5574 Install and revert the Ghost region of the pragma.
5575 (Analyze_Initial_Condition_In_Decl_Part): Install and revert the
5576 Ghost region of the pragma.
5577 (Analyze_Pragma): Install and revert the Ghost region of various
5578 pragmas. Mark a pragma as Ghost when it is related to a Ghost entity
5579 or encloses a Ghost entity.
5580 (Analyze_Pre_Post_Condition): Install and revert the Ghost
5581 region of the pragma.
5582 (Analyze_Pre_Post_Condition_In_Decl_Part): Install and revert the
5583 Ghost region of the pragma.
5584 * sem_res.adb (Resolve): Remove all Ghost-related code.
5585 * sem_util.adb (Is_Declaration): Reimplemented.
5586 (Is_Declaration_Other_Than_Renaming): New routine.
5587 * sem_util.ads (Is_Declaration_Other_Than_Renaming): New routine.
5588 * sinfo.adb (Is_Checked_Ghost_Pragma): New routine.
5589 (Is_Ghost_Pragma): Removed.
5590 (Is_Ignored_Ghost_Pragma): New routine.
5591 (Set_Is_Checked_Ghost_Pragma): New routine.
5592 (Set_Is_Ghost_Pragma): Removed.
5593 (Set_Is_Ignored_Ghost_Pragma): New routine.
5594 * sinfo.ads: Update the documentation on Ghost mode and
5595 Ghost regions. New attributes Is_Checked_Ghost_Pragma
5596 and Is_Ignored_Ghost_Pragma along with usages in nodes.
5597 Remove attribute Is_Ghost_Pragma along with usages in nodes.
5598 (Is_Checked_Ghost_Pragma): New routine along with pragma Inline.
5599 (Is_Ghost_Pragma): Removed along with pragma Inline.
5600 (Is_Ignored_Ghost_Pragma): New routine along with pragma Inline.
5601 (Set_Is_Checked_Ghost_Pragma): New routine along with pragma Inline.
5602 (Set_Is_Ghost_Pragma): Removed along with pragma Inline.
5603 (Set_Is_Ignored_Ghost_Pragma): New routine along with pragma Inline.
5604
ca0eb951
AC
56052017-01-12 Tristan Gingold <gingold@adacore.com>
5606
5607 * s-mmap.ads, s-mmap.adb, s-mmosin-unix.ads, s-mmosin-unix.adb,
5608 s-mmauni-long.ads, s-mmosin-mingw.ads, s-mmosin-mingw.adb: New files.
5609
56102017-01-12 Yannick Moy <moy@adacore.com>
5611
5612 * errout.adb, errout.ads (Initialize): Factor common treatment
5613 in Reset_Warnings.
5614 (Reset_Warnings): New procedure to reset counts related to warnings.
5615 (Record_Compilation_Errors): New variable to store the presence of an
5616 error, used in gnat2why to allow changing the Warning_Mode.
5617 (Compilation_Errors): Use new variable Record_Compilation_Errors to
5618 store the presence of an error.
5619
56202017-01-12 Javier Miranda <miranda@adacore.com>
5621
5622 * sem_ch13.adb (Analyze_Aspect_Specifications):
5623 For Interrupt_Handler and Attach_ Handler aspects, decorate the
5624 internally built reference to the protected procedure as coming
5625 from sources and force its analysis.
5626
56272017-01-12 Ed Schonberg <schonberg@adacore.com>
5628
5629 * sem_ch3.adb (Build_Derived_Type): For a scalar derived type,
5630 inherit predicates if any from the first_subtype of the parent,
5631 not from the anonymous parent type.
5632 * sem_eval.adb (Is_Static_Subtype): A type that inherits a dynamic
5633 predicate is not a static subtype.
5634
56352017-01-12 Gary Dismukes <dismukes@adacore.com>
5636
5637 * freeze.adb (Check_Suspicious_Convention): New procedure
5638 performing a warning check on discriminated record types with
5639 convention C or C++. Factored out of procedure Freeze_Record_Type,
5640 and changed to only apply to base types (to avoid spurious
5641 warnings on subtypes). Minor improvement of warning messages
5642 to refer to discriminated rather than variant record types.
5643 (Freeze_Record_Type): Remove code for performing a suspicious
5644 convention check.
5645 (Freeze_Entity): Only call Freeze_Record_Type
5646 on types that aren't declared within any enclosing generic units
5647 (rather than just excluding the type when the innermost scope
5648 is generic). Call Check_Suspicious_Convention whether or not
5649 the type is declared within a generic unit.
5650 * sem_ch8.adb (In_Generic_Scope): Move this function to Sem_Util.
5651 * sem_util.ads, sem_util.adb (In_Generic_Scope): New function (moved
5652 from Sem_Ch8).
5653
56542017-01-12 Tristan Gingold <gingold@adacore.com>
5655
5656 * sysdep.c, adaint.c, rtinit.c, ming32.h:
5657 (__gnat_current_codepage): Renamed from CurrentCodePage
5658 (__gnat_current_ccs_encoding): Renamed from CurrentCCSEncoding
5659
56602017-01-12 Ed Schonberg <schonberg@adacore.com>
5661
5662 * sem_ch6.adb (Fully_Conformant_Expressions): Handle properly
5663 quantified expressions, following AI12-050: the loop parameters
5664 of two quantified expressions are conformant if they have the
5665 same identifier.
5666
4e41b0e6
AC
56672017-01-12 Arnaud Charlet <charlet@adacore.com>
5668
5669 * gcc-interface/Makefile.in: Clean up VxWorks targets.
5670
0289a8d7
AC
56712017-01-12 Ed Schonberg <schonberg@adacore.com>
5672
5673 * sem_attr.adb (Analyze_Attribute_Reference, case Loop_Entry):
5674 Hnadle properly the attribute reference when it appears as part
5675 of an expression in another loop aspect.
5676
56772017-01-12 Ed Schonberg <schonberg@adacore.com>
5678
5679 * exp_ch3.adb (Check_Predicated_Discriminant): New procedure,
5680 subsidiary of Build_Initialization_Call, to complete generation
5681 of predicate checks on discriminants whose (sub)types have
5682 predicates, and to add checks on variants that do not have an
5683 others clause.
5684 * sem_util.adb (Gather_Components): A missing Others alternative is
5685 not an error when the type of the discriminant is a static predicate
5686 (and coverage has been checked when analyzing the case statement). A
5687 runtime check is generated to verify that a given discriminant
5688 satisfies the predicate (RM 3.8.1. (21.1/2)).
5689
56902017-01-12 Yannick Moy <moy@adacore.com>
5691
5692 * gnat1drv.adb (Adjust_Global_Switches): Only
5693 perform checking of exception mechanism when generating code.
5694
56952017-01-12 Justin Squirek <squirek@adacore.com>
5696
5697 * exp_ch7.adb (Add_Type_Invariants, Process_Array_Component):
5698 Remove handling of access component with invariant.
5699 (Build_Invariant_Procedure_Declaration): Remove return on class
5700 wide type.
5701 * freeze.adb (Freeze_Array_Type, Freeze_Record_Type): Remove
5702 conditional exception for component or array so Has_Own_Invariants
5703 flag is not falsly set.
5704 * sem_ch3.adb (Make_Class_Wide_Type): Initialize copy of class
5705 wide type to have no invariant flags.
5706
2168d7cc
AC
57072017-01-12 Hristian Kirtchev <kirtchev@adacore.com>
5708
5709 * exp_ch9.adb, sem_prag.adb, s-tassta.adb, sem_util.adb, s-tarest.adb,
5710 sem_ch13.adb: Minor reformatting.
5711
57122017-01-12 Hristian Kirtchev <kirtchev@adacore.com>
5713
5714 * exp_aggr.adb (Build_Record_Aggr_Code): Guard against a missing
5715 adjustment primitive when the ancestor type was not properly frozen.
5716 (Gen_Assign): Guard against a missing initialization
5717 primitive when the component type was not properly frozen.
5718 (Initialize_Array_Component): Guard against a missing adjustment
5719 primitive when the component type was not properly frozen.
5720 (Initialize_Record_Component): Guard against a missing adjustment
5721 primitive when the component type was not properly frozen.
5722 (Process_Transient_Component_Completion): The transient object may
5723 not be finalized when its associated type was not properly frozen.
5724 * exp_ch3.adb (Build_Assignment): Guard against a missing
5725 adjustment primitive when the component type was not properly frozen.
5726 (Build_Initialization_Call): Guard against a missing
5727 initialization primitive when the associated type was not properly
5728 frozen.
5729 (Expand_N_Object_Declaration): Guard against a missing
5730 adjustment primitive when the base type was not properly frozen.
5731 (Predefined_Primitive_Bodies): Create an empty Deep_Adjust
5732 body when there is no adjustment primitive available. Create an
5733 empty Deep_Finalize body when there is no finalization primitive
5734 available.
5735 * exp_ch4.adb (Apply_Accessibility_Check): Guard against a
5736 missing finalization primitive when the designated type was
5737 not properly frozen.
5738 (Expand_N_Allocator): Guard against a missing initialization primitive
5739 when the designated type was not properly frozen.
5740 * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add the adjustment call
5741 only when the corresponding adjustment primitive is available.
5742 * exp_ch7.adb (Build_Adjust_Or_Finalize_Statements): Generate the
5743 adjustment/finalization statements only when there is an available
5744 primitive to carry out the action.
5745 (Build_Initialize_Statements): Generate the initialization/finalization
5746 statements only when there is an available primitive to carry out the
5747 action.
5748 (Make_Adjust_Call): Do not generate a call when the underlying
5749 type is not present due to a possible missing full view.
5750 (Make_Final_Call): Do not generate a call when the underlying
5751 type is not present due to a possible missing full view.
5752 (Make_Finalize_Address_Stmts): Generate an empty body when the
5753 designated type lacks a finalization primitive.
5754 (Make_Init_Call): Do not generate a call when the underlying type is
5755 not present due to a possible missing full view.
5756 (Process_Component_For_Adjust): Add the adjustment call only when the
5757 corresponding adjustment primitive is available.
5758 (Process_Component_For_Finalize): Add the finalization call only when
5759 the corresponding finalization primitive is available.
5760 (Process_Object_Declaration): Use a null statement to emulate a
5761 missing call to the finalization primitive of the object type.
5762 * exp_ch7.ads (Make_Adjust_Call): Update the comment on usage.
5763 (Make_Final_Call): Update the comment on usage.
5764 (Make_Init_Call): Update the comment on usage.
5765 * exp_util.adb (Build_Transient_Object_Statements): Code reformatting.
5766
57672017-01-12 Arnaud Charlet <charlet@adacore.com>
5768
5769 * einfo.ads: Update documentation of Address_Taken.
5770 * sem_attr.adb (Analyze_Access_Attribute, Resolve_Attribute
5771 [Access_Attribute]): Only consider 'Access/'Unchecked_Access
5772 for subprograms when setting Address_Taken flag.
5773
57742017-01-12 Patrick Bernardi <bernardi@adacore.com>
5775
5776 * sem_ch10.adb (Analyze_With_Clause): Removed code that turned
5777 Configurable_Run_Time_Mode off when analysing with'ed predefined
5778 libraries.
5779
872fc7b5
GD
57802017-01-12 Gary Dismukes <dismukes@adacore.com>
5781
5782 * sem_prag.adb: Minor reformatting.
5783 * sem_util.adb (Unique_Entity): fix result for
5784 bodies of entry families.
5785
00420f74
JS
57862017-01-12 Justin Squirek <squirek@adacore.com>
5787
5788 * sem_prag.adb (Analyze_Pragma): Add appropriate calls to
5789 Resolve_Suppressible in the pragma Assertion_Policy case.
5790 (Resolve_Suppressible): Created this function to factor out
5791 common code used to resolve Suppress to either Ignore or Check
5792 * snames.ads-tmpl: Add name for Suppressible.
5793
4bfe4a99
GD
57942017-01-12 Gary Dismukes <dismukes@adacore.com>
5795
5796 * exp_ch9.adb, s-secsta.adb, snames.ads-tmpl, exp_ch3.adb: Minor
5797 reformatting.
5798 * debug.adb: Minor comment fixes.
5799
eacfa9bc
AC
58002017-01-12 Arnaud Charlet <charlet@adacore.com>
5801
5802 * sem_util.adb (Unique_Entity): For concurrent
5803 bodies that are defined with stubs and complete a declaration
5804 of a single concurrent object return the entity of an implicit
5805 concurrent type, not the entity of the anonymous concurrent
5806 object.
5807 * debug.adb: -gnatd.J is no longer used.
5808 * make.adb (Globalize): Removed, no longer used.
5809 * sem_ch9.adb: minor typo in comment for entry index
5810
58112017-01-12 Patrick Bernardi <bernardi@adacore.com>
5812
5813 * aspect.adb, aspect.ads: Added new aspect Secondary_Stack_Size.
5814 * exp_ch3.adb (Build_Init_Statements): As part of initialising
5815 the value record of a task, set its _Secondary_Stack_Size field
5816 if present.
5817 * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create
5818 a _Secondary_Stack_Size field in the value record of
5819 the task if a Secondary_Stack_Size rep item is present.
5820 (Make_Task_Create_Call): Include secondary stack size
5821 parameter. If No_Secondary_Stack restriction is in place, passes
5822 stack size of 0.
5823 * par-prag.adb, sem_prag.adb, sem_prag.ads: Added new pragma
5824 Secondary_Stack_Size.
5825 * s-secsta.adb, s-secsta.ads (Minimum_Secondary_Stack_Size): New
5826 function to define the overhead of the secondary stack.
5827 * s-tarest.adb (Create_Restricted_Task,
5828 Create_Restricted_Task_Sequential): Functions now include
5829 Secondary_Stack_Size parameter to pass to Initialize_ATCB.
5830 * s-tarest.adb (Create_Restricted_Task,
5831 Create_Restricted_Task_Sequential): Calls to Initialize_ATCB now
5832 include Secondary_Stack_Size parameter.
5833 (Task_Wrapper): Secondary stack now allocated to the size specified by
5834 the Secondary_Stack_Size parameter in the task's ATCB.
5835 * s-taskin.adb, s-taskin.adb (Common_ATCB, Initialize_ATCB): New
5836 Secondary_Stack_Size component.
5837 * s-tassta.adb, s-tassta.ads (Create_Restricted_Task,
5838 Create_Restricted_Task_Sequential): Function now include
5839 Secondary_Stack_Size parameter.
5840 (Task_Wrapper): Secondary stack now allocated to the size
5841 specified by the Secondary_Stack_Size parameter in the task's
5842 ATCB.
5843 * s-tproft.adb (Register_Foreign_Thread): Amended Initialize_ATCB call
5844 to include Secondary_Stack_Size parameter.
5845 * sem_ch13.adb (Analyze_Aspect_Specification): Add support for
5846 Secondary_Stack_Size aspect, turning the aspect into its corresponding
5847 internal attribute.
5848 (Analyze_Attribute_Definition): Process Secondary_Stack_Size attribute.
5849 * snames.adb-tmpl, snames.ads-tmpl: Added names
5850 Name_Secondary_Stack_Size, Name_uSecondary_Stack_Size,
5851 Attribute_Secondary_Stack_Size and Pragma_Secondary_Stack_Size.
5852
5f325af2
AC
58532017-01-12 Yannick Moy <moy@adacore.com>
5854
5855 * exp_spark.adb (Expand_SPARK_Potential_Renaming): Fix sloc of copied
5856 subtree.
5857
58582017-01-12 Justin Squirek <squirek@adacore.com>
5859
5860 * exp_attr.adb (Expand_N_Attribute_Reference):
5861 Fix Finalization_Size case by properly resolving the type after
5862 rewritting the node.
5863
58642017-01-12 Hristian Kirtchev <kirtchev@adacore.com>
5865
5866 * exp_util.adb (Build_DIC_Procedure_Body): Semi-insert the body into
5867 the tree.
5868 (Build_DIC_Procedure_Declaration): Semi-insert the body into the tree.
5869 * binde.adb, exp_ch5.adb, sem_type.adb, sem.ads, sem_res.adb,
5870 exp_sel.ads: Minor reformatting.
5871
58722017-01-12 Justin Squirek <squirek@adacore.com>
5873
5874 * exp_ch6.adb (Expand_Call): Add guard to prevent
5875 invariant checks from being created for internally generated
5876 subprograms.
5877
58782017-01-12 Bob Duff <duff@adacore.com>
5879
5880 * lib-writ.ads: Remove incorrect comment.
5881
58822017-01-12 Javier Miranda <miranda@adacore.com>
5883
5884 * debug.adb (-gnatd.K): Enable generation of contract-only
5885 procedures in CodePeer mode.
5886 * contracts.adb (Build_And_Analyze_Contract_Only_Subprograms):
5887 New subprogram.
5888 (Analyze_Contracts): Generate contract-only procedures if -gnatdK is
5889 set.
5890 * scil_ll.ads, scil_ll.adb (Get_Contract_Only_Body_Name): New
5891 subprogram.
5892 (Get_Contract_Only_Missing_Body_Name): New subprogram.
5893 (Get_Contract_Only_Body): New subprogram.
5894 (Set_Contract_Only_Body): New subprogram.
5895 (Is_Contract_Only_Body): New subprogram.
5896 (Set_Is_Contract_Only_Body): New subprogram.
5897 (SCIL_Nodes): Replace table by hash-table.
5898
10c2c151
AC
58992017-01-12 Hristian Kirtchev <kirtchev@adacore.com>
5900
5901 * exp_ch6.adb: Minor reformatting.
5902 * spark_xrefs.ads: minor cleanup of comments for SPARK xrefs
5903
59042017-01-12 Bob Duff <duff@adacore.com>
5905
5906 * binde.adb (Forced): New reason for a dependence.
5907 (Force_Elab_Order): Implementation of the new switch.
5908 * binde.ads: Minor comment fixes.
5909 * bindusg.adb: Add -f switch. Apparently, there was an -f switch
5910 long ago that is no longer supported; removed comment about that.
5911 * opt.ads (Force_Elab_Order_File): Name of file specified for
5912 -f switch.
5913 * switch-b.adb: Parse -f switch.
5914
84e13614
JS
59152017-01-12 Justin Squirek <squirek@adacore.com>
5916
5917 * exp_ch6.adb (Check_View_Conversion): Created this function
5918 to properly chain calls to check type invariants that may be
5919 present in a subprogram call after the subprogram.
5920 (Expand_Call): Add a conditional to identify when a view conversion
5921 needs to be checked.
5922 * nlists.adb, nlists.ads (Prepend_New): New routine.
5923 (Prepend_New_To): New routine.
5924
e51102b2
AC
59252017-01-12 Hristian Kirtchev <kirtchev@adacore.com>
5926
5927 * sinfo.ads: Minor reformatting.
5928
59292017-01-12 Gary Dismukes <dismukes@adacore.com>
5930
5931 * exp_util.adb, exp_util.ads, einfo.ads: Minor typo fixes and
5932 reformatting.
5933
59342017-01-12 Hristian Kirtchev <kirtchev@adacore.com>
5935
5936 * exp_ch6.adb (Make_Build_In_Place_Call_In_Anonymous_Context): Add new
5937 variable Definite. Create a local object and pass its 'Access to the
5938 BIP function when the result type is either definite or it does not
5939 require any finalization or secondary stack management.
5940
6e759c2a
BD
59412017-01-12 Bob Duff <duff@adacore.com>
5942
5943 * contracts.adb, einfo.adb, errout.adb, exp_attr.adb,
5944 exp_ch3.adb, exp_ch7.adb, exp_ch9.adb, exp_prag.adb, freeze.adb,
5945 frontend.adb, ghost.adb, inline.adb, lib-writ.adb, lib-xref.adb,
5946 par.adb, par-ch10.adb, par-ch2.adb, par-prag.adb, par_sco.adb,
5947 sem_attr.adb, sem_aux.adb, sem_ch10.adb, sem_ch12.adb,
5948 sem_ch13.adb, sem_ch6.adb, sem_ch8.adb, sem_ch9.adb, sem_elab.adb,
5949 sem_prag.adb, sem_res.adb, sem_util.adb, sem_util.ads,
5950 sem_warn.adb, sinfo.adb, sinfo.ads, sprint.adb (Pragma_Name):
5951 Change name to Pragma_Name_Unmapped.
5952 (Pragma_Name_Mapped): Change name to Pragma_Name.
5953 This is because the "mapped" version should be the usual case.
5954
f63d601b
HK
59552017-01-09 Hristian Kirtchev <kirtchev@adacore.com>
5956
5957 * einfo.ads, einfo.adb: Remove uses of flags Has_Default_Init_Cond,
5958 Is_Default_Init_Cond_Procedure, and
5959 Has_Inherited_Default_Init_Cond. Add uses of flags
5960 Has_Own_DIC, Is_DIC_Procedure, and Has_Inherited_DIC.
5961 (Default_Init_Cond_Procedure): Removed.
5962 (DIC_Procedure): New routine.
5963 (Has_Default_Init_Cond): Removed.
5964 (Has_DIC): New routine.
5965 (Has_Inheritable_Invariants): The attribute applies to the base type.
5966 (Has_Inherited_Default_Init_Cond): Removed.
5967 (Has_Inherited_DIC): New routine.
5968 (Has_Inherited_Invariants): The attribute applies to the base type.
5969 (Has_Own_DIC): New routine.
5970 (Has_Own_Invariants): The attribute applies to the base type.
5971 (Is_Default_Init_Cond_Procedure): Removed.
5972 (Is_DIC_Procedure): New routine.
5973 (Set_Default_Init_Cond_Procedure): Removed.
5974 (Set_DIC_Procedure): New routine.
5975 (Set_Has_Default_Init_Cond): Removed.
5976 (Set_Has_Inheritable_Invariants): The attribute applies
5977 to the base type.
5978 (Set_Has_Inherited_Default_Init_Cond): Removed.
5979 (Set_Has_Inherited_DIC): New routine.
5980 (Set_Has_Inherited_Invariants): The attribute applies to the base type.
5981 (Set_Has_Own_DIC): New routine.
5982 (Set_Has_Own_Invariants): The attribute applies to the base type.
5983 (Set_Is_Default_Init_Cond_Procedure): Removed.
5984 (Set_Is_DIC_Procedure): New routine.
5985 (Write_Entity_Flags): Update the output of all flags related to
5986 default initial condition.
5987 * exp_ch3.adb (Expand_N_Object_Declaration): Update the generation
5988 of the call to the DIC procedure.
5989 (Freeze_Type): Generate the body of the DIC procedure.
5990 * exp_ch7.adb (Build_Invariant_Procedure_Body): Replace
5991 all occurrences of Create_Append with Append_New_To. Do
5992 not generate an invariant procedure for a class-wide type.
5993 The generated body acts as a freeze action of the working type.
5994 (Build_Invariant_Procedure_Declaration): Do not generate an
5995 invariant procedure for a class-wide type.
5996 (Create_Append): Removed.
5997 * exp_util.adb: Add with and use clauses for Sem_Ch3, sem_ch6,
5998 sem_Ch12, Sem_Disp, and GNAT.HTable. Move the handling of
5999 class-wide pre/postcondition description and data structures from
6000 Sem_Prag.
6001 (Build_Class_Wide_Expression): Moved from Sem_Prag.
6002 (Build_DIC_Call): New routine.
6003 (Build_DIC_Procedure_Body): New routine.
6004 (Build_DIC_Procedure_Declaration): New routine.
6005 (Entity_Hash): Moved from Sem_Prag.
6006 (Find_DIC_Type): New routine.
6007 (Update_Primitives_Mapping): Reimplemented.
6008 (Update_Primitives_Mapping_Of_Types): New routine.
6009 * exp_util.ads (Build_Class_Wide_Expression): Moved from Sem_Prag.
6010 (Build_DIC_Call): New routine.
6011 (Build_DIC_Procedure_Body): New routine.
6012 (Build_DIC_Procedure_Declaration): New routine.
6013 (Update_Primitives_Mapping): Moved from Sem_Prag.
6014 (Update_Primitives_Mapping_Of_Types): New routine.
6015 * nlists.adb (Append_New): New routine.
6016 (Append_New_To): New routine.
6017 * nlists.ads (Append_New): New routine.
6018 (Append_New_To): New routine.
6019 * sem_ch3.adb (Analyze_Declarations): Do not generate the bodies
6020 of DIC procedures here. This is now done at the end of the
6021 visible declarations, private declarations, and at the freeze
6022 point of a type.
6023 (Analyze_Private_Extension_Declaration):
6024 A private extension inherits the DIC pragma of a parent type.
6025 (Analyze_Subtype_Declaration): No need to propagate invariant
6026 attributes to a subtype as those apply to the base type.
6027 (Build_Derived_Record_Type): No need to inherit invariants here
6028 as this is now done in Build_Derived_Type.
6029 (Build_Derived_Type): Inherit both the DIC pragma and invariants from
6030 a parent type.
6031 (Process_Full_View): Update the propagation of DIC attributes.
6032 (Propagate_Default_Init_Cond_Attributes): Removed.
6033 * sem_ch7.adb Add with and use clauses for Exp_Util.
6034 (Analyze_Package_Specification): Create the body of the DIC
6035 procedure at the end of the visible and private declarations.
6036 (Preserve_Full_Attributes): Propagate DIC attributes.
6037 * sem_ch9.adb (Analyze_Protected_Type_Declaration): Propagate
6038 DIC attributes.
6039 (Analyze_Task_Type_Declaration): Propagate DIC attributes.
6040 * sem_elab.adb (Check_A_Call): Update the call to
6041 Is_Nontrivial_Default_Init_Cond_Procedure.
6042 * sem_prag.adb Remove the with and use clauses for
6043 GNAT.HTable. Move the handling of class- wide pre/postcondition
6044 description and data structures to Exp_Util.
6045 (Analyze_Pragma): Create the declaration of the DIC procedure. There
6046 is no need to propagate invariant-related attributes at this point
6047 as this is done in Build_Invariant_Procedure_Declaration.
6048 (Build_Class_Wide_Expression): Moved to Exp_Util.
6049 (Entity_Hash): Moved to Exp_Util.
6050 (Update_Primitives_Mapping): Moved to Exp_Util.
6051 * sem_prag.ads (Build_Class_Wide_Expression): Moved to Exp_Util.
6052 (Update_Primitives_Mapping): Moved to Exp_Util.
6053 * sem_util.adb: Remove with and use clauses for Ghost
6054 and Sem_Ch13.
6055 (Build_Default_Init_Cond_Call): Removed.
6056 (Build_Default_Init_Cond_Procedure_Bodies): Removed.
6057 (Build_Default_Init_Cond_Procedure_Declaration): Removed.
6058 (Get_Views): Reimplemented.
6059 (Has_Full_Default_Initialization): Reimplement the section on DIC.
6060 (Inherit_Default_Init_Cond_Procedure): Removed.
6061 (Is_Nontrivial_Default_Init_Cond_Procedure): Removed.
6062 (Is_Nontrivial_DIC_Procedure): New routine.
6063 (Is_Verifiable_DIC_Pragma): New routine.
6064 (Propagate_DIC_Attributes): New routine.
6065 * sem_util.ads (Build_Default_Init_Cond_Call): Removed.
6066 (Build_Default_Init_Cond_Procedure_Bodies): Removed.
6067 (Build_Default_Init_Cond_Procedure_Declaration): Removed.
6068 (Inherit_Default_Init_Cond_Procedure): Removed.
6069 (Is_Nontrivial_Default_Init_Cond_Procedure): Removed.
6070 (Is_Nontrivial_DIC_Procedure): New routine.
6071 (Is_Verifiable_DIC_Pragma): New routine.
6072 (Propagate_DIC_Attributes): New routine.
6073 * sem_warn.adb (Is_OK_Fully_Initialized): Reimplement the section
6074 on DIC.
6075 * sinfo.ads, sinfo.adb: Add new attribute Expression_Copy along with
6076 usage in nodes.
6077 (Expression_Copy): New routine along with pragma Inline.
6078 (Set_Expression_Copy): New routine along with pragma Inline.
6079
b41f45e7
AC
60802017-01-06 Bob Duff <duff@adacore.com>
6081
6082 * bindgen.adb (Gen_Adainit, Gen_Adafinal): Change
6083 "Bind_Main_Program" to "not Bind_For_Library", because otherwise
6084 we won't generate the call to s_stalib_adafinal when the main
6085 is not written in Ada.
6086
60872017-01-06 Bob Duff <duff@adacore.com>
6088
6089 * sem_prag.adb: Minor: remove pragma Warnings.
6090
60912017-01-06 Tristan Gingold <gingold@adacore.com>
6092
6093 * Makefile.rtl: Do not compile s-stchop by default.
6094
eae66578
PB
60952017-01-06 Patrick Bernardi <bernardi@adacore.com>
6096
6097 * aspects.adb, aspects.ads, exp_ch3.adb, exp_ch9.adb, par-prag.adb,
6098 sem_ch13.adb, sem_prag.adb, sem_prag.ads, snames.adb-tmpl,
6099 snames.ads-tmpl, s-secsta.adb, s-secsta.ads, s-tarest.adb,
6100 s-tarest.ads, s-taskin.adb, s-taskin.ads, s-tassta.adb, s-tassta.ads:
6101 Reverted previous change for now.
6102
e666e744
ES
61032017-01-06 Ed Schonberg <schonberg@adacore.com>
6104
6105 * exp_ch3.adb (Build_Initialization_Call): Apply predicate
6106 check to default discriminant value if checks are enabled.
6107 (Build_Assignment): If type of component has static predicate,
6108 apply check to its default value, if any.
6109
73bfca78
PB
61102017-01-06 Patrick Bernardi <bernardi@adacore.com>
6111
6112 * aspect.adb, aspect.ads: Added new aspect Secondary_Stack_Size.
6113 * exp_ch3.adb (Build_Init_Statements): As part of initialising
6114 the value record of a task, set its _Secondary_Stack_Size field
6115 if present.
6116 * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create
6117 a _Secondary_Stack_Size field in the value record of
6118 the task if a Secondary_Stack_Size rep item is present.
6119 (Make_Task_Create_Call): Include secondary stack size
6120 parameter. If No_Secondary_Stack restriction is in place, passes
6121 stack size of 0.
6122 * par-prag.adb, sem_prag.adb, sem_prag.ads: Added new pragma
6123 Secondary_Stack_Size.
6124 * s-secsta.adb, s-secsta.ads (Minimum_Secondary_Stack_Size): New
6125 function to define the overhead of the secondary stack.
6126 * s-tarest.adb (Create_Restricted_Task,
6127 Create_Restricted_Task_Sequential): Functions now include
6128 Secondary_Stack_Size parameter to pass to Initialize_ATCB.
6129 * s-tarest.adb (Create_Restricted_Task,
6130 Create_Restricted_Task_Sequential): Calls to Initialize_ATCB
6131 now include Secondary_Stack_Size parameter.
6132 (Task_Wrapper):
6133 Secondary stack now allocated to the size specified by the
6134 Secondary_Stack_Size parameter in the task's ATCB.
6135 * s-taskin.adb, s-taskin.adb (Common_ATCB, Initialise_ATCB): New
6136 Secondary_Stack_Size component.
6137 * s-tassta.adb, s-tassta.ads (Create_Restricted_Task,
6138 Create_Restricted_Task_Sequential): Function now include
6139 Secondary_Stack_Size parameter.
6140 (Task_Wrapper): Secondary stack
6141 now allocated to the size specified by the Secondary_Stack_Size
6142 parameter in the task's ATCB.
6143 * sem_ch13.adb (Analyze_Aspect_Specification): Add support
6144 for Secondary_Stack_Size aspect, turning the aspect into its
6145 corresponding internal attribute.
6146 (Analyze_Attribute_Definition):
6147 Process Secondary_Stack_Size attribute.
6148 * snames.adb-tmpl, snames.ads-tmpl: Added names
6149 Name_Secondary_Stack_Size, Name_uSecondary_Stack_Size,
6150 Attribute_Secondary_Stack_Size and Pragma_Secondary_Stack_Size.
6151
f6c5454e
PO
61522017-01-06 Pascal Obry <obry@adacore.com>
6153
6154 * a-direio.adb, a-direio.ads, a-sequio.adb, a-sequio.ads: Add Flush to
6155 Sequential_IO and Direct_IO.
6156
533e3abc
BD
61572017-01-06 Bob Duff <duff@adacore.com>
6158
6159 * snames.ads-tmpl (Renamed): New name for the pragma argument.
6160 * par-ch2.adb: Allow the new pragma (with analysis deferred
6161 to Sem_Prag).
6162 * sinfo.ads, sinfo.adb (Map_Pragma_Name, Pragma_Name_Mapped):
6163 Keep a mapping from new pragma names to old names.
6164 * sem_prag.adb: Check legality of pragma Rename_Pragma, and
6165 implement it by calling Map_Pragma_Name.
6166 * checks.adb, contracts.adb, einfo.adb, errout.adb,
6167 * exp_attr.adb, exp_ch3.adb, exp_ch6.adb, exp_ch7.adb, exp_ch9.adb,
6168 * exp_prag.adb, exp_util.adb, freeze.adb, frontend.adb, ghost.adb,
6169 * inline.adb, lib-writ.adb, scans.adb, scans.ads, sem_attr.adb,
6170 * sem_aux.adb, sem_ch10.adb, sem_ch13.adb, sem_ch6.adb, sem_ch9.adb,
6171 * sem_elab.adb, sem_res.adb, sem_util.adb, sem_util.ads,
6172 * sem_warn.adb: Call Pragma_Name_Mapped instead of Pragma_Name
6173 as appropriate.
6174
a62e6287
HK
61752017-01-06 Hristian Kirtchev <kirtchev@adacore.com>
6176
6177 * exp_ch9.adb: Minor reformatting.
6178
dbf2a2d3
TG
61792017-01-06 Tristan Gingold <gingold@adacore.com>
6180
6181 * exp_ch9.ads, exp_ch9.adb (Build_Entry_Names): Remove (unused).
6182 * rtsfind.ads (RE_Task_Entry_Names_Array, RO_ST_Set_Entry_Names)
6183 (RE_Protected_Entry_Names_Array, RO_PE_Set_Entry_Names): Remove
6184 (unused).
6185 * s-taskin.ads, s-taskin.adb (Set_Entry_Names,
6186 Task_Entry_Names_Array, Task_Entry_Names_Access): Remove.
6187 * s-tpoben.ads, s-tpoben.adb (Set_Entry_Names,
6188 Protected_Entry_Names_Array, Protected_Entry_Names_Access): Remove.
6189
0789ef6f
AC
61902017-01-06 Bob Duff <duff@adacore.com>
6191
6192 * sinfo.ads, sinfo.adb (Map_Pragma_Name): Preparation work,
6193 dummy implementation of Map_Pragma_Name.
6194
61952017-01-06 Tristan Gingold <gingold@adacore.com>
6196
6197 * exp_ch9.adb (Expand_N_Protected_Type_Declaration): Make the
6198 entry_body variable constant.
6199 * s-taprob.ads (Entry_Body_Access): Move to s-tposen.
6200 * s-tpoben.ads (Protected_Entry_Body_Access): Now access
6201 to constant.
6202 * s-tposen.ads (Entry_Body_Access): Moved from s-taprob,
6203 now access to constant.
6204
ffa168bc
AC
62052017-01-06 Gary Dismukes <dismukes@adacore.com>
6206
6207 * einfo.ads, sem_res.adb, sem_attr.adb, sem_ch6.adb: Minor
6208 reformatting and typo fixes.
6209
62102017-01-06 Bob Duff <duff@adacore.com>
6211
6212 * snames.ads-tmpl: New names for pragma renaming.
6213 * snames.adb-tmpl (Is_Configuration_Pragma_Name): Minor cleanup.
6214 * par-prag.adb: Add new pragma name to case statement.
6215 * sem_prag.adb (Rename_Pragma): Initial cut at semantic analysis
6216 of the pragma.
6217 * sinfo.ads, sinfo.adb (Pragma_Name_Mapped): Preparation work,
6218 Dummy implementation of Pragma_Name_Mapped.
6219
9ca67d3f
ES
62202017-01-06 Ed Schonberg <schonberg@adacore.com>
6221
6222 * exp_ch6.adb (Expand_Protected_Subprogram_Call): Add guard to
6223 better detect call within an entry_wrapper.
6224 * sem_res.adb (Resolve_Call): A protected call within an
6225 entity_wrapper is analyzed in the context of the protected
6226 object but corresponds to a pre-analysis and is not an access
6227 before elaboration.
6228 * sem_attr.adb: Minor reformatting.
6229
5e127570
AC
62302017-01-06 Justin Squirek <squirek@adacore.com>
6231
6232 * sem_attr.adb (Analyze_Attribute): Modify semantic checks for
6233 Finalization_Size to allow a prefix of any non-class-wide type.
6234 * sem_attr.ads Modify comment for Finalization_Size to include
6235 definite type use case.
6236
62372017-01-06 Ed Schonberg <schonberg@adacore.com>
6238
6239 * einfo.ads, einfo.adb (Is_Entry_Wrapper): New flag, defined
6240 on procedures that are wrappers created for entries that have
6241 preconditions.
6242 * sem_ch6.adb (Analyze_Subrogram_Body_Helper): If the subprogram
6243 body is an entry_wrapper, compile it in the context of the
6244 synchronized type, because a precondition may refer to funtions
6245 of the type.
6246 * exp_ch9.adb (Build_Contract_Wrapper): Set Is_Entry_Wrapper on
6247 body entity.
6248 * exp_ch6.adb (Expand_Protected_Subprogram_Call): if the call is
6249 within an Entry_Wrapper this is an external call whose target
6250 is the synchronized object that is the actual in the call to
6251 the wrapper.
6252
50145b93
AC
62532017-01-06 Yannick Moy <moy@adacore.com>
6254
6255 * sem_attr.adb (Analyze_Attribute/Attribute_Loop_Entry): Analyze node
6256 in tree, which means not analyzing the previous prefix if the node has
6257 been rewritten into its prefix.
6258
62592017-01-06 Gary Dismukes <dismukes@adacore.com>
6260
6261 * s-tpobop.adb: Minor reformatting.
6262
229fa5db
AC
62632017-01-06 Ed Schonberg <schonberg@adacore.com>
6264
6265 * checks.adb (Ensure_Valid): Do not generate a validity check
6266 within a generated predicate function, validity checks will have
6267 been applied earlier when required.
6268
62692017-01-06 Tristan Gingold <gingold@adacore.com>
6270
6271 * s-tpoben.ads (Protection_Entries): Add comment and reorder
6272 components for performances.
6273 * s-tpobop.adb (PO_Do_Or_Queue): Implement Max_Queue_Length runtime
6274 semantic.
6275
d9c59db4
AC
62762017-01-06 Ed Schonberg <schonberg@adacore.com>
6277
6278 * sem_eval.adb (Check_Expression_Against_Static_Predicate):
6279 If expression is compile-time known and obeys a static predicate
6280 it must be labelled as static, to prevent spurious warnings and
6281 run-time errors, e.g. in case statements. This is relevant when
6282 the expression is the result of constant-folding a type conversion
6283 whose expression is a variable with a known static value.
6284
62852017-01-06 Hristian Kirtchev <kirtchev@adacore.com>
6286
6287 * exp_attr.adb, sem_attr.ads: Minor reformatting.
6288
f68d3344
JS
62892017-01-06 Justin Squirek <squirek@adacore.com>
6290
6291 * exp_attr.adb (Expand_N_Attribute_Reference): Add entry for
6292 expansion of Finalization_Size attribute.
6293 * sem_attr.adb (Analyze_Attribute): Add entry to check the
6294 semantics of Finalization_Size.
6295 (Eval_Attribute): Add null entry for Finalization_Size.
6296 * sem_attr.ads: Add Finalization_Size to the implementation
6297 dependent attribute list.
6298 * snames.ads-tmpl: Add name entry for Finalization_Size attribute.
6299
e11b776b
AC
63002017-01-06 Ed Schonberg <schonberg@adacore.com>
6301
6302 * sem_ch5.adb (Analyze_Loop_Statement): If the loop includes an
6303 iterator specification with a serious syntactic error, transform
6304 construct into an infinite loop in order to continue analysis
6305 and prevent a compiler abort.
6306
63072017-01-06 Tristan Gingold <gingold@adacore.com>
6308
6309 * exp_ch9.adb (Expand_N_Protected_Type_Declaration): Do not generate
6310 max_queue_lengths_array if unused.
6311
63122017-01-06 Bob Duff <duff@adacore.com>
6313
6314 * errout.adb (Set_Msg_Text): Protect against out-of-bounds
6315 array access, in case "\" is at the end of Text.
6316 * stylesw.adb (Set_Style_Check_Options): Don't include input
6317 characters in the error message template, because they could
6318 be control characters such as "\", which Errout will try to
6319 interpret.
6320
63212017-01-06 Ed Schonberg <schonberg@adacore.com>
6322
6323 * sem_ch4.adb (Find_Indexing_Operations, Inspect_Declarations):
6324 For a private type examine the visible declarations that follow
6325 the partial view, not just the private declarations that follow
6326 the full view.
6327
63282017-01-06 Hristian Kirtchev <kirtchev@adacore.com>
6329
6330 * exp_ch5.adb, sem_ch3.adb, checks.adb: Minor reformatting and
6331 code cleanup.
6332
6eca51ce
ES
63332017-01-06 Ed Schonberg <schonberg@adacore.com>
6334
6335 * exp_ch5.adb (Get_Default_Iterator): For a derived type, the
6336 alias of the inherited op is the parent iterator, no need to
6337 examine dispatch table positions which might not be established
6338 yet if type is not frozen.
6339 * sem_disp.adb (Check_Controlling_Formals): The formal of a
6340 predicate function may be a subtype of a tagged type.
6341 * sem_ch3.adb (Complete_Private_Subtype): Adjust inheritance
6342 of representation items for the completion of a type extension
6343 where a predicate applies to the partial view.
6344 * checks.ads, checks.adb (Apply_Predicate_Check): Add optional
6345 parameter that designates function whose actual receives a
6346 predicate check, to improve warning message when the check will
6347 lead to infinite recursion.
6348 * sem_res.adb (Resolve_Actuals): Pass additional parameter to
6349 Apply_Predicate_Check.
6350
07b3e137
AC
63512017-01-06 Tristan Gingold <gingold@adacore.com>
6352
6353 * s-rident.ads (Profile_Info): Remove No_Entry_Queue from
6354 Gnat_Extended_Ravenscar.
6355 * exp_ch9.adb, s-tpoben.adb, s-tpoben.ads: Fix spelling.
6356
63572017-01-06 Gary Dismukes <dismukes@adacore.com>
6358
6359 * sem_util.ads: Minor typo fix and reformatting.
6360
ac8380d5
AC
63612017-01-06 Yannick Moy <moy@adacore.com>
6362
6363 * ghost.adb Minor fixing of references to SPARK RM.
6364 (Check_Ghost_Context): Check whether reference is to a lvalue
6365 before issuing an error about violation of SPARK RM 6.9(13)
6366 when declaration has Ghost policy Check and reference has Ghost
6367 policy Ignore.
6368 * sem_util.adb Minor indentation.
6369 * sem_ch10.adb (Analyze_Package_Body_Stub, Analyze_Protected_Body_Stub,
6370 Analyze_Task_Body_Stub): Set Ekind of the defining identifier.
6371 * sem_util.ads (Unique_Defining_Entity): Document the result
6372 for package body stubs.
6373
63742017-01-06 Tristan Gingold <gingold@adacore.com>
6375
6376 * raise-gcc.c (abort): Macro to call Abort_Propagation.
6377 * s-tpoben.ads (Protected_Entry_Queue_Max_Access): Make it access
6378 constant.
6379 * exp_ch9.adb (Expand_N_Protected_Type_Declaration):
6380 Do not generate the Entry_Max_Queue_Lengths_Array if all default
6381 values.
6382 * exp_util.adb (Corresponding_Runtime_Package): Consider
6383 Max_Queue_Length pragma.
6384
7727a9c1
AC
63852017-01-06 Justin Squirek <squirek@adacore.com>
6386
6387 * exp_ch9.adb (Expand_N_Protected_Type_Declaration):
6388 Remove declaration generation in the case of
6389 System_Tasking_Protected_Objects_Single_Entry being used,
6390 and add a warning message when this is detected to occur.
6391 (Make_Initialize_Protection): Remove reference pass in the case
6392 of System_Tasking_Protected_Objects_Single_Entry.
6393 * rtsfind.ads: Remove RE_Protected_Entry_Queue_Max
6394 * s-tposen.adb (Initialize_Protection_Entry): Remove
6395 Entry_Queue_Max parameter.
6396 * s-tposen.ads: Remove the types use to store the entry queue
6397 maximum.
6398 * sem_prag.adb (Analyze_Pragma): Remove entry families restriction
6399
64002017-01-06 Yannick Moy <moy@adacore.com>
6401
6402 * sem_util.adb, sem_util.ads (Get_Enum_Lit_From_Pos): Strengthen
6403 behavior of function, to also accept out of range positions
6404 and raise Constraint_Error in such case, and to copy sloc from
6405 literal if No_Location passed as location.
6406 * uintp.adb, uintp.ads (UI_To_Int, UI_To_CC): Strengthen behavior
6407 of functions to raise Constraint_Error in case of value not in
6408 appropriate range.
6409
64102017-01-06 Tristan Gingold <gingold@adacore.com>
6411
6412 * sem_util.adb, s-taprop-linux.adb (Finalize_TCB): Remove call to
6413 Invalidate_Stack_Cache.
6414
64152017-01-06 Eric Botcazou <ebotcazou@adacore.com>
6416
6417 * s-os_lib.adb: Minor fix to the signature of Readlink.
6418
64192017-01-06 Javier Miranda <miranda@adacore.com>
6420
6421 * sem_ch6.adb (Conforming_Types): Handle another
6422 confusion between views in a nested instance with an actual
6423 private type whose full view is not in scope.
6424
64252017-01-06 Arnaud Charlet <charlet@adacore.com>
6426
6427 * exp_ch5.adb (Expand_N_If_Statement): Obey existing comment and
6428 mark a rewritten if statement as explicit (Comes_From_Source).
6429
ea1135b8
GD
64302017-01-06 Gary Dismukes <dismukes@adacore.com>
6431
6432 * sem_prag.adb, rtsfind.adb, sem_util.adb: Minor typo fixes.
6433
442d1abb
AC
64342017-01-06 Tristan Gingold <gingold@adacore.com>
6435
6436 * ada.ads, a-unccon.ads: Add pragma No_Elaboration_Code_All.
6437
64382017-01-06 Hristian Kirtchev <kirtchev@adacore.com>
6439
6440 * sem_case.adb: Minor reformatting.
6441
64422017-01-06 Thomas Quinot <quinot@adacore.com>
6443
6444 * g-socthi-mingw.adb: Remove now extraneous USE TYPE clause
6445
64462017-01-06 Justin Squirek <squirek@adacore.com>
6447
6448 * aspects.adb: Register aspect in Canonical_Aspect.
6449 * aspects.ads: Associate qualities of Aspect_Max_Queue_Length
6450 into respective tables.
6451 * einfo.ads, einfo.adb: Add a new attribute for
6452 handling the parameters for Pragma_Max_Entry_Queue
6453 (Entry_Max_Queue_Lengths_Array) in E_Protected_Type. Subprograms
6454 for accessing and setting were added as well.
6455 * par-prag.adb (Prag): Register Pramga_Max_Entry_Queue.
6456 * exp_ch9.adb (Expand_N_Protected_Type_Declaration): Emit
6457 declaration for pramga arguments and store them in the protected
6458 type node.
6459 (Make_Initialize_Protection): Pass a reference to
6460 the Entry_Max_Queue_Lengths_Array in the protected type node to
6461 the runtime.
6462 * rtsfind.adb: Minor grammar fix.
6463 * rtsfind.ads: Register new types taken from the
6464 runtime libraries RE_Protected_Entry_Queue_Max and
6465 RE_Protected_Entry_Queue_Max_Array
6466 * s-tposen.adb, s-tpoben.adb
6467 (Initialize_Protection_Entry/Initialize_Protection_Entries):
6468 Add extra parameter and add assignment to local object.
6469 * s-tposen.ads, s-tpoben.ads: Add new types to
6470 store entry queue maximums and a field to the entry object record.
6471 * sem_ch13.adb (Analyze_Aspect_Specifications): Add case statement
6472 for Aspect_Max_Queue_Length.
6473 (Check_Aspect_At_Freeze_Point):
6474 Add aspect to list of aspects that don't require delayed analysis.
6475 * sem_prag.adb (Analyze_Pragma): Add case statement for
6476 Pragma_Max_Queue_Length, check semantics, and register arugments
6477 in the respective entry nodes.
6478 * sem_util.adb, sem_util.ads Add functions Get_Max_Queue_Length
6479 and Has_Max_Queue_Length
6480 * snames.ads-tmpl: Add constant for the new aspect-name
6481 Name_Max_Queue_Length and corrasponding pragma.
6482
64832017-01-06 Hristian Kirtchev <kirtchev@adacore.com>
6484
6485 * exp_util.adb (Is_Controlled_Function_Call):
6486 Reimplemented. Consider any node which has an entity as the
6487 function call may appear in various ways.
6488
ed3fe8cc
AC
64892017-01-06 Hristian Kirtchev <kirtchev@adacore.com>
6490
6491 * exp_attr.adb (Rewrite_Stream_Proc_Call): Use
6492 an unchecked type conversion when performing a view conversion
6493 to/from a private type. In all other cases use a regular type
6494 conversion to ensure that any relevant checks are properly
6495 installed.
6496
64972017-01-06 Hristian Kirtchev <kirtchev@adacore.com>
6498
6499 * sem_prag.adb, sem_ch8.adb: Minor reformatting.
6500
65012017-01-06 Ed Schonberg <schonberg@adacore.com>
6502
6503 * sem_case.adb (Explain_Non_Static_Bound): Suppress cascaded
6504 error on case expression that is an entity, when coverage is
6505 incomplete and entity has a static value obtained by local
6506 propagation.
6507 (Handle_Static_Predicate): New procedure, subsidiary of
6508 Check_Choices, to handle case alternatives that are either
6509 subtype names or subtype indications involving subtypes that
6510 have static predicates.
6511
65122017-01-06 Thomas Quinot <quinot@adacore.com>
6513
6514 * s-oscons-tmplt.c, g-socket.adb, g-socket.ads, g-sothco.ads:
6515 (GNAT.Socket): Add support for Busy_Polling and Generic_Option
6516
65172017-01-06 Bob Duff <duff@adacore.com>
6518
6519 * sem_elab.adb (Activate_Elaborate_All_Desirable): Don't add
6520 Elaborate_All(P) to P itself. That could happen in obscure cases,
6521 and always introduced a cycle (P body must be elaborated before
6522 P body).
6523 * lib-writ.ads: Comment clarification.
6524 * ali-util.ads: Minor comment fix.
6525 * ali.adb: Minor reformatting.
6526
65272017-01-06 Tristan Gingold <gingold@adacore.com>
6528
6529 * a-exexpr-gcc.adb: Improve comment.
6530
47f2abdd
JC
65312017-01-03 James Cowgill <James.Cowgill@imgtec.com>
6532
6533 * s-linux-mips.ads: Use correct signal and errno constants.
6534 (sa_handler_pos, sa_mask_pos): Fix offsets for 64-bit MIPS.
6535
1b5593c0
JC
65362017-01-03 James Cowgill <James.Cowgill@imgtec.com>
6537
6538 * s-linux-mips.ads: Rename from s-linux-mipsel.ads.
6539 * gcc-interface/Makefile.in (MIPS/Linux): Merge mips and mipsel
6540 sections.
6541
613be1c8
EB
65422017-01-01 Eric Botcazou <ebotcazou@adacore.com>
6543
6544 * gnatvsn.ads: Bump copyright year.
6545
c1a9c369 65462017-01-01 Jakub Jelinek <jakub@redhat.com>
21fa2a29
JJ
6547
6548 * gnat_ugn.texi: Bump @copying's copyright year.
6549 * gnat_rm.texi: Likewise.
ad41bd84 6550\f
c1a9c369 6551Copyright (C) 2017 Free Software Foundation, Inc.
ad41bd84
JM
6552
6553Copying and distribution of this file, with or without modification,
6554are permitted in any medium without royalty provided the copyright
6555notice and this notice are preserved.